Wiki source code of Datasources et Tomcat
Last modified by Julien EYMERY on 2015/09/09 09:24
Show last authors
| author | version | line-number | content |
|---|---|---|---|
| 1 | ((( | ||
| 2 | == ETAPE 1 : Définition de la datasource au niveau de la configuration du serveur d'application == | ||
| 3 | ))) | ||
| 4 | |||
| 5 | Pour déclarer une datasource il modifier le fichier server.xml de tomcat. | ||
| 6 | |||
| 7 | Il faut aussi penser à mettre le .jar gérant le driver BD dans le répertoire "Tomcat\common\lib" comme on l'aurait dans le cas de l'utilisation d'un accès jdbc direct. Par exemple pour DB2, il faut récupérer le fichier db2java.zip fourni par db2 et le placer dans "Tomcat\common\lib" en le renommant en db2java.jar | ||
| 8 | ((( | ||
| 9 | === 1/ Solution 1 : Modifier directement server.xml === | ||
| 10 | ))) | ||
| 11 | |||
| 12 | |||
| 13 | |||
| 14 | {{code language="none"}} | ||
| 15 | <Context path="/DBTest" docBase="DBTest" | ||
| 16 | debug="0" reloadable="true" crossContext="true"> | ||
| 17 | |||
| 18 | <Resource name="jdbc/TestDB" | ||
| 19 | auth="Container" | ||
| 20 | type="javax.sql.DataSource"/> | ||
| 21 | |||
| 22 | <ResourceParams name="jdbc/TestDB"> | ||
| 23 | <parameter> | ||
| 24 | <name>factory</name> | ||
| 25 | <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> | ||
| 26 | </parameter> | ||
| 27 | |||
| 28 | <!-- Maximum number of dB connections in pool. Make sure you | ||
| 29 | configure your mysqld max_connections large enough to handle | ||
| 30 | all of your db connections. Set to 0 for no limit. | ||
| 31 | --> | ||
| 32 | <parameter> | ||
| 33 | <name>maxActive</name> | ||
| 34 | <value>100</value> | ||
| 35 | </parameter> | ||
| 36 | |||
| 37 | <!-- Maximum number of idle dB connections to retain in pool. | ||
| 38 | Set to 0 for no limit. | ||
| 39 | --> | ||
| 40 | <parameter> | ||
| 41 | <name>maxIdle</name> | ||
| 42 | <value>30</value> | ||
| 43 | </parameter> | ||
| 44 | |||
| 45 | <!-- Maximum time to wait for a dB connection to become available | ||
| 46 | in ms, in this example 10 seconds. An Exception is thrown if | ||
| 47 | this timeout is exceeded. Set to -1 to wait indefinitely. | ||
| 48 | --> | ||
| 49 | <parameter> | ||
| 50 | <name>maxWait</name> | ||
| 51 | <value>10000</value> | ||
| 52 | </parameter> | ||
| 53 | |||
| 54 | <!-- DB2 dB username and password for dB connections --> | ||
| 55 | <parameter> | ||
| 56 | <name>username</name> | ||
| 57 | <value>db2admin</value> | ||
| 58 | </parameter> | ||
| 59 | <parameter> | ||
| 60 | <name>password</name> | ||
| 61 | <value>db2admin</value> | ||
| 62 | </parameter> | ||
| 63 | |||
| 64 | <!-- Class name for DB2 UDB JDBC driver --> | ||
| 65 | <parameter> | ||
| 66 | <name>driverClassName</name> | ||
| 67 | <value>COM.ibm.db2.jdbc.app.DB2Driver</value> | ||
| 68 | </parameter> | ||
| 69 | |||
| 70 | <!-- The JDBC connection url for connecting to your DB2 dB. --> | ||
| 71 | <parameter> | ||
| 72 | <name>url</name> | ||
| 73 | <value>jdbc:db2:TSTVABD</value> | ||
| 74 | </parameter> | ||
| 75 | </ResourceParams> | ||
| 76 | </Context> | ||
| 77 | {{/code}} | ||
| 78 | |||
| 79 | ((( | ||
| 80 | === 2/ solution 2 : Utiliser la console d'administration de tomcat : === | ||
| 81 | ))) | ||
| 82 | |||
| 83 | La définition d'une datasource est incluse dans les ressources. | ||
| 84 | |||
| 85 | Attention : Comme c'est une GlobalNamingResource qui est ajoutée au server.xml, elle n'est pas limitée à un seul Context et il faut déclarer un lien pour chaque Context qui peut y accéder. Cette solution permet d'éviter la section <resource-ref> du fichier web.xml (nous conseillons néanmoins de conserver cette déclaration qui servira en cas déploiement de l'application web sous websphere) et simplifie l'écriture du server.xml à : | ||
| 86 | |||
| 87 | |||
| 88 | {{code language="xml" language="xml"}} | ||
| 89 | <Context path="/DBTest" docBase="DBTest" | ||
| 90 | debug="5" reloadable="true" crossContext="true"> | ||
| 91 | <ResourceLink | ||
| 92 | name="jdbc/TestDB" | ||
| 93 | global="jdbc/TestDB" | ||
| 94 | type="javax.sql.DataSource"/> | ||
| 95 | </Context> | ||
| 96 | |||
| 97 | {{/code}} | ||
| 98 | |||
| 99 | ((( | ||
| 100 | == ETAPE 2 : Déclaration de la datasource au niveau de l'application web == | ||
| 101 | ))) | ||
| 102 | |||
| 103 | Pour déclarer la datasource il faut modifier le fichier web.xml de la web-app. | ||
| 104 | |||
| 105 | |||
| 106 | |||
| 107 | {{code language="xml" language="xml"}} | ||
| 108 | <?xml version="1.0" encoding="ISO-8859-1"?> | ||
| 109 | <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" | ||
| 110 | "http://java.sun.com/dtd/web-app_2_3.dtd"> | ||
| 111 | <web-app> | ||
| 112 | <servlet> | ||
| 113 | <servlet-name>LoadGenericFile</servlet-name> | ||
| 114 | <servlet-class>com.hardis.adelia.services.LoadGenericFile</servlet-class> | ||
| 115 | </servlet> | ||
| 116 | .... | ||
| 117 | <servlet-mapping> | ||
| 118 | <servlet-name>LoadGenericFile</servlet-name> | ||
| 119 | <url-pattern>/LoadGenericFile</url-pattern> | ||
| 120 | </servlet-mapping> | ||
| 121 | <session-config> | ||
| 122 | <session-timeout>30</session-timeout> | ||
| 123 | </session-config> | ||
| 124 | <resource-ref> | ||
| 125 | <description>DB Connection</description> | ||
| 126 | <res-ref-name>jdbc/TestDB</res-ref-name> | ||
| 127 | <res-type>javax.sql.DataSource</res-type> | ||
| 128 | <res-auth>Container</res-auth> | ||
| 129 | </resource-ref> | ||
| 130 | </web-app> | ||
| 131 | {{/code}} | ||
| 132 | |||
| 133 | ((( | ||
| 134 | == ETAPE 3 : Utilisation dans Adélia web == | ||
| 135 | ))) | ||
| 136 | |||
| 137 | |||
| 138 | Les programmes doivent être générés en mode sans conservation des connexions (~= mode "poolé") et les serveurs logiques en mode "local". | ||
| 139 | |||
| 140 | Dans la configuration serveur (MWSERVER.INI) définir un SGBD de type "Datasource" et indiquer le nom de la Datasource. | ||
| 141 | |||
| 142 | Généralement on n'indique pas de profil et de mot de passe de connexion car les connexions se font avec le profil et le mode passe indiqués lors de la définition de la datasource dans le serveur d'application. Pour Tomcat (tests fait en 4.1.30 et 5.0) il faut absolument laisser à blanc le profil et le mot de passe. | ||
| 143 | |||
| 144 | |||
| 145 | |||
| 146 | Liens web : | ||
| 147 | |||
| 148 | [[http://tomcat.apache.org/tomcat-4.1-doc/jndi-datasource-examples-howto.html>>url:http://tomcat.apache.org/tomcat-4.1-doc/jndi-datasource-examples-howto.html]] | ||
| 149 | |||
| 150 | [[http://christophej.developpez.com/tutoriel/j2ee/pooltomcat/>>url:http://christophej.developpez.com/tutoriel/j2ee/pooltomcat/]] | ||
| 151 | ((( | ||
| 152 | == (% style="line-height: 1.5;" %)Articles connexes(%%) == | ||
| 153 | ))) | ||
| 154 | |||
| 155 | Les articles connexes apparaissent ici en fonction des étiquettes que vous avez sélectionnées. Cliquez pour modifier la macro et ajouter ou modifier des étiquettes. | ||
| 156 | |||
| 157 | {{liveData sort="doc.date:desc" source="liveTable" properties="doc.title,doc.date,doc.author" description="Recently updated" limit="5" filters="tag=web tomcat sgbd" sourceParameters="translationPrefix=platform.index."}}{{/liveData}} | ||
| 158 |