Hi, Markus,
Markus Riehl wrote:
> Using MySQL or SAPDB, the JDBC driver is automatically reconnecting to the
> database when the connection is up again. Is there a way to use the PSQL
> driver the same way?
Currently, the backend cannot keep the current transaction if the
connection breaks, so it will be rolled back.
> How is this problem handled within Connection Pools (used within a servlet
> environment)? Is the pool deleting "dead" connections automatically and is
> creating new ones?
At least JBoss, you can use the following approach: In the Datasource
definition, put the following:
<datasources>
<no-tx-datasource>
<jndi-name>boo</jndi-name>
<connection-url>jdbc:postgresql://localhost:5432/bar</connection-url>
[ ... other attributes ... ]
<new-connection-sql>SELECT version()</new-connection-sql>
<check-valid-connection-sql>SELECT
version()</check-valid-connection-sql>
</no-tx-datasource>
</datasources>
This validates the connection before it is handed out on the
application, and throws away invalid connections. Be aware that the SQL
is case sensitive, we had a problem with earlier versions of OpenMDX/CRX
that had upper case letters in the tags so they were ignored by jboss.
HTH,
Markus
--
Markus Schaber | Logical Tracking&Tracing International AG
Dipl. Inf. | Software Development GIS
Fight against software patents in EU! www.ffii.org www.nosoftwarepatents.org