Ubik Batch Server Release Notes

From UbikWiki

(Difference between revisions)
(Version 3.0.0.7)
(5.0.0.0)

Line 1:

Line 1:

[[Category:Ubik Batch Server]]
[[Category:Ubik Batch Server]]
= Release Notes =
= Release Notes =
-
== 5.0.0.0 ==
+
== Version 5.0.0.0 (31/11/2007) ==
-
 
+
* Montée de version avec SI3SI
 +
* Ajout concept de groupBy sur SqlBatchStart permet de grouper les lignes ramenées de la base sur un ensemble de colonnes, Utilisation:
 +
** Obtenir dans méthode exec() une commande et lignes de commandes associées
== 4.0.0.6 ==
== 4.0.0.6 ==

Revision as of 17:06, 4 November 2007

Contents

Release Notes

Version 5.0.0.0 (31/11/2007)

  • Montée de version avec SI3SI
  • Ajout concept de groupBy sur SqlBatchStart permet de grouper les lignes ramenées de la base sur un ensemble de colonnes, Utilisation:
    • Obtenir dans méthode exec() une commande et lignes de commandes associées

4.0.0.6

Version 4.0.0.0

  • Implémentation concept de BAR (Batch Archive) similaire aux WAR
  • Implémentation class loader différent de BAR (Batch Archive) similaire aux WAR

Version 3.0.0.7

  • Modification des méthodes enableBatchesOfLaunchFamily et disableBatchesOfLaunchFamily : plus besoin de mettre en pause le scheduler, les launches qui ne tournent pas son modifiés tout de suite, on attend la fin de ceux qui tournent pour faire la modification.
  • Ajout d'une méthode restoreFromDB sur les batches qui recharge complétement la configuration de la base (tout de suite s'il ne tourne pas, quand il a fini le cas échéant. Idem pour chaque launch s'il y en a).
  • Possibilité de faire un restoreFromDB pour une famille de launchs.
  • Appel automatique de restoreFromDB suite à un createLaunchFromModel.
  • Lors de l'arrêt de la console, la liste des batches qui doivent se déclencher dans l'heure est intégrée au corps de l'email envoyé aux administrateurs.

Version 3.0.0.6

  • Correction NullPointer
  • Ajout dans mail startup de la liste des JARs chargés dans Classloader
  • Le mail signalant que la console est Pause ou Arrêt n'est plus envoyé qu'une seule fois
  • Arrêt envoi de mail quand un batch linké doit être déclenché et que la console est arrétée

Version 3.0.0.0

  • Ajout stockage configuration en base.
  • Stockage des LOCKs en base (BATCH_LOCK et GROUP_LOCK), le plugin salto.batch.system.LockedBatchCheckerPlugin réalise le délocke au démarrage.
  • Ajout possiblité d'avoir plusieurs Triggers sur un launch (Gestion multi timezones)
  • Ajout possibilité d'arrêter link des batchs si erreur dans batch père (AndLinker#setStopLinkingOnError() et OrLinker#setStopLinkingOnError(), par défaut non)
  • Changement table BATCH_HEAD pour stocker plus d'infos en base utilisée par Console Web
  • Correction caractéristique : Si un batch se déclenche alors qu'il est en cours, il ne fait rien mais il déclenchait ses fils, ce n'est plus le cas.

Version 2.0.2.7

  • Corrections bug problème de batch restant dans l'état RUNNING alors qu'il ne se passe rien.
  • Correction bug 100% CPU lors du Shutdwown
  • Correction bug si Mailer indisponible, la console ne démarre pas.
  • Ajout possibilité d'empêcher déclenchement d'un batch par Veto
  • Changement MISFIRE_INSTRUCTION à MISFIRE_INSTRUCTION_DO_NOTHING

