5 Replies Latest reply: Feb 27, 2013 7:04 AM by user11375704 RSS

    WorkManager unknown exception

    user11375704
      Hi all,

      I have a problem with the WorkManager usage, I get an exception from Coherence (3.7.1.0) that I cannot understand:
      2012-08-09 12:36:20.168/745.053 Oracle Coherence GE 3.7.1.0 <Error> (thread=Invocation:yyyInvocationService, member=2): Unexpected processing failure
      at Member(Id=3, Timestamp=2012-08-09 12:26:28.746, Address=192.168.72.143:8088, MachineId=64385, Location=site:,machine:vm03,process:9483, >Role=WeblogicServer); (Wrapped) java.io.NotSerializableException: com.tangosol.net.events.internal.ServiceDispatcher
      (Wrapped) java.io.NotSerializableException: com.tangosol.net.events.internal.ServiceDispatcher
           at com.tangosol.util.Base.ensureRuntimeException(Base.java:288)
           at com.tangosol.util.Base.ensureRuntimeException(Base.java:269)
           at com.tangosol.coherence.component.util.daemon.queueProcessor.packetProcessor.PacketPublisher.packetizeMessage(PacketPublisher.CDB:23)
           at com.tangosol.coherence.component.util.daemon.queueProcessor.packetProcessor.PacketPublisher$InQueue.add(PacketPublisher.CDB:11)
           at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Grid.dispatchMessage(Grid.CDB:62)
           at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Grid.post(Grid.CDB:46)
           at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Grid.send(Grid.CDB:1)
           at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.InvocationService.sendResponse(InvocationService.CDB:4)
           at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.InvocationService.onInvocationRequest(InvocationService.CDB:71)
           at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.InvocationService$InvocationRequest.run(InvocationService.CDB:1)
           at com.tangosol.coherence.component.util.DaemonPool$WrapperTask.run(DaemonPool.CDB:1)
           at com.tangosol.coherence.component.util.DaemonPool$WrapperTask.run(DaemonPool.CDB:32)
           at com.tangosol.coherence.component.util.DaemonPool$Daemon.onNotify(DaemonPool.CDB:63)
           at com.tangosol.coherence.component.util.Daemon.run(Daemon.CDB:42)
           at java.lang.Thread.run(Thread.java:662)
      Caused by: java.io.NotSerializableException: com.tangosol.net.events.internal.ServiceDispatcher
           at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1164)
           at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
           at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
           at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
           at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
           at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
           at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
           at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
           at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
           at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
           at java.util.Hashtable.writeObject(Hashtable.java:810)
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
           at java.lang.reflect.Method.invoke(Method.java:597)
           at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:940)
           at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)
           at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
           at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
           at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
           at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:423)
           at com.tangosol.coherence.Component.writeObject(Component.CDB:1)
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
           at java.lang.reflect.Method.invoke(Method.java:597)
           at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:940)
           at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)
           at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
           at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
           at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
           at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:423)
           at com.tangosol.coherence.Component.writeObject(Component.CDB:1)
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
           at java.lang.reflect.Method.invoke(Method.java:597)
           at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:940)
           at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)
           at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
           at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
           at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
           at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
           at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
           at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
           at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
           at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
           at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
           at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
           at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
           at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
           at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
           at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
           at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
           at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
           at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
           at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
           at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
           at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
           at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
           at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
           at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
           at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
           at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
           at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
           at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
           at com.tangosol.util.ExternalizableHelper.writeSerializable(ExternalizableHelper.java:2253)
           at com.tangosol.util.ExternalizableHelper.writeObject(ExternalizableHelper.java:2440)
           at com.tangosol.coherence.commonj.WorkManager$WorkStatus.writeExternal(WorkManager.java:1376)
           at com.tangosol.util.ExternalizableHelper.writeExternalizableLite(ExternalizableHelper.java:2066)
           at com.tangosol.util.ExternalizableHelper.writeObject(ExternalizableHelper.java:2436)
           at com.tangosol.io.DefaultSerializer.serialize(DefaultSerializer.java:53)
           at com.tangosol.coherence.component.util.daemon.queueProcessor.Service.writeObject(Service.CDB:1)
           at com.tangosol.coherence.component.net.Message.writeObject(Message.CDB:1)
           at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.InvocationService$InvocationResponse.write(InvocationService.CDB:4)
           at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Grid.serializeMessage(Grid.CDB:14)
           at com.tangosol.coherence.component.util.daemon.queueProcessor.packetProcessor.PacketPublisher.packetizeMessage(PacketPublisher.CDB:17)
           ... 12 more

      Removing the member from the active server list
      After some seconds I received other two similar exceptions:
      9-ago-2012 12.37.02 my.package.listeners.MyListener entryUpdated

      commonj.work.WorkException: java.io.NotSerializableException: com.tangosol.net.events.internal.ServiceDispatcher
      at com.tangosol.coherence.commonj.WorkManager$ScheduleWork.<init>(WorkManager.java:2244)
      at com.tangosol.coherence.commonj.WorkManager.schedule(WorkManager.java:339)
      at com.tangosol.coherence.commonj.WorkManager.schedule(WorkManager.java:278)
      at my.package.listeners.MyListener.entryUpdated(MyListener.java:145)
      at com.tangosol.util.MapEvent.dispatch(MapEvent.java:270)
      at com.tangosol.util.MapEvent.dispatch(MapEvent.java:226)
      at com.tangosol.util.MapListenerSupport.fireEvent(MapListenerSupport.java:567)
      at com.tangosol.net.cache.OldCache.dispatchEvent(OldCache.java:1947)
      at com.tangosol.net.cache.OldCache$Entry.setValue(OldCache.java:2073)
      at com.tangosol.net.cache.OldCache.put(OldCache.java:269)
      at com.tangosol.net.cache.ReadWriteBackingMap$StoreWrapper.replace(ReadWriteBackingMap.java:4984)
      at com.tangosol.net.cache.ReadWriteBackingMap$StoreWrapper.store(ReadWriteBackingMap.java:4794)
      at com.tangosol.net.cache.ReadWriteBackingMap$WriteThread.run(ReadWriteBackingMap.java:4166)
      at com.tangosol.util.Daemon$DaemonWorker.run(Daemon.java:781)
      at java.lang.Thread.run(Thread.java:662)
      Caused by: java.io.NotSerializableException: com.tangosol.net.events.internal.ServiceDispatcher
      at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1164)
      at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
      at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
      at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
      at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
      at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
      at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
      at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
      at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
      at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
      at java.util.Hashtable.writeObject(Hashtable.java:810)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:940)
      at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)
      at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
      at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
      at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
      at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:423)
      at com.tangosol.coherence.Component.writeObject(Component.CDB:1)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:940)
      at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)
      at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
      at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
      at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
      at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:423)
      at com.tangosol.coherence.Component.writeObject(Component.CDB:1)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:940)
      at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)
      at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
      at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
      at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
      at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
      at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
      at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
      at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
      at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
      at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
      at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
      at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
      at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
      at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
      at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
      at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
      at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
      at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
      at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
      at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
      at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
      at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
      at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
      at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
      at com.tangosol.util.ExternalizableHelper.writeSerializable(ExternalizableHelper.java:2253)
      at com.tangosol.util.ExternalizableHelper.writeObjectInternal(ExternalizableHelper.java:2671)
      at com.tangosol.util.ExternalizableHelper.serializeInternal(ExternalizableHelper.java:2601)
      at com.tangosol.util.ExternalizableHelper.toBinary(ExternalizableHelper.java:211)
      at com.tangosol.util.ExternalizableHelper.toBinary(ExternalizableHelper.java:193)
      at com.tangosol.coherence.commonj.WorkManager$ScheduleWork.<init>(WorkManager.java:2240)
      ... 14 more
      I have 2 WorkManagers related to 2 invocationServices that I start from a BackingMapListener as Alek Seovìc recommends WorkManager configuration and usage docs ; during node startup I can see the log:
      9-ago-2012 12.25.09 my.package.WorkManagerFactory getInstance
      INFO: Creating new workmanager for service xxxInvocationService
      9-ago-2012 12.25.14 my.package.WorkManagerFactory getInstance
      INFO: Found WorkManager for service xxxInvocationService, return existing workmanager
      9-ago-2012 12.25.15 my.package.WorkManagerFactory getInstance
      INFO: Creating new workmanager for service yyyInvocationService
      9-ago-2012 12.25.16 my.package.WorkManagerFactory getInstance
      INFO: Found WorkManager for service xxxInvocationService, return existing workmanager
      9-ago-2012 12.25.16 my.package.listeners.MyListener <init>
      INFO: Listener my.package.listeners.MyListener@19896f63 created.
      9-ago-2012 12.25.17 my.package.WorkManagerFactory getInstance
      INFO: Found WorkManager for service xxxInvocationService, return existing workmanager
      9-ago-2012 12.25.26 my.package.WorkManagerFactory getInstance
      INFO: Found WorkManager for service xxxInvocationService, return existing workmanager
      At the first event, a work I scheduled starts, but then I receive the exception above, for 3 times, and other works don't start.
      The call to other works should start from inside the lifecycle of the first work.
      At the moment I use Serializable java serialization.


      Any suggestion, please?