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

java.rmi.MarshalException using 8.1 SP2 & wlclient.jar

48 views
Skip to first unread message

Ronald Gavlin

unread,
Jul 28, 2004, 5:48:41 PM7/28/04
to
I'm receiving the following IIOP exception using the WebLogic thin client (wlclient.jar). My configuration is as follows:

Client Config
-------------
Sun JVM 1.4.2_04
wlclient.jar (8.1 SP2)

Server Config
-------------
Sun JVM 1.4.2_04
weblogic.jar (8.1 SP2)


Client-side Exception
---------------------
java.rmi.MarshalException: CORBA MARSHAL 0 No; nested exception is:
org.omg.CORBA.MARSHAL: vmcid: 0x0 minor code: 0 completed: No
at com.sun.corba.se.internal.iiop.ShutdownUtilDelegate.mapSystemException(ShutdownUtilDelegate.java:100)
at javax.rmi.CORBA.Util.mapSystemException(Util.java:65)
at <my_class>(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
..
at weblogic.security.subject.SubjectProxy.doAs(SubjectProxy.java:61)
at weblogic.security.subject.SubjectManager.runAs(SubjectManager.java:231)
at weblogic.security.Security.runAs(Security.java:48)
..
java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:454)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:141)
at java.awt.Dialog$1.run(Dialog.java:540)
at java.awt.Dialog.show(Dialog.java:561)
at java.awt.Component.show(Component.java:1133)
at java.awt.Component.setVisible(Component.java:1088)
..
at java.awt.Component.processEvent(Component.java:4897)
at java.awt.Container.processEvent(Container.java:1569)
at java.awt.Component.dispatchEventImpl(Component.java:3615)
at java.awt.Container.dispatchEventImpl(Container.java:1627)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3207)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
at java.awt.Container.dispatchEventImpl(Container.java:1613)
at java.awt.Window.dispatchEventImpl(Window.java:1606)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
Caused by: org.omg.CORBA.MARSHAL: vmcid: 0x0 minor code: 0 completed: No
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
at java.lang.Class.newInstance0(Class.java:308)
at java.lang.Class.newInstance(Class.java:261)
at com.sun.corba.se.internal.iiop.messages.ReplyMessage_1_2.getSystemException(ReplyMessage_1_2.java:90)
at com.sun.corba.se.internal.iiop.ClientResponseImpl.getSystemException(ClientResponseImpl.java:105)
at com.sun.corba.se.internal.corba.ClientDelegate.invoke(ClientDelegate.java:314)
at org.omg.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:457)
... 58 more

Server-side Errors
---------------------
org.omg.CORBA.MARSHAL: stream corrupted: '0' tag reserved vmcid: 0x0 minor code: 0 completed: No
at weblogic.iiop.IIOPInputStream.continuation(IIOPInputStream.java:499)
at weblogic.iiop.IIOPInputStream.endOfChunk(IIOPInputStream.java:478)
at weblogic.iiop.IIOPInputStream.checkChunk(IIOPInputStream.java:459)
at weblogic.iiop.IIOPInputStream.read_longlong(IIOPInputStream.java:1087)
at com.sun.corba.se.internal.io.IIOPInputStream.inputPrimitiveField(IIOPInputStream.java:1373)
at com.sun.corba.se.internal.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:1786)
at com.sun.corba.se.internal.io.IIOPInputStream.inputObject(IIOPInputStream.java:913)
at com.sun.corba.se.internal.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:261)
at com.sun.corba.se.internal.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:247)
at com.sun.corba.se.internal.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:209)
at weblogic.iiop.IIOPInputStream.read_value(IIOPInputStream.java:1944)
at weblogic.iiop.IIOPInputStream.read_value(IIOPInputStream.java:1728)
at weblogic.iiop.IIOPInputStream.read_abstract_interface(IIOPInputStream.java:2045)
at com.sun.corba.se.internal.io.IIOPInputStream.readObjectDelegate(IIOPInputStream.java:228)
at com.sun.corba.se.internal.io.IIOPInputStream.readObjectOverride(IIOPInputStream.java:381)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:318)
at java.util.ArrayList.readObject(ArrayList.java:547)
at com.sun.corba.se.internal.io.IIOPInputStream.readObject(Native Method)
at com.sun.corba.se.internal.io.IIOPInputStream.invokeObjectReader(IIOPInputStream.java:1298)
at com.sun.corba.se.internal.io.IIOPInputStream.inputObject(IIOPInputStream.java:908)
at com.sun.corba.se.internal.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:261)
at com.sun.corba.se.internal.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:247)
at com.sun.corba.se.internal.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:209)
at weblogic.iiop.IIOPInputStream.read_value(IIOPInputStream.java:1944)
at com.sun.corba.se.internal.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:1577)
at com.sun.corba.se.internal.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:1796)
at com.sun.corba.se.internal.io.IIOPInputStream.inputObject(IIOPInputStream.java:913)
at com.sun.corba.se.internal.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:261)
at com.sun.corba.se.internal.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:247)
at com.sun.corba.se.internal.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:209)
at weblogic.iiop.IIOPInputStream.read_value(IIOPInputStream.java:1944)
at com.sun.corba.se.internal.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:1577)
at com.sun.corba.se.internal.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:1796)
at com.sun.corba.se.internal.io.IIOPInputStream.inputObject(IIOPInputStream.java:913)
at com.sun.corba.se.internal.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:261)
at com.sun.corba.se.internal.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:247)
at com.sun.corba.se.internal.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:209)
at weblogic.iiop.IIOPInputStream.read_value(IIOPInputStream.java:1944)
at weblogic.iiop.RMIMsgInput.readObject(RMIMsgInput.java:83)
at <my_class>(Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerRef.java:108)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:353)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:144)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:415)
at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:30)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)

