Partager via


Utilisation de l’outil ServiceModel Metadata Utility avec l’adaptateur BizTalk pour Oracle Database

Vous pouvez utiliser l’outil ServiceModel Metadata Utility Tool (svcutil.exe) pour générer une classe de client WCF ou un contrat de service WCF (interface) pour les opérations exposées par l’adaptateur Microsoft BizTalk pour Oracle Database. Après avoir exécuté svcutil.exe pour générer une classe de client WCF ou un contrat de service WCF, vous pouvez inclure le fichier généré dans votre code et créer des instances de la classe générée ou implémenter un service WCF à partir du contrat pour effectuer des opérations sur la base de données Oracle.

L’utilisation de svcutil.exe vous oblige à fournir un URI de connexion qui contient des informations d’identification. Étant donné que, par défaut, l’adaptateur Oracle Database désactive les informations d’identification dans l’URI de connexion, vous devez configurer svcutil.exe pour utiliser une liaison autre que celle par défaut pour l’adaptateur Oracle Database.

Les sections suivantes vous montrent comment configurer svcutil.exe et comment utiliser svcutil.exe pour générer du code client WCF ou un contrat de service WCF avec l’adaptateur Oracle Database.

Configurer svcutil.exe pour une liaison autre que la liaison par défaut

Pour configurer svcutil.exe utiliser une liaison autre que celle par défaut, vous devez créer une copie locale de svcutil.exe, puis créer ou modifier une copie locale du fichier de configuration svcutil.exe.config.

  1. Créez un dossier et copiez svcutil.exe dans le nouveau dossier. Vous pouvez généralement trouver svcutil.exe à l’emplacement d’installation du SDK Windows, en particulier C :\Program Files\Microsoft SDKs\Windows\v6.0\Bin.

  2. Créez un fichier nommé svcutil.exe.config dans le nouveau dossier.

  3. Ajoutez une liaison et un point de terminaison client au fichier svcutil.exe.config. Vous devez exécuter svcutil.exe à partir du nouveau dossier pour vous assurer que la configuration correcte est utilisée.

    Important

    L’attribut name du point de terminaison client doit spécifier le schéma utilisé dans l’URI de connexion. Cette valeur respecte la casse.

    <configuration>
      <system.serviceModel>
        <client>
          <!-- the name should match the required scheme of the WS-Metadata Exchange endpoint
          and the contract should be "IMetadataExchange" -->
          <endpoint name="oracledb"
                    binding="oracleDBBinding"
                    bindingConfiguration="OracleDBBinding"
                    contract="IMetadataExchange" />
        </client>
        <bindings>
            <oracleDBBinding>
                <binding name="OracleDBBinding" acceptCredentialsInUri="true" />
            </oracleDBBinding>
        </bindings>
    
      </system.serviceModel>
    
    </configuration>
    

Notes

Vous pouvez définir l’une des propriétés de liaison de l’adaptateur Oracle Database dans la configuration de liaison.

Pour plus d’informations sur la configuration d’une liaison autre que celle par défaut pour svcutil.exe, consultez la rubrique « Point de terminaison de métadonnées sécurisés personnalisés » dans la documentation WCF à l’adresse https://go.microsoft.com/fwlink/?LinkId=96077.

Configurer une liaison non par défaut pour l’opération POLLINGSTMT

Pour utiliser svcutil.exe afin de créer un contrat de service WCF pour l’opération POLLINGSTMT, vous devez configurer la liaison autre que celle par défaut pour inclure la propriété pollingStatement , en plus de acceptCredentialsInUri. L’objet pollingStatement doit contenir l’instruction SELECT qui cible la table. L’adaptateur Oracle Database utilise cette propriété pour générer la classe qui représente le jeu de résultats fortement typé que l’opération POLLINGSTMT retourne. L’exemple suivant montre une configuration de liaison utilisée pour générer un contrat de service WCF pour une opération POLLINGSTMT qui cible la table /SCOTT/EMP.

<bindings>
    <oracleDBBinding>
        <binding name="OracleDBBinding" acceptCredentialsInUri="true"
                                   pollingStatement="SELECT * FROM EMP FOR UPDATE" />
    </oracleDBBinding>
</bindings>

Créer une classe cliente WCF ou un contrat de service WCF avec svcutil.exe

