From: | "Douglas Hammond" <wizhippo(at)gmail(dot)com> |
---|---|
To: | pgsql-jdbc(at)postgresql(dot)org |
Subject: | defaultAutoCommit problem with glassfish |
Date: | 2007-07-25 15:02:21 |
Message-ID: | 198625570707250802k5a325718ic805df8201ba020b@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-jdbc |
I have been trying to setup a dataSource in glassfish that needs to
have the defaultAutoCommit = false using
org.postgresql.ds.PGConnectionPoolDataSource.
I am using the postgresql-jdbc-8.3dev-600 driver.
It does not work for me. It seams that glassfish is relying on the
driver to set and retain the defaultAutoCommit state. I do not know
if the driver should retian this or the pool manager should.
Here is what I have done to find that the postgres jdbc driver does
not retain the defaultAutoCommit state for new connections. At least
I think this is what is happening.
Since you can't use org.postgresql.ds.PGConnectionPoolDataSource directly
This is what I did.
<bean id="dsAdapter" destroy-method="close"
class="org.postgresql.ds.PGConnectionPoolDataSource">
<property name="serverName" value="localhost" />
<property name="databaseName" value="jasperserver" />
<property name="portNumber" value="5432" />
<property name="user" value="jasperserver" />
<property name="password" value="xxxx" />
<property name="defaultAutoCommit" value="false" />
</bean>
<bean id="dataSource"
class="org.apache.commons.dbcp.datasources.SharedPoolDataSource">
<property name="connectionPoolDataSource">
<ref local="dsAdapter"></ref>
</property>
<property name="maxActive" value="5" />
<property name="maxIdle" value="4" />
<property name="maxWait" value="10000" />
</bean>
This does NOT work
I thought I would try
<bean id="dsAdapter" destroy-method="close"
class="org.postgresql.ds.PGConnectionPoolDataSource">
<property name="serverName" value="localhost" />
<property name="databaseName" value="jasperserver" />
<property name="portNumber" value="5432" />
<property name="user" value="jasperserver" />
<property name="password" value="hippo" />
</bean>
<bean id="dataSource"
class="org.apache.commons.dbcp.datasources.SharedPoolDataSource">
<property name="connectionPoolDataSource">
<ref local="dsAdapter"></ref>
</property>
<property name="defaultAutoCommit" value="false" />
<property name="maxActive" value="5" />
<property name="maxIdle" value="4" />
<property name="maxWait" value="10000" />
</bean>
I moved the defaultAutoCommit into the
org.apache.commons.dbcp.datasources.SharedPoolDataSource.
It WORKS.
It looks like postgresql jdbc driver is relying on the pool manager to
set or keep the autoCommit state.
I do not know if this is proper behavier or not.
Should this be submitted as a bug?
From | Date | Subject | |
---|---|---|---|
Next Message | Oliver Jowett | 2007-07-25 22:08:38 | Re: defaultAutoCommit problem with glassfish |
Previous Message | Albe Laurenz | 2007-07-25 11:49:57 | Re: SSL support for javax.sql.DataSource |