----- Original Message -----
Sent: Tuesday, April 24, 2001 8:19 AM
Subject: RE: Problem when using two clients..

Regis Le Brettevillois
CTO
LIBeLIS
http://www.libelis.com

-----Message d'origine-----
De : [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]De la part de Mohamed Boutkhil
Envoy� : vendredi 20 avril 2001 11:44
� : [EMAIL PROTECTED]
Objet : Problem when using two clients..

Hello,
I have written a little application ( compute surface and store in database) to test jonas performance. a session statefull bean handles two others beans:
[Regis Le Brettevillois] Which JOnAS release do you use?
[Mohamed Boutkhil]I'm using both 2.2.2 and 2.2.7 version with rmi. I observe the same behavior.
 
    - a stateless which computes surface
    - and entitybean which saves the result.
the client call statefull bean method in loop. it works fine. but when two clients carry out it in the same time, the server stops to execute client request from the second or third loop.
[Regis Le Brettevillois] Could you give more information about the behavior? Are the both clients working on the same entity bean? Do you have traces where the server is stopped?
[Mohamed Boutkhil] Here are more explaination about the behavior:
    -each client calls the statefull bean to have the circle (or sphere) surface with a variable radius.
    - then the statefull bean checks in database (by using the findByPrimaryKeys() method of entityhome object) if the surface was already computed.
    - if yes, the result is return to the client.
    - if no, the statefull bean computes the surface with the stateless bean help, stores the result in database (by using the create method of entityhome object) and gives the result to the client.
Note: I have tried to modify the transaction attribute without changing.
Here is two different logs.
Server crashing with inconsistency error:

************************************************************************************************************************

RMI TCP Connection(9)-192.168.1.7 : 0:30:36:421 ConnectionImpl.prepareStatement(String select reference from SurfaceTable where reference=?)

RMI TCP Connection(9)-192.168.1.7 select reference from SurfaceTable where reference = sphere21

RMI TCP Connection(9)-192.168.1.7 : 0:30:36:423 Object not found in database (findByPrimaryKey)

RMI TCP Connection(9)-192.168.1.7 : 0:30:36:423 ConnectionImpl.close()

RMI TCP Connection(9)-192.168.1.7 : 0:30:36:423 XAConnectionImpl.notifyClose()

RMI TCP Connection(9)-192.168.1.7 : 0:30:36:423 ConnectionManager.connectionClosed(ConnectionEvent)

RMI TCP Connection(9)-192.168.1.7 : 0:30:36:423 Pool: keep the Connection for this tx

RMI TCP Connection(9)-192.168.1.7 : 0:30:36:423 ------------ ConnectionPool -----------------

RMI TCP Connection(9)-192.168.1.7 : 0:30:36:423 Nb of item not associated with tx = 0

RMI TCP Connection(9)-192.168.1.7 : 0:30:36:423 +++ Hashtable XAC -> item:

RMI TCP Connection(9)-192.168.1.7 : 0:30:36:423 1 open=0 tx=1003863896488044

RMI TCP Connection(9)-192.168.1.7 : 0:30:36:423 0 open=0 tx=1003863896421481

RMI TCP Connection(9)-192.168.1.7 : 0:30:36:465 +++ FreeList:

RMI TCP Connection(9)-192.168.1.7 : 0:30:36:465 +++ Associated with tx:

RMI TCP Connection(9)-192.168.1.7 : 0:30:36:465 0 open=0 tx=1003863896421481

RMI TCP Connection(9)-192.168.1.7 : 0:30:36:465 Pool: Inconsistency detected !

*******************************************************************************************************************************
Server stops:
 

RMI TCP Connection(6)-192.168.1.7 : 0:31:43:347 EntityContextImpl.storeIfModified

RMI TCP Connection(6)-192.168.1.7 : 0:31:43:347 JOnASStoreSurfaceContBean.ejbStore()

RMI TCP Connection(6)-192.168.1.7 : 0:31:43:348 JOnASStoreSurfaceContBean.isModifiedData() --> true

RMI TCP Connection(6)-192.168.1.7 : 0:31:43:348 StoreSurfaceBean ejbStore

RMI TCP Connection(6)-192.168.1.7 : 0:31:43:348 EntityContextImpl.getEJBObject

RMI TCP Connection(6)-192.168.1.7 : 0:31:43:348 JEntityHome.getDataSource

RMI TCP Connection(6)-192.168.1.7 : 0:31:43:348 ConnectionManager.getConnection()

RMI TCP Connection(6)-192.168.1.7 : 0:31:43:348 ConnectionManager.getConnection()

