Modalità di funzionamento del supporto per le sessioni SOAP
Tutte le sessioni SOAP vengono generate tramite coppie di messaggi richiesta/risposta tra il server e i client che includono l'intestazione facoltativa sqlSession per racchiudere tutte le informazioni relative alle sessioni SOAP. sqlSession fa distinzione tra maiuscole e minuscole e fa parte dello spazio dei nomi sqloptions.
Dopo essere state iniziate dal server, le sessioni SOAP vengono archiviate nella vista a gestione dinamica sys.dm_exec_sessions. Questa vista restituisce gli ID di sessione e l'ora di inizio di ogni sessione. È possibile visualizzare questa tabella eseguendo la query seguente in SQL Server Management Studio o tramite l'utilità da riga di comando osql:
SELECT * FROM [sys].[dm_exec_sessions]
Le sessioni SOAP scadono in base a un valore di timeout di sessione. Il valore predefinito o massimo per il timeout di sessione viene impostato utilizzando le istruzioni DLL CREATE ENDPOINT o ALTER ENDPOINT. I client possono tuttavia richiedere un valore di timeout inferiore all'intervallo predefinito. Se il client richiede un timeout superiore a quello predefinito del server, il timeout specificato nell'istruzione DLL dell'endpoint ha la precedenza sulla preferenza del client. Si supponga, ad esempio, che l'istruzione CREATE ENDPOINT
seguente sia stata utilizzata per stabilire un endpoint con supporto per le sessioni:
CREATE ENDPOINT ...SESSIONS=ENABLED ...SESSION_TIMEOUT = 60
Se, quindi, un client SOAP richiede un timeout di sessione superiore al valore massimo impostato nel server, ad esempio 90, il valore massimo di 60 ha la precedenza e viene applicato come intervallo di timeout di sessione effettivo. Se il valore di SESSION_TIMEOUT non è impostato nell'istruzione DLL dell'endpoint, non si verifica il timeout delle sessioni (valore infinito).
Per impostazione predefinita, negli endpoint HTTP le sessioni non sono attivate. Per attivare le sessioni in un endpoint, è necessario specificare SESSIONS=ENABLED nell'istruzione DDL dell'endpoint.
Le sessioni sono persistenti solo quando l'istanza di SQL Server 2005 è in linea. Quando il server viene interrotto e quindi riavviato, tutte le sessioni vengono reimpostate. La modifica dell'endpoint può inoltre influire sulle sessioni aperte o nuove che utilizzano tale endpoint. Per ulteriori informazioni, vedere Modifica di endpoint quando si utilizzano sessioni SOAP.
[!NOTA] Tutte le richieste di join alle sessioni SOAP HTTP devono essere autenticate. Per ulteriori informazioni, vedere Tipi di autenticazione dell'endpoint.
Le sessioni possono essere iniziate o terminate per modificarne lo stato, ma generalmente rimangono in uno stato di "sospensione", ad esempio quando una sessione è stata iniziata ed è aperta nel server per l'utilizzo da parte del client, oppure in uno stato di "inattività", ad esempio quando una sessione è stata terminata e non è al momento disponibile nel server per l'utilizzo da parte del client.
[!NOTA] Le richieste WSDL (Web Services Definition Language) non possono partecipare alle sessioni SOAP. Per ulteriori informazioni su WSDL, vedere Utilizzo di WSDL.
Vedere anche
Riferimento
Applicazioni di esempio per l'invio di richieste ai servizi Web XML nativi
Aggiunta di intestazioni SOAP alle applicazioni client