dev@glassfish.java.net

Problems with REMOTE session bean and LOCAL session bean

From: Dyego Souza Dantas Leal <dyego.leal_at_gmail.com>
Date: Wed, 28 Jun 2006 12:15:35 -0300

I have two Enterprise Applications , the files are : user.ear and group.ear


the group.ear call a Bean inside user.ear ( an entity )

in group.ear

User us = getUser(IdOfUser);

group.setUser(us);

em.persist(group);

my annotations in class User and Group is:


@Stateless
@TransactionManagement(TransactionManagementType.CONTAINER)
@TransactionAttribute(TransactionAttributeType.REQUIRED)


After this... i get an expcetion:


PS: My Database is MySQL and resourceconf is:

group.ear

<?xml version="1.0" encoding="UTF-8"?>
<resources>
  <jdbc-connection-pool allow-non-component-callers="false"
connection-validation-method="auto-commit"
datasource-classname="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource"
fail-all-connections="false" idle-timeout-in-seconds="300"
is-connection-validation-required="false"
is-isolation-level-guaranteed="true" max-pool-size="32"
max-wait-time-in-millis="60000" name="document5Connection"
non-transactional-connections="false" pool-resize-quantity="2"
res-type="javax.sql.DataSource" steady-pool-size="8">
    <property name="URL" value="jdbc:mysql://192.168.0.89/group"/>
    <property name="User" value="root"/>
    <property name="Password" value=""/>
  </jdbc-connection-pool>
</resources>

user.ear

<?xml version="1.0" encoding="UTF-8"?>
<resources>

 <jdbc-connection-pool allow-non-component-callers="false"
connection-validation-method="auto-commit"
datasource-classname="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource"
fail-all-connections="false" idle-timeout-in-seconds="300"
is-connection-validation-required="false"
is-isolation-level-guaranteed="true" max-pool-size="32"
max-wait-time-in-millis="60000" name="escribaUserConnection"
non-transactional-connections="false" pool-resize-quantity="2"
res-type="javax.sql.DataSource" steady-pool-size="8">
    <property name="URL" value="jdbc:mysql://192.168.0.89:3306/user"/>
    <property name="User" value="root"/>
    <property name="Password" value=""/>
  </jdbc-connection-pool>
</resources>



[#|2006-06-28T12:10:40.143-0300|SEVERE|sun-appserver-pe9.1|javax.enterprise.resource.resourceadapter|_ThreadID=18;_ThreadName=p:
thread-pool-1; w:
6;_RequestID=0c7dd8fb-ee9a-435c-aba4-02077fe1655a;|RAR5027:Unexpected
exception in resource pooling
java.lang.IllegalStateException: Local transaction already has 1 non-XA
Resource: cannot add more resources.
        at
com.sun.enterprise.distributedtx.J2EETransactionManagerOpt.enlistResource(J2EETransactionManagerOpt.java:111)
        at
com.sun.enterprise.resource.SystemResourceManagerImpl.enlistResource(SystemResourceManagerImpl.java:87)
        at
com.sun.enterprise.resource.PoolManagerImpl.getResource(PoolManagerImpl.java:214)
        at
com.sun.enterprise.connectors.ConnectionManagerImpl.internalGetConnection(ConnectionManagerImpl.java:312)
        at
com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:176)
        at
com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:152)
        at
com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:145)
        at com.sun.gjc.spi.DataSource.getConnection(DataSource.java:93)
        at
org.hibernate.connection.DatasourceConnectionProvider.getConnection(DatasourceConnectionProvider.java:69)
        at
org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:417)
        at
org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
        at
org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:139)
        at
org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1561)
        at org.hibernate.loader.Loader.doQuery(Loader.java:661)
        at
org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
        at org.hibernate.loader.Loader.loadEntity(Loader.java:1785)
        at
org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:48)
        at
org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:42)
        at
org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:2821)
        at
org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:370)
        at
org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:351)
        at
org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:122)
        at
org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:178)
        at
org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:86)
        at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:871)
        at org.hibernate.impl.SessionImpl.get(SessionImpl.java:808)
        at
org.hibernate.event.def.DefaultMergeEventListener.entityIsDetached(DefaultMergeEventListener.java:208)
        at
org.hibernate.event.def.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:99)
        at
org.hibernate.event.def.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:51)
        at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:679)
        at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:663)
        at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:667)
        at
org.hibernate.ejb.AbstractEntityManagerImpl.merge(AbstractEntityManagerImpl.java:201)
        at
com.sun.enterprise.util.EntityManagerWrapper.merge(EntityManagerWrapper.java:224)
        at
br.com.escriba.document5.session.TabelaCustaSessionBean.verificaCadastroTabela(TabelaCustaSessionBean.java:400)
        at
br.com.escriba.document5.session.TabelaCustaSessionBean.addTabela(TabelaCustaSessionBean.java:67)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at
com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1050)
        at
com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:165)
        at
com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2766)
        at
com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:3847)
        at
com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:190)
        at
com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:67)
        at $Proxy81.addTabela(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at
com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:121)
        at
com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:650)
        at
com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:193)
        at
com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1705)
        at
com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1565)
        at
com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:947)
        at
com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:178)
        at
com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:717)
        at
com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.dispatch(SocketOrChannelConnectionImpl.java:473)
        at
com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.doWork(SocketOrChannelConnectionImpl.java:1270)
        at
com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:479)
|#]

[#|2006-06-28T12:10:40.177-0300|WARNING|sun-appserver-pe9.1|javax.enterprise.resource.resourceadapter|_ThreadID=18;_ThreadName=p:
thread-pool-1; w:
6;_RequestID=0c7dd8fb-ee9a-435c-aba4-02077fe1655a;|poolmgr.err_enlisting_res_in_getconn|#]

[#|2006-06-28T12:10:40.180-0300|WARNING|sun-appserver-pe9.1|javax.enterprise.resource.resourceadapter|_ThreadID=18;_ThreadName=p:
thread-pool-1; w: 6;java.lang.IllegalStateException: Local transaction
already has 1 non-XA Resource: cannot add more resources.
;_RequestID=0c7dd8fb-ee9a-435c-aba4-02077fe1655a;|RAR5117 : Failed to
obtain/create connection. Reason : java.lang.IllegalStateException:
Local transaction already has 1 non-XA Resource: cannot add more
resources. |#]

[#|2006-06-28T12:10:40.184-0300|WARNING|sun-appserver-pe9.1|javax.enterprise.resource.resourceadapter|_ThreadID=18;_ThreadName=p:
thread-pool-1; w: 6;Error in allocating a connection. Cause:
java.lang.IllegalStateException: Local transaction already has 1 non-XA
Resource: cannot add more resources.
;_RequestID=0c7dd8fb-ee9a-435c-aba4-02077fe1655a;|RAR5114 : Error
allocating connection : [Error in allocating a connection. Cause:
java.lang.IllegalStateException: Local transaction already has 1 non-XA
Resource: cannot add more resources. ]|#]




-- 
-------------------------------------------------------------------------
++  Dyego Souza Dantas Leal   ++           Dep. Desenvolvimento   -------------------------------------------------------------------------
               E S C R I B A   I N F O R M A T I C A
        ***        http://javacoffe.blogspot.com        ***
-------------------------------------------------------------------------
The only stupid question is the unasked one (somewhere in Linux's HowTo)
Linux registred user : #230601
--                                        ICQ   : 1647350
$ look into "my eyes"                     Phone : +55 041 2106-1212    
look: cannot open my eyes                 Fax   : +55 041 3296-6640     -------------------------------------------------------------------------
             Reply: dyego_at_escriba.com.br