Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-6203

CNFE when offloading data to remote JDG server

    Details

      Description

      Getting the following error when there's a remote-store configured which offloads data to a remote JDG server: ClassNotFoundException: org.infinispan.client.hotrod.impl.transport.tcp.RoundRobinBalancingStrategy

      The dependency on <module name="org.infinispan.client.hotrod"/> can not be found anywhere in the wildfly clustering modules which is the cause. I've tried adding this to the module org.wildfly.clustering.service and it fixed the problem, but this is probably not the right location.

      Whole stack trace below.

      09:53:56,285 ERROR [org.jboss.msc.service.fail] (ServerService Thread Pool -- 69) MSC000001: Failed to start service jboss.infinispan.web."clusterbench-ee7.ear.cb.war": org.jboss.msc.service.StartException in service jboss.infinispan.web."clusterbench-ee7.ear.cb.war": org.infinispan.commons.CacheException: Unable to invoke method public void org.infinispan.persistence.manager.PersistenceManagerImpl.start() on object of type PersistenceManagerImpl
          at org.wildfly.clustering.service.AsynchronousServiceBuilder$1.run(AsynchronousServiceBuilder.java:107)
          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
          at java.lang.Thread.run(Thread.java:745)
          at org.jboss.threads.JBossThread.run(JBossThread.java:320)
      Caused by: org.infinispan.commons.CacheException: Unable to invoke method public void org.infinispan.persistence.manager.PersistenceManagerImpl.start() on object of type PersistenceManagerImpl
          at org.infinispan.commons.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:172)
          at org.infinispan.factories.AbstractComponentRegistry$PrioritizedMethod.invoke(AbstractComponentRegistry.java:887)
          at org.infinispan.factories.AbstractComponentRegistry.invokeStartMethods(AbstractComponentRegistry.java:656)
          at org.infinispan.factories.AbstractComponentRegistry.internalStart(AbstractComponentRegistry.java:645)
          at org.infinispan.factories.AbstractComponentRegistry.start(AbstractComponentRegistry.java:548)
          at org.infinispan.factories.ComponentRegistry.start(ComponentRegistry.java:222)
          at org.infinispan.cache.impl.CacheImpl.start(CacheImpl.java:849)
          at org.infinispan.manager.DefaultCacheManager.wireAndStartCache(DefaultCacheManager.java:621)
          at org.infinispan.manager.DefaultCacheManager.createCache(DefaultCacheManager.java:572)
          at org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:440)
          at org.jboss.as.clustering.infinispan.DefaultCacheContainer.lambda$getCache$6(DefaultCacheContainer.java:119)
          at org.jboss.as.clustering.infinispan.DefaultCacheContainer$$Lambda$100/1486346797.run(Unknown Source)
          at org.jboss.as.clustering.infinispan.DefaultCacheContainer.getCache(DefaultCacheContainer.java:120)
          at org.jboss.as.clustering.infinispan.DefaultCacheContainer.getCache(DefaultCacheContainer.java:114)
          at org.wildfly.clustering.infinispan.spi.service.CacheBuilder.start(CacheBuilder.java:80)
          at org.wildfly.clustering.service.AsynchronousServiceBuilder$1.run(AsynchronousServiceBuilder.java:102)
          ... 4 more
      Caused by: org.infinispan.commons.CacheException: Unable to start cache loaders
          at org.infinispan.persistence.manager.PersistenceManagerImpl.start(PersistenceManagerImpl.java:174)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
          at java.lang.reflect.Method.invoke(Method.java:497)
          at org.infinispan.commons.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:168)
          ... 19 more
      Caused by: org.infinispan.commons.CacheConfigurationException: Unable to instantiate class org.infinispan.client.hotrod.impl.transport.tcp.RoundRobinBalancingStrategy
          at org.infinispan.commons.util.Util.loadClass(Util.java:103)
          at org.infinispan.client.hotrod.configuration.ConfigurationBuilder.balancingStrategy(ConfigurationBuilder.java:125)
          at org.infinispan.persistence.remote.RemoteStore.buildRemoteConfiguration(RemoteStore.java:221)
          at org.infinispan.persistence.remote.RemoteStore.start(RemoteStore.java:89)
          at org.infinispan.persistence.manager.PersistenceManagerImpl.start(PersistenceManagerImpl.java:141)
          ... 24 more
      Caused by: java.lang.ClassNotFoundException: org.infinispan.client.hotrod.impl.transport.tcp.RoundRobinBalancingStrategy from [Module "org.wildfly.clustering.service:main" from local module loader @4c75cab9 (finder: local module finder @1ef7fe8e (roots: /home/mgencur/containers/eap7/jboss-eap-7.0/modules,/home/mgencur/containers/eap7/jboss-eap-7.0/modules/system/layers/base))]
          at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:198)
          at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:363)
          at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:351)
          at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:93)
          at java.lang.Class.forName0(Native Method)
          at java.lang.Class.forName(Class.java:348)
          at org.infinispan.commons.util.Util.loadClassStrict(Util.java:158)
          at org.infinispan.commons.util.Util.loadClass(Util.java:101)
          ... 28 more
      

      My cache configuration looks like this:

      <replicated-cache name="offload" mode="SYNC">
                          <transaction mode="BATCH"/>
                          <remote-store cache="default" socket-timeout="60000" remote-servers="remote-jdg-server1" passivation="false" preload="true" purge="false" shared="true"/>
                      </replicated-cache>
      

      There's also a remote endpoint defined:

      <outbound-socket-binding name="remote-jdg-server1">
          <remote-destination host="localhost" port="11222"/>
        </outbound-socket-binding>
      

      I'm using the clusterbench-eet.ear application and just deploy it to EAP. Application attached.

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  pferraro Paul Ferraro
                  Reporter:
                  pferraro Paul Ferraro
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  2 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: