DataSources Workey

Nous désignerons par :<CATALINA_HOME>, le chemin pointant vers le répertoire de base où est installé le serveur Apache Tomcat.

Datasources requises

D’une manière générale, les bases de données sont présentées par Tomcat comme des ressources (appelées datasources) mise à disposition du moteur Workey.
L’accès à ces bases est géré par un gestionnaire de connexions. Chacune de ces datasources est nommée.

La définition des datasources s’effecture via le fichier <CATALINA_HOME>/conf/context.xml.
-> Assurez-vous d´utiliser le fichier context.xml correspondant au SGBD utilisé pour la base socle du serveur Workey (cf. Installation des fichiers du serveur).


Quelque soit le SGBD retenu pour la base socle, ce fichier déclare par défaut les différentes datasources requises par Workey.
Celles-ci sont nommées comme suit et devront être configurées pour désigner votre base socle :

  • Workey_RW_DS
  • Workey_RO_DS
  • QuartzDS

Configuration d’une Datasource

Chaque datasource est prise en charge par un gestionnaire de connexion.
Celui-ci va maintenir un pool de connexion vers la base de données désignée (cf. création de la base de donnée socle), et a besoin des informations suivantes :

  • le nom du serveur, ou son adresse IP (ci-après référencé par -> WKY_DB_HOST)
  • le numéro du port TCP du SGBD (-> WKY_DB_PORT)
  • le nom de la base de données (-> WKY_DB_NAME)
  • les identifiants de connexion : le nom d’utilisateur (-> WKY_DB_USER) et son mot-de-passe associé (-> WKY_DB_PASSWORD).
Avant de définir une datasource, destinée à adresser un SGBD différent de celui de la base socle de Workey, assurez-vous d’avoir copier le(s) fichier(s) du driver JDBC adéquat(s) dans le répertoire :  <CATALINA_HOME>/lib 

La définition d’une datasource se fait à l’aide d’un élément <Resource> dans le fichier context.xml.

Exemple :

<Resource name="Workey_RW_DSauth="Container" type="javax.sql.DataSource"

maxActive="100maxIdle="30maxWait="10000"

username="WKY_DB_USERpassword="WKY_DB_PASSWORDdriverClassName="com.mysql.jdbc.Driver"

url="jdbc:mysql://WKY_DB_HOST:WKY_DB_PORT/WKY_DB_NAME"

validationQuery="SELECT 1testOnBorrow="true"/>


-> Note: s’agissant d’un fichier XML, nous attirons votre attention sur la nécessité d’échapper tout caractère non autorisé.

Nom de l’attributDescriptionRemarque
nameNom JNDI de la datasource.-> Seuls les noms des datasources requises par le moteur Workey sont fixes/imposés.
authAuthentification de la ressource:ApplicationContainer-> Par défaut, l’authentification est assurée par le gestionnaire : Container
typeClasse Java de l’objet à générer pour la ressource.-> Par défaut, la ressource sera un objet Java de classe javax.sql.DataSource
maxActiveNombre maximum de connexion actives simultannées dans le pool.-> Le nombre maximum de connexion disponible doit permettre d’amortir les pics de charge, sans pour autant grever les ressources mémoire du serveur.
maxIdleNombre de connexion toujours disponible. La taille du pool de connexion varie dans le temsp au regard de la charge. Ce nombre sera la limite inférieure de connexion maintenue active à tout moment.-> Le nombre de connexion disponible doit permettre d’amortir les pics de charge, sans pour autant grever les ressources mémoire du serveur.
maxWaitL’acquisition d’une nouvelle connexion pour le pool n’est pas instantannée. Délai d’attente maximum en millisecondes pour l’obtention d’une connexion à la base de données.-> Selon les aléas de charge du SGBD, il est conseillé de ne pas spécifier une valeur trop basse afin de laisser l’opportunité à celui-ci de répondre à la requête d’allocation de ressource.
usernameLe nom d’utilisateur pour la connexion au SGBD.-> A renseigner avec la valeur que nous avons désigné par WKY_DB_USER.
passwordLe mot-de-passe associé au nom d’utilisateur pour la connexion au SGBD.-> A renseigner avec la valeur que nous avons désigné par WKY_DB_PASSWORD.
driverClassNameLe nom de la classe Java du driver JDBC.-> Le nom de la classe Java est spécifique à chaque driver JDBC :
pour mySQL : com.mysql.jdbc.Driver
pour Oracle : oracle.jdbc.driver.OracleDriver
pour PostgreSQL : org.postgresql.Driver
pour Microsoft SQLServer : com.microsoft.sqlserver.jdbc.SQLServerDriver
urlURL de connexion JDBC pointant vers la base de donnée.-> La syntaxe de l’URL est spécifique à chaque SGBD :
pour mySQL : jdbc:mysql://WKY_DB_HOST:WKY_DB_PORT/WKY_DB_NAME
pour Oracle : jdbc:oracle:thin:@WKY_DB_HOST:WKY_DB_PORT:WKY_DB_NAME
pour PostgreSQL : jdbc:postgresql://WKY_DB_HOST:WKY_DB_PORT/WKY_DB_NAME
pour SQLServer : jdbc:sqlserver://WKY_DB_HOST:WKY_DB_PORT;databaseName=WKY_DB_NAME
-> Ces URLs sont à renseigner à l’aide des valeurs que nous avons désigné par:WKY_DB_HOSTWKY_DB_PORT et WKY_DB_NAME.
validationQueryPermet de spécifier une requête SQL qui sera préalablement exécutée afin de s’assurer que la connexion est toujours valide.-> Cette requête doit être simple et peu coûteuse (tout en étant valide au regard du SGBD).Exemple : SELECT 1 ou SELECT 1 FROM DUAL (pour Oracle).
testOnBorrowIndique que chaque connexion tirée du pool pour être utilisée doit être testée.-> A renseigner à true pour que la requête spécifiée dans validationQuery soit systématiquement exécutée lors de l’utilisation d’une connexion issue du pool.