Hi,
I hope this is not off-topic on this list, but I cannot seem to get
QueryTimeout to work, using the persistence.xml below under WebSphere
6.1 with a DB2 connection pool defined in WebSphere, under OpenJPA 0.9.6.
It seems to just ignore the timeout specified and run to completion no
longer how long it takes.
I was wondering if the below should work or if there is another way of
setting a query timeout. I cannot find one.
Actually if I wrap it in a transaction, then I can set a timeout on
the transaction and that does work. But I was avoiding using a
transaction on the basis of advice in the book "Pro EJB" to omit
transactions if they are not needed, in the case of a read-only query,
because they may incur a performance penalty. Would that be true in
OpenJPA for a large read-only query or should I just use a transaction
and set the timeout on that?
Thank you for any comments!
Don
persistence.xml contents:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0"
xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
<persistence-unit name="mpu-prod" transaction-type="JTA">
<provider>
org.apache.openjpa.persistence.PersistenceProviderImpl
</provider>
<jta-data-source>jdbc/mship-prod</jta-data-source>
<non-jta-data-source>jdbc/mship-prod</non-jta-data-source>
<mapping-file>META-INF/orm-prod.xml</mapping-file>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="openjpa.jdbc.Schema" value="PROD" />
<property name="openjpa.DataCache" value="false" />
<property name="openjpa.RemoteCommitProvider" value="sjvm"
/>
<property name="openjpa.Log"
value="DefaultLevel=WARN, Runtime=INFO, Tool=INFO,
SQL=TRACE" />
<property name="openjpa.jdbc.DBDictionary"
value="db2(StoreCharsAsNumbers=false)" />
<property name="openjpa.TransactionMode" value="managed"
/>
<property name="openjpa.jdbc.TransactionIsolation"
value="read-committed" />
<property name="openjpa.ConnectionFactoryMode"
value="managed" />
<property name="openjpa.ConnectionFactoryProperties"
value="QueryTimeout=30"/>
</properties>
</persistence-unit>
</persistence>