7 Replies Latest reply on Jul 4, 2013 10:46 AM by morvantp

    ISPN + WebSphere cluster

    morvantp

      Hello 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.

        • 1. Re: ISPN avec un cluster WebSphere
          wdfink

          Hello Pierre,

           

          welcome to the JBoss forum.

          I think you will be wrong here as the question is for WebSphere8 which is a different application server.

          You might not find anyone here that is able to give you the answer.

           

          If I missunderstand the translation you should post in English as in this case you will find more people that are able to answer

          • 2. Re: ISPN avec un cluster WebSphere
            iangreen

            please post your configuration (infinispan.xml)

             

            "Que signifie ce paramètre numOwners ? Si on le configure à 1, adieu la haute disponibilité ?"

             

            I'm new to infininspan, but I think the answer is yes -

             

            I think it means it will only be stored on one node - if that node is shut down, the value will be lost.

             

            numOwners=2 would mean you have at least two copies of the cache entry on the cluster, so if one of the machines its own goes down, no values will be lost.

             

            (but you should check the documentation to be sure)

             

            it has nothing to do with websphere, it has to do with infinispan's transport configuration (I believe) - ? what is your jgroups configuration?

            • 3. Re: ISPN + WebSphere cluster
              morvantp

              Hi Wolf-Dieter Fink,

              Thanks for your quick answer and your advice. I just modified the original post from French to English .

               

              Hi ian green,

              Thank you for your quick answer too. I read the documentation and I agree with you about hight availiblity.

              I will post my infinispan.xml file in few minutes.

              • 4. Re: ISPN + WebSphere cluster
                morvantp

                I just add the infinispan.xml and jgroups-tcp.xml files.

                Thank you for your help.

                • 5. Re: ISPN + WebSphere cluster
                  morvantp

                  We got the same behavior with a JBoss EAP 6 cluster so it looks like it's not linked to WebSphere but ISPN only.

                  • 6. Re: ISPN + WebSphere cluster
                    morvantp

                    I got a very strange log trace:

                     

                    2013-06-27 17:07:30.345 [TRACE] [  ClusterCacheStatus]     WebContainer : 8/ Added joiner apo-sab6-10409 to cache lock-cache: members = [apo-sab6-10409], joiners = [apo-sab6-10409]

                    2013-06-27 17:07:30.347 [TRACE] [  ClusterCacheStatus]     WebContainer : 8/ Cache lock-cache topology updated: members = [apo-sab6-10409], joiners = [], topology = CacheTopology{id=0, currentCH=DefaultConsistentHash{numSegments=60, numOwners=2, members=[apo-sab6-10409]}, pendingCH=null}

                     

                    I am working with a single server and ISPN detects 2 owners.

                    How is it possible ?

                    • 7. Re: ISPN + WebSphere cluster
                      morvantp

                      The answer is the parameter fetch in memory state !

                      When the server #2 started, it dit not retrieve the values updated by the server #1.

                      With this option, we are sure the server #2 caches start in coherence with the server #1 caches.