Pour utiliser svcutil.exe afin de générer du code client WCF ou un contrat de service WCF (interface) pour l’adaptateur oracle Database, vous devez fournir un URI de connexion qui spécifie un point de terminaison WS-Metadata Exchange (MEX) et l’opération ou les opérations pour lesquelles vous souhaitez svcutil.exe générer du code. Vous devez également spécifier les informations d’identification de connexion pour la base de données Oracle dans l’URI de connexion.

Notes

Avant de pouvoir utiliser svcutil.exe avec l’adaptateur Oracle Database, vous devez le configurer pour utiliser une liaison autre que celle par défaut . Pour plus d’informations sur la procédure à suivre, consultez Configuration de svcutil.exe pour l’adaptateur de base de données Oracle.

Vous spécifiez un point de terminaison MEX et des opérations cibles dans l’URI de connexion de l’adaptateur Oracle Database de la manière suivante :

  • Vous devez inclure le paramètre « wsdl » dans le query_string. S’il s’agit du premier paramètre du query_string, il est spécifié juste après le point d’interrogation ( ?). S’il ne s’agit pas du premier paramètre, il doit être précédé d’une esperluette (&).

  • Vous devez suivre le paramètre « wsdl » par un ou plusieurs paramètres « op ». Chaque paramètre « op » est précédé d’une esperluette (&) et spécifie l’ID de nœud d’une opération cible.

    Les trois exemples suivants montrent comment cibler diverses opérations à l’aide de svcutil.exe.

    Cet exemple crée une classe de client WCF pour une opération Insert sur la table /SCOTT/EMP.

    .\svcutil « oracledb ://User=SCOTT ; Password=TIGER@ADAPTER ?wsdl&op=http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Insert" ;

    Cet exemple crée une classe de client WCF pour les opérations Insert et Delete sur la table /SCOTT/EMP.

    .\svcutil « oracledb ://User=SCOTT ; Password=TIGER@ADAPTER ?wsdl&op=http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Insert& ; op=http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Delete" ;

    Cet exemple crée un contrat de service WCF pour l’opération POLLLINGSTMT. (Pour utiliser svcutil.exe afin de générer un contrat de service WCF pour l’opération POLLINGSTMT, vous devez configurer une liaison autre que celle par défaut pour svcutil.exe qui inclut une instruction d’interrogation.)

    .\svcutil « oracledb ://User=SCOTT ; Password=TIGER@ADAPTER ?wsdl&op=http://Microsoft.LobServices.OracleDB/2007/03/POLLINGSTMT" ;

Important

Vous devez placer l’URI de connexion entre guillemets sur la ligne de commande. Sinon, svcutil.exe tente de récupérer des métadonnées pour les opérations que l’adaptateur Oracle Database ne prend pas en charge. Les résultats d’une telle tentative ne sont pas définis.

Par défaut, svcutil.exe place le code généré dans le fichier output.cs ; Toutefois, vous pouvez modifier le nom du fichier de sortie et de nombreuses autres options que svcutil.exe utilise en définissant des commutateurs de ligne de commande. Pour plus d’informations sur les options que svcutil.exe prend en charge, consultez la rubrique « ServiceModel Metadata Utility Tool (Svcutil.exe) » dans la documentation WCF à l’adresse https://go.microsoft.com/fwlink/?LinkId=72777.

Svcutil.exe ne permet pas de rechercher des opérations (par exemple, à l’aide de caractères génériques). Vous devez spécifier explicitement des ID de nœud pour les opérations spécifiques que vous souhaitez cibler. Vous ne pouvez pas spécifier d’ID de nœud qui font référence uniquement à des catégories. Pour plus d’informations sur les ID de nœud exposés par l’adaptateur Oracle Database, consultez Id de nœud de métadonnées.

Le plug-in Visual Studio Add Adapter Service Reference fournit des fonctionnalités avancées de navigation et de recherche qui peuvent considérablement simplifier la génération d’une classe de client WCF et d’un contrat de service WCF. Pour plus d’informations sur le plug-in Ajouter une référence de service d’adaptateur, consultez Génération d’un client WCF ou d’un contrat de service WCF pour les artefacts de solution de base de données Oracle.

Voir aussi

Messages et schémas de message pour l’adaptateur BizTalk pour Oracle Database