Glassfish/Datasource

Cette page a été rédigée il y a fort fort longtemps, et n'a pas tellement été mise à jour.

 

Vous savez, moi je ne crois pas qu'il y ait de bonne ou de mauvaise page. Moi, si je devais résumer mon wiki aujourd'hui avec vous, je dirais que c'est d'abord des rencontres. Des gens qui m'ont tendu la main, peut-être à un moment où je ne pouvais pas, où j'étais seul chez moi. Et c'est assez curieux de se dire que les hasards, les rencontres forgent une destinée... Parce que quand on a le goût de la chose, quand on a le goût de la chose bien faite, le beau geste, parfois on ne trouve pas l'interlocuteur en face je dirais, le miroir qui vous aide à avancer. Alors ça n'est pas mon cas, comme je disais là, puisque moi au contraire, j'ai pu ; et je dis merci au wiki, je lui dis merci, je chante le wiki, je danse le wiki... je ne suis qu'amour ! Et finalement, quand des gens me disent « Mais comment fais-tu pour avoir cette humanité ? », je leur réponds très simplement que c'est ce goût de l'amour, ce goût donc qui m'a poussé aujourd'hui à entreprendre une construction logicielle... mais demain qui sait ? Peut-être simplement à me mettre au service de la communauté, à faire le don, le don de soi.

Pour installer une datasource dans un serveur Glassfish 2, il faut d’abord installer le driver de la base de données, créer le pool de connexion, puis déclarer ce pool comme une ressource JNDI. Nous voyons cette procédure pour le cas d’une base MySql, mais elle s’applique à toute autre base.

Driver

Il suffit de placer le fichier d’archive jar du driver (mysql-connector-java-5.x.x-bin.jar, pour MySql) dans le répertoire bin de Glassfish.

Pool de connexion

Le pool de connexion doit être créé via la console d’administration, à l’adresse http://localhost:4848/. Cette adresse est valable pour un glassfish local, installé avec une configuration par défaut.

Les paramètres d’authentification par défaut sont :

  • login = admin

  • password = adminadmin

Créer le pool

Dans le menu, à gauche, on ouvre les tâches "Resources" puis "JDBC" et, enfin, "Connection Pools". A ce niveau, on clique sur le bouton "New" pour arriver dans l’écran de saisie des informations générales du pool (étape 1/2). Pour mon exemple, je saisis les informations suivantes :

  • Name: LibrairiePool

  • Resource Type: javax.sql.Datasource

  • Database Vendor: MySql

Le bouton "Next" nous envoie vers la deuxième étape, qui est l’écran des informations détaillées. Cet écran est constitué de plusieurs zones :

  • General Settings: rappel des informations de la première étape et spécification de la classe de Datasource.

  • Pool Settings: paramétrage du pool, avec les tailles mini et maxi

  • Connection Validation: activation des fonctionnalité de fail-over sur les connexions

  • Transaction: paramétrage de la gestion transactionnelle, en particulier de l’isolation

  • Additional Properties: paramètre de connexion, dont

  • url=jdbc:mysql://localhost:3306/librairie

  • user=root

  • password=rootpwd

Remarques :

  • Le pool ne supporte pas que le mot de passe soit vide.

  • Ces propriétés ne sont pas celles proposées par défaut.

Après avoir saisi ces données, on peut cliquer sur "Finish" pour retourner à la liste des pools.

Tester le pool

A partir de la liste des pools, on peut revenir aux informations détaillées d’un pool. En haut de cet écran, un bouton "Ping" permet de tester la connexion.

Ressource JNDI

Pour le rendre accessible, il faut déclarer une ressource JNDI branchée sur le pool nouvellement créé. Cela se fait aussi dans la console d’administration, en passant par le menu "Resources" / "JDBC" / "JDBC Resources"

  • JNDI Name: jdbc/LibrairieDS

  • Pool Name: sélectionner "LibrairiePool"

  • Description: bla bla

  • Status: cocher "Enabled"

Puis on clique sur OK et la datasource est prête à l’emploi.