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_DSWorkey_RO_DSQuartzDS
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_DS" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="WKY_DB_USER" password="WKY_DB_PASSWORD" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://WKY_DB_HOST:WKY_DB_PORT/WKY_DB_NAME"
validationQuery="SELECT 1" testOnBorrow="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’attribut | Description | Remarque |
name | Nom JNDI de la datasource. | -> Seuls les noms des datasources requises par le moteur Workey sont fixes/imposés. |
auth | Authentification de la ressource:ApplicationContainer | -> Par défaut, l’authentification est assurée par le gestionnaire : Container |
type | Classe Java de l’objet à générer pour la ressource. | -> Par défaut, la ressource sera un objet Java de classe javax.sql.DataSource |
maxActive | Nombre 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. |
maxIdle | Nombre 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. |
maxWait | L’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. |
username | Le nom d’utilisateur pour la connexion au SGBD. | -> A renseigner avec la valeur que nous avons désigné par WKY_DB_USER. |
password | Le 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. |
driverClassName | Le 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.Driverpour Oracle : oracle.jdbc.driver.OracleDriverpour PostgreSQL : org.postgresql.Driverpour Microsoft SQLServer : com.microsoft.sqlserver.jdbc.SQLServerDriver |
url | URL 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_NAMEpour Oracle : jdbc:oracle:thin:@WKY_DB_HOST:WKY_DB_PORT:WKY_DB_NAMEpour PostgreSQL : jdbc:postgresql://WKY_DB_HOST:WKY_DB_PORT/WKY_DB_NAMEpour 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_HOST, WKY_DB_PORT et WKY_DB_NAME. |
validationQuery | Permet 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). |
testOnBorrow | Indique 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. |