Ronald Gavlin

unread,
Jul 28, 2004, 6:35:23 PM7/28/04
to
Looks like the following client jvmarg did the trick. Is there a patch for SP2 available that resolves this problem? What is the CR#? We're not quite ready to move to SP3 yet.

-Dcom.sun.CORBA.giop.ORBGIOP12BuffMgr=0

Andy Piper

unread,
Jul 28, 2004, 7:13:11 PM7/28/04
to
Ronald Gavlin <noad...@noaddress.given> writes:

CR173046 is the real fix. You could also use the thin-client jar from SP3 since it sets
the property also.

andy

> Looks like the following client jvmarg did the trick. Is there a patch for SP2 available that resolves this problem? What is the CR#? We're not quite ready to move to SP3 yet.
>
> -Dcom.sun.CORBA.giop.ORBGIOP12BuffMgr=0

--

Adam Houghton

unread,
Aug 16, 2004, 4:28:30 PM8/16/04
to
We've experienced the same behavior using the thin client jar on SP2. Setting JVM arg fixed the problem for us.

Before setting this argument on all of our client installations, I'd like to understand a little bit more about what is happening. Are there any performance implications of setting ORBGIOP12BuffMgr to 0? Is this bug fixed in the SP3 thin client jar, or is the property just overridden?

According to the SP3 release notes, CR132427 fixed this bug:
"This was due to GIOP version mismatch in the response triggered by the interleaving of response fragments with out-of-band heartbeat messages. A code fix to place the proper GIOP version in the response resolved this issue."

Any extra information you could provide about the SP2 workaround or the SP3 fix would be greatly appreciated.

Andy Piper

unread,
Aug 16, 2004, 7:21:56 PM8/16/04
to
> Before setting this argument on all of our client
> installations, I'd like to understand a little bit
> more about what is happening. Are there any
> performance implications of setting ORBGIOP12BuffMgr

Yes, you will get better performance. Basically the JDK ORB fragments messages into 1k chunks. For large messages this can result in a _lot_ of very inefficient network traffic.

> to 0? Is this bug fixed in the SP3 thin client jar,
> or is the property just overridden?

Both. We changed the property by default in the client because it gives better performance. The actual bug is in the server, we fixed this also in SP3 (it requires a server-side patch). So you could get away with just applying the patch to the server if you didn't want to update all of your clients.

> According to the SP3 release notes, CR132427 fixed
> this bug:
> "This was due to GIOP version mismatch in the
> response triggered by the interleaving of response
> fragments with out-of-band heartbeat messages. A code
> fix to place the proper GIOP version in the response
> resolved this issue."

Right, so the client ended up sending heartbeats using GIOP 1.0 in between fragments at GIOP 1.2. This is allowed by the GIOP spec but the server implementation assumed that all messages on the same connection would be at the same GIOP rev. We've now fixed this.

andy

Adam Houghton

unread,
Aug 17, 2004, 8:56:46 AM8/17/04
to
Thanks for the information & the quick response. I appreciate your help. We're sticking with SP2 on the server for the time being, so the client JVM argument will solve the problem.

Andy Piper

unread,
Aug 17, 2004, 12:47:10 PM8/17/04
to
Note that you can use the wlclient.jar from 8.1sp3 against a server running 8.1sp2.

Shana Bertram

unread,
Sep 2, 2004, 4:28:42 PM9/2/04
to
I'm still getting this error, but I'm using 8.1 SP3, same jvm on client and server. This is doing the simple 'look up a DataSource from a client' example in the docs.

I even tried the jvm -D's and it still occurs. The context lookup succeeds, but the code dumps on this line of my app:

conn = ds.getConnection();

Here's the error snippet:

java.rmi.MarshalException: CORBA MARSHAL 0 Maybe; nested exception is:
org.omg.CORBA.MARSHAL: vmcid: 0x0 minor code: 0 completed: Maybe
at com.sun.corba.se.internal.iiop.ShutdownUtilDelegate.mapSystemExceptio


n(ShutdownUtilDelegate.java:100)
at javax.rmi.CORBA.Util.mapSystemException(Util.java:65)

at weblogic.jdbc.common.internal._RemoteDataSource_Stub.getConnection(Un
known Source)

Andy Piper

unread,
Sep 2, 2004, 4:51:13 PM9/2/04
to
You are trying to use Remote JDBC, this is not supported by the thin-client since it requires non-conformant RMI.

Shana Bertram

unread,
Sep 2, 2004, 5:17:43 PM9/2/04
to
Wow, you're fast. By the time I found that in the FAQ, you'd already replied.

Thanks!

(it's also in another forum thread)

:-)

Tushar Phondge

unread,
Jan 31, 2005, 11:44:56 AM1/31/05
to
-Dcom.sun.CORBA.giop.ORBGIOP12BuffMgr=0 works with wlclient.jar SP2. However, is there any adverse effect if I leave the system property in the startup script and revert back to weblogic.jar (SP2)?

Thanks

Tushar

Andy Piper

unread,
Jan 31, 2005, 12:46:40 PM1/31/05
to
Tushar Phondge <noad...@noaddress.given> writes:

> -Dcom.sun.CORBA.giop.ORBGIOP12BuffMgr=0 works with wlclient.jar SP2. However, is there any adverse effect if I leave the system property in the startup script and revert back to weblogic.jar (SP2)?

No adverse affect, and indeed this is the default in 8.1SP4 and will
give you better performance for large objects.

andy

--

0 new messages