Nathan,

I can see you aren't getting any answer for a few hours so I'll dare my own hint...

Maybe you could have OJB use a container-provided datasource instead.

For this, use jndi-datasource-name instead of dbalias/driver/user/password/protocol/subprotocol in your <jdbc-connection-descriptor />
http://db.apache.org/ojb/docu/guides/repository.html#jndi-datasource-name


For example, your jdbc-connection-descriptor could look like (This is for Oracle, change plaform, driver and url if needed)

<jdbc-connection-descriptor batch-mode="true" ignoreAutoCommitExceptions="true" jcd-alias="my-alias" jdbc-level="3.0" jndi-datasource-name="java:comp/env/jdbc/my-datasource" platform="Oracle">
<sequence-manager className="org.apache.ojb.broker.util.sequence.SequenceManagerNextValImpl">
<attribute attribute-name="grabSize" attribute-value="20"/>
</sequence-manager>
</jdbc-connection-descriptor>


And the declaration of the webapp's context in tomcat 4 (server.xml or separate file) is

<Context path="/MyWebApp" reloadable="true" docBase="MyWebApp">
<Resource name="jdbc/my-datasource" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/my-datasource">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>oracle.jdbc.driver.OracleDriver</value>
</parameter> <parameter>
<name>url</name>
<value>jdbc:oracle:thin:@hostname:1521:SID</value>
</parameter>
<parameter>
<name>username</name>
<value>foo</value>
</parameter>
<parameter>
<name>password</name>
<value>bar</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>20</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>10</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>-1</value>
</parameter>
</ResourceParams> </Context>


In tomcat 5 it should look like:

<Context path="/MyWebApp" reloadable="true" docBase="MyWebApp">
       <Resource
           name="jdbc/my-datasource"
           auth="Container"
           type="javax.sql.DataSource"
           factory="rg.apache.commons.dbcp.BasicDataSourceFactory"
           driverClassName="oracle.jdbc.driver.OracleDriver"
           url="jdbc:oracle:thin:@hostname:1521:SID"
           username="foo"
           password="bar"
           maxActive="20"
           maxIdle="10"
           maxWait="-1" />
</Context>

This works great for me. Hope it helps.

Alexandre BORGOLTZ
Head of Technology

SmartJog SA
Phone: +33 (0)1 4996 6324
Fax: +33 (0)1 4996 6405
Mobile: +33 (0)6 8882 1417
[EMAIL PROTECTED]



Nathan Smith wrote:

Hi all,

I am looked through the source code, through the archives and searched the
OJB site http://db.apache.org/ojb/, but I can still not figure out how OJB
is shutdown.

We have a very serious problem with our connection pool at the moment. Part
of that is to do with the connection pool that OJB uses and how it is shut
down. At the moment when I stop our web application context through the
Tomcat Manager it shuts down cleanly. The application's connection pool
shutdown method is called and all connections are closed. The OJB connection
pool is leaving connections open. Once Tomcat is stopped all connections are
closed as indicated by the Database monitor.

I would like for all connections to be closed when our web context is
stopped. How can this be done for OJB?

Any help greatly appreciated.




Nathan Smith
Software Developer
LabPro 2000 Limited
Phone: +64 4 586 6840
Facsimile: +64 4 586 6841
[EMAIL PROTECTED]
www.labpro2000.com
Level 6, Riverside Tower on Daly, 15 Daly Street
Lower Hutt, New Zealand





--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]





---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to