ISPN + WebSphere cluster
morvantp Jun 24, 2013 5:23 AMHello everyone,
We use ISPN - version 5.2.6 - in a WebSphere 8 cluster.
Details:
cluster WebSphere with 2 members on the same node on the same server (development) / cluster WebSphere with 2 members on 2 different nodes on 2 differents server (test).
Actually, we use a distributed ISPN cache to manage a key named node-id. This key is used to generated a different name for each member of our cluster.
When each member starts, it locks the key node-id, increments it - 0 to 1 when the first member starts, 1 to 2 when the second one starts, ....
When the server 1 starts, the node-id value is correctly incremented as expected - node-id = 1 when the global transaction is committed. Here the corresponding log trace:
2013-06-21 14:53:58.340 [TRACE] [ LocalTransaction] Default : 1/STARTUP Adding modification PutKeyValueCommand{key=node-id, value=1, flags=null, putIfAbsent=false, lifespanMillis=-1, maxIdleTimeMillis=-1, successful=true}. Mod list is null
However, when the second member starts, we have the following log trace:
2013-06-21 14:54:45.558 [TRACE] [tributionInterceptor] Default : 0/STARTUP Not doing a remote get for key node-id since entry is mapped to current node (apo-sab6-52370), or is in L1. Owners are [apo-sab6-894, apo-sab6-52370]
So the second member retrieves the original node-id value 0 instead 1. The member 2 performs exactly the same Put operation as the member 1:
2013-06-21 14:54:45.558 [TRACE] [ LocalTransaction] Default : 0/STARTUP Adding modification PutKeyValueCommand{key=node-id, value=1, flags=null, putIfAbsent=false, lifespanMillis=-1, maxIdleTimeMillis=-1, successful=true}. Mod list is null
Finally, we got exactly the same name for both members:
- Server #1: 2013-06-21 14:53:58.340 [INFO ] [ FlowMindDaemonBean] Default : 1/STARTUP INFO_SERVER_ID_1: Identifiant du serveur : [apo-sab6(0)]
- Server #2: 2013-06-21 14:54:45.558 [INFO ] [ FlowMindDaemonBean] Default : 0/STARTUP INFO_SERVER_ID_1: Identifiant du serveur : [apo-sab6(0)]
We do not have configured the numOwners parameter but ISPN detects there are 2 owners.
If we force the numOwners parameter value to 1, during the member 2 start, it performs a remote get and retrieves the node-id value 1, incremets it before to perform put operation in the distributed cache. It's the expected behavior.
But, what does the numOwners parameter mean ? If we configure it at 1, good bye the high availability ?
Do you know if ISPN requires a particular configuration to work with WebSphere ?
We are going to set up a JBoss EAP 6 cluster and try to reproduce this behavior.
Thank you very much for your help.