1. Objet Rappel du besoin





télécharger 36.21 Kb.
titre1. Objet Rappel du besoin
date de publication06.10.2017
taille36.21 Kb.
typeDocumentos
m.20-bal.com > loi > Documentos



Projet boîte à outils

Batch générique
Framework GenericBatch

Spécification DSTI
Historique des modifications

Version

Date

Auteur

Modification

1.1

27/01/2014

G. Weber




1.2

03/02/2014

G. Lannoo

Compléments

1.3

04/02/2014

G. Weber

Compléments


Documentations de référence

Nom

Version

Documentation Log4J v1.2.17

http://logging.apache.org/log4j/1.2/apidocs/index.html

Documentation DBUtils v1.5

http://commons.apache.org/proper/commons-dbutils/apidocs/index.html


Table des matieres

1. Objet 3

1. Rappel du besoin 3

2. Chantier « Boîtes à outils » 3

3. Framework GenericBatch 3

2. Conception 4

1. Classes principales et éléments remarquables 4

2. Lecture des fichiers de propriétés 4

3. Utilisation de Log4J v1.2.17 4

4. Utilisation de DbUtils v1.5 et ojdbc14.jar 4

5. Traitement des exceptions et renvoi des codes de sortie 5

3. Utilisation 6

1. Rappel sur les librairies à inclure 6

2. Exemple d’implémentation 6

1.Objet

    1. Rappel du besoin


Plusieurs projets logiciels au sein de la Direction Informatique de la Ville de Paris nécessitent des outils répondant à des besoins similaires.

    1. Chantier « Boîtes à outils »


Le chantier « Boîte à outils » a pour finalité de proposer et maintenir plusieurs composants développés en Java pour répondre à ces besoins de façon standardisée. Certains composants sont fournis pour répondre à quelques besoins (requêtes SQL).

    1. Framework GenericBatch


Le premier besoin identifié correspond à un jeu de composants permettant de concevoir et mettre en exploitation un traitement de données autonome (traitement par lot ou batch).
Le framework GenericBatch est un package Java (fichier archive .jar) contenant l’ensemble des classes spécifiquement développées pour son fonctionnement, proposant les fonctionnalités suivantes :

  • Lecture d’un fichier de propriétés, pour standardiser la configuration

  • Création et alimentation d’un fichier de trace d’exécution (basé sur la librairie OpenSource Log4J v1)

  • Création et exploitation d’une connexion à une base de données (basé sur la librairie OpenSource DbUtils)

  • Gestion d’exceptions spécifiques pour traiter les cas d’erreur de façon unifiée

  • Renvoi de codes de fin d’exécution standardisés aux normes d’exploitation de la Ville de Paris


Le framework propose une classe centrale (org.paris.gbatch.GenericBatch) qu’il appartient au développeur d’étendre, le principe recherché étant de décharger le développeur des tâches spécifiques et répétitives liées à la gestion des logs et des appels à la base de données, pour concentrer ses travaux sur le développement des fonctionnalités métier spécifiques au batch à produire.

2.Conception

  1. Classes principales et éléments remarquables



    1. Lecture des fichiers de propriétés


Le constructeur GenericBatch utilise une méthode qui charge les fichiers de propriétés « query.properties » et « config.properties ».
Le fichier devra se trouver dans le répertoire config qui sera dans le répertoire courant de l’exécutable pour qu’il soit détecté.
Si le fichier est vide, une exception de type NoPropertiesFoundException est levée. Si la classe n’arrive pas à charger son fichier de propriétés, une exception de type IOException est levée.

    1. Utilisation de Log4J v1.2.17


Le constructeur GenericBatch instancie un constructeur de type LogBatch. Cette classe implémente la librairie Log4J. Le constructeur de type LogBatch instancie un logger.
La méthode charge le fichier de propriétés « config.properties » contenant le chemin et le nom du log : configurationLog().

La méthode permettant d’écrire dans un log est : info(String).
Si le fichier de log ne peut pas être enregistré à l’endroit défini, une exception de type IOException est levée.

    1. Utilisation de DbUtils v1.5 et ojdbc14.jar


Le constructeur GenericBatch instancie un objet de la classe Connection à l’état null.

La classe GenericBatch possède une méthode qui va créer une connexion à la base de données : getInstance() utilisant le patron de conception « Singleton ». Une méthode permet de clôturer la connexion à la base de données : closeInstance().
Il y a des méthodes prévues pour chaque type de requête SQL : requête SELECT (executeSelect(nomRequête)), requête UPDATE (executeUpdate(nomRequête)), requête INSERT (executeInsert(nomRequête)) et requête DELETE (executeDelete(nomRequête))
Si le driver ojdbc14.jar est absent, une exception de type DatabaseDriverNotFoundException sera levée. Si la connexion à la base de donnée a echoué, une exception de type DatabaseConnectionFailedException.

    1. Traitement des exceptions et renvoi des codes de sortie



