Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les sections suivantes fournissent de l’aide pour l’exploitation du service Microsoft pour DRDA (service DRDA).
Gestion du service DRDA
Démarrage du service DRDA
Vous pouvez démarrer le service DRDA pour qu’il s’exécute en tant que service ou application console.
Service Windows
À l’aide d’une fenêtre de commande, vous pouvez démarrer le service DRDA pour qu’il s’exécute en tant que service, sous les informations d’identification définies dans la configuration du service. Ouvrez une invite de commandes, entrez net start msdrdaservice, puis sélectionnez Entrée.
C:\Windows\system32>net start msdrdaservice
The Microsoft Service for DRDA service is starting.
The Microsoft Service for DRDA service was started successfully.
Application console
À l’aide d’une fenêtre de commande, vous pouvez exécuter le service DRDA pour qu’il s’exécute en tant qu’application console, sous les informations d’identification de la fenêtre de commande.
- À partir d’une invite de commandes, entrez net stop msdrdaservice , puis appuyez sur Entrée.
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC>net stop msdrdaservice
The Microsoft Service for DRDA service is stopping.
The Microsoft Service for DRDA service was stopped successfully.
- À partir d’une invite de commandes, entrez msdrdaservice.exe -c , puis appuyez sur Entrée.
Information:0:3:[Jan 24 2024 17:03:15.743] disableXaTransaction has been set to False by parsing string: False
Information:0:3:[Jan 24 2024 17:03:15.743] Successful to set TransactionExpiryDuration.
Information:0:3:[Jan 24 2024 17:03:15.743] Successful to set ResyncRetryDurationInMinutes.
Information:0:3:[Jan 24 2024 17:03:15.743] Successful to set XaIsolationLevel attribute to: SZ
Information:0:3:[Jan 24 2024 17:03:15.743] ResynchronizationManager reaching the end of transaction log file.
Information:0:5:[Jan 24 2024 17:03:15.962] Enter SessionManager::Initialize
Information:0:5:[Jan 24 2024 17:03:16.118] Exit SessionManager::Initialize
Information:0:5:[Jan 24 2024 17:03:16.118] Enter TcpConnectionManager::StartListener
Information:0:3:[Jan 24 2024 17:03:16.118] Microsoft Service for DRDA (build: 11.0.2205.0)
Information:0:3:[Jan 24 2024 17:03:16.118] TCP communication manager listening on port 446
Information:0:5:[Jan 24 2024 17:03:16.150] Exit TcpConnectionManager::StartListener
Information:0:5:[Jan 24 2024 17:03:16.150] Exit TcpConnectionManager::Initialize
Information:0:4:[Jan 24 2024 17:03:16.150] Set ServerBootstrap state to: Started
Remarque
L’écouteur de suivi du service DRDA générera des informations dans la fenêtre de console. Vous devez annuler les marques de commentaire de l’entrée DrdaAsConsoleListener et définir une traceLevel (c’est-à-dire 5) dans le fichier MsDrdaServiceConfig.exe.config.
Arrêt du service DRDA
Vous pouvez arrêter le service DRDA lorsqu’il s’exécute en tant que service ou application console.
Service Windows
À l’aide d’une fenêtre de commande, vous pouvez arrêter le service DRDA lors de l’exécution en tant que service.
- À partir de l’invite de commandes, entrez net stop msdrdaservice, puis appuyez sur Entrée.
C:\Windows\system32>net stop msdrdaservice
The Microsoft Service for DRDA service is stopping.
The Microsoft Service for DRDA service was stopped successfully.
Application console
À l’aide d’une fenêtre de commande, vous pouvez arrêter le service DRDA lorsqu’il s’exécute en tant qu’application console.
- À partir de l’invite de commandes, tapez Ctrl+C.
C:\Windows\system32>
Remarque
Le service DRDA cesse de s’exécuter en tant qu’application console et l’invite de commandes s’affiche.
Connexion de clients DRDA à des bases de données SQL Server
Le service DRDA traite les demandes du client DRDA en connexions aux bases de données SQL Server locales et distantes. Cette rubrique décrit l’opération des opérations de connexion de base de données MsDrdaService.
Connexions clientes
Au démarrage du service, le service DRDA écrit une entrée d’information dans les écouteurs de suivi internes du service DRDA, informant le professionnel informatique du port sur lequel le gestionnaire de communication TCP écoute les connexions clientes entrantes des demandeurs d’application DRDA.
Information:0:3:[Jan 24 2024 17:03:16.118] TCP communication manager listening on port 446
Les clients demandeurs d’applications DRDA distants se connectent au service DRDA local via une connexion réseau TCP/IP. Le client DRDA envoie des flux et des formats de données DRDA EXCSAT (Attributs Exchange Server), ACCSEC (Sécurité d’accès) et ACCRDB (Base de données relationnelle Access), auxquels le service DRDA répond avec les réponses de protocole DRDA.
Authentification
Pour fournir une authentification intégrée, le service DRDA peut combiner la validation et le mappage des informations d'identification entrantes à l'aide de Microsoft Enterprise Single Sign-On (ESSO), avec l'authentification sortante SQL Server à l'aide de l'Interface fournisseur de support de sécurité (SSPI) de Windows. Par exemple, le service DRDA peut utiliser ESSO pour mapper un nom d’utilisateur et un mot de passe IBM RACF (Resource Access Control Facility) à un domaine Microsoft Windows Active Directory\username, avec lequel se connecter avec une sécurité intégrée à une base de données SQL Server distante.
Les connexions de SQL Server
Le service DRDA communique avec les bases de données SQL Server locales ou distantes en amont à l’aide du fournisseur ADO.NET Framework pour SQL Server. Le client SQL sous-jacent accède à SQL Server via une connexion en mémoire ou sur un réseau à l’aide de canaux nommés ou TCP/IP. Le client SQL prend en charge les fonctionnalités de chiffrement et de basculement facultatives pour améliorer la sécurité et la fiabilité. Le service DRDA prend en charge les fonctionnalités facultatives d’authentification unique et de regroupement pour améliorer la sécurité et les performances. Vous pouvez modifier le fichier MsDrdaService.exe.config pour indiquer au service DRDA comment gérer le client SQL sur les connexions SQL Server.
Connexions de secours
Le service DRDA peut fonctionner en groupes de deux (2) serveurs, un par ordinateur, pour fournir une tolérance de panne de base. Lorsqu’un client AR DRDA se connecte à une base de données SQL Server, le service DRDA retourne une DRDA SRVLST (liste de serveurs) avec une liste pondérée d’instances de serveur de données. En cas de basculement d'un service DRDA principal, l'AR DRDA peut utiliser ces informations pour se connecter à l'autre membre d'une paire d'ordinateurs de service DRDA. Combinée au clustering ou au mirroring SQL Server, cette technologie peut offrir une protection raisonnable contre les interruptions.
Les illustrations précédentes montrent comment les clients DRDA peuvent se reconnecter au serveur partenaire du service DRDA dans les scénarios de basculement.
Traitement des assemblages de paquets
Le service DRDA convertit des packages SQL statiques pour DB2 en procédures stockées SQL Server, en traitant les commandes DRDA Begin Bind (BGNBND) et Bind SQL Statement (BNDSQLSTT) en instructions SQL Server DROP PROCEDURE et CREATE PROCEDURE. Un flux DRDA BGNBND contiendra un ou plusieurs flux BNDSQLSTT, un par instruction SQL stocké dans le package. Le service DRDA mappe une section de package SQL statique DRDA (avec une instruction) à une procédure stockée SQL Server. Le service DRDA mappe ou conserve les options de liaison du package BGNBND dans les commentaires des procédures stockées, et les propriétés facultatives des procédures stockées étendues. Le service DRDA utilise un transformateur SQL interne pour convertir la syntaxe de commande SQL, les paramètres, les types de données, les curseurs et les jeux de résultats. Si vous le souhaitez, vous pouvez développer un écouteur de liaison de paquet personnalisé pour traiter les packages de manière interactive avec le service DRDA, ou de manière hors ligne.
Lier le package au fichier XML
Le service DRDA peut traiter un seul flux BGNBND dans un fichier XML de package SQL statique pour DB2, en conservant les options et instructions de liaison d’origine définies par les flux BNDSQLSTT DRDA.
Lier le package à la procédure stockée
Le service DRDA traite un seul flux BGNBND dans une procédure stockée SQL Server, en transformant les instructions d’origine définies par les flux BNDSQLSTT DRDA dans la syntaxe SQL Server correspondante.
Énoncé de procédure de création
L’écouteur de liaison de package interne du service DRDA et la plupart des écouteurs personnalisés incluent une clause IF EXISTS avec l’instruction DROP PROCEDURE, en fonction de la valeur de l’option PKGRPLOPT (option de remplacement de package) dans le flux de protocole DRDA BGNBND (Begin Bind). La valeur par défaut de PKGRPLOPT est PKGRPLALW (Remplacement du paquet autorisé). Si vous le souhaitez, la valeur PKGRPLNA (Remplacement du package non autorisé) peut être spécifiée.
L'écouteur interne de liaison de package du service DRDA et la plupart des écouteurs personnalisés incluent des commentaires juste avant le texte de l'instruction CREATE PROCEDURE, informant l'environnement d'exécution du service DRDA sur la manière d'exécuter les procédures stockées.
Résultats de requête
Ce commentaire indique au service DRDA d’utiliser un DataReader SqlClient pour retourner les résultats de l’instruction SELECT.
/****** RETURN RESULTSET ******/
Paramètres de sortie de requête
Ce commentaire indique au service DRDA de préparer les paramètres OUTPUT lors de l’appel de la procédure avec laquelle retourner les données de la requête.
/****** HAS OUTPUT PARAMS ******/
Curseur avec maintien
Ce commentaire ordonne au service DRDA de maintenir les curseurs ouverts dans une transaction.
/****** CURSOR WITH HOLD ******/
Options de liaison
Ce commentaire conserve le runtime DRDA BNDOPT (Options de liaison) pour une utilisation ultérieure.
/****** BNDOPT: <Options><BNDCHKEXS>BNDEXSOPT</BNDCHKEXS><BNDCRTCTL>BNDNERALW</BNDCRTCTL><BNDEXPOPT>EXPNON</BNDEXPOPT><DFTRDBCOL>DBO</DFTRDBCOL><DGRIOPRL>1</DGRIOPRL><PKGATHOPT>PKGATHKP</PKGATHOPT><PKGATHRUL>OWNER</PKGATHRUL><PKGISOLVL>ISOLVLCS</PKGISOLVL><PKGOWNID>PLARSEN</PKGOWNID><PKGRPLOPT>PKGRPLALW</PKGRPLOPT><QRYBLKCTL>LMTBLKPRC</QRYBLKCTL><RDBRLSOPT>RDBRLSCMM</RDBRLSOPT><STTDATFMT>ISODATFMT</STTDATFMT><STTDECDEL>DECDELPRD</STTDECDEL><STTSTRDEL>STRDELAP</STTSTRDEL><STTTIMFMT>ISOTIMFMT</STTTIMFMT></Options> ******/
Ignorer les commandes de liaison et d’exécution de paquet
Les programmes clients DRDA vont associer un ensemble de packages standard qui contiennent des instructions DECLARE CURSOR de base, permettant de définir comment extraire et renvoyer des résultats des déclarations SELECT et CALL sur IBM DB2 pour z/OS. Le serveur DRDA n’a pas besoin de convertir ces packages en procédures stockées SQL Server. Vous pouvez économiser le traitement de liaison des packages et l’espace de stockage en demandant au serveur DRDA d’ignorer ces packages, en lisant un fichier IgnoreStandardPackages.txt contenant une liste délimitée de noms de packages qualifiés.
COLIDPKGNAM
SYSIBM*
*MSCS001
*MSUR001
*MSRS001
*MSRR001
*MSNC001
NULLIDSYSSH*
Contenu du fichier de stock IgnoreStandardPackages.txt.
La première ligne du fichier contient un ensemble délimité par tabulation de deux valeurs qui représentent les en-têtes de colonne. Le premier en-tête de colonne est le COLID (Identificateur de collection). Le deuxième en-tête de colonne est le PKGNAM (Nom du package). Les lignes restantes du fichier contiennent un ensemble de valeurs délimitées par des onglets pour l’identificateur de collection et le nom du package.
Un astérisque à la place d’une valeur désigne n’importe quelle valeur. Le client Microsoft DRDA propose un ensemble d’outils permettant de définir l’ensemble standard de packages dans une ou plusieurs collections définies par l’utilisateur. Dans ce cas, le caractère générique indique au serveur DRDA d’ignorer les commandes de liaison et d’exécution référençant les packages standard du client Microsoft DRDA, quelle que soit la collection définie.
Un astérisque à la fin d’une chaîne désigne une valeur partielle. Le client DRDA IBM DB2 Connect offre un ensemble d’outils permettant de définir l’ensemble standard de packages dans une collection NULLID avec une valeur de nom de package de départ de SYSSH. Dans ce cas, le caractère générique indique au serveur DRDA d’ignorer les commandes de liaison et d’exécution référençant l’ensemble complet des packages standard du client IBM DB2 Connect DRDA.
Types de données
Le service DRDA assure la compatibilité entre les produits et technologies de fournisseurs hétérogènes, en fournissant ces conversions de plateforme.
Mappages de types de données DB2 vers SQL Server
Le service DRDA mappe DB2 aux types de données SQL Server en fonction d’un ensemble défini de mappages stockés dans un fichier Db2ToSql.xml dans le répertoire %DRDAROOT%\system. Par exemple, le service DRDA convertit les valeurs et les formats DB2 TIMESTAMP tels que définis dans les flux de protocole DRDA et les données mises en forme en valeurs et formats SQL Server DATETIME2(6) tels que définis dans les procédures stockées et les instructions SQL dynamiques via le fournisseur de données Microsoft ADO.NET Framework pour les interfaces SQL Server.
| Source DB2 Type | Type SQL Server cible |
|---|---|
| TEMPS | TEMPS |
| HORODATAGE | DATETIME2 |
| date | DATEHEURE |
| CARBONISER | CARBONISER |
| CHAR () POUR DONNÉES BINAIRES | BINAIRE |
| CHAR () POUR LES DONNÉES MIXTES | NCHAR |
| CHAR () POUR LES DONNÉES SBCS | CARBONISER |
| PERSONNAGE | CARBONISER |
| CARACTÈRE () POUR LES DONNÉES BIT | BINAIRE |
| FIXEDBYTE | BINAIRE |
| CARACTÈRE () POUR LES DONNÉES MIXTES | NCHAR |
| CARACTÈRE () POUR DONNÉES SBCS | CARBONISER |
| CARACTÈRE NATIONAL | NCHAR |
| VARCHAR | VARCHAR |
| VARCHAR () POUR DES DONNÉES DE TYPE BIT | VARBINARY |
| VARBYTE | VARBINARY |
| VARCHAR () POUR LES DONNÉES MIXTES | NVARCHAR |
| VARCHAR() POUR LES DONNÉES SBCS | VARCHAR |
| CARACTÈRE VARIABLE | VARCHAR |
| CARACTÈRE VARIABLE () POUR LES DONNÉES EN BITS | VARBINARY |
| CARACTÈRE VARIABLE () POUR LES DONNÉES MIXTES | NVARCHAR |
| CARACTÈRE VARIABLE () POUR LES DONNÉES SBCS | VARCHAR |
| CARACTÈRE NATIONAL VARIABLE | NVARCHAR |
| LONG VARCHAR SOUS FORME DE DONNÉES DE TYPE BIT | Image |
| LONG VARCHAR | SMS |
| GRAPHIQUE | NCHAR |
| VARGRAPHIC | NVARCHAR |
| GRAPHIQUE VARIABLE | NVARCHAR |
| SMALLINT | SMALLINT |
| INT | INT |
| ENTIER | INT |
| BIGINT | BIGINT |
| DÉCIMAL | DÉCIMAL |
| NUMÉRIQUE | DÉCIMAL |
| RÉEL | RÉEL |
| FLOTTER | FLOTTER |
| DOUBLE | FLOTTER |
| DOUBLE PRÉCISION | FLOTTER |
| Objet Binaire de Grande Taille (BLOB) | Image |
| OBJET LARGE BINAIRE | Image |
| CLOB | SMS |
| CLOB () POUR LES DONNÉES MIXTES | NTEXT |
| CLOB () POUR LES DONNÉES SBCS | SMS |
| CARACTÈRE OBJET VOLUMINEUX | SMS |
| CARACTÈRE GROS OBJET () POUR DONNÉES MIXTES | NTEXT |
| CARACTÈRE GRANDE OBJET () POUR DONNÉES SBCS | SMS |
| CARACTÈRE GRAND OBJET | SMS |
| OBJET GRANDE CARACTÈRE () POUR DONNÉES MIXTES | NTEXT |
| CARACTÈRE OBJET DE GRANDE TAILLE () POUR LES DONNÉES SBCS | SMS |
Mappages de types de données SQL Server vers DB2
Le service DRDA mappe DB2 aux types de données SQL Server en fonction d’un ensemble défini de mappages stockés dans un fichier MsSqlToDb2.xml dans le répertoire %DRDAROOT%\system. Par exemple, le service DRDA convertit les valeurs et les formats SQL Server MONEY tels que définis par le fournisseur de données Microsoft ADO.NET Framework pour les interfaces SQL Server en valeurs et formats DB2 DECIMAL tels que définis dans les flux de protocole DRDA et les données mises en forme.
| Type SQL Server cible | Source DB2 Type |
|---|---|
| SMALLINT | SMALLINT |
| INT | ENTIER |
| RÉEL | RÉEL |
| FLOTTER | DOUBLE |
| SMALLMONEY | DECIMAL(10,4) |
| ARGENT | DECIMAL(19,4) |
| MORS | SMALLINT |
| TINYINT | SMALLINT |
| BIGINT | BIGINT |
| IDENTIFIANT UNIQUE | CHAR(38) |
| VARBINARY | VARBYTE |
| HORODATAGE | HORODATAGE |
| BINAIRE | FIXEDBYTE |
| XML | LONG VARCHAR |
| IMAGE | LONG VARCHAR |
| VARIANTE | VARCHAR(32672) POUR LES DONNÉES BIT |
| SMS | LONG VARCHAR |
| CARBONISER | CARBONISER |
| VARCHAR | VARCHAR |
| NCHAR | CARBONISER |
| NVARCHAR | VARCHAR |
| NTEXT | LONG VARCHAR |
| DÉCIMAL | DÉCIMAL |
| NUMÉRIQUE | DÉCIMAL |
| DATEHEURE | HORODATAGE |
| DATETIMEOFFSET | HORODATAGE |
| date | date |
| TEMPS | TEMPS |
| SMALLDATETIME | HORODATAGE |
| SYSNAME | VARGRAPHIC(128) |
Configuration des mappages de types de données
Le service DRDA convertit les types de données de base de DB2 en SQL Server, et de SQL Server à DB2. Si vous le souhaitez, vous pouvez modifier ces fichiers XML pour modifier les mappages de types de données de base.
C:\Program Files\Microsoft Service for DRDA\system\ DB2ToMSSql.xml
C:\Program Files\Microsoft Service for DRDA\system\ MSSQLToDB2.xml
Encodage des paramètres régionaux
Le service DRDA prend en charge les encodages de chaîne spécifiques aux paramètres régionaux.
EBCDIC
Le service DRDA prend en charge les SBCS (jeu de caractères à octet unique) EBCDIC répertoriés ci-dessous, convertis en et depuis Unicode UTF-8.
| Nom | CCSID | Page de codes NLS |
|---|---|---|
| EBCDIC - Arabe | 420 | 20420 |
| EBCDIC - Cyrillique (Russe) | 880 | 20880 |
| EBCDIC - Cyrillique (serbe, bulgare) | 1025 | 21025 |
| EBCDIC - Danemark/ Norvège (Euro) | 277 | 1142 |
| EBCDIC - Danemark/ Norvège | 277 | 20277 |
| EBCDIC - Finlande/ Suède (Euro) | 278 | 1143 |
| EBCDIC - Finlande/ Suède | 278 | 20278 |
| EBCDIC - France (Euro) | 297 | 1147 |
| EBCDIC - France | 297 | 20297 |
| EBCDIC - Allemagne (Euro) | 273 | 1141 |
| EBCDIC - Allemagne | 273 | 20273 |
| EBCDIC - Grec (moderne) | 875 | 875 |
| EBCDIC - Grec | 423 | 20423 |
| EBCDIC - Hébreu | 424 | 20424 |
| EBCDIC - Islandais (Euro) | 871 | 1149 |
| EBCDIC - Islandais | 871 | 20871 |
| EBCDIC - International (Euro) | 500 | 1148 |
| EBCDIC - International | 500 | 500 |
| EBCDIC - Italie (Euro) | 280 | 1144 |
| EBCDIC - Italie | 280 | 20280 |
| EBCDIC - Amérique latine/Espagne (Euro) | 284 | 1145 |
| EBCDIC - Amérique latine/Espagne | 284 | 20284 |
| EBCDIC - MULTILINGUE/ ROECE (Latin-2) | 870 | 870 |
| EBCDIC - Thaï | 838 | 20838 |
| EBCDIC - Turc (Latin-3) | 905 | 20905 |
| EBCDIC - Turc (Latin-5) | 1026 | 1026 |
| EBCDIC - États-Unis/ Canada (Euro) | 37 | 1140 |
| EBCDIC - États-Unis/ Canada | 37 | 37 |
| EBCDIC - Royaume-Uni (Euro) | 285 | 1146 |
| EBCDIC - Royaume-Uni | 285 | 20285 |
Institut national américain des normes (ANSI)
Le service DRDA prend en charge les SBCS (jeu de caractères à octet unique) ANSI CCSID ci-dessous convertis vers et depuis UNICODE 1208.
| Nom | CCSID | Page de codes NLS |
|---|---|---|
| ANSI - Arabe | 1256 | 1256 |
| ANSI - Baltique | 1257 | 1257 |
| ANSI - Europe centrale | 1250 | 1250 |
| ANSI - Cyrillique | 1251 | 1251 |
| ANSI - Grec | 1253 | 1253 |
| ANSI - Hébreu | 1 255 | 1 255 |
| ANSI - Latin I | 1252 | 1252 |
| ANSI - Turc | 1254 | 1254 |
| ANSI - Arabe | 1256 | 1256 |
Performances
Cette rubrique contient des informations qui vous aideront à optimiser les performances lorsque vous utilisez le service DRDA.
Authentification et chiffrement
Authentification
Le service DRDA utilise microsoft Enterprise Single Sign-On pour authentifier le demandeur d’application DRDA lié (par exemple, DB2 pour l’identificateur d’utilisateur et le mot de passe z/OS RACF) aux informations d’identification de l’utilisateur SQL Client à la base de données SQL Server sortante (par exemple, Sécurité intégrée avec les comptes Windows Active Directory). En guise d’alternative à ESSO, vous pouvez configurer MsDrdaService pour utiliser l’authentification mappée. L’attribut mappéAuthenticationDomain de l'MsDrdaService.exe.config indique au service DRDA auquel le domaine Microsoft Windows Active Directory mappe les informations d’identification du client DRDA liées (nom d’utilisateur et mot de passe), lors de la connexion à SQL Server configurée pour l’authentification Windows à l’aide de l’interface SSPI (Security Support Provider Interface) intégrée, mais pas lors de l’utilisation de l’authentification unique Microsoft Enterprise. Le service DRDA met en cache le jeton de sécurité obtenu à partir de microsoft Enterprise Single Sign-On et des fonctionnalités de domaine d’authentification mappée pendant une durée configurée, avec laquelle utiliser lors de la connexion à SQL Server configurée pour l’authentification Windows à l’aide de l’interface SSPI (Security Support Provider Interface) intégrée. L’attribut securityTokenTimeout indique au serveur DRDA de conserver un jeton de sécurité pendant une durée donnée, après quoi obtenir un nouvel identificateur client Windows (CID). Cet attribut facultatif accepte une valeur de durée. La valeur par défaut est PT8H (période de temps est de 8 heures). Pour améliorer les performances, vous pouvez ajuster la valeur du délai d’expiration du jeton de sécurité ESSO pendant une durée plus longue.
Chiffrement
Le service DRDA prend en charge l'authentification et le chiffrement des données pour le fournisseur de données en utilisant les technologies Data Encryption Standard (DES), Secure Sockets Layer (SSL) V3.0, et Transport Layer Security (TLS) V1.0. En outre, le service DRDA prend en charge le chiffrement des données uniquement à l’aide du chiffrement AES (Advanced Encryption Standard). Ces mécanismes de chiffrement peuvent avoir un impact sur les performances.
Connexion
Connexion au serveur SQL
Le service pour DRDA se connecte à une base de données SQL Server à l’aide du fournisseur de données ADO.NET Framework pour SQL Server et du client réseau SQL sous-jacent. Lors de la connexion à une instance SQL Server locale, spécifiez la bibliothèque réseau=dbmslpcn pour indiquer au client SQL de se connecter à SQL Server à l’aide de la mémoire partagée plutôt qu’une connexion réseau TCP/IP. Pour réduire le temps de démarrage de la connexion, utilisez le regroupement de connexions SQL Server, en définissant Pooling=true dans la chaîne de connexion pour indiquer au client SQL d’ajouter des connexions nouvellement créées au pool lorsqu’elles sont fermées par le service DRDA. Pour ajuster l’impact sur le serveur local, définissez la taille maximale du pool dans la chaîne de connexion pour définir le nombre maximal de connexions que le client SQL doit conserver dans le pool de connexions. La valeur par défaut est 100. Pour réduire davantage le temps de démarrage de connexion, utilisez le pool de connexions interne MsDrdaService, en associant les connexions clientes DRDA AR entrantes et les informations d'identification d'authentification aux connexions et informations d'identification sortantes de la base de données SQL Server, en définissant un attribut connectionCacheSize pour définir le nombre de connexions SQL Client à SQL Server que le service DRDA mettra en cache dans le pool de connexions du client SQL. Cet attribut facultatif accepte une valeur entière. La valeur par défaut est 1000.L’attribut connectionCacheTimeout indique au serveur DRDA de conserver une connexion mise en pool pendant une durée donnée, après quoi obtenir une nouvelle connexion cliente SQL. Cet attribut facultatif accepte une valeur de durée. La valeur par défaut est PT8H (la période est de 8 heures).
Basculement de connexion
Le service DRDA peut fonctionner au sein d’un groupe pour fournir un basculement tolérant aux pannes. Le groupe est défini en spécifiant un rôle de service local (principal ou secondaire), des serveurs partenaires de basculement disponibles et un intervalle ping pour surveiller l’intégrité des serveurs au sein d’un groupe. L’attribut pingInterval indique au service DRDA la fréquence à laquelle surveiller l’intégrité des ordinateurs serveurs partenaires, en exécutant un flux EXCSAT (attribut Exchange Server) et en vérifiant un EXCSATRD (données de réponse EXCSAT). Cet attribut facultatif accepte une valeur entière. La valeur par défaut est de 10 000 millisecondes (10 secondes).
Compatibilité de la plateforme
Cache de procédure de paquet
Le service DRDA traite les commandes DRDA EXCSQLSTT (Execute SQL Statement) et OPNQRY (Open Query) en exécutant une instruction SQL Server CALL sur une procédure stockée SQL Server correspondante. Avant d’exécuter l’instruction CALL, le service DRDA récupère les métadonnées de la procédure stockée SQL Server avec laquelle vérifier le type d’instruction (SELECT, INSERT, UPDATE, DELETE), le type de curseur (WITH HOLD), les types de données de paramètre (par exemple, CHAR FOR BIT) et d’autres attributs (par exemple, a des résultats). Après avoir extrait les métadonnées, le service DRDA met en cache ces informations, y compris le nom de la procédure mappée, pour un intervalle configuré dans un cache de procédure de package afin d’améliorer les performances lors de l’exécution suivante de cette section de package. L’attribut packageProcedureCacheFlush indique au serveur DRDA de vider le cache de procédure de package après un intervalle de temps spécifié. Cet attribut facultatif accepte une valeur de durée. La valeur par défaut est P1D (période de temps est de 1 jour). L’attribut packageProcedureLastInvoke indique au serveur DRDA d’écrire les noms d’objets dans le cache de procédure de package dans un fichier texte, %DRDAROOT%\LastInvokePackageProcedures.txt, après un intervalle de temps spécifié. Cet attribut facultatif accepte une valeur de durée. La valeur par défaut est P7D (Période de 7 jours). Au démarrage du service, le service DRDA charge ce fichier texte pour pré-extraire le schéma des procédures répertoriées dans le fichier. Pour améliorer les performances du démarrage du service, vous pouvez modifier ce fichier et supprimer les noms de procédure stockée inutiles. Pour désactiver la lecture et l’écriture du fichier LastInvokePackageProcedures.txt, définissez l’intervalle de temps sur PT0S (période de zéro secondes).
Syntaxe SQL
Le service DRDA dispose d'un transformateur limité de syntaxe de commande de DB2 ANSI vers SQL Server T-SQL, qu'il utilise pour lier des packages et pour exécuter des instructions SQL statiques et dynamiques. Si vous le souhaitez, le service DRDA offre des fonctions DB2 compatibles supplémentaires sous la forme de fonctions CLR SQL Server. Pour améliorer les performances des transformations de syntaxe SQL, activez les fonctions CLR du service DRDA. Le service DRDA transforme les packages de SQL statique pour DB2 en procédures stockées SQL Server lors du traitement des commandes DRDA de début de liaison et de liaison d'instructions SQL, y compris les instructions SQL DECLARE CURSOR incorporées. Pour améliorer les performances, le service DRDA retourne plusieurs lignes par extraction si possible, sauf si le package ou le curseur est défini pour une extraction de lignes unique afin de prendre en charge la mise à jour simultanée. Lors de la définition d’instructions SELECT pour des performances de lecture optimales, le développeur doit inclure une clause FOR FETCH ONLY ou FOR READ ONLY.
Niveau d’isolation
Le service DRDA mappe le niveau d’isolation IBM DB2 dans l’instruction DRDA EXCSQLSTT (Execute SQL Statement) au niveau de transaction SQL Server sur le fournisseur de ADO.NET pour l’objet transactionnel SQL Server. Pour améliorer les performances et réduire la contention sur les objets de base de données, le développeur doit utiliser le niveau d'isolation Cursor Stability (CS) de DB2, qui correspond au niveau d'isolation Lecture Validée de SQL Server.
Formats de date et heure et conversions
Le service DRDA met en forme des valeurs de date et d'heure littérales de chaîne depuis la source vers les formats cibles durant le traitement des instructions SQL dynamiques et statiques, pour certains types de données de date et de caractère. L’élément conversionFormats contient des dateMasks, timeMasks et dateTimeMasks pour la conversion vers et depuis les formats datetime DB2 et SQL Server, et indique au service DRDA lorsqu'effectuer ces transformations. L’analyse, l’encodage et le décodage des chaînes vers les valeurs de format date-heure et inversement utiliseront des ressources supplémentaires du service DRDA.
Conversions de pages de codes
Le service DRDA mappe les pages de codes et prend en charge les conversions de pages de codes personnalisées à l’aide d’un composant HIS Encoder sous-jacent et des composants système NLS (National Language Support) Windows. Si vous le souhaitez, le service DRDA peut convertir des points de code individuels pour prendre en charge les pages de code personnalisées. Le serveur DRDA consomme des ressources supplémentaires lors de la prise en charge de la conversion de page de codes personnalisée.
Mappages de classement
SQL Server peut rassembler les résultats de requête dans un ordre différent de celui attendu par le programme client DRDA. Par exemple, un professionnel de l’informatique peut configurer une base de données SQL Server pour utiliser un classement ANSI et une base de données DB2 pour z/OS afin d’utiliser le classement EBCDIC. Le service DRDA peut transformer une instruction SELECT de la syntaxe DB2 ORDER BY COLLATION_KEY (nom de collation) en syntaxe SQL Server T-SQL ORDER BY COLLATE (nom_de_collation), en mappant une valeur de nom de collation DB2 à une valeur de nom_de_collation SQL Server, afin de fournir des résultats de requête plus compatibles. Le service DRDA peut ajouter une clause COLLATE à une clause ORDER BY, en fonction d’un nom de collation ORDER BY par défaut. L’analyse et le remplacement ou l’ajout de la syntaxe SQL du service DRDA consomment des ressources supplémentaires.
Traçage
Le service DRDA prend en charge un ensemble d’écouteurs partagés pour journaliser les informations sur le texte, la console, le journal des événements et le composant personnalisé. L’élément system.diagnostics de la section hostIntegration.drdaAs.drdaService du fichier MsDrdaService.exe.config définit et contrôle les différents écouteurs. L’attribut traceLevel indique au service DRDA de suivre les collections d’informations définies, d’un minimum à un niveau maximal de suivi. Cet attribut facultatif accepte une valeur entière. La valeur par défaut est 0, ce qui désactive le suivi. Le service DRDA peut vider automatiquement les données de trace sur les écouteurs de trace, ce qui garantit que les données de trace sont capturées, mais augmentent les E/S de disque et réduisent les performances globales du système. Pour améliorer les performances, définissez autoFlush=false pour désactiver le vidage automatique des traces.
Analyseur de performances
Pour mesurer les performances, le service DRDA offre des compteurs de performances. Les compteurs de performances du service DRDA capturent des informations sur les connexions ouvertes, les instructions ouvertes, les paquets et les octets envoyés/reçus, le temps de traitement moyen, les exécutions de commandes, les extractions de données et les validations/restaurations des transactions.
Paramétrage
Pour mesurer les performances, le service DRDA offre des compteurs de performances à utiliser avec Windows Performance Monitor. L’attribut peformanceCountersOn indique au service DRDA de collecter des informations dans des compteurs de performances. Cet attribut facultatif accepte une valeur booléenne. La valeur par défaut est false. Pour plus d’informations, consultez la section relative aux performances. Pour plus d’informations sur l’Analyseur de performances Windows, consultez Compteurs de performances (https://go.microsoft.com/fwlink/?LinkID=119211).
Compteurs
Le service DRDA envoie des données à ces compteurs de surveillance de performance.
Sessions actives
Connexions SQL actives
Transactions actives
Octets reçus
Octets reçus/s
Octets envoyés
Octets envoyés/s
Opérations
Engagements de transactions
Engagements des transactions/s
Annulations des transactions
Transactions/s
Instances de service DRDA
Le service DRDA offre des compteurs d’analyseur de performances par service ou par « instance » par connexion, où une « instance » peut être un processus ou une session.