Partager via


Élément d'en-tête sqloptions:clientPID

Cette fonctionnalité sera supprimée dans une prochaine version de Microsoft SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité.

L'option de connexion sqloptions:clientPID permet au client de spécifier l'ID de processus client de la connexion, par exemple :

<SOAP-ENV:Header
  xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/"
  xmlns:sqloptions="https://schemas.microsoft.com/sqlserver/2004/SOAP/Options">
    <sqloptions:clientPID          SOAP-ENV:mustUnderstand="1"          value="ID of client process "/>

</SOAP-ENV:Header>

L'option de connexion sqloptions:clientPID apparaît en tant qu'en-tête SOAP. Elle est composée d'un élément, appelé sqloptions:clientPID. L'élément possède un attribut obligatoire, value. Il s'agit d'une valeur d'entier long (64 bits signé). L'attribut value fournit l'ID de processus client à définir pour la connexion. Celui-ci apparaît dans la colonne hostprocess de la vue de compatibilité sys.sysprocesses.

Seule une instance de l'option sqloptions:clientPID peut apparaître dans une demande. Cette option ne peut pas apparaître dans une réponse. L'existence de plusieurs instances de l'option génère une erreur.

Le serveur peut limiter la plage des valeurs reconnues pour la valeur sqloptions:clientPID. Si un client soumet une valeur hors de la plage autorisée, le serveur tronque la valeur en mode silencieux de manière non définie.

Si des sessions SOAP sont en cours d'utilisation, cette option doit apparaître dans la même demande que l'attribut sqloptions:sqlsession initiate. Si cette option apparaît dans une demande dont l'en-tête sqloptions:sqlSession est dépourvu de l'attribut initiate, une erreur est générée.

Les informations suivantes représentent un fragment de schéma de l'option sqloptions:clientPID :

<xs:element name="clientPID" form="qualified">
    <xs:annotation>
        <xs:documentation>
            Set the client process ID for the login.
        </xs:documentation>
    </xs:annotation>
    <xs:complexType>
        <xs:attribute use="required" name="value" type="xs:long" form="unqualified">
            <xs:annotation>
                <xs:documentation>
                    The client process ID to set for the login.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
</xs:element>

Exemples

Les exemples suivants illustrent l'utilisation de l'en-tête sqloptions:clientPID dans des messages de demande et de réponse SOAP.

Demande

<SOAP-ENV:Envelope  xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/"
                    xmlns:sql="https://schemas.microsoft.com/sqlserver/2004/SOAP"
                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                    xmlns:sqlparam="https://schemas.microsoft.com/sqlserver/2004/SOAP/types/SqlParameter"
                    xmlns:sqlsoaptypes="https://schemas.microsoft.com/sqlserver/2004/SOAP/types"
                    xmlns:sqloptions="https://schemas.microsoft.com/sqlserver/2004/SOAP/Options">
  <SOAP-ENV:Header>
    <sqloptions:clientPID SOAP-ENV:mustUnderstand="1" value="1234" />
  </SOAP-ENV:Header>
  <SOAP-ENV:Body>
    <sql:sqlbatch>
      <sql:BatchCommands>
        SELECT hostprocess FROM sysprocesses WHERE spid=@@spid AND hostprocess='1234'
      </sql:BatchCommands>
    </sql:sqlbatch>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Réponse

<SOAP-ENV:Envelope xml:space="preserve" 
                   xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
                   xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/" 
                   xmlns:sql="https://schemas.microsoft.com/sqlserver/2004/SOAP" 
                   xmlns:sqlsoaptypes="https://schemas.microsoft.com/sqlserver/2004/SOAP/types" 
                   xmlns:sqlrowcount="https://schemas.microsoft.com/sqlserver/2004/SOAP/types/SqlRowCount" 
                   xmlns:sqlmessage="https://schemas.microsoft.com/sqlserver/2004/SOAP/types/SqlMessage" 
                   xmlns:sqlresultstream="https://schemas.microsoft.com/sqlserver/2004/SOAP/types/SqlResultStream" 
                   xmlns:sqltransaction="https://schemas.microsoft.com/sqlserver/2004/SOAP/types/SqlTransaction" 
                   xmlns:sqltypes="https://schemas.microsoft.com/sqlserver/2004/sqltypes">
  <SOAP-ENV:Body>
    <sql:sqlbatchResponse>
      <sql:sqlbatchResult>
        <sqlresultstream:SqlRowSet xsi:type="sqlsoaptypes:SqlRowSet">
          <diffgr:diffgram xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
            <SqlRowSet1 xmlns="urn:schemas-microsoft-com:sql:SqlRowSet1">
              <row>
                <hostprocess>1234</hostprocess>
              </row>
            </SqlRowSet1>
          </diffgr:diffgram>
        </sqlresultstream:SqlRowSet>
        <sqlresultstream:SqlRowCount xsi:type="sqlrowcount:SqlRowCount">
          <sqlrowcount:Count>1</sqlrowcount:Count>
        </sqlresultstream:SqlRowCount>
      </sql:sqlbatchResult>
    </sql:sqlbatchResponse>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Voir aussi

Référence