I really would appreciate more info on this. This is completely messing up
the application behaviour in a clustered env. This seems to be cause of
weblogic not being able to replicate session as every time it tries to
replicate this exception gets thrown.

Please, any workarounds, ideas ?

Thanks.


James Carman wrote:
> 
> It's a thread local variable.  So, it's only set for the calling thread
> (the
> webapp's startup thread).  I think the thread local is what's messing it
> up.
> 
> On 5/18/07, Hugo Palma <[EMAIL PROTECTED]> wrote:
>>
>> But the setServiceSerializationSupport method is called from the startup
>> method of RegistryInfrastructureImpl. So, it should be initialized as
>> soon
>> as the Tapestry servlet creates the registry right ?
>>
>> Actually, i just realized i have load-on-startup=0 in the tapestry
>> servlet. This could be the thing that keeps the
>> ServiceSerializationSupport
>> from getting set in the other cluster node. Or not ?
>>
>> On 5/18/07, James Carman <[EMAIL PROTECTED]> wrote:
>> >
>> > Here's the code:
>> >
>> >     private static final ThreadLocal _threadLocal = new ThreadLocal();
>> >
>> >     /**
>> >      * Returns the previously stored SSS.
>> >      *
>> >      * @throws ApplicationRuntimeException
>> >
>> >
>> >      *             if no SSS has been stored.
>> >      */
>> >     public static ServiceSerializationSupport
>> getServiceSerializationSupport()
>> >     {
>> >         ServiceSerializationSupport result = null;
>> >
>> >         WeakReference reference = (WeakReference) _threadLocal.get();
>> >
>> >
>> >         if (reference != null)
>> >             result = (ServiceSerializationSupport) reference.get();
>> >
>> >         if (result == null)
>> >             throw new
>> ApplicationRuntimeException(SerMessages.noSupportSet
>> > ());
>> >
>> >
>> >         return result;
>> >     }
>> >
>> >     /**
>> >      * Stores the SSS instance for later access; if an existing SSS is
>> already stored, then an error
>> >      * is logged (should be just one SSS per class loader).
>> >
>> >
>> >      */
>> >
>> >     public static void setServiceSerializationSupport(
>> >             ServiceSerializationSupport serviceSerializationSupport)
>> >     {
>> >         WeakReference reference = new
>> WeakReference(serviceSerializationSupport);
>> >
>> >
>> >
>> >         _threadLocal.set(reference);
>> >
>> >     }
>> >
>> >
>> > It's not initialized because it probably hasn't serialized anything yet
>> > for that specific thread on the other server.  That's the scenario I am
>> > imagining after looking at that code.   Come to think of it, this could
>> > actually happen on the same server if serialization hasn't occurred for
>> that
>> > request thread.  So, server affinity may not solve all your problems. 
>> I
>> > didn't write this particular piece of code, so I hope I am reading it
>> > correctly (I think I am).
>> >
>> > On 5/18/07, Hugo Palma < [EMAIL PROTECTED]> wrote:
>> > >
>> > > I think we'll be able to use server affinity, still this shouldn't be
>> > > required.
>> > > I still don't understand why is ServiceSerializationSupport not
>> > > getting initialized in one of the cluster nodes.
>> > >
>> > > That's right, Tapestry is handling all the serialization stuff.
>> > >
>> > > On 5/18/07, James Carman < [EMAIL PROTECTED]> wrote:
>> > > >
>> > > > Can you use server affinity for your application?  Basically,
>> > > > HiveMind looks for a thread local variable to be set to deserialize
>> your
>> > > > service proxies.  The variable gets set on the initial server where
>> the
>> > > > session is serialized first, but it's not set on the other server
>> where it's
>> > > > deserialized.  I'm assuming Tapestry is doing this behind the
>> scenes for you
>> > > > and you have no control over what gets serialized?
>> > > >
>> > > > On 5/18/07, Hugo Palma < [EMAIL PROTECTED]> wrote:
>> > > > >
>> > > > > I'm getting the following exception all over the logs in a
>> > > > > clustered environment :
>> > > > >
>> > > > > org.apache.hivemind.ApplicationRuntimeException: The
>> > > > > ServiceSerializationSupport instance has not been set; this
>> indicates that
>> > > > > the HiveMind Registry has not been created within this JVM.
>> > > > >
>> > > > > The application seems to work ok, but we are also having some
>> > > > > session replication problems with the same application that might
>> be related
>> > > > > to this issue also.
>> > > > > Any ideas about might be causing this would be great. I'm using
>> > > > > hivemind-1.1.1.
>> > > > >
>> > > >
>> > > >
>> > >
>> >
>>
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Registry-trouble-in-a-cluster-tf3779171.html#a11395264
Sent from the Hivemind - User mailing list archive at Nabble.com.

Reply via email to