• Bug
  • Status: Closed
  • 2 Major
  • Resolution: Fixed
  • lorban
  • Reporter: lorban
  • February 18, 2011
  • 0
  • Watchers: 0
  • July 27, 2012
  • February 18, 2011

Description

This config:

 <cacheManagerPeerProviderFactory
 	class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"	
 	properties="peerDiscovery=automatic, multicastGroupAddress=230.0.0.1,
 	multicastGroupPort=4446, timeToLive=32"/>
 	
 	<cacheManagerPeerListenerFactory
 	class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"	
 	properties="port=40001,
 	socketTimeoutMillis=20000"/>
     <cache name="fooCache"
            maxElementsInMemory="100000"
            eternal="true"           
            overflowToDisk="true"
            diskPersistent="false"
            transactionalMode="local" 
            copyOnRead="true"
            copyOnWrite="true">
 		<copyStrategy class="net.sf.ehcache.store.compound.ImmutableValueElementCopyStrategy"/>
 		<cacheEventListenerFactory
 	   		class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"
 	   		properties="replicateAsynchronously=true, replicatePuts=true,
 	   		replicateUpdates=true, replicateUpdatesViaCopy=true, replicateRemovals=true" />
 	</cache>

ends up throwing this exception:

WARNING: Unable to send message to remote peer.  Message was: transaction not started
 net.sf.ehcache.transaction.TransactionException: transaction not started
 	at net.sf.ehcache.transaction.local.LocalTransactionStore.getCurrentTransactionContext(LocalTransactionStore.java:89)
 	at net.sf.ehcache.transaction.local.LocalTransactionStore.assertNotTimedOut(LocalTransactionStore.java:95)
 	at net.sf.ehcache.transaction.local.LocalTransactionStore.put(LocalTransactionStore.java:155)
 	at net.sf.ehcache.Cache.putInternal(Cache.java:1401)
 	at net.sf.ehcache.Cache.put(Cache.java:1334)
 	at net.sf.ehcache.distribution.RMICachePeer.put(RMICachePeer.java:178)
 	at net.sf.ehcache.distribution.RMICachePeer.send(RMICachePeer.java:221)
 	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.run0(Unknown Source)
 	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
 	at java.lang.Thread.run(Unknown Source)
 	at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Unknown Source)
 	at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown Source)
 	at sun.rmi.server.UnicastRef.invoke(Unknown Source)
 	at net.sf.ehcache.distribution.RMICachePeer_Stub.send(Unknown Source)
 	at net.sf.ehcache.distribution.RMIAsynchronousCacheReplicator.flushReplicationQueue(RMIAsynchronousCacheReplicator.java:317)
 	at net.sf.ehcache.distribution.RMIAsynchronousCacheReplicator.replicationThreadMain(RMIAsynchronousCacheReplicator.java:119)
 	at net.sf.ehcache.distribution.RMIAsynchronousCacheReplicator.access$100(RMIAsynchronousCacheReplicator.java:56)
 	at net.sf.ehcache.distribution.RMIAsynchronousCacheReplicator$ReplicationThread.run(RMIAsynchronousCacheReplicator.java:376)

See: http://forums.terracotta.org/forums/posts/list/4999.page

Comments

Ludovic Orban 2011-02-18

Fixed in trunk, rev. 3662.

Fiona OShea 2011-02-18

thanks please merge to 2.4.x

Ludovic Orban 2011-02-18

Backported to 2.4.x branch under rev. 3665.