Version 2.0.2.4

  • Correction bug 100% CPU lors du Shutdwown
  • Correction bug LoggerApplicatif
  • Correction bug envoi mails au démarrage arrête la console si aucun mail en base
  • Ajout validation configuration Batch (MinJob, MaxJob, MaxThreads)
  • Les launchs créés sont Disabled par défaut.
  • Ajout opérations:
    • createLaunchesFromModel : Crée un ensemble de Launchs à partir d'une famille modèle
    • disableBatchesOfLaunchFamily : Désactive les Launchs d'une famille et sauvegarde l'ancien état
    • enableBatchesOfLaunchFamily : Réactive l'ancien état des batchs d'une famille
    • Sur launch, activateLaunch : permet de créer un Batch runtime à partir d'un launch sans la contrainte que tous les launchs du batchs soient arrêtés.
    • Sur launch, destroy : permet de détruire le Batch runtime du Launch et le launch (Le batch ne doit pas être en court)

Version 2.0.2.2

  • Correction bug contrôle abusif channel vide après erreurs dans Batch STOP_ON_FAIL
  • Correction déclenchement Trigger au démarrage si date trigger passée
  • Ajout enable
  • Correction getTriggersNextFireTime quand batch disabled

Version 2.0.2

  • Ajout des logs séparés. Chaque groupe peut maintenant logger dans un fichier particulier.
  • Ajout du HealthMonitor avec les contrôles suivants:

** Temps d'exécution maxi d'un batch ** Retard d'un batch ** Problème de séquencement

  • Ajout d'un MBean d'administration du HealthMonitor:

- Paramétrage des périodes d'exécution - Ajout d'un contrôle de durée sur un batch

  • Ajout de Satellis en tant que système paramétrable d'alerte.
  • Ajout d'opération d'administration:

** Lock/Unlock groupe ** getNextFireTime permet de connaître prochaine dates de déclenchement d'un batch ** Ajout help et testCronTriggerExpression sur scheduler afin de tester une CronExpression

  • Ajout zip des mails d'alertes.
  • Création d'un installeur

Version 2.0.0

  • Ajout du concept de BatchLaunch qui permet de lancer un même traitement avec différents paramètres stockés en base.
  • Ajout d'un ID de console permettant d'avoir plusieurs console attaquant une base
  • Adaptation des Linkers pour prendre en compte la modifications sur les Launch
  • Externalisation de la génération HTML dans des templates Velocity
  • Refactoring de l'algorithme de threading en utilisant classes Concurrent.
  • Remplacement classe de mail par commons-mail (Envoi fichier joints possible)
  • Refactoring des composants JMX, ils sont tous conçus en utilisant commons-modeler.

