Tomcat clustor: Error: Unable to serialize delta request

Hi,

I am doing the tomcat clustor on Tomcat 5.0. I followed the configration online:
1) All session attributes must implement java.io.Serializable
2) Uncomment the Cluster element in server.xml
3) Uncomment the Value(ReplicationValue) element in server.xml
4) Tomcat is not running on the same machine
5) web.xml has the <distributable>true</distributable>

However, I got the following error message on the console:

SEVERE: Unable to serialize delta request
java.io.NotSerializableException: java.util.PropertyResourceBundle
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
        at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1369)
        at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1341)
        at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1284)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1073)
        at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1369)
        at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1341)
        at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1284)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1073)
        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:291)
        at org.apache.catalina.cluster.session.DeltaRequest$AttributeInfo.writeExternal(DeltaRequest.java:300)
        at org.apache.catalina.cluster.session.DeltaRequest.writeExternl(DeltaRequest.java:217)
        at org.apache.catalina.cluster.session.DeltaManager.unloadDeltaRequest(DeltaManager.java:393)
        at org.apache.catalina.cluster.session.DeltaManager.requestCompleted(DeltaManager.java:782)
        at org.apache.catalina.cluster.tcp.ReplicationValve.invoke(ReplicationValve.java:203)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
        at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
        at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
        at java.lang.Thread.run(Thread.java:595)

I cannot find PropertyResourceBundle in my project. Anyone has any clue?

Thanks
LVL 3
a122178Asked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

rama_krishna580Commented:
Hi,

Its the Object that deployed in cluster environments are not inSync. Try to Undeploy and deploy both env. again.

R.K
0
a122178Author Commented:
Thanks for your comment. But what do you mean Undeploy and deploy both env. I just change the configuration in Tomcat. Can you tell more detail about that?
0
rama_krishna580Commented:
Make sure the applications you have in Cluster Env. (Both Machines) are the same, and the Configurations are also same.

R.K
0
Cloud Class® Course: Microsoft Office 2010

This course will introduce you to the interfaces and features of Microsoft Office 2010 Word, Excel, PowerPoint, Outlook, and Access. You will learn about the features that are shared between all products in the Office suite, as well as the new features that are product specific.

a122178Author Commented:
Yeah. Both of the configurations. The Tomcat version, the server.xml and web.xml are the same.

0
rama_krishna580Commented:
Hi,

http://servlets.com/archive/servlet/ReadMsg?msgId=22993&listName=struts-user

And i guess one more situation here...

I think you have something in session which is not serializable. Therefore tomcat aborts writing session contents to file. Next start tomcat tries to load stored sessions, but can't due to previously aborted writing. If you don't care about restart session persistence, you can try to find the proper switch in the conf-docs or just add following to your bin/catalina.sh:
 rm -rf work/Catalina/localhost/<webappname>/SESSIONS.ser

R.K
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
a122178Author Commented:
I will try it and let you know. Thanks.
0
a122178Author Commented:
I have tried it. But I still got the error message.

I cannot find which class has to be serialized.
0
a122178Author Commented:
Check the application. All the objects y, (I believe for String, Locale and Integer are already serialized) in setAttribute(x,y) are serialized. Getting the same message:

SEVERE: Unable to serialize delta request for sessionid [FA55D3E188C4668B43129DA
C5CFE4867.node01]
java.io.NotSerializableException: java.util.PropertyResourceBundle

0
a122178Author Commented:
In additional, I have printed out all the names and values in the session:

clientLocale en
External false
SessionListener com.nai.session.SessionListener@6cbecf
m_User Name: administrator ID: 1.1 Role description: Administrator
Passkey 1
UserName administrator
IPAddress 127.0.0.1
ExternalConnection 0
SharedSessionName null

It seems I have string, boolean and sessionListener (which is serialized) in my session.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Web Servers

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.