Guide d utilisation du gestionnaire de tâches d Oracle DBMS_JOB. Table des matières

Documents pareils
Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Cours Bases de données 2ème année IUT

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Devoir Data WareHouse

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

Notes de cours : bases de données distribuées et repliquées

Corrigés détaillés des exercices

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Bases de données avancées

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

Bases de Données Réparties

SQL Historique

TP Contraintes - Triggers

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

Gestion des transactions et accès concurrents dans les bases de données relationnelles

Administration des bases de données. Jean-Yves Antoine

BTS/CGO P10 SYSTEME INFORMATION Année

Bases de Données Avancées PL/SQL

Historisation des données

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

Laboratoires de bases de données. Laboratoire n 6. Programmation SQL. par Danièle BAYERS et Louis SWINNEN

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

IFT3030 Base de données. Chapitre 1 Introduction

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications

A QUOI SERVENT LES BASES DE DONNÉES?

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF

Cours Bases de données 2ème année IUT

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

Introduction aux Bases de Données 2004/2005

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Introduction au PL/SQL Oracle. Alexandre Meslé

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW

Présentation Windows Azure Hadoop Big Data - BI

Procédures Stockées WAVESOFT ws_sp_getidtable Exemple : ws_sp_getnextsouche Exemple :... 12

A QUOI SERVENT LES BASES DE DONNÉES?

//////////////////////////////////////////////////////////////////// Administration bases de données

CATALOGUE FORMATIONS DOMAINE Bases de données

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

Bases de Données Réparties Concepts et Techniques. Matthieu Exbrayat ULP Strasbourg - Décembre 2007

Olivier Mondet

TRANSPORT ET LOGISTIQUE :

Le Langage SQL version Oracle

Intégrité sémantique dans les bases de données relationnelles

Les transactions 1/46. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions

Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry

Auto-évaluation Oracle: cours de base

Intégrité des données

Bases de données relationnelles

PHP. Bertrand Estellon. 26 avril Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril / 214

Cours SQL. Base du langage SQL et des bases de données

Création et Gestion des tables

Accès aux bases de données

Compétences Business Objects

Attaques applicatives

Bases de données. Mihaela Mathieu

Les déclencheurs. Version 1.0. Grégory CASANOVA

Introduction à JDBC. Accès aux bases de données en Java

Manuel Viadeis CRM Connecteur intégration L100 étendue.

Les bases de données

1. Base de données SQLite

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

Durée : 4 heures Le sujet se présente sous la forme de deux dossiers indépendants

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

Langage SQL : créer et interroger une base

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

Configurer la supervision pour une base MS SQL Server Viadéis Services

Jérôme FESSY. IUT de Paris 5. Base de Données. Cours Introductif. Base de Données

Partie 0 : Gestion des tablespace et des utilisateurs... 3

Le langage SQL (première partie) c Olivier Caron

TP3 : Creation de tables 1 seance

Quelques aspects du Relationnel-Objet du SGBD Oracle

[BASE DE DONNEES MULTIMEDIA]

Les bases fondamentales du langage Transact SQL

1. Qu'est qu'un tablespace?

Paginer les données côté serveur, mettre en cache côté client

CREATION WEB DYNAMIQUE

Installation d'un serveur FTP géré par une base de données MySQL

Modélisation et Gestion des bases de données avec mysql workbench

Mysql. Les requêtes préparées Prepared statements

PROJET 1 : BASE DE DONNÉES REPARTIES

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Gestion de base de données

1 Modélisation d être mauvais payeur

I. MySQL : Serveur et SGBD

Bases de Données relationnelles et leurs systèmes de Gestion

Surveillance de Scripts LUA et de réception d EVENT. avec LoriotPro Extended & Broadcast Edition

Gestion de stock pour un magasin

Recherche dans un tableau

Gestion des utilisateurs et de leurs droits

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

Oracle Le langage procédural PL/SQL

PL langage de programmation côté serveur. SQL à la base : types, expressions, requêtes

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8

Les BASES de DONNEES dans WampServer

How to Login to Career Page

Durée : 4 heures coefficient : 4 Le sujet se présente sous la forme de deux dossiers indépendants

Encryptions, compression et partitionnement des données

Transcription:

Projet BPMS Sagex-18305 Interopérabilité de systèmes d information d entreprise Guide d utilisation du gestionnaire de tâches d Oracle DBMS_JOB Table des matières 1 Préambule 1 2 Rappel de quelques commandes essentielles 1 3 Gestion des erreurs 2 3.1 Notification d erreur et arrêt d un job 2 3.2 Relance d un job 2 4 Mise en œuvre au sein de notre démonstrateur 3 4.1 Objets spécifiques à créer 3 4.2 Déclenchement 4 4.3 Mécanismes de garantie de robustesse 4 1 Préambule Comme indiqué dans nos documents de description et de rapport de réalisation du démonstrateur d interopérabilité, nous avons utilisé la librairie DBMS_JOB d Oracle pour simuler l automatisation des tâches de chaque partenaire de la chaîne logistique. Pour une explication complète, le lecteur se référera à la documentation officielle d Oracle ; notre petit guide s attache seulement à mettre en évidence quelques éléments importants liés aux traitements d erreurs. 2 Rappel de quelques commandes essentielles Voir la liste des jobs Ajouter un job Supprimer un job select * from all_jobs; dbms_job.submit(num_job, ) dbms_job.remove(num_job); Guide.doc Diagramme d activités du processus global

