Wrapper Classes

Find a bug? Think you found a bug? We'll let you know what we know if you do the same!

Wrapper Classes

Postby icarus » Thu Apr 12, 2012 12:51 am

Hi -

I'm using your Beta Activity Test program and I'm getting the following error. I can see a reference to the wrapper classes in the application-pof-config.xml but I don't see any wrapper classes in the release. Am I missing a jar and if not where do the wrapper classes come from? Are they generated?

Code: Select all
      <user-type>
         <type-id>5200</type-id>
         <class-name>oracle.eclipselink.coherence.integrated.cache.wrappers.cloudtran.model.Child_Wrapper</class-name>
         <serializer>
            <class-name>com.cloudtran.coherence.serializers.CtWrapperObjectSerializer</class-name>
         </serializer>
      </user-type>


Code: Select all
2012-04-11 18:14:55.746/4.109 Oracle Coherence GE 3.7.1.0 <Error> (thread=Cluster, member=5): StopRunning ClusterService{Name=Cluster, State=(SERVICE_STARTED, STATE_JOINED), Id=0, Version=3.7.1, OldestMemberId=1} due to
unhandled exception:
2012-04-11 18:14:55.746/4.109 Oracle Coherence GE 3.7.1.0 <Error> (thread=Cluster, member=5):
(Wrapped: Unable to load class for user type (Config=pof-config.xml, Type-Id=5200, Class-Name=oracle.eclipselink.coherence.integrated.cache.wrappers.cloudtran.model.Child_Wrapper)) (Wrapped) java.lang.ClassNotFoundException: oracle.eclipselink.coherence.integrated.cache.wrappers.cloudtran.model.Child_Wrapper
        at com.tangosol.util.Base.ensureRuntimeException(Base.java:288)
        at com.tangosol.io.pof.ConfigurablePofContext.report(ConfigurablePofContext.java:1283)
        at com.tangosol.io.pof.ConfigurablePofContext.createPofConfig(ConfigurablePofContext.java:980)
        at com.tangosol.io.pof.ConfigurablePofContext.initialize(ConfigurablePofContext.java:797)
        at com.tangosol.io.pof.ConfigurablePofContext.setContextClassLoader(ConfigurablePofContext.java:322)
        at com.tangosol.util.ExternalizableHelper.ensureSerializer(ExternalizableHelper.java:291)
        at com.tangosol.coherence.component.util.daemon.queueProcessor.Service.ensureSerializer(Service.CDB:28)
        at com.tangosol.coherence.component.util.daemon.queueProcessor.Service.ensureSerializer(Service.CDB:4)
        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.ClusterService$ServiceUpdateResponse.write(ClusterService.CDB:1)
        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)
        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.ClusterService$ServiceRegister.onReceived(ClusterService.CDB:12)
        at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Grid.onMessage(Grid.CDB:34)
        at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Grid.onNotify(Grid.CDB:33)
        at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.ClusterService.onNotify(ClusterService.CDB:3)
        at com.tangosol.coherence.component.util.Daemon.run(Daemon.CDB:42)
        at java.lang.Thread.run(Thread.java:619)
Caused by: (Wrapped) java.lang.ClassNotFoundException: oracle.eclipselink.coherence.integrated.cache.wrappers.cloudtran.model.Child_Wrapper
        at com.tangosol.util.Base.ensureRuntimeException(Base.java:288)
        at com.tangosol.util.Base.ensureRuntimeException(Base.java:269)
        at com.tangosol.io.pof.ConfigurablePofContext.loadClass(ConfigurablePofContext.java:1227)
        at com.tangosol.io.pof.ConfigurablePofContext.createPofConfig(ConfigurablePofContext.java:976)
        ... 20 more
Caused by: java.lang.ClassNotFoundException: oracle.eclipselink.coherence.integrated.cache.wrappers.cloudtran.model.Child_Wrapper
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:169)
        at com.tangosol.util.ExternalizableHelper.loadClass(ExternalizableHelper.java:3164)
        at com.tangosol.io.pof.ConfigurablePofContext.loadClass(ConfigurablePofContext.java:1223)
        ... 21 more
icarus
 
Posts: 2
Joined: Thu Apr 12, 2012 12:38 am

Re: Wrapper Classes

Postby matthew » Thu Apr 12, 2012 1:25 am

The wrapper classes are generated at start of day in each module (isolator, manager, client), for each entity that will be sent to Coherence (i.e. that has a CloudTran or TopLink Grid @Customizer). This is a standard part of TopLink grid.

Which module are you using?

This may be an issue if you use a monitoring tool like OCM. In that case, you need to capture the wrapper classes; they're normally created on the fly at run time and thrown away.

To capture the wrapper classes, specify ct.coherence.toplinkgrid.wrapperClasses.directory=... and the classes will get written to the directory.
This is a CloudTran feature and documented in the "config.properties" section. You need to do this in a normal run, before running the monitoring tool.
Then include that class in the monitoring tool's classpath.
matthew
 
Posts: 3
Joined: Thu Apr 12, 2012 1:11 am

Re: Wrapper Classes

Postby icarus » Mon Apr 16, 2012 8:31 am

Thanks Matthew,

You are correct. I am using OCM to monitor the application. I was getting the error as the OCM Agent started,
Following your instructions did the trick.
icarus
 
Posts: 2
Joined: Thu Apr 12, 2012 12:38 am


Return to Bugs and Known Issues

Who is online

Users browsing this forum: No registered users and 1 guest

cron