3 Replies Latest reply on Feb 1, 2014 4:39 AM by User625877-Oracle

    coherence 12C Workmanager issue



        I am facing an error with coherence 12c which was running fine with coherence3.7.1. The commonj jar version we are using is 1.4.1 which was running fine with coherence 3.7.1

      The error is as follows:

      java.lang.IllegalArgumentException: XML argument cannot be null

              at com.tangosol.internal.net.service.LegacyXmlServiceHelper.fromXml(LegacyXmlServiceHelper.java:37)

              at com.tangosol.internal.net.service.grid.LegacyXmlGridHelper.fromXml(LegacyXmlGridHelper.java:39)

              at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Grid.configure(Grid.CDB:4)

              at com.tangosol.coherence.component.util.SafeService.startService(SafeService.CDB:20)

              at com.tangosol.coherence.component.util.SafeService.ensureRunningService(SafeService.CDB:27)

              at com.tangosol.coherence.component.util.SafeService.start(SafeService.CDB:14)

              at com.tangosol.coherence.commonj.WorkManager.init(WorkManager.java:193)

              at com.tangosol.coherence.commonj.WorkManager.<init>(WorkManager.java:128)

              at oracle.communication.brm.charging.util.coherence.internal.CoherenceTemplateImpl.getWorkManager(CoherenceTemplateImpl.java:724)

      Can someone explain if the error is due to the commonj jar or not.




        • 1. Re: coherence 12C with commonj

          I found out that this has nothing to do with the commonj jar. If anyone can give some hint about why I am facing this error will be of great help. This error is only surfacing with coherence 12c version.

          • 2. Re: coherence 12C with commonj

            Well....The same behaviour which is working in 3.7.1 but not working in 12c. I would explain the problem a bit more.

            We wanted to create workmanger in various nodes except the client node which will only dispatch the work and refrain from participating in the work processing .Hence when are trying to create workmanger in the client node with 0 number of threads(for a client only purpose), it is throwing the above exception. Strangely it is no complaining if we create the workmanager with >0 number of threads. I checked the documentation and it says nothing about this changed behaviour. Looks like a bug to me in coherence.


            Can anyone please explain this behaviour  to me.

            • 3. Re: coherence 12C with commonj

              I think it is a bug. Doing something like this seems to help:


              Cluster c = CacheFactory.getCluster();

              c.getMemberSet(); // this call seems to initialize the members

              Member localmember = c.getLocalMember();

              WorkManager mgr = new WorkManager("myManager", 1); // pretend that we are running a compute server and not a client

              mgr.disableServer(localmember); // immediately disable calculations on this server