Cette page présente les procédures d'exploitation permettant une première analyse lors d'éventuels problèmes pendant la phase de synchronisation des données, dans le logiciel Allegro-ObsDeb du SIH.
Objectif :
Afficher dans le fichier de log (obsdeb.log) les requêtes exécutées par le module de synchronisation.
Types d'erreur concernés :
Concerne les erreurs suivantes (visibles dans le log coté client) : Caused by: java.sql.BatchUpdateException: failed batch
Autres erreurs HSQLSB, du type : java.sql.SQLException (...)
Procédure :
Désactivation du mode « batch » (insertion par bloc)
Editer le fichier config/obsdeb.config
Ajouter la ligne suivante :
synchro.jdbc.batch.enable=false
Activer les logs SQL de synchro :
Dézipper le fichier obsdeb/obsdeb-ui-swing-x.y.jar
Editer le fichier log4j.properties
Modifier las lignes de propriété suivantes (ou les ajouter) :
log4j.logger.fr.ifremer.adagio.synchro=DEBUG log4j.logger.fr.ifremer.common.synchro=DEBUG log4j.logger.fr.ifremer.common.synchro.dao.Daos=ERROR
Reformer l'archive JAR (sans répertoire racine)
Résultat obtenu :
Les tables sont traitées tables par table. Voici par exemple la sequence qui concerne la table TAXON_NAME :
[TAXON_NAME] Prepare insert query: INSERT INTO TAXON_NAME (reference_taxon_fk, citation_fk, is_obsolete, taxonomic_level_fk, creation_date, id, is_virtual, is_temporary, end_date, complete_name, upper_rank, name, is_referent, update_date, parent_taxon_name_fk, is_naming, start_date, comments) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [TAXON_NAME] Prepare update query: UPDATE TAXON_NAME SET reference_taxon_fk = ?, citation_fk = ?, is_obsolete = ?, taxonomic_level_fk = ?, creation_date = ?, id = ?, is_virtual = ?, is_temporary = ?, end_date = ?, complete_name = ?, upper_rank = ?, name = ?, is_referent = ?, update_date = ?, parent_taxon_name_fk = ?, is_naming = ?, start_date = ?, comments = ? WHERE id = ? [TAXON_NAME] Prepare select query: SELECT t.reference_taxon_fk, t.citation_fk, t.is_obsolete, t.taxonomic_level_fk, t.creation_date, t.id, t.is_virtual, t.is_temporary, t.end_date, t.complete_name, t.upper_rank, t.name, t.is_referent, t.update_date, t.parent_taxon_name_fk, t.is_naming, t.start_date, t.comments FROM TAXON_NAME t WHERE (t.update_date IS NULL OR t.update_date > :updateDate) [TAXON_NAME] Execute select query: SELECT t.reference_taxon_fk, t.citation_fk, t.is_obsolete, t.taxonomic_level_fk, t.creation_date, t.id, t.is_virtual, t.is_temporary, t.end_date, t.complete_name, t.upper_rank, t.name, t.is_referent, t.update_date, t.parent_taxon_name_fk, t.is_naming, t.start_date, t.comments FROM TAXON_NAME t WHERE (t.update_date IS NULL OR t.update_date > ?) [TAXON_NAME] with params: [2016-01-18 09:23:04.0] ( ) [TAXON_NAME] - 106 existing rows: 17713 TAXON_NAME Execute update query (pk:[15880]), params: [6693, 230, false, ORDO, 2010-03-19 15:07:53.0, 15880, false, false, 2016-01-18 14:00:31.0, Hadromerida, 14720000, Hadromerida, false, 2016-01-18 22:30:04.1534, 21599, false, 2010-03-19 15:07:53.0, ORHADRO - issu de la reprise Reftax du 25/05/2011] TAXON_NAME Execute update query (pk:[15939]), params: [6695, 253, false, ORDO, 2010-03-19 15:07:54.0, 15939, false, false, null, Haplosclerida, 15500650, Haplosclerida,
Les logs concernant lexécution des requêtes affichent les paramètres d'execution. Ils correspondent aux caractères « ? » de la requete SQL proprement dite, dans le même ordre.
Objectif :
Afficher dans le fichier de log du serveur de synchronisation les requêtes exécutées par le module de synchronisation.
Types d'erreur concernés :
Concerne les erreurs suivantes (visibles dans le log coté serveur) : Caused by: java.sql.SQLException: ORA-<NNNN>
Procédure :
Pour diminuer le nombre d'opération a réaliser sur les serveur Tomcat, il est plus simple d'utiliser un serveur de synchronisation installé localement. C'est l'option qui est choisie ici.
Installer sur votre poste le serveur de synchro :
Récupérer sur la forge l'archive du serveur de synchornisation : allero-obsdeb-server-X.Y-standalone.zip
Dézipper l'archive ;
Editer le fichier webapp.<sh|bat>
Decommenter la ligne affectant la variable JAVA_HOME, et préciser le répertoire vers une JRE (ex : C:/Programs Files/Java/jre-1.7.0_42)
(optionnel) Decommenter la ligne affectant le TNSNAME :
export JAVA_OPTS="${JAVA_OPTS} -Doracle.net.tns_admin=\\brest\tnsnames"
Editer le fichier de configuration conf/adagio-server.config
Renseigner les propriété concernant la base de données ;
Renseigner les propriété concernant le serveur LDAP ;
Désactivation du mode « batch » (insertion par bloc)
Editer le fichier de configuration conf/adagio-server.config ;
Ajouter la ligne suivante : synchro.jdbc.batch.enable=false
Activer les logs SQL de synchro :
Dézipper l'archive lib/adagio-synchro-server-X.Y.war dans un répertoire ;
Editer le fichier WEB-INF/classes/log4j.properties et modifier les propriété suivantes (ou les ajouter) :
log4j.logger.fr.ifremer.adagio.synchro=DEBUG log4j.logger.fr.ifremer.common.synchro=DEBUG log4j.logger.fr.ifremer.common.synchro.dao.Daos=ERROR
Reformer l'archive WAR (sans répertoire racine)
Lancer le serveur de synchronisationvia le script : webapp.<sh|bat>
Tester que le serveur est bien démarré :
Ouvrir un navigateur à l'adresse : http://localhost:8080/
Coté client, il faut ensuite :
Editer le fichier config/obsdeb.config et modifier la ligne suivante :
obsdeb.synchronization.site.url=http://localhost:8080
Accès à la source de cette page: https://forge.ifremer.fr/svn/allegro-obsdeb/trunk/src/site/rst/debug_synchro.rst
Pour regénérer ce site, consulter la documentation suivante : https://forge.ifremer.fr/svn/allegro-obsdeb/trunk/README.md