Question

The setup is Glassfish 2.1.1 and a Java standalone client. Connection is via IIOP. Our client produces an enormous amount of traffic on the wire and I'm trying to find out where this comes from.

From my understanding the protocol hierarchy should look like

Ethernet -> IP -> TCP -> GIOP -> CDR

Up to GIOP this is what I see in Wireshark, but the payload of the GIOP messages is unclear.

Unfortunately Wireshark doesn't dissect the payload of the GIOP-Messages. I thought the GIOP Messages should contain Java objects serialized with CORBA CDR, because that is the CORBA serialization. (After all for non Java clients, I'd had to generate IDL, so CDR should be used anywhere).

What I see in Wireshark is lots and lots of

XRMI:java.util.Collections\U0024SynchronizedCollection:

followed by a Hex-String and a few bytes of binary data, then again XRMI:.....

From this I suppose it's RMI and I have RMI over IIOP, giving me

Ethernet -> IP -> TCP -> GIOP -> RMI -> Java Serialization

But if the GIOP payload is RMI where does CDR fit in.

How can I interpret the payload of the GIOP messages and where can I find a spec for RMI over IIOP?

Was it helpful?

Solution

RMI over IIOP is just CDR over GIOP as you have above. It's not a different protocol and it does not use Java Serialization. Its whole purpose is to be compatible with CORBA.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top