Remarque: Chaque job est un objet qui est visible sous forme d un enregistrement de la vue all_jobs. 3 Gestion des erreurs 3.1 Notification d erreur et arrêt d un job Lorsque le gestionnaire de jobs rencontre une erreur, il incrémente la valeur de FAILURES ; lorsque cellecelle-ci atteint la valeur de 16, la propriété BROCKEN passe de N à Y. select job, what, broken, failures from all_jobs; Remarque : La propriété WHAT réfère la procédure à exécuter par le job. 3.2 Relance d un job Un job arrêté, propriété BROCKEN à Y, est relancé à l aide d une des 2 commandes ci-dessous Relancer un job immédiatement Relancer un job en respectant l horaire de déclenchement dbms_job.run(num_job) dbms_job.submit(num_job, ) -- Contrôle que le job est bien actif et l'active si nécessaire SELECT JOB, UPPER(TRIM(BROKEN)) INTO vl_numjob, vl_casse FROM all_jobs WHERE TRIM(WHAT) = 'SCHEDUL_PACK.EXECUTE_FILE_ATTENTE;'; IF vl_casse = 'Y' THEN dbms_job.broken(vl_numjob,false); Guide.doc 2/5

4 Mise en œuvre au sein de notre démonstrateur Un job a été créé au sein de la base de données de chaque partenaire réalisé en PL/SQL et pour lequel les processus doivent être déclenchés et finalisés automatiquement par une horloge simulant une intervention humaine. 4.1 Objets spécifiques à créer Nous créons les objets suivants au sein du schéma de chaque partenaire fournissant des processus automatiques. - Une table d ordre ORDRES est créée en même temps les autres objets du schéma. - Une procédure d exécution des ordres SQL de la table d ordre est créée /* Procédure d'exécution des ordres SQL contenus dans la table d'ordres. */ PROCEDURE EXECUTE_FILE_ATTENTE IS * CURSOR c_ordre IS SELECT ordre_sql, date_minexe FROM ordres ORDER BY NUMERO DESC FOR UPDATE ; BEGIN FOR curs IN c_ordre LOOP IF (curs.date_minexe <= SYSDATE) THEN EXECUTE IMMEDIATE curs.ordre_sql; DELETE FROM ORDRES WHERE CURRENT OF c_ordre; END LOOP; END; - Un job invoquant à intervalle régulier la procédure ci-dessus. Guide.doc 3/5

4.2 Déclenchement Lors de chaque ajout 1 d un enregistrement dans la table de l objet métier du partenaire (commande pour le détaillant et le producteur, demande de transport pour le transporteur), nous insérons une ligne dans la table d ordre SELECT ORD_SEQ.NEXTVAL INTO VL_NUMORD FROM DUAL ; INSERT INTO ORDRES(NUMERO, ORDRE_SQL, DATE_MINEXE) VALUES (VL_NUMORD, 'BEGIN PROCESS_PACK.PROCESSDEMTRANS(' :NEW.DET_NUMERO ', ' :NEW.NUMERO ', SYSDATE); END;', SYSDATE + 1.0/24/60/60*10); 4.3 Mécanismes de garantie de robustesse 1. Lors de l ajout d un enregistrement dans la table de l objet métier du partenaire, nous nous assurons que le job est bien actif ; si tel n 0est pas le cas, nous le réactivons. -- Contrôle que le job est bien actif et l'active si nécessaire SELECT JOB, UPPER(TRIM(BROKEN)) INTO vl_numjob, vl_casse FROM all_jobs WHERE TRIM(WHAT) = 'SCHEDUL_PACK.EXECUTE_FILE_ATTENTE;'; IF vl_casse = 'Y' THEN dbms_job.broken(vl_numjob,false); -- Insert dans la table d'ordres, l'ordre SQL d'exécution de la procédure processus de demande de transport: SELECT ORD_SEQ.NEXTVAL INTO VL_NUMORD FROM DUAL ; INSERT INTO ORDRES(NUMERO, ORDRE_SQL, DATE_MINEXE) VALUES (VL_NUMORD, 'BEGIN PROCESS_PACK.PROCESSDEMTRANS(' :NEW.DET_NUMERO ', ' :NEW.NUMERO ', SYSDATE); END;', SYSDATE + 1.0/24/60/60*10); 1 ou de changement d état provoquant le déclenchement d un processus Guide.doc 4/5

2. Nous mettons un traitement d erreur à chaque procédure invoquée lors de l exécution de la table d ordre. PROCEDURE PROCESSDEMTRANS (PE_RETAILERID IN INTEGER,PE_ORDERID IN INTEGER,PE_DELIVERYDATE IN DATE ) IS BEGIN EXCEPTION WHEN OTHERS THEN vl_sqlcode := SQLCODE; -- Enregistrement erreur UPDATE COMMANDES SET ETAT='Erreur PROCESSDEMTRANS: ORA-' TO_CHAR(vl_sqlcode) WHERE NUMERO = PE_ORDERID; END; 3. Nous exécutons les ordres de la table d ordre en sens inverses de l insertion ; ainsi, nous évitons de relancer systématiquement toujours le premier enregistrement si celui-ci devait provoquer une erreur que nous n aurions pas traitée. CURSOR c_ordre IS SELECT ordre_sql, date_minexe FROM ordres ORDER BY NUMERO DESC FOR UPDATE ; Guide.doc 5/5