openjpa-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From MiƂosz Tylenda <mtyle...@o2.pl>
Subject Re: EntityManager dosn't release connection in XA transactions
Date Tue, 08 Feb 2011 07:41:53 GMT
Hi Sargol,

Your properties (the first three mentioned) look sane. Did you enable SQL statement logging
either in OpenJPA[1] or database? If OpenJPA used pessimistic transactions, you would see
SELECT FOR UPDATE statements in the log. Are there any? It might be that the timeout problem
is not caused by OpenJPA. For example, the XA transactions might not get committed for some
reason.

Regards,
Milosz


[1] http://openjpa.apache.org/builds/latest/docs/manual/manual.html#ref_guide_logging_channels

> 
> Hello 
> We have encountered a problem that seems it is related to this type of
> openjpa settings. 
> We have configured a distributed transaction in our application server and 
> we are using openjpa 1.2.1 and Glassfish application server. Although the
> default behavior of transaction locking must be optimistic, 
> it seems that pessimistic locking has been happened. 
> It is found that Row Lock contention happens in a specific table. 
> This is the exception : 
> java.sql.SQLException: ORA-02049: timeout: distributed transaction waiting
> for lock 
> Is there any property which has to be set related to the XA transactions
> management for openjpa? 
> For your information, already all the following properties have been set. 
> 
> 1. <persistence-unit name="JPXA" transation-type="JTA"> 
> 
> 2. <property name="openjpa.TransactionMode" value="managed"/> 
> 
>    You can try a plug-in string to lookup the TM in JNDI (the value is the
> JNDI name of GlassFish TM as per Google search) 
> 3. <property name="openjpa.ManagedRuntime"     
>             
> value="jndi(TransactionManagerName=java:appserver/TransactionManager)"/> 
> 
> 
> Following searching about this locking problem, we found that we should add
> two more properties for openjpa as listed below. 
> 
> <property name="openjpa.LockManager" value="version" /> 
> <property name="openjpa.jdbc.TransactionIsolation" value="read-committed" /> 
>   
> 
> but this time we have got another error:
> org.apache.openjpa.persistence.PersistenceException: ORA-02089: COMMIT is
> not allowed in a subordinate session. 
> 
> Thanks for any help. 
> 
> Regards, 
> Sargol 
>   
> 

Mime
View raw message