Exceptions du médiateur JDBC

Les exceptions du médiateur JDBC apparaissent soit pour indiquer des rapports d'erreurs de la base de données, soit pour indiquer l'utilisation de métadonnées invalides lors de la tentative de création d'une instance dans le DMS.

exceptions

L'exception Mediator est l'exception racine de tous les services DMS (Data Mediator Services), et l'exception JDBCMediator est l'exception racine du DMS JDBC en particulier.

L'exception DB est générée lorsqu'une erreur est signalée par la base de données. Cela peut se produire de différentes façons :
  • lorsque la propriété AutoCommit de la connexion en cours d'utilisation a pour valeur true, mais que le service DMS JDBC est en train de contrôler la transaction et a besoin que cette propriété soit définie sur false ;
  • lors de la tentative d'utilisation d'une base de données non prise en charge ;
  • lorsque d'autres erreurs de base de données dorsale se produisent au cours du processus de validation ou d'annulation.

Une exception de contrôle des accès simultanés optimiste (OCC) se produit lorsque l'opération applyChanges() se traduit par une collision de données. Lorsque cela se produit, l'exception contient les valeurs de la ligne d'origine, les valeurs de la ligne actuelle et les valeurs de la ligne proposée. Ces valeurs permettent de résoudre l'erreur.

Une exception InvalidMetadata est générée pour les métadonnées non valides fournies au service DMS JDBC au moment de la création. Elle peut survenir lorsqu'une demande exige des tables ou des colonnes qui ne sont pas définies dans les métadonnées ou lorsqu'il existe des noms de colonne identiques pour des tables différentes de bases de données Oracle, Informix et d'anciennes versions prises en charge des bases de données Sybase.

Exemple : Provoquer une collision de données OCC pour illustrer les exceptions du médiateur JDBC L'exemple suivant provoque une collision pour illustrer la détection et montre l'exception qui est générée en conséquence.

// Cet exemple suppose qu'un médiateur a déjà 
// été créé et que le premier nom de la liste est Sam.  
// Il suppose également que la table Customer contient une colonne OCC 
// et que les métadonnées ont défini cette colonne comme étant 
// la colonne de collision.

DataObject graph1 = mediator.getGraph();
DataObject graph2 = mediator.getGraph();
  
DataObject customer1 = (DataObject)graph1.getList("CUSTOMER").get(0);
customer1.set("CUSTFIRSTNAME", "Bubba");
  
DataObject customer2 = (DataObject)graph2.getList("CUSTOMER").get(0);
customer2.set("BOWLERFIRSTNAME", "Slim");
 
mediator.applyChanges(graph2);
  
try 
{
 mediator.applyChanges(graph1);  
} 
catch (OCCException e) 
{
// Etant donné que graph1 a été obtenu avant graph2 et 
// que graph2 a déjà été soumis, la tentative 
// d'application des mêmes modifications à graph1 génère 
// cette exception OCC.

assertEquals("Sam", e.getOriginalDO(). getString("CUSTFIRSTNAME"));
assertEquals("Bubba", e.getChangedDO(). getString("CUSTFIRSTNAME"));
assertEquals("Slim", e.getDatabaseDO(). getString("CUSTFIRSTNAME")); 
}

Icône indiquant le type de rubrique Rubrique de référence



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rdat_jdbcmedex
Nom du fichier : rdat_jdbcmedex.html