Code source wiki de Ajout Pilote JDBC
Modifié par jhurst le 2024/04/02 14:25
Afficher les derniers auteurs
author | version | line-number | content |
---|---|---|---|
1 | Ce document décrit la procédure d'ajout d'un nouveau pilote JDBC dans DigDash Enterprise. | ||
2 | |||
3 | {{ddtoc}}{{/ddtoc}} | ||
4 | |||
5 | ---- | ||
6 | |||
7 | = Pré-requis = | ||
8 | |||
9 | Avoir le pilote JDBC sous la forme d'un ou plusieurs fichiers JAR et sa documentation. | ||
10 | |||
11 | = Installation = | ||
12 | |||
13 | == Déploiement des fichiers == | ||
14 | |||
15 | 1. //(optionnel, si les webapps n'ont pas encore été déployées). //Démarrez le serveur DigDash Enterprise et attendre le déploiement complet des webapps | ||
16 | 1. Arrêtez le serveur | ||
17 | 1. Copiez le ou les fichiers JAR du pilote JDBC dans le dossier suivant : | ||
18 | **<DD Install>/apache-tomcat/webapps/ddenterpriseapi/WEB-INF/lib** | ||
19 | 1. Le pilote JDBC doit maintenant être enregistré dans DigDash Enterprise Serveur. | ||
20 | |||
21 | == Enregistrement du pilote JDBC == | ||
22 | |||
23 | Pour cela éditez le fichier suivant : | ||
24 | |||
25 | |||
26 | **<DD Install>/apache-tomcat/webapps/ddenterpriseapi/WEB-INF/classes/resources/config/sqldriverrepository.xml** | ||
27 | |||
28 | Ajoutez une entrée XML au fichier **sqldriverrepository.xml**, qui ressemble à l'exemple suivant : | ||
29 | |||
30 | {{code language="xml"}} | ||
31 | <SQLDriver id="MY_DRIVER" | ||
32 | name="My Driver" | ||
33 | url="mydriver:" | ||
34 | manufacturer="My Driver Company" | ||
35 | class="com.mydriver.MyDriver" | ||
36 | urlsample="jdbc:mydriver:<database>?<options>" | ||
37 | availability="both"> | ||
38 | <properties></properties> | ||
39 | </SQLDriver> | ||
40 | {{/code}} | ||
41 | |||
42 | (% class="box warningmessage" %) | ||
43 | ((( | ||
44 | //Important : Certains caractères sont réservés en XML : '**&**', '**"**', '**<**' or '**>**'. Donc si vous utilisez certains de ces caractères, assurez-vous de les encoder vers leur entités XML correspondantes.// | ||
45 | ))) | ||
46 | |||
47 | Correspondances XML : | ||
48 | |||
49 | * **&** => **&** | ||
50 | * **"** => **"** | ||
51 | * **<** => **<** | ||
52 | * **>** => **>**((( | ||
53 | Exemple : | ||
54 | ))) | ||
55 | |||
56 | * (FAUX) urlsample="jdbc:mydriver:dbtest?opt1=0&opt2="value"" | ||
57 | * (VRAI) urlsample="jdbc:mydriver:dbtest?opt1=0&opt2="value"" | ||
58 | |||
59 | Paramètres : | ||
60 | |||
61 | * **id **: un identifiant utilisé de manière interne par DigDash Enterprise, choisir une chaîne non existante, par convention en majuscule, sans espace | ||
62 | * **name **: Le nom du pilote JDBC affiché dans l'interface de la console d'administration | ||
63 | * **url **: Le préfixe de l'URL du pilote JDBC (sans "jdbc:"). Consulter la documentation fournie avec le pilote JDBC | ||
64 | * **manufacturer **: Le nom du vendeur/développeur du pilote JDBC | ||
65 | * **class**: chemin de la classe java principale du pilote. Consulter la documentation fournie avec le pilote JDBC. | ||
66 | //Optionnel: Les pilotes JDBC de norme JDBC 4 n'ont pas besoin de la classe java pour être pris en compte.// | ||
67 | * **urlsample **: Exemple d'URL affiché dans l'interface de la console d'administration | ||
68 | * **availability **: réservé. Laisser à "both". | ||
69 | |||
70 | (% class="box warningmessage" %) | ||
71 | ((( | ||
72 | //Important : Le déploiement est perdu lorsque vous mettez à jour le fichier ddenterpriseapi.war. Suivre cette procédure de déploiement du pilote à chaque fois que vous mettez DigDash Enterprise à jour.// | ||
73 | ))) | ||
74 | |||
75 | Dans le fichier **sqldriverrepository.xml** il y a quelques exemples de XML pour des pilotes non fournis avec DigDash. | ||
76 | |||
77 | == Propriétés spécifiques avancées == | ||
78 | |||
79 | Il est possible de spécifier des propriétés spécifiques pour certains pilotes JDBC. Ces propriétés sont à écrire à l’intérieur du tag <properties></properties> sous la forme : | ||
80 | |||
81 | {{code language="xml"}} | ||
82 | <properties> | ||
83 | |||
84 | **<property name="nom_propriété" value="valeur_propriété" />** | ||
85 | |||
86 | <properties> | ||
87 | {{/code}} | ||
88 | |||
89 | Les propriétés supportées sont : | ||
90 | |||
91 | === FORCE_FORWARD_ONLY (non défini | false | true) === | ||
92 | |||
93 | Description : spécifie le type de curseur JDBC utilisé par le Studio pour la prévisualisation des résultats d’une requête SQL. Par défaut le Studio utilise un curseur TYPE_INSENTIVE_SCROLL pour la prévisualisation des résultats, mais certaines bases de données ne le supporte pas. Si votre pilote/BDD ne supporte que les curseurs de TYPE_FORWARD_ONLY, vous pouvez le spécifier avec le propriété FORCE_FORWARD_ONLY. Les valeurs possibles sont : | ||
94 | |||
95 | * **false** (ou **propriété non définie**) : Le type de curseur est automatique, TYPE_SCROLL_INSENTIVE dans la plupart des cas sauf pour HIVE, IMPALA et SAPHANA | ||
96 | * **true **: Le type de curseur utilisé par le Studio est TYPE_FORWARD_ONLY | ||
97 | |||
98 | === PING_SQL (non défini | requête SQL | chaîne vide) === | ||
99 | |||
100 | Description : DigDash Enterprise teste la connexion avec la base de données en utilisant la méthode JDBC **Connection.isValid()**. Sur certains drivers JDBC cette méthode ne fonctionne pas. Dans ce cas, DigDash utilise une autre méthode alternative de sélection simple, la plupart du temps une requête « select 1 ». | ||
101 | |||
102 | La propriété PING_SQL permet de spécifier une requête simple pour tester la connexion à la BDD, en fonction de votre pilote. Les valeurs possibles sont : | ||
103 | |||
104 | * **Propriété non définie** : La requête de ping alternative est automatiquement déterminée par DigDash Enteprise : « select 1 » sauf dans les cas de pilotes ORACLE, FIREBIRD, SAPHANA, DB2_AS400 et DB2 | ||
105 | * **requête SQL non vide **: la requête spécifiée sera utilisée pour tester la connexion à la base de données. Exemple : | ||
106 | <property name="PING_SQL" value="select 1 from all_tables" /> | ||
107 | * **chaîne vide **: Cas spécial où on désactive le ping alternatif. Si la méthode JDBC Connection.isValid() échoue, alors on considère quand même la base de données comme accessible. Exemple : | ||
108 | \\{{code language="xml"}}<property name="PING_SQL" value="" />{{/code}} | ||
109 | |||
110 | === USE_FETCH_FIRST_IN_STUDIO (non défini | false | true) === | ||
111 | |||
112 | Description : Cette propriété n’est active que pour la prévisualisation du résultat de la requête SQL dans l’écran de configuration de la source de données (Studio). Elle modifie la requête et y ajoute "FETCH FIRST n ROWS ONLY" (n est remplacée par le nombre de lignes de prévisualisation). Elle est utile pour les pilotes qui ne supportent pas la fonctionnalité JDBC **Statement.setMaxRows(n)**, comme par exemple le driver JDBC AS400. Les valeurs possibles sont : | ||
113 | |||
114 | * **false** (ou **propriété non définie**) : La limite de prévisualisation est spécifiée en utilisant la méthode JDBC **Statement.setMaxRows(n)** | ||
115 | * **true **: La limite de prévisualisation est spécifiée en ajoutant FETCH FIRST n ROWS ONLY au SQL dans le Studio. | ||
116 | |||
117 | === FORBID_POOL_CONNECTION (non défini | false | true) === | ||
118 | |||
119 | Description : Interdit l’usage d’un pool de connexions JDBC par le serveur DigDash Enterprise. Un pool de connexion permet d’optimiser les accès à une base de données en laissant les connexions ouvertes et réutilisables pour d’autres requêtes. Dans certains cas il est souhaitable de forcer DigDash Enterprise à ne pas utiliser un pool de connexions JDBC, par exemple pour s’assurer que des connexions ne restent pas ouvertes trop longtemps sur la base de données. Cette propriété répond à ce besoin. Les valeurs possibles sont : | ||
120 | |||
121 | * **false** (ou **propriété non définie**) : Un pool de connexions JDBC peut être utilisé pour ce pilote | ||
122 | * **true **: Le pool de connexions JDBC n’est pas utilisé pour ce pilote et chaque requêtes SQL aura sa propre connexion JDBC indépendante | ||
123 | |||
124 | === POOL_VALIDATION_QUERY (non défini | requête SQL) === | ||
125 | |||
126 | Description : Permet de spécifier une requête de validation utilisée par le pool de connexions JDBC Apache DBCP2. Certains drivers JDBC ne spécifient pas cette requête (ex. « select 1 ») et peuvent donc dysfonctionner lorsqu’ils sont instanciés par le pool de connexions JDBC. Cette propriétés permet de spécifier cette requête de validation. Elle est similaire à la propriété validationQuery configurable via les propriétés du pool Apache DBCP2. Les valeurs possibles sont : | ||
127 | |||
128 | * **propriété non définie** : Aucune requête de validation spécifique n’est configurée pour ce driver. Le pool utilisera la requête de validation par défaut pour ce driver (s’il en spécifie une) | ||
129 | * **requête SQL non vide **: la requête spécifiée sera utilisée pour tester la connexion à la base de données par le pool de connexion Apache DBCP. (Exemple : select 1) |