Bonjour,
J'utilise Tomcat 5.0 pour mes développements et j'emploi un pool de connexion pour me connecter à une DB MS SQL Server que j'ai défini dans le fichier server.xml :Voici le code que j'ai écrit pour manipuler cette DataSource :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67 <?xml version="1.0" encoding="utf-8"?> <Server> <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/> <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/> <GlobalNamingResources> <Environment name="simpleValue" type="java.lang.Integer" value="30"/> <Resource auth="Container" description="User database that can be updated and saved" name="UserDatabase" type="org.apache.catalina.UserDatabase"/> <Resource name="jdbc/casis" type="javax.sql.DataSource"/> <ResourceParams name="UserDatabase"> <parameter> <name>factory</name> <value>org.apache.catalina.users.MemoryUserDatabaseFactory</value> </parameter> <parameter> <name>pathname</name> <value>conf/tomcat-users.xml</value> </parameter> </ResourceParams> <ResourceParams name="jdbc/casis"> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter> <name>url</name> <value>jdbc:microsoft:sqlserver://BXLSSAPEP1;DataBaseName=CASIS;SelectMethod=Cursor;user=CASISDBUser;password=casisdbuser;</value> </parameter> <parameter> <name>password</name> <value>casisdbuser</value> </parameter> <parameter> <name>maxActive</name> <value>20</value> </parameter> <parameter> <name>maxWait</name> <value>5000</value> </parameter> <parameter> <name>driverClassName</name> <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value> </parameter> <parameter> <name>username</name> <value>CASISDBUser</value> </parameter> <parameter> <name>maxIdle</name> <value>20</value> </parameter> </ResourceParams> </GlobalNamingResources> <Service name="Catalina"> <Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" port="8080" redirectPort="8443"> </Connector> <Connector port="8009" protocol="AJP/1.3" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" redirectPort="8443"> </Connector> <Engine defaultHost="localhost" name="Catalina"> <Host appBase="webapps" name="localhost"> <Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_log." suffix=".txt" timestamp="true"/> </Host> <Logger className="org.apache.catalina.logger.FileLogger" prefix="catalina_log." suffix=".txt" timestamp="true"/> <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/> </Engine> </Service> </Server>
Tout cela fonctionne très bien sauf lorsque (par exemple) j'arrête et je redémarre ma DB je n'arrive plus à me connecter à la DB, je dois redémarrer Tomcat pour réutiliser cette connexion.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ctx = new InitialContext(); ds = (DataSource)ctx.lookup("java:comp/env/jdbc/casis"); connect = ds.getConnection();
Quelqu'un à une idée?
Merci
Partager