2012-07-25 3 views
0

JBoss 4.0.4 GA를 응용 프로그램 서버로 사용하고 EJB 2.x를 코딩 논리로 사용하고 Mysql 5.1을 백엔드로 사용하고 있습니다. 나는 최근에 EJB와 함께 JDBC 쿼리를 소개했기 때문에 커밋 - 옵션"B"으로 바 꾸었습니다. 내 EJB 코드 inturn은 MySql의 저장 프로 시저를 호출하고 CallableStatement를 사용하여 저장 프로 시저를 실행합니다. 테이블과 jboss 데이터 소스를 위해 MySQL에서 Innodb 엔진을 사용하고 있습니다. 사용하는 구성 중 가장 간단한 것입니다. org.jboss.resource.connectionmanager.JBossLocalXAException :에 의한jdbc로 JBoss 트랜잭션 롤백

: 나는 클라이언트를 통해 EJB 방법을 실행할 때 나는 다음과 같은 예외가 얻을 지역 텍사스를 범하지 수를; - 중첩 된 던질 수 : (org.jboss.resource.JBossResourceException :의 SQLException - 중첩 된 던질 수 : (java.sql.SQLException의 : 연결이 닫힌 후 사용할 수 없음 작업).) org.jboss.resource.connectionmanager.TxConnectionManager의 $에서 LocalXAResource.commit org.jboss.tm.TransactionImpl.commitResources에서 org.jboss.tm.TransactionImpl $ Resource.commit (TransactionImpl.java:2253) 에서 (TxConnectionManager.java:912) (TransactionImpl.java:1784) org.jboss.tm.TransactionImpl.commit (TransactionImpl.java:340)에서 ... 29 이상

의해 발생 : org.jboss.resource.JBossResourceExce ption : SQLException; - 중첩 된 throw 가능 객체 (java.sql.SQLException의 : 연결이 닫힌 후 어떤 작업이 허용되지 않습니다.) org.jboss.resource.adapter.jdbc.BaseWrapperManagedConnection.checkException (BaseWrapperManagedConnection.java:636) org.jboss에서 에서. org.jboss.resource.connectionmanager.TxConnectionManager $ LocalXAResource.commit (TxConnectionManager.java:905) ...에서 resource.adapter.jdbc.local.LocalManagedConnection.commit (LocalManagedConnection.java:73) 보다 32

발생 원인 : java.sql.SQLException : 연결을 닫은 후 작업을 수행 할 수 없습니다. com.mysql.jdbc.Connection.checkClosed (Connection.java:1842) com.mysql.jdbc.Connection.commit (Connection.java:2154) at org.jboss.resource.adapter.jdbc.local. LocalManagedConnection.commit (LocalManagedConnection.java:69) 는 ...

답변

0

더 (33) 내가 저장 프로 시저 권한의 문제이고,이 문제를 해결했다. 데이터 소스는 저장 프로 시저에 대한 권한이없는 사용자로 구성되었습니다. 올바른 권한으로 테스트 한 후 코드가 작동하고 트랜잭션이 정상적으로 작동합니다. 나는 정상적인 JDBC 연결 (데이터 소스를 사용하지 않음)로 저장 프로 시저를 실행하려고 시도했다. 이 단계는 나에게 내가 액세스 권한에 대해 알게 된 널 포인터 예외를 주었다.

지난 게시와 함께 제출하지 않은 예외 "The null"의 긴 stacktrace에 단서가 하나 있지만 데이터 소스 연결에서 위와 동일하게 제안했습니다. 도움을 주려고하는 사람 덕분입니다. 나는 이것이 미래에 다른 누군가가 나를 위해서 이상한 실수가되기를 바랍니다.

org.jboss.tm.JBossTransactionRolledbackException: ***null***; nested exception is: 
org.jboss.tm.JBossRollbackException: Unable to commit, tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=serverip/13308, BranchQual=, localId=13308] status=STATUS_NO_TRANSACTION; - nested throwable: (org.jboss.resource.connectionmanager.JBossLocalXAException: could not commit local tx; - nested throwable: (org.jboss.resource.JBossResourceException: SQLException; - nested throwable: (java.sql.SQLException: No operations allowed after connection closed.))); - nested throwable: (org.jboss.tm.JBossRollbackException: Unable to commit, tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=serverip/13308, BranchQual=, localId=13308] status=STATUS_NO_TRANSACTION; - nested throwable: (org.jboss.resource.connectionmanager.JBossLocalXAException: could not commit local tx; - nested throwable: (org.jboss.resource.JBossResourceException: SQLException; - nested throwable: (java.sql.SQLException: No operations allowed after connection closed.)))) 
at org.jboss.ejb.plugins.TxInterceptorCMT.throwJBossException(TxInterceptorCMT.java:569) 
at org.jboss.ejb.plugins.TxInterceptorCMT.endTransaction(TxInterceptorCMT.java:506) 
at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:361) 
at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:181) 
at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:168) 
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:205) 
at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:136) 
at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:648) 
at org.jboss.ejb.Container.invoke(Container.java:954) 
at sun.reflect.GeneratedMethodAccessor109.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
at java.lang.reflect.Method.invoke(Unknown Source) 
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) 
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) 
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86) 
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) 
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) 
at org.jboss.invocation.jrmp.server.JRMPInvoker$MBeanServerAction.invoke(JRMPInvoker.java:819) 
at org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:420) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
at java.lang.reflect.Method.invoke(Unknown Source) 
at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source) 
at sun.rmi.transport.Transport$1.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at sun.rmi.transport.Transport.serviceCall(Unknown Source) 
at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source) 
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source) 
at java.lang.Thread.run(Unknown Source)