Mappages de code d’erreur

Le service DRDA convertit les codes d’erreur et les messages SQL Server en instances d’un message de réponse DRDA ou d’une instance DB2 SQLCA (zone de communications) en fonction d’un ensemble défini de mappages stockés dans un fichier MsDrdaErrorMappings.xml dans le répertoire %DRDAROOT%\system. Le code d'erreur SQL Server entrant est mappé au code d'erreur DB2 sortant. Le document XML contient un format standard défini, tel que documenté dans le fichier de schéma HostIntegrationDrdaSqlErrorMappings.xsd associé.

<SqlErrorMappings>  
<sqlErrorMapping  
msSqlMessageId="201"   
msSqlMessageSeverityLevel="16"  
msSqlMessageText="Procedure or function '{0}' expects parameter '{1}', which was not supplied."  
drdaSqlCode="-313"  
drdaSqlState="07001"  
drdaReasonCode=""  
drdaMessageText="THE NUMBER OF HOST VARIABLES SPECIFIED IS NOT EQUAL TO THE NUMBER OF PARAMETER MARKERS."  
drdaExplanationText="The server cannot execute a SQL statement that contains an incorrect parameter list."  
drdaActionText="Verify the number and type of parameters."  
/>  
  

Exemple. Message d’erreur SQL Server mappé au message d’erreur DB2.

Le tableau suivant présente les messages d’erreur Microsoft SQL Server.

Élément Catégorie Descriptif
sqlErrorMappings élément L’élément sqlErrorMappings contient des éléments de définition sqlErrorMapping.
sqlErrorMapping élément L’élément sqlErrorMapping contient la définition d’un message d’erreur SQL Server mappé à un message de réponse DRDA.

Le tableau suivant présente les messages d’erreur Microsoft SQL Server.

Élément Catégorie Descriptif
msSqlMessageId entier L’attribut msSqlMessageId représente l’identificateur (ID) du message et est une valeur unique sur le serveur. Cet attribut obligatoire accepte une valeur entière.
msSqlMessageNiveauSévérité entier L’attribut msSqlMessageSeverityLevel représente le niveau de gravité du message, compris entre 1 et 25. Cet attribut obligatoire accepte une valeur entière.
msSqlMessageText string(1024) L’attribut msSqlMessageText représente le texte du message. Cet attribut obligatoire accepte une valeur de chaîne.

Le tableau suivant présente les messages d’erreur IBM DB2.

Élément Catégorie Descriptif
drdaSqlCode entier L’attribut drdaSqlCode désigne IBM DB2 SQLCODE. Cet attribut obligatoire accepte une valeur entière.
drdaSqlState entier L’attribut drdaSqlState désigne IBM DB2 SQLSTATE. Cet attribut obligatoire accepte une valeur entière.
drdaReasonCode binaire hexadécimal L’attribut drdaReasonCode désigne le code de raison IBM DB2. Cet attribut facultatif accepte une valeur binaire hexadécimal. La valeur par défaut est 0.
drdaMessageText ficelle L’attribut drdaMessageText désigne le texte du message IBM DB2. Cet attribut obligatoire accepte une valeur de chaîne.
TexteExplicatifDRDA ficelle L’attribut drdaExplanationText désigne le texte d’explication IBM DB2. Cet attribut facultatif accepte une valeur de chaîne.
drdaActionText ficelle L’attribut drdaActionText désigne le texte de l’action IBM DB2. Cet attribut facultatif accepte une valeur de chaîne.