- L'arborescence des composants JMX est réorganisés par type. - Séparation de la config des batchs en "static" et "runtime" pour permettre recharge à chaud - Ajout monitor JMX et notification par mail pour détecter OutOfMemory et Saturation des Pools - Ajout batch de nettoyage des tables BATCH_HEAD et BATCH_TRT - Suppression de l'AOP pour tracer actions remplacée par un MBeanServerForwarder - Changement du format de sauvegarde des batchs (plus lisible) (Utilisation d'XMLBeans) - Ajout dans le mail des erreurs du détail des erreurs qui se sont produites avec leur StackTrace - Ajout envoi mail lors évènements important sur console (pause, resume, shutdown) - Ajout nombre de lignes traitées dans les traces en base

Version 1.2.2

  • Ajout validation datasource.xml
  • Ajout nouvelles interfaces JMX pour administration des pools (Chaque pool apparaît maintenant dans admin.system.pools).
  • Nouveau composant d'administration DataSourceManager remplace DataSourcePoolMBean
  • Correction erreur lors de l'insertion dans table de trace(Champs trop petit)
  • Réorganisation sources pour rendre indépendant package salto.fwk de salto.batch

Version 1.2.1

  • Intégration de commons-pool-1.2
  • Intégration de commons-dbcp-1.2.1
  • Ajout ITransactionManager (DefaultTransactionManager pour le fwk Salto) qui permet entre autres de rollbacker et fermer les connexions restées ouvertes.
  • Passage à quartz 1.4.1
  • Finalisation de l'algo de reprise sur erreur avec implémentation de :
    • salto.batch.appender.persistence.BatchTrtPersister => Persistence classique dans un Clob
    • salto.batch.appender.persistence.OracleBatchTrtPersister => Gère la spécificité des Clob Oracle
  • Création d'un système de Factory permettant de stocker la config

des composants dans un fichier XML ou en base, implémentation pour :

    • com.salto.console.MAIL_MANAGER_STORE pour le dispatcher de mails
    • com.salto.console.PLUGIN_MANAGER_STORE pour les PLUGINs
  • Amélioration de la gestion des erreurs lors d'exécutions d'opérations

JMX, un message apparaît avec :

    • Le message de l'exception.
    • La stack trace

Version 1.2.0

  • Passage à quartz 1.3.1
  • Ajout libs:

** jta.jar ** commons-modeler.jar

  • Resauvegarde des configurations nécessaire:

* Car ajout de TimeZone dans CronTrigger * Ajout Enum pour gestion de l'état actionWhenError

  • Code de CronTrigger et SimpleTrigger revu, les classes héritent maitenant des classes de Quartz donc plus besoin de Copier/Coller le code

lors d'une migration de version.

  • Ajout d'un ClassLoader spécifique (Implémentation Tomcat) permettant de charger les Jars depuis un répertoire et en conséquence ajout d'un mécanisme de bootstrap à la Tomcat.
  • Le découpage des répertoires de JARs est le suivant:
    • business/lib => Contient les librairies métier
    • common/lib => Contient les librairies de la console
    • driver/lib => Contient les drivers JDBC
    • server/lib => Contient le jar de bootstrap
  • Ajout opérations:
    • admin.system.adminBatch.unregisterBatch
    • admin.system.batchInfo.listErrorsBetween2Dates => Liste détaillée des erreurs (stacktrace + message) entre 2 dates
    • admin.system.batchInfo.listTodayErrors => Liste détaillée des erreurs (stacktrace + message) du jour
    • admin.system.batchInfo.listYesterdayErrors => Liste détaillée des erreurs (stacktrace + message) de la veille
  • Renommage ancien admin.system.batchInfo.listErrorsBetween2Dates en admin.system.batchInfo.listBatchInErrorBetween2Dates
  • Renommage ancien admin.system.batchInfo.listYesterdayErrors en admin.system.batchInfo.listYesterdayBatchesInError et correction seuls les batchs de la veille apparaissent
  • Renommage ancien admin.system.batchInfo.listErrorsBetween2Dates en admin.system.batchInfo.listBatchInErrorBetween2Dates

et correction seuls les batchs du jour apparaissent

  • admin.system.dataSourcesPool.createDataSource => Permet création DataSource en direct avec cryptage ou pas du password.
  • admin.system.dataSourcesPool.validateDataSourcesConfiguration => Permet validations de tous les pools en une seule visualisation

Impacts sur l'algo de scheduling:

  • batches.nomBatch.stop => Passe le batch dans l'état STOPPED, il peut être repris par resume(), le batch reprend là où il était
  • batches.nomBatch.resume => Permet de redémarrer un batch stoppé
  • batches.nomBatch.interrupt => Interrompt le batch en cours dès que la méthode exec() du batch est terminée
  • batches.nomBatch.resumeOnError => Permet de reprendre un batch stoppé sur une erreur là où il en était, le batch étant dans l'état WAITING
  • Implémentation d'un système de plugin permettant d'appeler du code une seule fois.
  • Implémentation d'un MailManager permettant de paramétrer le dispatching des mails par:
    • batch
    • groupe de batch
    • admin
  • Ajout librairie modeler permettant de décrire les MBean dans fichier XML et d'accélérer développement MBean
  • Corrections:
    • registerBatch => Correction pb réenregistrement batch existant pouvait entraîner pb de scheduling, le batch est donc d'abord désactivé
    • Correction désenregistrement de l'arbre JMX, qd un batch était désenregistré les noeud batchStart, appender, linker et trigger n'étaient pas nettoyés.
    • Correction pertes de certains thread qui restaient en attente après avoir terminé leur tâche
    • Correction implémentation JdbcAppender.
    • La persistence XML écrit maintenant des fichiers formatés.
    • Correction lecture fichier XML par JndiPool si fichier formaté

Version 1.1 (2004-06-08 14:22:55)

  • Correction bug : 2 threads pouvaient se retrouver simultanément dans la méthode run car pb dans Redirector.
  • Correction cas de lock.
  • Factorisation OrLinker et AndLinker et bonne gestion des exceptions JobExecutionException.
Personal tools