Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

java.io.InvalidClassException relating to serialVersionUID when reprocessing messages in JMSMESSAGE table

1 view
Skip to first unread message

Srinivas Vangari

unread,
May 29, 2001, 6:19:06 PM5/29/01
to
Hi,

We are getting java.io.InvalidClassException while weblogic tries to
reprocess messages in JDBC store
for delivery to a queue receiver. We are using Weblogic 5.1 with sp8.

The messages are all of type ObjectMessage. The body (content) is a hashmap.
The hashmap is a holder
for a row in a table with column names as the keys and field content as the
values. The messages are
persisted (with 0 timetolive - infinite) in jms tables until a receiver is
brought up. Once brought up,
the receiver gets the message and inserts the row in hashmap into its
corresponding table.

InvalidClassException was thrown when we added a column to a table and
changed the appropriate producer class
to insert new column into the hashmap before sending the message to the
queue. The message is still
ObjectMessage and hashmap inside it with an extra column. However the
exception occurs not at the sender side
but whenever the weblogic starts up and tries to process old persisted
messages (without the extra column
info inside the hashmap) once a receiver is available. In our application,
the receiver is started in a
startup class.

The following is a partial stack trace and output from weblogic startup.

============================================================================
============
Tue May 29 17:20:37 EDT 2001:<I> <EJB> 2 EJB jar files loaded, containing 2
EJBs

Tue May 29 17:20:37 EDT 2001:<I> <EJB> 2 deployed, 0 failed to deploy.
Tue May 29 17:20:38 EDT 2001:<I> <HTTP> Log rotation is size based
Tue May 29 17:20:38 EDT 2001:<I> <ZAC> ZAC ACLs initialized
Tue May 29 17:20:38 EDT 2001:<I> <ZAC> ZAC packages stored in local
directory ex
ports
Tue May 29 17:20:38 EDT 2001:<I> <WebLogicServer> Invoking T3StartupDef
OdsMessa
gingBootstrap com.realeum.foundation.odsgateway.OdsMessagingBootstrap with
{}
Ods Messaging Bootstrap started.
Starting the Ods Gateway Listener.
Queue not found in OdsGatewayListener, hance creating a new Queue
javax.jms.Queue
java.io.InvalidClassException: weblogic.jms.common.ObjectMessageImpl; Local
class
not compatible: stream classdesc serialVersionUID=-7425140574134234139 local
class serialVersionUID=-1490312968403794472
at
java.io.ObjectStreamClass.validateLocalClass(ObjectStreamClass.java:437)
at java.io.ObjectStreamClass.setClass(ObjectStreamClass.java:481)
at
java.io.ObjectInputStream.inputClassDescriptor(ObjectInputStream.java:785)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:353)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:232)
at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:978)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:232)
at weblogic.jms.server.JDBCStore.bytesToObject(JDBCStore.java:1646)
at weblogic.jms.server.JDBCStore.enqueueMessages(JDBCStore.java,
Compiled Code)
at
weblogic.jms.server.JDBCStore.getCompressedMessages(JDBCStore.java:2224)
at weblogic.jms.server.CursorQueue.unsync_expand(CursorQueue.java,
Compiled Code)
at weblogic.jms.server.CursorQueue.unsync_get(CursorQueue.java,
Compiled Code)
at weblogic.jms.server.CursorQueue.get(CursorQueue.java:372)
at
weblogic.jms.server.QueueRegistration.requestDelivery(QueueRegistration.java
, Compiled Code)
at
weblogic.jms.server.QueueRegistration.activate(QueueRegistration.java:127)
at weblogic.jms.server.SessionState.start(SessionState.java,
Compiled Code)
at
weblogic.jms.server.JMSConnection.startSessions(JMSConnection.java, Compiled
Code)
at weblogic.jms.server.JMSConnection.start(JMSConnection.java:249)
at
com.realeum.foundation.odsgateway.OdsGatewayListener.init(OdsGatewayListener
.java:174)
at
com.realeum.foundation.odsgateway.OdsGatewayListener.<init>(OdsGatewayListen
er.java:96)
at
com.realeum.foundation.odsgateway.OdsMessagingBootstrap.startup(OdsMessaging
Bootstrap.java:72)
at weblogic.t3.srvr.StartupThread.runStartup(StartupThread.java:182)
at weblogic.t3.srvr.StartupThread.doWork(StartupThread.java,
Compiled Code)
at
weblogic.t3.srvr.PropertyExecuteThread.run(PropertyExecuteThread.java:62)
javax.jms.JMSException: Error extracting unstable messages
at
weblogic.jms.common.JMSUtilities.jmsException(JMSUtilities.java:18)
at
weblogic.jms.server.JDBCStore.getCompressedMessages(JDBCStore.java:2228)
at weblogic.jms.server.CursorQueue.unsync_expand(CursorQueue.java,
Compiled Code)
at weblogic.jms.server.CursorQueue.unsync_get(CursorQueue.java,
Compiled Code)
at weblogic.jms.server.CursorQueue.get(CursorQueue.java:372)
at
weblogic.jms.server.QueueRegistration.requestDelivery(QueueRegistration.java
, Compiled Code)
at
weblogic.jms.server.QueueRegistration.activate(QueueRegistration.java:127)
at weblogic.jms.server.SessionState.start(SessionState.java,
Compiled Code)
at
weblogic.jms.server.JMSConnection.startSessions(JMSConnection.java, Compiled
Code)
at weblogic.jms.server.JMSConnection.start(JMSConnection.java:249)
at
com.realeum.foundation.odsgateway.OdsGatewayListener.init(OdsGatewayListener
.java:174)
at
com.realeum.foundation.odsgateway.OdsGatewayListener.<init>(OdsGatewayListen
er.java:96)
at
com.realeum.foundation.odsgateway.OdsMessagingBootstrap.startup(OdsMessaging
Bootstrap.java:72)
at weblogic.t3.srvr.StartupThread.runStartup(StartupThread.java:182)
at weblogic.t3.srvr.StartupThread.doWork(StartupThread.java,
Compiled Code)
at
weblogic.t3.srvr.PropertyExecuteThread.run(PropertyExecuteThread.java:62)
Ods Messaging Bootstrap completed.


Lisa Popp

unread,
May 30, 2001, 10:52:27 AM5/30/01
to
This is a known problem with SP8. Go to SP9 or contact customer support for a
patch for SP8 referencing Issue 41900.

-Lisa

0 new messages