Updates:
Cc: baranowb
Comment #6 on issue 1526 by baranowb: Buddy replication not working with
MSS Fault Tolerant Timers
http://code.google.com/p/mobicents/issues/detail?id=1526
Actually fixing that NPE wont help. Election process must be altered. It
needs to check for group member. (However that check is required for cases
when data is not replicated yet, I think)
Attaching server.logs for N1, N2, N3 - in logs N3 takes over, but N2 was
buddy backup for N1 which has been killed.
Tested with repl sync timeout set to 500ms and ~20s, same result.
Conf:
<bean name="Mobicents.CacheConfig"
class="org.jboss.cache.config.Configuration">
<property
name="transactionManagerLookupClass">org.jboss.cache.transaction.JBossTransactionManagerLookup
</property>
<property name="nodeLockingScheme">MVCC</property>
<property name="isolationLevel">REPEATABLE_READ</property>
<property name="useLockStriping">false</property>
<!--
Must use REPL since used for timestamp caching. Must
use SYNC to
maintain cache coherency for entities.
-->
<property name="cacheMode">REPL_SYNC</property>
<property
name="clusterName">${jboss.partition.name:DefaultPartition}-mobicents-slee
</property>
<property
name="multiplexerStack">${jboss.default.jgroups.stack:udp}</property>
<!--
Used for timestamps, so must fetch state. <property
name="fetchInMemoryState">true</property>
-->
<!--
The max amount of time (in milliseconds) we wait until
the state (ie.
the contents of the cache) are retrieved from existing
members at
startup. Ignored if FetchInMemoryState=false.
-->
<property name="stateRetrievalTimeout">60000</property>
<!--
Number of milliseconds to wait until all responses for
a synchronous
call have been received.
-->
<property name="syncReplTimeout">500</property>
<!-- Max number of milliseconds to wait for a lock acquisition
-->
<property name="lockAcquisitionTimeout">15000</property>
<property name="useRegionBasedMarshalling">true</property>
<property name="inactiveOnStartup">true</property>
<!-- Disable asynchronous RPC marshalling/sending -->
<property name="serializationExecutorPoolSize">0</property>
<!-- We have no asynchronous notification listeners -->
<property name="listenerAsyncPoolSize">0</property>
<property name="lockParentForChildInsertRemove">false</property>
<property name="buddyReplicationConfig">
<bean
class="org.jboss.cache.config.BuddyReplicationConfig">
<!-- Just set to true to turn on buddy
replication -->
<property name="enabled">true</property>
<!--
A way to specify a preferred
replication group. We try and pick a
buddy who shares the same pool name
(falling back to other buddies
if not available).
-->
<property
name="buddyPoolName">default</property>
<property
name="buddyCommunicationTimeout">17500</property>
<!-- Do not change these -->
<property
name="autoDataGravitation">false</property>
<property
name="dataGravitationRemoveOnFind">true</property>
<property
name="dataGravitationSearchBackupTrees">true</property>
<property name="buddyLocatorConfig">
<bean
class="org.jboss.cache.buddyreplication.NextMemberBuddyLocatorConfig">
<!-- The number of backup copies
we maintain -->
<property
name="numBuddies">1</property>
<!--
Means that each node
will try to select a buddy on a different
physical host. If not
able to do so though, it will fall back to
colocated nodes.
-->
<property
name="ignoreColocatedBuddies">true</property>
</bean>
</property>
</bean>
</property>
<demand>RealTransactionManager</demand>
</bean>
Attachments:
server1.log 30.7 KB
server2.log 31.4 KB
server3.log 32.2 KB