This discussion is archived
4 Replies Latest reply: Aug 28, 2013 11:15 PM by ppssrr RSS

No storage-enabled nodes exist for service DistributedSessions

ppssrr Newbie
Currently Being Moderated

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 Newbie
    Currently Being Moderated

    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 Newbie
    Currently Being Moderated

    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 Expert
    Currently Being Moderated

    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 Newbie
    Currently Being Moderated

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

     

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points