Hi There,
I used the TreeCache as MBean in Jboss 3.2.4 with JbossCache (cvs head).
There seems to be a problem using UserTransactions in this config.
The cache is configured with the following params:
| <attribute
name="TransactionManagerLookupClass">org.jboss.cache.JBossTransactionManagerLookup</attribute>
| <attribute name="IsolationLevel">SERIALIZABLE</attribute>
| <attribute name="CacheMode">REPL_SYNC</attribute>
|
I have modified the Bank-Example and pack it into a Stateless EJB using
few "invokes" to call the TreeCacheMBean ("put" and "get" only). A little
junit-test like ConcurrentUnitTestCase.java to test it (calls the "txTest"-
Method in the bean via RMI).
And that's the problem:
It seems the SERIALIZABLE - Option in the Cache- Config does not work.
I extend the Debug- log from Jboss- Cache with the Thread.getCurrentThread() -
Method and found that more then one threads took access on one Node
at one Time. There seems to be no isolation between the different transactions.
I could not found problems in my code. Is there a bug in JBossCache?
The used EJB as follow:
| package samples;
|
| import javax.ejb.CreateException;
| import javax.management.ObjectName;
| import javax.management.MBeanServer;
| import javax.transaction.UserTransaction;
|
| import org.jboss.cache.lock.LockingException;
| import org.jboss.cache.lock.TimeoutException;
| import org.jboss.mx.util.MBeanServerLocator;
|
| import org.apache.log4j.*;
|
| /**
| * @ejb.bean
| * type="Stateless"
| * name="JBossCacheTest"
| * jndi-name="ejb/JBossCacheTest"
| * local-jndi-name="ejb/local/JBossCacheTest"
| * view-type="both"
| * transaction-type="Bean"
| *
| * @ejb.interface generate="local,remote"
| * extends="javax.ejb.EJBObject"
| * local-extends="javax.ejb.EJBLocalObject"
| * remote-pattern="JBossCacheTest"
| * local-pattern="JBossCacheTestLocal"
| *
| * @ejb.home generate="true"
| * extends="javax.ejb.EJBHome"
| * local-extends="javax.ejb.EJBLocalHome"
| * remote-pattern="JBossCacheTestHome"
| * local-pattern="JBossCacheTestLocalHome"
| *
| * @ejb.transaction type="Supports"
| *
| * @jboss.container-configuration name="Standard Stateless SessionBean"
| */
| public class JBossCacheTestEJB implements javax.ejb.SessionBean,
javax.transaction.Status
| {
| MBeanServer server = null;
| ObjectName cacheService = null;
| static final String OBJECT_NAME = "jboss.cache:service=TreeCache";
| private static Logger logger_ = Logger.getLogger(JBossCacheTestEJB.class);
|
| final String NODE = "/cachetest";
| final int ROLLBACK_CHANCE = 100;
|
| static String customer[] = {"cu1", "cu2", "cu3"};
|
| public javax.ejb.SessionContext sctx;
|
| public void ejbCreate()
| {
| }
|
| public void ejbActivate () throws javax.ejb.EJBException,
java.rmi.RemoteException
| {
| }
|
| public void ejbPassivate () throws javax.ejb.EJBException,
java.rmi.RemoteException
| {
| }
|
| public void ejbRemove () throws javax.ejb.EJBException, java.rmi.RemoteException
| {
| }
|
| public void setSessionContext (javax.ejb.SessionContext sessionContext) throws
javax.ejb.EJBException, java.rmi.RemoteException
| {
| try
| {
| sctx = sessionContext;
| }
| catch(Exception e)
| {
| e.printStackTrace();
| }
| }
|
| /**
| * @ejb.interface-method
| */
| public int txTest(int iTestLoops)
| {
| int iErr = 0;
| try
| {
| getTreeCacheMBean();
| UserTransaction tx = sctx.getUserTransaction();
| out("got utx (" + tx + ")");
|
| // initializing tree if iTestLoops == 0 or nodes don't exists
| tx.begin();
| if(this.get(NODE) == null || iTestLoops == 0)
| {
| this.put(NODE, "cu1", new Integer(1000));
| this.put(NODE, "cu2", new Integer(1000));
| this.put(NODE, "cu3", new Integer(1000));
| }
| tx.commit();
|
| runTest(iTestLoops);
| }
| catch(Exception e)
| {
| e.printStackTrace();
| iErr = -2;
| }
| return iErr;
| }
|
| /**
| *
| */
| private void runTest(int iTestLoops)
| {
| int count = 3;
| UserTransaction tx = null;
| try
| {
| boolean again = false;
| int src = 0;
| int dst = 0;
| int amo = 0;
| int cnt =0;
| while(cnt < iTestLoops)
| {
| tx = sctx.getUserTransaction();
| // out("got utx (" + tx + ")");
|
| if(!again)
| {
| src = (int) (Math.random()*count);
| dst = (int) (Math.random()*(count-1));
| amo =1+ (int) (Math.random()*20);
| if(dst>=src) dst++;
| }
|
| try
| {
| tx.begin();
| int sum = deposit(customer[src], customer[dst], amo, tx);
|
| if(tx.getStatus() == STATUS_ACTIVE)
| {
| if(sum != 3000) throw new Exception("sum failure (sum = " + sum
+ ", cnt = " + cnt + ")");
| tx.commit();
| }
| else /* if(tx.getStatus() == STATUS_MARKED_ROLLBACK) */
| tx.rollback();
| again = false;
| }
| catch(Throwable e)
| {
| tx.rollback();
| e.printStackTrace();
| again = true;
| }
| cnt++;
| }
| }
| catch (Throwable t)
| {
| t.printStackTrace();
| }
| }
|
| /**
| * Posting
| */
| public int deposit(String from, String to, int amount, UserTransaction tx)
throws Exception
| {
| out("deposit("+from+", "+to+", "+amount+") called.");
| try
| {
| int act1, act2;
|
| act1 = ((Integer) this.get(NODE, from)).intValue();
| act2 = ((Integer) this.get(NODE, to)).intValue();
|
| // eventually rollback the transaction
| if((int)(Math.random() * ROLLBACK_CHANCE) == 0)
| {
| out("!!!manually set rollback ("+from+", "+to+", "+amount+").");
| tx.setRollbackOnly();
| throw new Exception("Manually set rollback!");
| }
|
| this.put(NODE, from, new Integer(act1-amount)); // debit
| this.put(NODE, to, new Integer(act2+amount)); // credit
| }
| catch(Exception e)
| {
| e.printStackTrace();
| out("exception - rollback ("+from+", "+to+", "+amount+")");
| }
| finally
| {
| // close resources aquired safely
| }
|
| int i0 = ((Integer) this.get(NODE, customer[0])).intValue();
| int i1 = ((Integer) this.get(NODE, customer[1])).intValue();
| int i2 = ((Integer) this.get(NODE, customer[2])).intValue();
|
| int sum = i0 + i1 + i2;
| out("deposit("+from+", "+to+", "+amount+") finished. (sum = " + sum + " = "
+i0 + " + " + i1 + " + " + i2 + ")");
| return sum;
| }
|
| /**
| * retrieving amounts of accounts
| */
| private void out(String s)
| {
| logger_.info("Thread[" + Thread.currentThread() + "]: " + s);
| }
|
| private void getTreeCacheMBean() throws Exception
| {
| try
| {
| cacheService = new ObjectName(OBJECT_NAME);
| server = MBeanServerLocator.locate();
| }
| catch (Exception ex)
| {
| throw new CreateException(ex.toString());
| }
| }
|
| // wrapper methods for MBean calls
| /**
| * @param fqn
| * @param key
| * @return
| * @throws LockingException
| * @throws TimeoutException
| */
| private Object get(String fqn, String key) throws LockingException,
TimeoutException, Exception
| {
| return server.invoke(cacheService, "get",
| new Object[]{fqn, key},
| new String[]{String.class.getName(),
| Object.class.getName()});
| }
|
| /**
| * @param fqn
| * @return
| * @throws LockingException
| * @throws TimeoutException
| */
| private org.jboss.cache.Node get(String fqn) throws LockingException,
TimeoutException, Exception
| {
| return (org.jboss.cache.Node) (server.invoke(cacheService, "get",
| new Object[]{fqn},
| new String[]{String.class.getName()}));
| }
|
| /**
| * @param fqn
| * @param key
| * @param value
| * @throws Exception
| */
| private void put(String fqn, String key, Object value) throws Exception
| {
| Object[] args = {fqn, key, value};
| String[] sig = {String.class.getName(),
| Object.class.getName(),
| Object.class.getName()};
|
| server.invoke(cacheService, "put", args, sig);
| }
| }
|
the code of the tester:
| /*
| *
| * JBoss, the OpenSource J2EE webOS
| *
| * Distributable under LGPL license.
| * See terms of license at gnu.org.
| */
| package samples.test;
|
| import junit.framework.Test;
| import junit.framework.TestCase;
| import junit.framework.TestSuite;
| import org.jboss.cache.TreeCache;
| import org.jboss.cache.lock.IsolationLevel;
| import org.jboss.logging.Logger;
|
| import samples.*;
|
| /**
| * Unit test Remote TreeCache in Application Server
| */
| public class ConcurrentUnitTestCase extends TestCase
| {
| private Logger logger_ = Logger.getLogger(ConcurrentUnitTestCase.class);
|
| public class rmiThread extends Thread
| {
| private JBossCacheTest jbossCacheTest = null;
|
| private void connect(String sServeradressRMI)
| {
| try
| {
| logger_.info("connecting to <" + sServeradressRMI + ">");
|
| java.util.Properties props = new java.util.Properties();
| props.setProperty("java.naming.factory.initial",
"org.jnp.interfaces.NamingContextFactory");
| props.setProperty("java.naming.provider.url", sServeradressRMI);
| props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming");
|
| javax.naming.InitialContext iC = new
javax.naming.InitialContext(props);
| Object home = iC.lookup(JBossCacheTestHome.JNDI_NAME);
| JBossCacheTestHome home_
=(JBossCacheTestHome)javax.rmi.PortableRemoteObject.narrow(home,
JBossCacheTestHome.class);
| jbossCacheTest = home_.create();
| }
| catch(Exception e)
| {
| e.printStackTrace();
| }
| }
|
| public void run()
| {
| try
| {
| connect(System.getProperty("RMITestServer", "localhost:1099"));
| jbossCacheTest.txTest(2000);
| }
| catch(Exception e)
| {
| e.printStackTrace();
| fail(e.toString());
| }
| }
| }
|
| public ConcurrentUnitTestCase(String name)
| {
| super(name);
| }
|
| public void setUp() throws Exception
| {
| super.setUp();
| }
|
| public void tearDown() throws Exception
| {
| super.tearDown();
| }
|
| public void test_1()
| {
| try
| {
| setUp();
| work_();
| }
| catch(Exception e)
| {
| e.printStackTrace();
| fail(e.toString());
| }
| }
|
| private void work_()
| {
| rmiThread one, two, three;
| try
| {
| one = new rmiThread();
| two = new rmiThread();
| three = new rmiThread();
|
| one.start();
| two.start();
| three.start();
|
| one.join();
| two.join();
| three.join();
| }
| catch (Exception e)
| {
| e.printStackTrace();
| fail(e.toString());
| }
| }
|
| void log(String msg)
| {
| logger_.debug(" [" + Thread.currentThread() + "]: " + msg);
| }
|
| public static Test suite()
| {
| return new TestSuite(ConcurrentUnitTestCase.class);
| }
|
| public static void main(String[] args)
| {
| junit.textui.TestRunner.run(suite());
| }
| }
|
and the part of the log that shows overlapping transactions as I understand it:
| ...
| 2004-05-11 17:54:01,409 INFO [samples.JBossCacheTestEJB] Thread[Thread[RMI TCP
Connection(6)-192.168.100.120,5,RMI Runtime]]: deposit(cu3, cu1, 3) called.
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(5)-192.168.100.120,5,RMI Runtime]get(, "/cachetest", cu3, "975, "true")
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(6)-192.168.100.120,5,RMI Runtime]getCurrentTransaction(): registered with
transaction TransactionImpl:XidImpl [FormatId=257, GlobalId=test-pc//60, BranchQual=]
as Synchronization listener with global transaction: <test-pc:4356>:52
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(5)-192.168.100.120,5,RMI Runtime]_put(<test-pc:4356>:50, "/cachetest", cu2,
1044)
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.Node] Thread[RMI TCP
Connection(5)-192.168.100.120,5,RMI Runtime]acquired WL: fqn=/cachetest,
owner=<test-pc:4356>:50, [EMAIL PROTECTED]
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(5)-192.168.100.120,5,RMI Runtime]_put(<test-pc:4356>:50, "/cachetest", cu3,
982)
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.Node] Thread[RMI TCP
Connection(5)-192.168.100.120,5,RMI Runtime]acquired WL: fqn=/cachetest,
owner=<test-pc:4356>:50, [EMAIL PROTECTED]
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(5)-192.168.100.120,5,RMI Runtime]get(, "/cachetest", cu1, "974, "true")
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(5)-192.168.100.120,5,RMI Runtime]get(, "/cachetest", cu2, "1044, "true")
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(5)-192.168.100.120,5,RMI Runtime]get(, "/cachetest", cu3, "982, "true")
| 2004-05-11 17:54:01,409 INFO [samples.JBossCacheTestEJB] Thread[Thread[RMI TCP
Connection(5)-192.168.100.120,5,RMI Runtime]]: deposit(cu2, cu3, 7) finished. (sum =
3000 = 974 + 1044 + 982)
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] runPreparePhase(): run
remote prepare with async mode: false commit: false and coordinator: test-pc:4356
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(5)-192.168.100.120,5,RMI Runtime]callRemoteMethods(): destination list is
empty, discarding call
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(5)-192.168.100.120,5,RMI Runtime]afterCompletion() called (status=COMMITTED)
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(5)-192.168.100.120,5,RMI Runtime]callRemoteMethods(): destination list is
empty, discarding call
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(5)-192.168.100.120,5,RMI Runtime]commit(): called to commit cache with gtx
<test-pc:4356>:50
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(5)-192.168.100.120,5,RMI Runtime]commit(): releasing lock [EMAIL PROTECTED]
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(5)-192.168.100.120,5,RMI Runtime]commit(): remove local transaction key
TransactionImpl:XidImpl [FormatId=257, GlobalId=test-pc//58, BranchQual=]
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(4)-192.168.100.120,5,RMI Runtime]get(, "/cachetest", cu3, "982, "true")
| 2004-05-11 17:54:01,409 INFO [samples.JBossCacheTestEJB] Thread[Thread[RMI TCP
Connection(5)-192.168.100.120,5,RMI Runtime]]: deposit(cu2, cu1, 10) called.
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(4)-192.168.100.120,5,RMI Runtime]get(, "/cachetest", cu2, "1044, "true")
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(5)-192.168.100.120,5,RMI Runtime]getCurrentTransaction(): registered with
transaction TransactionImpl:XidImpl [FormatId=257, GlobalId=test-pc//61, BranchQual=]
as Synchronization listener with global transaction: <test-pc:4356>:53
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(4)-192.168.100.120,5,RMI Runtime]_put(<test-pc:4356>:51, "/cachetest", cu3,
981)
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.Node] Thread[RMI TCP
Connection(4)-192.168.100.120,5,RMI Runtime]acquired WL: fqn=/cachetest,
owner=<test-pc:4356>:51, [EMAIL PROTECTED]
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(4)-192.168.100.120,5,RMI Runtime]_put(<test-pc:4356>:51, "/cachetest", cu2,
1045)
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.Node] Thread[RMI TCP
Connection(4)-192.168.100.120,5,RMI Runtime]acquired WL: fqn=/cachetest,
owner=<test-pc:4356>:51, [EMAIL PROTECTED]
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(4)-192.168.100.120,5,RMI Runtime]get(, "/cachetest", cu1, "974, "true")
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(4)-192.168.100.120,5,RMI Runtime]get(, "/cachetest", cu2, "1045, "true")
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(4)-192.168.100.120,5,RMI Runtime]get(, "/cachetest", cu3, "981, "true")
| 2004-05-11 17:54:01,409 INFO [samples.JBossCacheTestEJB] Thread[Thread[RMI TCP
Connection(4)-192.168.100.120,5,RMI Runtime]]: deposit(cu3, cu2, 1) finished. (sum =
3000 = 974 + 1045 + 981)
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] runPreparePhase(): run
remote prepare with async mode: false commit: false and coordinator: test-pc:4356
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(4)-192.168.100.120,5,RMI Runtime]callRemoteMethods(): destination list is
empty, discarding call
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(4)-192.168.100.120,5,RMI Runtime]afterCompletion() called (status=COMMITTED)
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(4)-192.168.100.120,5,RMI Runtime]callRemoteMethods(): destination list is
empty, discarding call
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(4)-192.168.100.120,5,RMI Runtime]commit(): called to commit cache with gtx
<test-pc:4356>:51
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(4)-192.168.100.120,5,RMI Runtime]commit(): releasing lock [EMAIL PROTECTED]
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(4)-192.168.100.120,5,RMI Runtime]commit(): remove local transaction key
TransactionImpl:XidImpl [FormatId=257, GlobalId=test-pc//59, BranchQual=]
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(6)-192.168.100.120,5,RMI Runtime]get(, "/cachetest", cu3, "981, "true")
| 2004-05-11 17:54:01,409 INFO [samples.JBossCacheTestEJB] Thread[Thread[RMI TCP
Connection(4)-192.168.100.120,5,RMI Runtime]]: deposit(cu3, cu2, 17) called.
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(6)-192.168.100.120,5,RMI Runtime]get(, "/cachetest", cu1, "974, "true")
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(4)-192.168.100.120,5,RMI Runtime]getCurrentTransaction(): registered with
transaction TransactionImpl:XidImpl [FormatId=257, GlobalId=test-pc//62, BranchQual=]
as Synchronization listener with global transaction: <test-pc:4356>:54
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(6)-192.168.100.120,5,RMI Runtime]_put(<test-pc:4356>:52, "/cachetest", cu3,
978)
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.Node] Thread[RMI TCP
Connection(6)-192.168.100.120,5,RMI Runtime]acquired WL: fqn=/cachetest,
owner=<test-pc:4356>:52, [EMAIL PROTECTED]
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(6)-192.168.100.120,5,RMI Runtime]_put(<test-pc:4356>:52, "/cachetest", cu1,
977)
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.Node] Thread[RMI TCP
Connection(6)-192.168.100.120,5,RMI Runtime]acquired WL: fqn=/cachetest,
owner=<test-pc:4356>:52, [EMAIL PROTECTED]
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(6)-192.168.100.120,5,RMI Runtime]get(, "/cachetest", cu1, "977, "true")
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(6)-192.168.100.120,5,RMI Runtime]get(, "/cachetest", cu2, "1045, "true")
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(6)-192.168.100.120,5,RMI Runtime]get(, "/cachetest", cu3, "978, "true")
| 2004-05-11 17:54:01,409 INFO [samples.JBossCacheTestEJB] Thread[Thread[RMI TCP
Connection(6)-192.168.100.120,5,RMI Runtime]]: deposit(cu3, cu1, 3) finished. (sum =
3000 = 977 + 1045 + 978)
|
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] runPreparePhase(): run
remote prepare with async mode: false commit: false and coordinator: test-pc:4356
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(6)-192.168.100.120,5,RMI Runtime]callRemoteMethods(): destination list is
empty, discarding call
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(6)-192.168.100.120,5,RMI Runtime]afterCompletion() called (status=COMMITTED)
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(6)-192.168.100.120,5,RMI Runtime]callRemoteMethods(): destination list is
empty, discarding call
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(6)-192.168.100.120,5,RMI Runtime]commit(): called to commit cache with gtx
<test-pc:4356>:52
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(6)-192.168.100.120,5,RMI Runtime]commit(): releasing lock [EMAIL PROTECTED]
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(6)-192.168.100.120,5,RMI Runtime]commit(): remove local transaction key
TransactionImpl:XidImpl [FormatId=257, GlobalId=test-pc//60, BranchQual=]
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(5)-192.168.100.120,5,RMI Runtime]get(, "/cachetest", cu2, "1045, "true")
| 2004-05-11 17:54:01,409 INFO [samples.JBossCacheTestEJB] Thread[Thread[RMI TCP
Connection(6)-192.168.100.120,5,RMI Runtime]]: deposit(cu1, cu2, 20) called.
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(5)-192.168.100.120,5,RMI Runtime]get(, "/cachetest", cu1, "977, "true")
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(6)-192.168.100.120,5,RMI Runtime]getCurrentTransaction(): registered with
transaction TransactionImpl:XidImpl [FormatId=257, GlobalId=test-pc//63, BranchQual=]
as Synchronization listener with global transaction: <test-pc:4356>:55
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(5)-192.168.100.120,5,RMI Runtime]_put(<test-pc:4356>:53, "/cachetest", cu2,
1035)
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.Node] Thread[RMI TCP
Connection(5)-192.168.100.120,5,RMI Runtime]acquired WL: fqn=/cachetest,
owner=<test-pc:4356>:53, [EMAIL PROTECTED]
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(5)-192.168.100.120,5,RMI Runtime]_put(<test-pc:4356>:53, "/cachetest", cu1,
987)
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.Node] Thread[RMI TCP
Connection(5)-192.168.100.120,5,RMI Runtime]acquired WL: fqn=/cachetest,
owner=<test-pc:4356>:53, [EMAIL PROTECTED]
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(5)-192.168.100.120,5,RMI Runtime]get(, "/cachetest", cu1, "987, "true")
| 2004-05-11 17:54:01,409 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(5)-192.168.100.120,5,RMI Runtime]get(, "/cachetest", cu2, "1035, "true")
| 2004-05-11 17:54:01,425 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(5)-192.168.100.120,5,RMI Runtime]get(, "/cachetest", cu3, "978, "true")
| 2004-05-11 17:54:01,425 INFO [samples.JBossCacheTestEJB] Thread[Thread[RMI TCP
Connection(5)-192.168.100.120,5,RMI Runtime]]: deposit(cu2, cu1, 10) finished. (sum =
3000 = 987 + 1035 + 978)
| 2004-05-11 17:54:01,425 DEBUG [org.jboss.cache.TreeCache] runPreparePhase(): run
remote prepare with async mode: false commit: false and coordinator: test-pc:4356
| 2004-05-11 17:54:01,425 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(5)-192.168.100.120,5,RMI Runtime]callRemoteMethods(): destination list is
empty, discarding call
| 2004-05-11 17:54:01,425 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(5)-192.168.100.120,5,RMI Runtime]afterCompletion() called (status=COMMITTED)
| 2004-05-11 17:54:01,425 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(5)-192.168.100.120,5,RMI Runtime]callRemoteMethods(): destination list is
empty, discarding call
| 2004-05-11 17:54:01,425 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(5)-192.168.100.120,5,RMI Runtime]commit(): called to commit cache with gtx
<test-pc:4356>:53
| 2004-05-11 17:54:01,425 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(5)-192.168.100.120,5,RMI Runtime]commit(): releasing lock [EMAIL PROTECTED]
| 2004-05-11 17:54:01,425 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(5)-192.168.100.120,5,RMI Runtime]commit(): remove local transaction key
TransactionImpl:XidImpl [FormatId=257, GlobalId=test-pc//61, BranchQual=]
| 2004-05-11 17:54:01,425 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(4)-192.168.100.120,5,RMI Runtime]get(, "/cachetest", cu3, "978, "true")
| 2004-05-11 17:54:01,425 INFO [samples.JBossCacheTestEJB] Thread[Thread[RMI TCP
Connection(5)-192.168.100.120,5,RMI Runtime]]: deposit(cu3, cu2, 3) called.
| 2004-05-11 17:54:01,425 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(5)-192.168.100.120,5,RMI Runtime]getCurrentTransaction(): registered with
transaction TransactionImpl:XidImpl [FormatId=257, GlobalId=test-pc//64, BranchQual=]
as Synchronization listener with global transaction: <test-pc:4356>:56
| 2004-05-11 17:54:01,425 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(4)-192.168.100.120,5,RMI Runtime]get(, "/cachetest", cu3, "978, "true")
| 2004-05-11 17:54:01,425 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(4)-192.168.100.120,5,RMI Runtime]_put(<test-pc:4356>:54, "/cachetest", cu3,
961)
| 2004-05-11 17:54:01,425 DEBUG [org.jboss.cache.Node] Thread[RMI TCP
Connection(4)-192.168.100.120,5,RMI Runtime]acquired WL: fqn=/cachetest,
owner=<test-pc:4356>:54, [EMAIL PROTECTED]
| 2004-05-11 17:54:01,425 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(4)-192.168.100.120,5,RMI Runtime]_put(<test-pc:4356>:54, "/cachetest", cu2,
995)
| 2004-05-11 17:54:01,425 DEBUG [org.jboss.cache.Node] Thread[RMI TCP
Connection(4)-192.168.100.120,5,RMI Runtime]acquired WL: fqn=/cachetest,
owner=<test-pc:4356>:54, [EMAIL PROTECTED]
| 2004-05-11 17:54:01,425 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(4)-192.168.100.120,5,RMI Runtime]get(, "/cachetest", cu1, "987, "true")
| 2004-05-11 17:54:01,425 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(4)-192.168.100.120,5,RMI Runtime]get(, "/cachetest", cu2, "995, "true")
| 2004-05-11 17:54:01,425 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(4)-192.168.100.120,5,RMI Runtime]get(, "/cachetest", cu3, "961, "true")
|
| 2004-05-11 17:54:01,425 INFO [samples.JBossCacheTestEJB] Thread[Thread[RMI TCP
Connection(4)-192.168.100.120,5,RMI Runtime]]: deposit(cu3, cu2, 17) finished. (sum =
2943 = 987 + 995 + 961)
|
| 2004-05-11 17:54:01,425 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(4)-192.168.100.120,5,RMI Runtime]afterCompletion() called
(status=ROLLEDBACK)
| 2004-05-11 17:54:01,425 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(4)-192.168.100.120,5,RMI Runtime]afterCompletion(): rolling back cache
| 2004-05-11 17:54:01,425 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(4)-192.168.100.120,5,RMI Runtime]callRemoteMethods(): destination list is
empty, discarding call
| 2004-05-11 17:54:01,425 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(4)-192.168.100.120,5,RMI Runtime]rollback(): called to rollback cache
| 2004-05-11 17:54:01,425 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(4)-192.168.100.120,5,RMI Runtime]_put(<test-pc:4356>:54, "/cachetest", cu2,
1035)
| 2004-05-11 17:54:01,425 DEBUG [org.jboss.cache.Node] Thread[RMI TCP
Connection(4)-192.168.100.120,5,RMI Runtime]acquired WL: fqn=/cachetest,
owner=<test-pc:4356>:54, [EMAIL PROTECTED]
| 2004-05-11 17:54:01,425 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(4)-192.168.100.120,5,RMI Runtime]_put(<test-pc:4356>:54, "/cachetest", cu3,
978)
| 2004-05-11 17:54:01,425 DEBUG [org.jboss.cache.Node] Thread[RMI TCP
Connection(4)-192.168.100.120,5,RMI Runtime]acquired WL: fqn=/cachetest,
owner=<test-pc:4356>:54, [EMAIL PROTECTED]
| 2004-05-11 17:54:01,425 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(4)-192.168.100.120,5,RMI Runtime]rollback(): releasing lock [EMAIL
PROTECTED]
| 2004-05-11 17:54:01,425 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(6)-192.168.100.120,5,RMI Runtime]get(, "/cachetest", cu1, "987, "true")
| 2004-05-11 17:54:01,425 DEBUG [org.jboss.cache.TreeCache] Thread[RMI TCP
Connection(6)-192.168.100.120,5,RMI Runtime]get(, "/cachetest", cu2, "1035, "true")
|
| 2004-05-11 17:54:01,425 INFO [STDOUT] java.lang.Exception: sum failure (sum =
2943, cnt = 16)
| ...
|
View the original post :
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3834498#3834498
Reply to the post :
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3834498
-------------------------------------------------------
This SF.Net email is sponsored by Sleepycat Software
Learn developer strategies Cisco, Motorola, Ericsson & Lucent use to
deliver higher performing products faster, at low TCO.
http://www.sleepycat.com/telcomwpreg.php?From=osdnemail3
_______________________________________________
JBoss-Development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development