Si une mauvaise requête SQL est exécutée par une méthode de GenericBatch (executeSelect, executeUpdate, executeInsert ou executeDelete) une exception SQLException est levée.
Les codes retour sont :

  • [0] = Normal

  • [5] = Anomalie non bloquante

  • [10] = Anomalie bloquante



La classe CodeRetourBatch fournit ces codes de retour dans des variables statiques :

  • [0] = EXIT_OK

  • [5] = EXIT_WARNING

  • [10] = EXIT_ERROR



//On écrit dans le log configuré un code de retour erreur : 10

Batch.logger.getLogBatch().info("Code de retour :"+ CodeRetourBatch.EXIT_ERROR);

3.Utilisation




  1. Rappel sur les librairies à inclure


Le framework GenericBatch s’appuie sur plusieurs librairies qui doivent apparaître dans le paramètre classpath fourni à la JVM lors de l’exécution du batch exploitant le framework :

  • Librairie Log4J v 1.2.17 : (log4j-1.2.17.jar – 381 ko)

  • Librairie DbUtils vXX : (commons-dbutils-1.5.jar – 61 ko)

  • Driver Jdbc : (objdbc6.jar – 2676 ko)

  • Etc…



    1. Exemple d’implémentation




public class MonBatch extends GenericBatch {

public static void main(String[] args) throws Exception {

//Constructeur de la classe GenericBatch afin d'instancier le log

GenericBatch Batch = new GenericBatch();

//Configuration d'une connexion à une base de données Oracle

Batch.dbConnect();

//Exécution d'une requête de type SELECT située dans le fichier de propriétés

//Le nom de la requête est : nbLignes

Batch.executeSelect("nbLignes");

//Fermeture de la connexion à la base de données Oracle

Batch.dbDisconnect();

}

}
Contenu du fichier query.properties :
#Fichier de propriétés contenant les requêtes SQL

nbLignes=select count(1) from edition_testbatch

deleteLignes=delete from edition_testbatch
Contenu du fichier config.properties :
#Fichier de propriétés contenant les propriétés du log

cheminLog=C:\\Users\\webergu\\Desktop

nomLog=EpurationBatch
urlOracle=10.161.129.19

portOracle=1521

SIDOracle=xxx

user=xxx

pass=xxx


Contenu du fichier MonBatch.txt (C:\Users\webergu\Desktop\MonBatch.txt) :
2014-02-13 11:45:47,963 INFO root - LogBatch.java:95 - Configuration du log.

2014-02-13 11:45:47,973 INFO root - GenericBatch.java:77 - Chargement du fichier query.properties.

2014-02-13 11:45:49,616 INFO root - GenericBatch.java:95 - Connexion à la base de données établie.

2014-02-13 11:45:50,608 INFO root - GenericBatch.java:166 - Requête exécutée.

2014-02-13 11:45:50,618 INFO root - GenericBatch.java:109 - Code de retour : 0

Un fichier de log est produit par traitement : GenericBatchLog.txt
Le fichier se trouve dans un répertoire « log » situé dans le répertoire de l’exécutable par défaut.
Exemple :
C:\Users\webergu\Desktop\GenericBatch.jar

C:\Users\webergu\Desktop\log\GenericBatchLog.txt



similaire:

1. Objet Rappel du besoin icon1. Définition du besoin 1Définition de l'objet

1. Objet Rappel du besoin iconObjet – dispositions generales objet du marché

1. Objet Rappel du besoin iconArticle 1 – Objet et durée du marché 1-1-Objet

1. Objet Rappel du besoin iconSolution-injectable-rappel-de-2-lots html >14/02/2014 : laroxyl 50...

1. Objet Rappel du besoin iconLa relation d’objet
«est beaucoup plus sûre quand elle s’est longuement imprégnée d’une représentation rationnelle de son objet»

1. Objet Rappel du besoin iconDes données expérimentales clés publiées dans la revue Vaccine mettant...
«Le mécanisme d’administration épicutanée de Viaskin permet de délivrer des antigènes optimisés, tels que la toxine pertussique génétiquement...

1. Objet Rappel du besoin iconRappel concernant les lectures liées à l’objet d’étude «- la question...
«- la question de l'Homme dans les genres de l'argumentation du xvième à nos jours»

1. Objet Rappel du besoin iconI. Rappel

1. Objet Rappel du besoin icon1. Le besoin des usineurs

1. Objet Rappel du besoin iconRapport cnil février 2002
«personnel» ou, le cas échéant, lorsqu’il est expressément intitulé comme tel dans son objet (vérifier que l’objet du message ne...





Tous droits réservés. Copyright © 2016
contacts
m.20-bal.com