users@glassfish.java.net

Re: Distributed cache in cluster environment

From: Sivakumar Thyagarajan <Sivakumar.Thyagarajan_at_Sun.COM>
Date: Thu, 18 Oct 2007 18:53:02 +0530

> The problem i encounter is that when an instance reveives the message emited
by an other, i try to resolve the class (using Class.forName()) of the object
registered in the notification and a ClassNotFoundException is thrown :
...
> at
oracle.toplink.essentials.internal.sessions.ObjectInvalidationReceiver.run(ObjectInvalidationReceiver.java:115)


Which Class.forName signature do you use? Do you pass in an explicit
classloader? If no, I am assuming ObjectInvalidationReceiver is your own class
as I don't see it as a part of the bundled toplink-essentials.jar. Where have
you placed the jar that contains ObjectInvalidationReceiver?

Thanks
--Siva.

glassfish_at_javadesktop.org wrote:
> Hi,
>
> At the present time, Toplink-Essential does not proposed a distributed cache system in a cluster environment in order to synchronized caches between several instances of a same cluster.
>
> To solve this lack of functionnality and because my application needs it, i make an enhancement in toplink code in order to broadcast the Primary Keys and the Class name (as string) of the object that has been updated or deleted, in order to invalidate the object in all the instances that are listenning to these notifications.
>
> The communication between all instances is based on a jms Topic (so in publish/subscribe mode) and each instance is listening to this topic and publish all notifications on object updates and deletion.
>
> The problem i encounter is that when an instance reveives the message emited by an other, i try to resolve the class (using Class.forName()) of the object registered in the notification and a ClassNotFoundException is thrown :
>
> [#|2007-10-18T14:08:51.325+0200|WARNING|sun-appserver9.1|javax.enterprise.system.stream.err|_ThreadID=23;
> _ThreadName=Thread-67;_RequestID=1e144503-e9a7-4a0f-894f-485f306a792a;|java.lang.ClassNotFoundException: com.gemalto.mmserver.ocp.model.impl.portal.PortalReleaseEntity
> at com.sun.appserv.server.util.ASURLClassLoader.loadClass(ASURLClassLoader.java:129)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:169)
> at oracle.toplink.essentials.internal.sessions.ObjectInvalidationReceiver.run(ObjectInvalidationReceiver.java:115)
> at java.lang.Thread.run(Thread.java:619)
>
>
> I try to solve this problem by setting the jar that contains this class alternatively in the following directories but it does not work :
> domains/domain1/lib/ext directory
> lib/ext directory
> lib directory
>
>
> Do you have an idea to solve my problem ?
>
> Thanks in advance for your attention.
> [Message sent by forum member 'franck_mosse' (franck_mosse)]
>
> http://forums.java.net/jive/thread.jspa?messageID=240914
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net
> For additional commands, e-mail: users-help_at_glassfish.dev.java.net
>