Re: ORBit-0.5.12 <--> Java 1.3.1



Hi.

----- Original Message -----
From: "Adam Buckley" <adambuckley@gmx.net>
To: <orbit-list@gnome.org>
Sent: Saturday, December 08, 2001 3:50 AM
Subject: ORBit-0.5.12 <--> Java 1.3.1


> Hi,
>
> I'm busy testing ORB-interoperability using an 'EchoServer' example.
> Everything is executed on one machine running RedHat Linux 6.1.  The
> development tools are ORBit-0.5.12 and Java SDK 1.3.1, using the built-in
> "JavaIDL" functionality.  The IOR is passed as a shared file.
>
> Here's the result:
>
> Java Client >> Java Server Works!
> Java Client >> Orbit Server Works!
> Orbit Client >> Orbit Server Works!
>
> Orbit Client >> Java Server Dies.
>
>
> The exception thrown by the final test was:
>
> Major 2
> Repo ID: IDL:CORBA/MARSHAL:1.0
>
>
> Then I removed the trailing \n from the Java-generated IOR file.  Now the
> invocation gets through, and the Java server prints the correct message,
but
> the ORBit client does not return from the remote method call - it just
> blocks indefinately.
>
> If I CTRL-C the Java Server, the ORBit client wakes up, but with the
> exception:
>
> Major: 2
> Repo ID: IDL:CORBA/COMM_FAILURE:1.0
>
>
> Has anyone else had this problem?  Should I switch to ORBit2?  Should I
> switch to a different Java-side ORB?  Or should I sell my computer and use
> the money to set up a hippy commune in the countryside, where we would
grow
> our own vegetables and lead rich, meaningful lives?
I met similar problem with J2SE(1.4. Beta 3) and Perl CORBA::ORBit
(that module uses ORBit).

It seems that J2SE returns invalid(?) message, because of that
it select sockets again.
So I just modify to avoid this like below and set JAVACORBA
evironment variable when I use client.
I don't know what it true or right and get no answer about this.
I hope this maybe your help.

[Modification]
ORBit-0.5.12/src/IIOP giop-msg-buffer.c
$ diff giop-msg-buffer.csv giop-msg-buffer.c
1085a1086,1102
> if(getenv("JAVACORBA")) {
>     GIOP_unsigned_long *lPnt = (GIOP_unsigned_long *)request_ids->data;
>
>     unsigned char *cPos = (unsigned char *)retval;
>     int iPos = 0;
>     for(iPos =0; iPos<sizeof(*retval); ++iPos, ++cPos) {
>         if((iPos % 16)==0) printf("\n");
>         else if((iPos %  4)==0) printf(" ");
>         printf("%02X", *cPos);
>     }
>     printf("\n----------\nWAIT:%X Java: %X %X\n",
>              *lPnt,
>              retval->message.u.reply.request_id ,
>              retval->message.u.reply.reply_status );
>     retval->message.u.reply.request_id = *lPnt;
>     retval->message.u.reply.reply_status = 0;
> }

[Result with J2SE]

D8720D08 D4B31908 47494F50 01000001
DD000000 00000000 02000000 B8750D08
FFBF0000 000024F7 00000000 00000000
00000000 00000000 00000000 00000000
00000000 00000000 00000000 48C11908
12C21908 F0782140 02000000 00000000
----------
WAIT:BFFFF724 Java: BFFF F7240000

[Result with Perl]

A8730D08 D4B31908 47494F50 01000101
2F000000 00000000 00000000 00000000
24F7FFBF 00000000 00000000 00000000
00000000 00000000 00000000 00000000
00000000 00000000 00000000 E0C11908
F8C11908 B0720508 02000000 00000000
----------
WAIT:BFFFF724 Java: BFFFF724 0

==============================================
Kawai, Takanori(Hippo2000)
   Mail: GCD00051@nifty.ne.jp kwitknr@cpan.org
   http://member.nifty.ne.jp/hippo2000
==============================================




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]