RMI TCP Connection(6)-192.168.1.7 : 0:31:43:348 Tx = 1003863964798987

RMI TCP Connection(6)-192.168.1.7 : 0:31:43:348 Pool: reuse a Connection for Tx = 1003863964798987

RMI TCP Connection(6)-192.168.1.7 : 0:31:43:348 ------------ ConnectionPool -----------------

RMI TCP Connection(6)-192.168.1.7 : 0:31:43:348 Nb of item not associated with tx = 0

RMI TCP Connection(6)-192.168.1.7 : 0:31:43:348 +++ Hashtable XAC -> item:

RMI TCP Connection(6)-192.168.1.7 : 0:31:43:348 1 open=1 tx=1003863965005837

RMI TCP Connection(6)-192.168.1.7 : 0:31:43:348 0 open=1 tx=1003863964798987

RMI TCP Connection(6)-192.168.1.7 : 0:31:43:348 +++ FreeList:

RMI TCP Connection(6)-192.168.1.7 : 0:31:43:348 +++ Associated with tx:

RMI TCP Connection(6)-192.168.1.7 : 0:31:43:348 1 open=1 tx=1003863965005837

RMI TCP Connection(6)-192.168.1.7 : 0:31:43:348 0 open=1 tx=1003863964798987

RMI TCP Connection(6)-192.168.1.7 : 0:31:43:348 ---------------------------------------------

RMI TCP Connection(6)-192.168.1.7 : 0:31:43:349 ConnectionManager: Reuse an XAConnection from the pool

RMI TCP Connection(6)-192.168.1.7 : 0:31:43:349 XAConnectionImpl.getConnection()

RMI TCP Connection(6)-192.168.1.7 : 0:31:43:349 ConnectionImpl.setAutoCommit(boolean false)

RMI TCP Connection(6)-192.168.1.7 : 0:31:43:349 XAConnectionImpl.getXAResource()

RMI TCP Connection(6)-192.168.1.7 : 0:31:43:349 TransactionImpl.enlistResource(XAResource xares)

RMI TCP Connection(6)-192.168.1.7 : 0:31:43:349 SubCoordinator.addResource(XAResource xares)

RMI TCP Connection(6)-192.168.1.7 : 0:31:43:349 XAResource ---> isSameRM = true org.objectweb.jonas.jdbc_xa.XAResourceImpl@bf072

RMI TCP Connection(6)-192.168.1.7 : 0:31:43:349 XAResource ---> START org.objectweb.jonas.jdbc_xa.XAResourceImpl@bf072

RMI TCP Connection(6)-192.168.1.7 : 0:31:43:349 Xid = 1003863964798987

RMI TCP Connection(6)-192.168.1.7 : 0:31:43:349 ConnectionImpl.prepareStatement(String update SurfaceTable set rayon=?, digits=?, surface=? where reference=?)

RMI TCP Connection(6)-192.168.1.7 update SurfaceTable set rayon = 2 , digits = 10 , surface = 50.2654824576 where reference = sphere2

PoolKeeper : 0:32:27:91 ------------ ConnectionPool -----------------

PoolKeeper : 0:32:27:91 Nb of item not associated with tx = 0

PoolKeeper : 0:32:27:91 +++ Hashtable XAC -> item:

PoolKeeper : 0:32:27:91 1 open=1 tx=1003863965005837

PoolKeeper : 0:32:27:91 0 open=1 tx=1003863964798987

PoolKeeper : 0:32:27:91 +++ FreeList:

PoolKeeper : 0:32:27:92 +++ Associated with tx:

PoolKeeper : 0:32:27:92 1 open=1 tx=1003863965005837

PoolKeeper : 0:32:27:92 0 open=1 tx=1003863964798987

PoolKeeper : 0:32:27:92 ---------------------------------------------

******************************************************End of log**************************************************************
 -
When the server stops, I have tried to launch another client and the server stops again. And the poolkeeper contain another tx open. I have set transaction timeout to 1 second (in jonas.properties) but nothing change. It seems the stop occurs after the ejbStore method call
I hope there is not too much log.
Mohamed.Boutkhil
 
 
 If I remove entity bean from the execution process, it works fine. therefore my entity bean management seems not correct. the session bean which uses entity bean never removes it. it just call findByPrimaryKeys() and create() methods. I don't know how handle that.
[Regis Le Brettevillois] You don't need to manage the entity bean life cycle, it's the container's responsability.
 
Thanks for help..
Mohamed Boukthil

Reply via email to