2014-12-29 3 views
0

내가 JTA 컨테이너 레버 트랜잭션과는 EclipseLink JPA를 사용하고 아래 코드이클립스 링크 JPA는 기본 갱신 쿼리 thowring 교착 예외

public int loadTargetTables() throws Exception { 
    String sNavtive = "INSERT INTO TRGT_TABLE SELECT * FROM SRC_TABLE"; 
    int results = this.em.createNativeQuery(sNavtive).executeUpdate();  
    return results; 
} 

을 실행하고 해당 소스 테이블과 tartget 테이블 모두에주의하려고없이 OD에서 동일 열 및 데이터 형식.

나는 울부 짖는 문제가 무엇입니까 오류 설명에서 언급 한 바와 같이

[EL Finer]: 2014-12-29 11:13:04.681--Connection(17529256)--Thread(Thread[[ACTIVE] ExecuteThread: '15' for queue: 'weblogic.kernel.Default (self-tuning)',5,Pooled Threads])--Begin batch statements 
[EL Fine]: 2014-12-29 11:13:04.681--Connection(17529256)--Thread(Thread[[ACTIVE] ExecuteThread: '15' for queue: 'weblogic.kernel.Default (self-tuning)',5,Pooled Threads])--INSERT INTO TRGT_TABLE select * FROM SRC_TABLE 
[EL Finer]: 2014-12-29 11:13:04.681--Connection(17529256)--Thread(Thread[[ACTIVE] ExecuteThread: '15' for queue: 'weblogic.kernel.Default (self-tuning)',5,Pooled Threads])--End Batch Statements 
[EL Finest]: 2014-12-29 11:13:04.681--Thread(Thread[[ACTIVE] ExecuteThread: '15' for queue: 'weblogic.kernel.Default (self-tuning)',5,Pooled Threads])--reconnecting to external connection pool 
[EL Fine]: 2014-12-29 11:14:01.625--Thread(Thread[[ACTIVE] ExecuteThread: '15' for queue: 'weblogic.kernel.Default (self-tuning)',5,Pooled Threads])--SELECT 1 FROM DUAL 
[EL Warning]: 2014-12-29 11:14:01.641--Thread(Thread[[ACTIVE] ExecuteThread: '15' for queue: 'weblogic.kernel.Default (self-tuning)',5,Pooled Threads])--Local Exception Stack: 
Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.DatabaseException 
Internal Exception: java.sql.BatchUpdateException: error occurred during batching: ORA-02049: timeout : distributed transaction waiting for a lock 

Error Code: 17081 
    at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:324) 
    at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeJDK12BatchStatement(DatabaseAccessor.java:873) 
    at org.eclipse.persistence.internal.databaseaccess.DynamicSQLBatchWritingMechanism.executeBatchedStatements(DynamicSQLBatchWritingMechanism.java:143) 
    at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.writesCompleted(DatabaseAccessor.java:1707) 
    at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.commitTransaction(DatabaseAccessor.java:408) 
    at org.eclipse.persistence.internal.sessions.AbstractSession.basicCommitTransaction(AbstractSession.java:567) 
    at org.eclipse.persistence.sessions.server.ClientSession.basicCommitTransaction(ClientSession.java:131) 
    at org.eclipse.persistence.internal.sessions.AbstractSession.commitTransaction(AbstractSession.java:762) 
    at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.commitTransaction(UnitOfWorkImpl.java:1574) 
    at org.eclipse.persistence.internal.sessions.RepeatableWriteUnitOfWork.commitTransaction(RepeatableWriteUnitOfWork.java:649) 
    at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.commitTransactionAfterWriteChanges(UnitOfWorkImpl.java:1589) 
    at org.eclipse.persistence.internal.sessions.RepeatableWriteUnitOfWork.issueSQLbeforeCompletion(RepeatableWriteUnitOfWork.java:354) 
    at org.eclipse.persistence.transaction.AbstractSynchronizationListener.beforeCompletion(AbstractSynchronizationListener.java:157) 
    at org.eclipse.persistence.transaction.JTASynchronizationListener.beforeCompletion(JTASynchronizationListener.java:68) 
    at weblogic.transaction.internal.ServerSCInfo.doBeforeCompletion(Unknown Source) 
    at weblogic.transaction.internal.ServerSCInfo.callBeforeCompletions(Unknown Source) 
    at weblogic.transaction.internal.ServerSCInfo.startPrePrepareAndChain(Unknown Source) 
    at weblogic.transaction.internal.ServerTransactionImpl.localPrePrepareAndChain(ServerTransactionImpl.java:1355) 
    at weblogic.transaction.internal.ServerTransactionImpl.globalPrePrepare(ServerTransactionImpl.java:2172) 
    at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:300) 
    at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:267) 
    at weblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:331) 
    at weblogic.ejb.container.internal.BaseLocalObject.__WL_postInvokeTxRetry(BaseLocalObject.java:202) 
    at weblogic.ejb.container.internal.SessionLocalMethodInvoker.invoke(SessionLocalMethodInvoker.java:44) 

답변

0

: distributed transaction waiting for a lock 아마 당신이 의 EntityManager (EM)의 다른 인스턴스가 또는 미트되지 않은 또는 TRGT_TABLE에서 작업하는 거래을 다시 풀려 또는 SRC_TABLE 테이블 또는 데이터베이스의 해당 세션에서 사용 중임