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-Oracle

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