Udostępnij za pośrednictwem


Managing Connections and Sessions (XMLA)

Statefulness jest to stan, w którym na serwerze pozwala zachować tożsamości i kontekstu klient między wywołania metoda.Statelessness jest to stan, w którym serwer nie pamięta tożsamości i kontekstu klient po zakończeniu wywołania metoda.

Aby zapewnić statefulness, obsługuje XML for Analysis (XMLA) sesje zezwalające na serię instrukcji, które mają być wykonywane jednocześnie.Przykładem serię instrukcji byłoby tworzenia obliczany element członkowski, który ma być używany w następnych kwerend.

Ogólnie rzecz biorąc sesje XMLA należy wykonać następujące zachowanie, opisane w specyfikacji OLE DB 2.6:

  • Sesje definiowanie transakcji i polecenia kontekstu zakres.

  • Wiele poleceń może być uruchamiany w ramach jednej sesja.

  • Obsługa transakcji w kontekście XMLA jest za pomocą polecenia specyficzne dla dostawca, przesyłane z wykonać metoda.

XMLA definiuje sposób obsługi sesji w środowisku sieci Web w trybie podobnych do używanych przez protokół Distributed Authoring and Versioning (DAV) do wdrożenia blokowania w środowisku luźno połączonych podejścia.Ta implementacja równoleżnikami DAV tym, że dostawca jest dozwolone do wygaśnięcia sesji dla różnych przyczyn (na przykład błąd przekroczenia limitu czasu lub połączenie).Kiedy sesje są obsługiwane, usług sieci Web należy pamiętać i jest gotowy do obsługi przerwanej zestawy poleceń, które należy uruchomić ponownie.

Specyfikacja Simple Object Access protokół World Wide Web Consortium (W3C) (SOAP) zaleca utworzenie nowych protokół w górnej części wiadomości SOAP przy użyciu nagłówek protokół SOAP.Poniższa tabela zawiera listę SOAP nagłówka elementów i atrybutów, które definiuje XMLA do inicjowania, utrzymywania i zamknięcie sesja.

Nagłówek protokołu SOAP

Description

BeginSession

Ten nagłówek żądania dostawca do utworzenia nowej sesja.Dostawca powinien odpowiadać nowej sesja i zwraca identyfikator sesja w ramach sesja nagłówek odpowiedź protokołu SOAP.

Identyfikator sesji

W obszarze wartość zawiera identyfikator sesja, która ma zostać zastosowana w każdym wywołaniu metoda przez resztę sesja.Dostawca w odpowiedzi protokołu SOAP wysyła ten tag, a klient musi również wysyłać ten atrybut z elementem nagłówka każdej sesja.

Sesja

Dla każdego wywołania metoda występujący w sesja musi być używany ten nagłówek, a identyfikator sesja musi znajdować się w obszarze wartość nagłówka.

EndSession

Aby zakończyć sesja, należy użyć tego nagłówka.Identyfikator sesja musi zostać dołączony do obszaru wartości.

Uwaga

Identyfikator sesji nie gwarantuje, że sesja pozostaje ważny.Jeśli sesja wygasa (na przykład, jeśli limit czasu lub połączenie zostanie przerwane), Dostawca można zakończyć i wycofać działania tej sesji.W wyniku wywołania metoda kolejnych z klient z IDENTYFIKATOREM sesja zakończyć się niepowodzeniem z powodu błędu sygnalizacji sesja, który jest nieprawidłowy.Klient powinien obsługiwać ten warunek i przygotuj się na ponowne wysłanie wywołania metoda sesja od początku.

Starsze przykładowy kod

W poniższym przykładzie pokazano, w jaki sposób są obsługiwane sesji.

  1. Aby rozpocząć sesja, dodać nagłówek BeginSession w SOAP do wywołań wychodzących metoda XMLA od klient.W obszarze wartości jest początkowo puste, ponieważ identyfikator sesja nie jest jeszcze znana.

    <SOAP-ENV:Envelope
       xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/"
       SOAP-ENV:encodingStyle="https://schemas.xmlsoap.org/soap/encoding/">
       <SOAP-ENV:Header>
          <XA:BeginSession
             xmlns:XA="urn:schemas-microsoft-com:xml-analysis"
             xsi:type="xsd:int"
             mustUnderstand="1"/>
       </SOAP-ENV:Header>
       <SOAP-ENV:Body>
          ...<!-- Discover or Execute call goes here.-->
       </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    
  2. Wiadomość odpowiedzi protokołu SOAP od dostawca zawiera identyfikator sesja w obszarze nagłówka zwrotu, za pomocą tagu XMLA nagłówka <Identyfikator sesja>.

    <SOAP-ENV:Header>
       <XA:Session
          xmlns:XA="urn:schemas-microsoft-com:xml-analysis"
          SessionId="581"/>
    </SOAP-ENV:Header>
    
  3. Dla każdego wywołania metoda w sesja muszą zostać dodane w nagłówku sesja, zawierający identyfikator sesja, zwrócone od dostawca.

    <SOAP-ENV:Header>
       <XA:Session
          xmlns:XA="urn:schemas-microsoft-com:xml-analysis"
          mustUnderstand="1"
          SessionId="581"/>
    </SOAP-ENV:Header>
    
  4. Po zakończeniu sesja <EndSession> używany jest tag, zawierające wartości IDENTYFIKATORA sesja powiązanych.

    <SOAP-ENV:Header>
       <XA:EndSession
          xmlns:XA="urn:schemas-microsoft-com:xml-analysis"
          xsi:type="xsd:int"
          mustUnderstand="1"
          SessionId="581"/>
    </SOAP-ENV:Header>