4 Replies Latest reply: Aug 29, 2013 1:15 AM by ppssrr RSS

    No storage-enabled nodes exist for service DistributedSessions

    ppssrr

      hi all, i am new to coherence,i am fallow out-of-process in coherence web,

       

      i am getting No storage-enabled nodes exist for service DistributedSessions error on when deploy app.

       

      i am configured coherence cluster, coherence server in weblogic 12c and start, in server start tab i put

      in coherence server like

      arguments:

      -Dtangosol.coherence.distributed.localstorage=true -Dtangosol.coherence.session.localstorage=true -Dtangosol.coherence.cluster=CoherenceCluster -Dtangosol.coherence.clusteraddress=231.1.3.4 -Dtangosol.coherence.clusterport=7744

       

      classPath: D:\Weblogic\wls1211_dev\modules\features\weblogic.server.modules.coherence.server_12.1.1.0.jar;D:\Weblogic\wls1211_dev\modules\features\weblogic.server.modules.coherence.integration_12.1.1.0.jar;D:\coherence_3.7\lib\coherence.jar;D:\coherence_3.7\lib\coherence-web.jar;D:\coherence_3.7\lib\coherence-web-spi.war

       

      my coherence server running..........

       

      Oracle Coherence Version 3.7.1.1 Build 28901

      Grid Edition: Development mode

      Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

       

      2013-08-27 18:04:09.873/1.420 Oracle Coherence GE 3.7.1.1 <D4> (thread=main, member=n/a): TCMP bound to /10.21.12.86:8004 using SystemSocketProvider

      2013-08-27 18:04:10.356/1.903 Oracle Coherence GE 3.7.1.1 <Info> (thread=Cluster, member=n/a): This Member(Id=2, Timestamp=2013-08-27 18:04:10.254, Address=10.21.12.86:8004, MachineId=29338, Location=site:,machine:mumcnk-0562,process:4964,member:Server-0, Role=WeblogicWeblogicCacheServer, Edition=Grid Edition, Mode=Development, CpuCount=2, SocketCount=2) joined cluster "CoherenceCluster" with senior Member(Id=5, Timestamp=2013-08-27 17:43:15.768, Address=10.21.12.86:3567, MachineId=29338, Location=site:,machine:mumcnk-0562,process:1148, Role=WeblogicServer, Edition=Grid Edition, Mode=Development, CpuCount=2, SocketCount=2)

      2013-08-27 18:04:10.372/1.919 Oracle Coherence GE 3.7.1.1 <D5> (thread=Cluster, member=n/a): Member 5 joined Service Management with senior member 5

      2013-08-27 18:04:10.372/1.919 Oracle Coherence GE 3.7.1.1 <Info> (thread=main, member=n/a): Started cluster Name=CoherenceCluster

       

      Group{Address=231.1.3.4, Port=7744, TTL=4}

       

      MasterMemberSet(

        ThisMember=Member(Id=2, Timestamp=2013-08-27 18:04:10.254, Address=10.21.12.86:8004, MachineId=29338, Location=site:,machine:mumcnk-0562,process:4964,member:Server-0, Role=WeblogicWeblogicCacheServer)

        OldestMember=Member(Id=5, Timestamp=2013-08-27 17:43:15.768, Address=10.21.12.86:3567, MachineId=29338, Location=site:,machine:mumcnk-0562,process:1148, Role=WeblogicServer)

        ActualMemberSet=MemberSet(Size=2

          Member(Id=2, Timestamp=2013-08-27 18:04:10.254, Address=10.21.12.86:8004, MachineId=29338, Location=site:,machine:mumcnk-0562,process:4964,member:Server-0, Role=WeblogicWeblogicCacheServer)

          Member(Id=5, Timestamp=2013-08-27 17:43:15.768, Address=10.21.12.86:3567, MachineId=29338, Location=site:,machine:mumcnk-0562,process:1148, Role=WeblogicServer)

          )

        MemberId|ServiceVersion|ServiceJoined|MemberState

          2|3.7.1|2013-08-27 18:04:10.379|JOINED,

          5|3.7.1|2013-08-27 17:43:15.768|JOINED

        RecycleMillis=1200000

        RecycleSet=MemberSet(Size=0

          )

        )

       

      TcpRing{Connections=[5]}

      IpMonitor{AddressListSize=0}

       

      2013-08-27 18:04:10.403/1.950 Oracle Coherence GE 3.7.1.1 <D5> (thread=Invocation:Management, member=2): Service Management joined the cluster with senior service member 5

      2013-08-27 18:04:10.607/2.154 Oracle Coherence GE 3.7.1.1 <D5> (thread=DistributedCache, member=2): Service DistributedCache joined the cluster with senior service member 2

      2013-08-27 18:04:10.685/2.232 Oracle Coherence GE 3.7.1.1 <D5> (thread=ReplicatedCache, member=2): Service ReplicatedCache joined the cluster with senior service member 2

      2013-08-27 18:04:10.701/2.248 Oracle Coherence GE 3.7.1.1 <D5> (thread=OptimisticCache, member=2): Service OptimisticCache joined the cluster with senior service member 2

      2013-08-27 18:04:10.701/2.248 Oracle Coherence GE 3.7.1.1 <D5> (thread=Invocation:InvocationService, member=2): Service InvocationService joined the cluster with senior service member 2

      2013-08-27 18:04:10.701/2.248 Oracle Coherence GE 3.7.1.1 <Info> (thread=main, member=2):

      Services

        (

        ClusterService{Name=Cluster, State=(SERVICE_STARTED, STATE_JOINED), Id=0, Version=3.7.1, OldestMemberId=5}

        InvocationService{Name=Management, State=(SERVICE_STARTED), Id=1, Version=3.1, OldestMemberId=5}

        PartitionedCache{Name=DistributedCache, State=(SERVICE_STARTED), LocalStorage=enabled, PartitionCount=257, BackupCount=1, AssignedPartitions=257, BackupPartitions=0}

        ReplicatedCache{Name=ReplicatedCache, State=(SERVICE_STARTED), Id=3, Version=3.0, OldestMemberId=2}

        Optimistic{Name=OptimisticCache, State=(SERVICE_STARTED), Id=4, Version=3.0, OldestMemberId=2}

        InvocationService{Name=InvocationService, State=(SERVICE_STARTED), Id=5, Version=3.1, OldestMemberId=2}

        )

       

      Started DefaultCacheServer...

       

      i already deploy coherence-web-spi.war,active-cache.jar as share library in web-logic server, and i have all jar like coherence.jar, coherence-web.jar and integration jars in app lib.

       

      my weblogic.xml is

       

      <?xml version="1.0" encoding="UTF-8"?>

      <weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app"

          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

          xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.4/weblogic-web-app.xsd">

          <weblogic-version>12.1.1</weblogic-version>

          <context-root>session1</context-root>

       

          <session-descriptor>

              <cookie-name>JSESSIONID</cookie-name>

              <cookie-path>/</cookie-path>

          </session-descriptor>

       

          <session-descriptor>

              <persistent-store-type>coherence-web</persistent-store-type>

          </session-descriptor>

          <library-ref>

              <library-name>coherence-web-spi</library-name>

          </library-ref>

          <coherence-cluster-ref>

              <coherence-cluster-name>CoherenceCluster</coherence-cluster-name>

          </coherence-cluster-ref>

       

      </weblogic-web-app>

       

      my web.xml is

       

      <?xml version="1.0" encoding="UTF-8"?>

      <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

          xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

          xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

          version="2.5">

          <display-name>session1</display-name>

       

          <context-param>

              <param-name>coherence-web-sessions-enabled</param-name>

              <param-value>true</param-value>

          </context-param>

          <context-param>

              <param-name>coherence-session-weblogic-compatibility-mode</param-name>

              <param-value>true</param-value>

          </context-param>

          <context-param>

              <param-name>coherence-servletcontext-clustered</param-name>

              <param-value>true</param-value>

          </context-param>

       

          <context-param>

              <param-name>coherence-enable-sessioncontext</param-name>

              <param-value>true</param-value>

          </context-param>

       

       

          <context-param>

              <param-name>coherence-scopecontroller-class</param-name>

              <param-value>com.tangosol.coherence.servlet.AbstractHttpSessionCollection$GlobalScopeController</param-value>

          </context-param>

       

      </web-app>

       

      in my application my session-cache-config.xml like this

       

      <?xml version="1.0" encoding="UTF-8"?>

      <cache-config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

                    xmlns="http://xmlns.oracle.com/coherence/coherence-cache-config"

                    xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-cache-config coherence-cache-config.xsd">

       

        <caching-scheme-mapping>

          <!--

          The clustered cache used to store Session management data.

          -->

          <cache-mapping>

            <cache-name>session-management</cache-name>

            <scheme-name>replicated</scheme-name>

          </cache-mapping>

       

          <!--

          The clustered cache used to store ServletContext attributes.

          -->

          <cache-mapping>

            <cache-name>servletcontext-storage</cache-name>

            <scheme-name>replicated</scheme-name>

          </cache-mapping>

       

          <!--

          The clustered cache used to store Session attributes.

          -->

          <cache-mapping>

            <cache-name>session-storage</cache-name>

            <scheme-name>session-near</scheme-name>

          </cache-mapping>

       

          <!--

          The clustered cache used to store the "overflowing" (split-out due to size)

          Session attributes. Only used for the "Split" model.

          -->

          <cache-mapping>

            <cache-name>session-overflow</cache-name>

            <scheme-name>session-distributed</scheme-name>

          </cache-mapping>

       

          <!--

          The clustered cache used to store IDs of "recently departed" Sessions.

          -->

          <cache-mapping>

            <cache-name>session-death-certificates</cache-name>

            <scheme-name>session-certificate</scheme-name>

          </cache-mapping>

       

          <!--

          The local cache used to store Sessions that are not yet distributed (if

          there is a distribution controller).

          -->

           <cache-mapping>

            <cache-name>local-session-storage</cache-name>

            <scheme-name>unlimited-local</scheme-name>

          </cache-mapping>

       

          <!--

          The local cache used to store Session attributes that are not distributed

          (if there is a distribution controller or attributes are allowed to become

          local when serialization fails).

          -->

          <cache-mapping>

            <cache-name>local-attribute-storage</cache-name>

            <scheme-name>unlimited-local</scheme-name>

          </cache-mapping>

         

        </caching-scheme-mapping>

       

        <caching-schemes>

          <!--

          Replicated caching scheme used by the Session management and ServletContext

          attribute caches.

          -->

          <replicated-scheme>

            <scheme-name>replicated</scheme-name>

            <service-name>ReplicatedSessionsMisc</service-name>

            <request-timeout>30s</request-timeout>

            <backing-map-scheme>

              <local-scheme>

                <scheme-ref>unlimited-local</scheme-ref>

              </local-scheme>

            </backing-map-scheme>

            <autostart>true</autostart>

          </replicated-scheme>

       

          <!--

          Near caching scheme used by the Session attribute cache. The front cache

          uses a Local caching scheme and the back cache uses a Distributed caching

          scheme.

          -->

          <near-scheme>

            <scheme-name>session-near</scheme-name>

            <front-scheme>

              <local-scheme>

                <scheme-ref>session-front</scheme-ref>

              </local-scheme>

            </front-scheme>

            <back-scheme>

              <distributed-scheme>

                <scheme-ref>session-distributed</scheme-ref>

              </distributed-scheme>

            </back-scheme>

            <invalidation-strategy>present</invalidation-strategy>

          </near-scheme>

       

          <local-scheme>

            <scheme-name>session-front</scheme-name>

            <eviction-policy>HYBRID</eviction-policy>

            <high-units>1000</high-units>

            <low-units>750</low-units>

          </local-scheme>

       

          <distributed-scheme>

            <scheme-name>session-distributed</scheme-name>

            <scheme-ref>session-base</scheme-ref>

            <backing-map-scheme>

              <local-scheme>

                <scheme-ref>unlimited-local</scheme-ref>

              </local-scheme>

              <!-- for disk overflow use this backing scheme instead:

              <overflow-scheme>

                <scheme-ref>session-paging</scheme-ref>

              </overflow-scheme>

              -->

            </backing-map-scheme>

          </distributed-scheme>

       

          <!--

          Distributed caching scheme used by the "recently departed" Session cache.

          -->

          <distributed-scheme>

            <scheme-name>session-certificate</scheme-name>

            <scheme-ref>session-base</scheme-ref>

            <backing-map-scheme>

              <local-scheme>

                <eviction-policy>HYBRID</eviction-policy>

                <high-units>4000</high-units>

                <low-units>3000</low-units>

                <expiry-delay>86400</expiry-delay>

              </local-scheme>

            </backing-map-scheme>

          </distributed-scheme>

       

          <!--

          "Base" Distributed caching scheme that defines common configuration.

          -->

          <distributed-scheme>

            <scheme-name>session-base</scheme-name>

            <service-name>DistributedSessions</service-name>

            <thread-count>0</thread-count>

            <lease-granularity>member</lease-granularity>

            <local-storage system-property="tangosol.coherence.session.localstorage">false</local-storage>

            <partition-count>257</partition-count>

            <backup-count>1</backup-count>

            <backup-storage>

              <type>on-heap</type>

            </backup-storage>

            <request-timeout>30s</request-timeout>

            <backing-map-scheme>

              <local-scheme>

                <scheme-ref>unlimited-local</scheme-ref>

              </local-scheme>

            </backing-map-scheme>

            <autostart>true</autostart>

          </distributed-scheme>

          <!--

          Disk-based Session attribute overflow caching scheme.

          -->

          <overflow-scheme>

            <scheme-name>session-paging</scheme-name>

            <front-scheme>

              <local-scheme>

                <scheme-ref>session-front</scheme-ref>

              </local-scheme>

            </front-scheme>

            <back-scheme>

              <external-scheme>

                <bdb-store-manager/>

              </external-scheme>

            </back-scheme>

          </overflow-scheme>

       

          <!--

          Local caching scheme definition used by all caches that do not require an

          eviction policy.

          -->

          <local-scheme>

            <scheme-name>unlimited-local</scheme-name>

            <service-name>LocalSessionCache</service-name>

          </local-scheme>

          <!--

          Clustered invocation service that manages sticky session ownership.

          -->

          <invocation-scheme>

            <service-name>SessionOwnership</service-name>

            <request-timeout>30s</request-timeout>

          </invocation-scheme>

        </caching-schemes>

      </cache-config>

       

      when ever i am trying deploy application getting error

       

      weblogic.application.ModuleException: No storage-enabled nodes exist for service DistributedSessions

          at weblogic.servlet.internal.WebAppModule.activateContexts(WebAppModule.java:1695)

          at weblogic.servlet.internal.WebAppModule.activate(WebAppModule.java:763)

          at weblogic.application.internal.flow.ModuleStateDriver$2.next(ModuleStateDriver.java:192)

          at weblogic.application.internal.flow.ModuleStateDriver$2.next(ModuleStateDriver.java:187)

          at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:35)

          Truncated. see log file for complete stacktrace

      Caused By: com.tangosol.net.RequestPolicyException: No storage-enabled nodes exist for service DistributedSessions

          at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache$BinaryMap.onMissingStorage(PartitionedCache.CDB:32)

          at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache$BinaryMap.sendStorageRequest(PartitionedCache.CDB:11)

          at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache$BinaryMap.addIndex(PartitionedCache.CDB:11)

          at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache$ViewMap.addIndex(PartitionedCache.CDB:1)

          at com.tangosol.coherence.component.util.SafeNamedCache.addIndex(SafeNamedCache.CDB:1)

       

       

       

       

       

      thanks in advance.............................

        • 1. Re: No storage-enabled nodes exist for service DistributedSessions
          Ricardo Ferreira

          What is happening is that your WebLogic app is not joining the Coherence cluster. That's the issue.

           

          Did you configured "CoherenceCluster" in the WebLogic using the Coherence Cluster/Server support from WebLogic?

           

          If no, remember that you need to pass the JVM parameters to WebLogic to "Teach" it about how to  join the cluster.

           

          Tip: I saw that you're using WLS 12.1.1. If you upgrade to WLS 12.1.2, you will see that the configuration of Coherence*Web is much more easier. Everything can be done using the WLS Admin Console, without touching XML files and/or JVM parameters.

           

          Cheers,

           

          Ricardo Ferreira

          • 2. Re: No storage-enabled nodes exist for service DistributedSessions
            ppssrr

            hi,

             

            i configured "CoherenceCluster" in the WebLogic 12.1.1 using the Coherence Cluster/Server, my coherence server running using CoherenceCluster. check above log. but still i am get exeption, if i put tangosol.coherence.session.localstorage=true my sesson-cache-config.xml  "in-process" working but i need "out-process"

            • 3. Re: No storage-enabled nodes exist for service DistributedSessions
              Jonathan.Knight

              Hi,

               

              It looks like your cache servers have not used the correct cache configuration file so they do not have a service with the name DistributedSessions. You can see this in your log output here:

               

              Services

                (

                ClusterService{Name=Cluster, State=(SERVICE_STARTED, STATE_JOINED), Id=0, Version=3.7.1, OldestMemberId=5}

                InvocationService{Name=Management, State=(SERVICE_STARTED), Id=1, Version=3.1, OldestMemberId=5}

                PartitionedCache{Name=DistributedCache, State=(SERVICE_STARTED), LocalStorage=enabled, PartitionCount=257, BackupCount=1, AssignedPartitions=257, BackupPartitions=0}

                ReplicatedCache{Name=ReplicatedCache, State=(SERVICE_STARTED), Id=3, Version=3.0, OldestMemberId=2}

                Optimistic{Name=OptimisticCache, State=(SERVICE_STARTED), Id=4, Version=3.0, OldestMemberId=2}

                InvocationService{Name=InvocationService, State=(SERVICE_STARTED), Id=5, Version=3.1, OldestMemberId=2}

                )

               

              You said in the original post that you used the following JVM arguments:

              -Dtangosol.coherence.distributed.localstorage=true -Dtangosol.coherence.session.localstorage=true -Dtangosol.coherence.cluster=CoherenceCluster -Dtangosol.coherence.clusteraddress=231.1.3.4 -Dtangosol.coherence.clusterport=7744

               

              ...but none of those specify the cache configuration to use (in your case session-cache-config.xml) so the node will use the default configuration file; the default name is coherence-cache-config.xml which is inside the Coherence jar file.

               

              You need to add the following JVM argument

              -Dtangosol.coherence.cacheconfig=session-cache-config.xml -Dtangosol.coherence.distributed.localstorage=true -Dtangosol.coherence.session.localstorage=true -Dtangosol.coherence.cluster=CoherenceCluster -Dtangosol.coherence.clusteraddress=231.1.3.4 -Dtangosol.coherence.clusterport=7744

               

              JK

              • 4. Re: No storage-enabled nodes exist for service DistributedSessions
                ppssrr

                hi JK,

                i am new to coherence, i am using default session-cache-config.xml is there in coherence-web.jar

                yes, DistributedSessions not there in my service but how to create that service.

                can you send to me proper session-cache-config.xml file for coherence-web out-of-process

                and also send some reference links , oracle docs are difficult to understand..