Can OmniORB 2.2.0 handle IIOP contexts?
Bill Janssen
janssen@parc.xerox.com
Mon, 6 Oct 1997 19:47:22 PDT
In testing ILU 2.0alpha11 against OmniORB 2.2.0, I find that sending a
context in a request (a new context, the CODE_SETS context added by
the type extensions RFP) causes OmniORB to respond with a
MessageError. My reading of the IIOP spec is that an ORB should
discard unrecognized contexts, but not abort, so this looks like an
OmniORB bug. Here's a trace of an ILU client running against the
OmniORB echo service:
% python eg2_clt.py 'IOR:00fff3240000000d49444c3a4563686f3a312e30007a58c0000000010000000000000028000100000000000c31332e312e3130312e323600a06020200000000c3439a21d2cb5d17800000001'
ILU version 2.0alpha11. Copyright 1990-1996 Xerox Corporation.
------------------------------------------------------------
Configuration info: big-endian, is BSD, is POSIX, Solaris 2 threads, variant, size_t=size_t,
char=1s, short=2, int=4, long=4, void *=4, fnptr=4, long long=8, long double=16, enum=4,
arch=sparc-sun-solaris2.5.1, compiler="/import/sunpro-4.0/SUNWspro/bin/cc -xs -Xt -v",
ANSI C lib=" -lm", sys aux libs=" -lsocket -lnsl -lthread",
protocols = sunrpc courier iiop http javarmi, transports = inmem tcp sunrpcrm w3mux batching,
binding via ILU service on watson.parc.xerox.com:12003
------------------------------------------------------------
ilu_SetDebugLevel: setting debug mask from 0x0 to 0x20404
_ilu_IIOP_ParseIOR: byte order BigEndian, repository id <IDL:Echo:1.0>, 1 profile
_ilu_IIOP_ParseIOR: profile 1 is 40 bytes, tag 0 (INTERNET), BigEndian byte order
(iiop.c:parse_IIOP_Profile): bo=BigEndian, version=1.0, hostname=13.1.101.26, port=41056, object_key=<49..,..x....>
(iiop.c:parse_IIOP_Profile): encoded object key is <49%A2%1D%2C%B5%D1x%00%00%00%01>
(iiop.c:parse_IIOP_Profile): non-native cinfo is <iiop_1_0_1_49%25A2%251D%252C%25B5%25D1x%2500%2500%2500%2501@tcp_13.1.101.26_41056>
_ilu_IIOP_ParseIOR: byte order BigEndian, repository id <IDL:Echo:1.0>, 1 profile
_ilu_IIOP_ParseIOR: profile 1 is 40 bytes, tag 0 (INTERNET), BigEndian byte order
(iiop.c:parse_IIOP_Profile): bo=BigEndian, version=1.0, hostname=13.1.101.26, port=41056, object_key=<49..,..x....>
(iiop.c:parse_IIOP_Profile): encoded object key is <49%A2%1D%2C%B5%D1x%00%00%00%01>
(iiop.c:parse_IIOP_Profile): non-native cinfo is <iiop_1_0_1_49%25A2%251D%252C%25B5%25D1x%2500%2500%2500%2501@tcp_13.1.101.26_41056>
_ilu_IIOP_FindClassViaRPC(9dce8 "%8BS%7D%B4%D1%9Fő%DB" "ilu--corba-native-object:49%A2%1D%2C%B5%D1x%00%00%00%01")
ilu_StartCall (efffe648 over 9f0e8 to "%8BS%7D%B4%D1%9Fő%DB" #1, ilu.Object.-is-a, pl=0, si=0).
_IIOP_SizeOfObjectID (efffe648, 9dce8, is disc, ilu.Object) => 35
_IIOP_StartRequest: call efffe648 (sn 1), argSize 52, class ilu.Object (ilu:root-object-type), meth -is-a (65413)
_IIOP_StartRequest: request 1 begun (argsize 52).
ilu_StartRequest (efffe648 over 9f0e8 to "%8BS%7D%B4%D1%9Fő%DB" #1, argSize 52) => success
ilu_FinishRequest (efffe648 over 9f0e8 to "%8BS%7D%B4%D1%9Fő%DB" #1)
DumpPacket of outgoing TCP packet d3268, length 93 bytes, dumping 93 bytes:
0: 47 49 4f 50 01 00 00 00 00 00 00 51 00 00 00 01 GIOP.......Q....
16: 00 00 00 01 00 00 00 0c 00 01 00 20 00 01 00 01 ........... ....
32: 00 01 01 00 00 00 00 01 01 00 00 00 00 00 00 0c ................
48: 34 39 a2 1d 2c b5 d1 78 00 00 00 01 00 00 00 06 49..,..x........
64: 5f 69 73 5f 61 00 00 00 00 00 00 00 00 00 00 0d _is_a...........
80: 49 44 4c 3a 45 63 68 6f 3a 31 2e 30 00 IDL:Echo:1.0.
ilu_GetReply (efffe648 over 9f0e8 to "%8BS%7D%B4%D1%9Fő%DB" #1)...
DumpPacket of incoming TCP packet 9de78, length 12 bytes, dumping 12 bytes:
0: 47 49 4f 50 01 00 00 06 00 00 00 00 GIOP........
_IIOP_ReadHeader: MessageError advisory received.
_IIOP_ReadHeader: MessageError #0, 0 bytes, big-endian, short char codeset 00010001, char codeset 00000000.