[
https://issues.jboss.org/browse/AS7-2562?page=com.atlassian.jira.plugin.s...
]
Scott Marlow commented on AS7-2562:
-----------------------------------
Next time, please open a forum thread for discussion. This does seem like some type of
bug, but that isn't clear yet. forum thread link is
http://community.jboss.org/community/jbossas/post!input.jspa?containerTyp...
Could you attach the server.log, that should be easier to read. Might also need to enable
TRACE logging (it will be very noisy to have trace for everything but we can grep or
search through the log...).
Lets try to pull some facts out of the exception and go from there.
1. I see this little nugget of information in the exception.
xaResource=org.jboss.jca.core.tx.jbossts.LocalXAResourceImpl
LocalXAResourceImpl appears to be a XA wrapper for a non-XA datasource. Since non-XA
datasources only support one phase (commit is supported but not prepare). Most
transaction managers support enlisting a non-xa datasource and arrange for its prepare
method to be called at the end of the second phase. The limitation is that only one
non-xa datasource can be enrolled. This must be for the non-xa datasource in your
application. But, is the other datasource XA?
This might require the super hero strength of Byteman to unwravel!
http://community.jboss.org/wiki/ABytemanTutorial
Lets hope the trace enabled server.log contains more information.
Exception: Could not enlist in transaction on entering meta-aware
object. Exception occurs although XADatasource is defined
---------------------------------------------------------------------------------------------------------------------------
Key: AS7-2562
URL:
https://issues.jboss.org/browse/AS7-2562
Project: Application Server 7
Issue Type: Bug
Components: JCA, JPA / Hibernate, Server
Affects Versions: 7.1.0.Alpha1
Environment: MacOS Lion & CentOS 5.5
Reporter: Jens Mander
Assignee: Scott Marlow
Attachments: Thunder.tar.gz
I configured some XA-Datasources in $JBOSS_HOME/standalone/configuration/standalone.xml.
Now I tried created an EAR-File with two EJBs in it (Module1.jar / Module2.jar). Both
modules define a persistence.xml and point to differed datasources. Now Module2.Ejb2 is
injected into Module1.Ejb1. Ejb1 starts the transaction and persists data to the defined
datasource. Afterwards (in the same transaction) a transactional method of Ejb2 is called.
Ejb2 also persists data to it's datasource. I guess that's why I have to configure
a XA-datasource. Unfortunately the container throws an exception if the method of Ejb2
gets called. This snippet we hopefully point out what I tried to explain.
Module1.Ejb1
=============
@Singleton
@Startup
public class Ejb1 {
@PersistenceContext
EntityManager em;
@EJB
Ejb2 ejb2;
@PostConstruct
void persistAndLoad() {
em.persist(new EntityClass(42L, "Lightning"));
em.flush();
EntityClass e= em.find(EntityClass.class, 42L);
ejb2.doLogging(e + " persisted");
}
// ...
}
Module2.Ejb2
============
@Stateless
public class Ejb2 {
@PersistenceContext
EntityManager em;
public void doLogging(String s) {
em.persist(new Ejb2EntityClass(e));
}
}
If I deploy the ear-file which includes these two modules. I receive the following
exception when the container invokes the method annotated with @PostConstruct.
471 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-3) MSC00001: Failed to start
service
jboss.deployment.subunit."thunder-ear.ear"."Thunder-ejb.jar".component.ThunderBean.START:
org.jboss.msc.service.StartException in service
jboss.deployment.subunit."thunder-ear.ear"."Thunder-ejb.jar".component.ThunderBean.START:
Failed to start service
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1780)
[jboss-msc-1.0.1.GA.jar:1.0.1.GA]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
[:1.6.0_26]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
[:1.6.0_26]
at java.lang.Thread.run(Thread.java:680) [:1.6.0_26]
Caused by: java.lang.IllegalStateException: Failed to construct component instance
at
org.jboss.as.ee.component.BasicComponent.constructComponentInstance(BasicComponent.java:156)
at org.jboss.as.ee.component.BasicComponent.createInstance(BasicComponent.java:78)
at
org.jboss.as.ejb3.component.singleton.SingletonComponent.getComponentInstance(SingletonComponent.java:138)
at
org.jboss.as.ejb3.component.singleton.SingletonComponent.start(SingletonComponent.java:151)
at org.jboss.as.ee.component.ComponentStartService.start(ComponentStartService.java:44)
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1824)
[jboss-msc-1.0.1.GA.jar:1.0.1.GA]
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1759)
[jboss-msc-1.0.1.GA.jar:1.0.1.GA]
... 3 more
Caused by: javax.ejb.EJBTransactionRolledbackException: Transaction rolled back
at
org.jboss.as.ejb3.tx.CMTTxInterceptor.handleEndTransactionException(CMTTxInterceptor.java:112)
at org.jboss.as.ejb3.tx.CMTTxInterceptor.endTransaction(CMTTxInterceptor.java:92)
at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:220)
at org.jboss.as.ejb3.tx.CMTTxInterceptor.requiresNew(CMTTxInterceptor.java:323)
at
org.jboss.as.ejb3.tx.SingletonLifecycleCMTTxInterceptor.processInvocation(SingletonLifecycleCMTTxInterceptor.java:56)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
at
org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
at org.jboss.as.ee.component.TCCLInterceptor.processInvocation(TCCLInterceptor.java:45)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
at
org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
at
org.jboss.as.ee.component.BasicComponent.constructComponentInstance(BasicComponent.java:154)
... 9 more
Caused by: javax.transaction.RollbackException: Could not commit transaction.
at
com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1171)
at
com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:119)
at
com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:75)
at org.jboss.as.ejb3.tx.CMTTxInterceptor.endTransaction(CMTTxInterceptor.java:89)
... 19 more
Caused by: javax.persistence.PersistenceException:
org.hibernate.exception.GenericJDBCException: Could not open connection
at
org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1353)
at
org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1281)
at
org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1287)
at
org.hibernate.ejb.AbstractEntityManagerImpl$CallbackExceptionMapperImpl.mapManagedFlushFailure(AbstractEntityManagerImpl.java:1463)
at
org.hibernate.engine.transaction.synchronization.internal.SynchronizationCallbackCoordinatorImpl.beforeCompletion(SynchronizationCallbackCoordinatorImpl.java:109)
at
org.hibernate.engine.transaction.synchronization.internal.RegisteredSynchronization.beforeCompletion(RegisteredSynchronization.java:53)
at
com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple.beforeCompletion(SynchronizationImple.java:97)
at
com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.beforeCompletion(TwoPhaseCoordinator.java:274)
at
com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoordinator.java:94)
at com.arjuna.ats.arjuna.AtomicAction.commit(AtomicAction.java:159)
at
com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1159)
... 22 more
Caused by: org.hibernate.exception.GenericJDBCException: Could not open connection
at
org.hibernate.exception.internal.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:148)
at
org.hibernate.exception.internal.SQLStateConverter.convert(SQLStateConverter.java:136)
at
org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125)
at
org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:110)
at
org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:306)
at
org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.getConnection(LogicalConnectionImpl.java:169)
at
org.hibernate.engine.jdbc.internal.proxy.ConnectionProxyHandler.extractPhysicalConnection(ConnectionProxyHandler.java:82)
at
org.hibernate.engine.jdbc.internal.proxy.ConnectionProxyHandler.continueInvocation(ConnectionProxyHandler.java:138)
at
org.hibernate.engine.jdbc.internal.proxy.AbstractProxyHandler.invoke(AbstractProxyHandler.java:81)
at $Proxy20.prepareStatement(Unknown Source) at
org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl.buildBatchStatement(AbstractBatchImpl.java:144)
at
org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl.getBatchStatement(AbstractBatchImpl.java:127)
at
org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2827)
at
org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3290)
at org.hibernate.action.internal.EntityInsertAction.execute(EntityInsertAction.java:80)
at org.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:273)
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:265)
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:186)
at
org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:337)
at
org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50)
at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1084)
at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:319)
at
org.hibernate.engine.transaction.synchronization.internal.SynchronizationCallbackCoordinatorImpl.beforeCompletion(SynchronizationCallbackCoordinatorImpl.java:104)
... 28 more
Caused by: java.sql.SQLException: javax.resource.ResourceException: IJ000457: Unchecked
throwable in managedConnectionReconnected()
cl=org.jboss.jca.core.connectionmanager.listener.TxConnectionListener@1f77497[state=NORMAL
managed connection=org.jboss.jca.adapters.jdbc.local.LocalManagedConnection@4528055b
connection handles=0 lastUse=1320851513463 trackByTx=false
pool=org.jboss.jca.core.connectionmanager.pool.strategy.OnePool@5f0e6817 pool internal
context=org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreArrayListManagedConnectionPool@10f946f9
xaResource=org.jboss.jca.core.tx.jbossts.LocalXAResourceImpl@7cec59b txSync=null]
at
org.jboss.jca.adapters.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:137)
at
org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider.getConnection(InjectedDataSourceConnectionProvider.java:67)
at
org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:276)
at
org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:299)
... 46 more
Caused by: javax.resource.ResourceException: IJ000457: Unchecked throwable in
managedConnectionReconnected()
cl=org.jboss.jca.core.connectionmanager.listener.TxConnectionListener@1f77497[state=NORMAL
managed connection=org.jboss.jca.adapters.jdbc.local.LocalManagedConnection@4528055b
connection handles=0 lastUse=1320851513463 trackByTx=false
pool=org.jboss.jca.core.connectionmanager.pool.strategy.OnePool@5f0e6817 pool internal
context=org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreArrayListManagedConnectionPool@10f946f9
xaResource=org.jboss.jca.core.tx.jbossts.LocalXAResourceImpl@7cec59b txSync=null]
at
org.jboss.jca.core.connectionmanager.AbstractConnectionManager.reconnectManagedConnection(AbstractConnectionManager.java:588)
at
org.jboss.jca.core.connectionmanager.AbstractConnectionManager.allocateConnection(AbstractConnectionManager.java:451)
at
org.jboss.jca.adapters.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:129)
... 49 more
Caused by: javax.resource.ResourceException: Could not enlist in transaction on entering
meta-aware object
at
org.jboss.jca.core.connectionmanager.tx.TxConnectionManagerImpl.managedConnectionReconnected(TxConnectionManagerImpl.java:430)
at
org.jboss.jca.core.connectionmanager.AbstractConnectionManager.reconnectManagedConnection(AbstractConnectionManager.java:583)
... 51 more
Caused by: javax.transaction.SystemException: IJ000356: Failed to enlist:
java.lang.Throwable: Unabled to enlist resource, see the previous warnings.
tx=TransactionImple < ac, BasicAction: 0:ffffc0a80257:5ebf8653:4eba95e7:1b status:
ActionStatus.ABORT_ONLY >
at
org.jboss.jca.core.connectionmanager.listener.TxConnectionListener$TransactionSynchronization.checkEnlisted(TxConnectionListener.java:552)
at
org.jboss.jca.core.connectionmanager.listener.TxConnectionListener.enlist(TxConnectionListener.java:282)
at
org.jboss.jca.core.connectionmanager.tx.TxConnectionManagerImpl.managedConnectionReconnected(TxConnectionManagerImpl.java:423)
... 52 more
I also tried it on AS7.0.2 and it works so this issue came in later. Unfortunately my
problem is a bit more complex than just that because I am depended on a solved issue
AS7-2497. That's why I tried the Alpha2
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see:
http://www.atlassian.com/software/jira