FW: What version of CORBA ORBit to use? Trying to get perl client to talk to BEA Tuxedo 8.0 server...

"Dave Maltz" <[email protected]> Thu, 27 Jun 2002 16:58:41 -0700
Newsgroups gmane.comp.gnome.orbit.perl
Message-ID <[email protected]>
Hi All,

I have three groups of question.  Going from most general to most =
specific:

1)  I'm hoping to find a way to write a client application in perl that =
makes calls against the IDL interfaces of CORBA servers hosted by BEA =
Tuxedo 8.0.  Has anyone already done something like this?  Am I on drugs =
for even wanting to try?  Tux 8.0 supports CORBA 2.1 and 2.2 and IIOP =
1.2.  Tux 8.0 claims to support Interoperable Naming Service, so I was =
hoping to get an initial IOR to the Tux NameService that way.  I see in =
http://icps.u-strasbg.fr/~genaud/ORBIT/c42.html#AEN66 that ORBit does =
_not_ yet support INS, although I swear I saw in other docs that it does =
(i.e., http://orbit-resource.sourceforge.net/faq.html).

2) What is the most current version of the Perl mapping for ORBit?  What =
version of ORBit should I use with it?  Is there/where is a Perl mapping =
for ORBit2?  I saw mention in the mailling list archive that a perl =
mapping branch was going to be added to ORBit2, but I don't see anything =
perl related at http://cvs.gnome.org/lxr/source/ORBit2/. I'm currently =
using CORBA-ORBit-0.4.5 from CPAN and ORBit-0.5.17, and I'm seeing the =
bug below so I haven't even tried to talk to the Tuxedo ORB yet.

3) I get a crash when I try the example code in the CORBA-ORBit-0.4.5 =
examples.  Any idea what is going wrong, or what I'm doing wrong?  It =
looks like I'm sooooo close it's infuriating...

*** In window 1 ***
hawaii ~/CORBA-ORBit-0.4.5 % /usr/bin/perl -Mblib server
Using /home/dmaltz/CORBA-ORBit-0.4.5/blib
Initial services: RootPOA
The daily maximum is: 1000
Counting 8
Counting 7
Counting 6
Counting 5
Counting 4
Counting 3
Counting 2
Counting 1
Segmentation fault (core dumped)

*** In window 2 ***
hawaii ~/CORBA-ORBit-0.4.5 % /usr/bin/perl -Mblib client
Using /home/dmaltz/CORBA-ORBit-0.4.5/blib
GOT IOR
GOT account
Exception: CORBA::COMM_FAILURE ('IDL:omg.org/CORBA/COMM_FAILURE:1.0')
    (0, COMPLETED_MAYBE)
   Communication failure

--8<--
partial backtrace from the core

#0  0x0 in ?? ()
#1  0x7f7d9264 in ORBit_impl_CORBA_Object_is_a (servant=3D0x2e510,=20
    _ORBIT_recv_buffer=3D0x1361e8, ev=3D0xffbeef08, dummy=3D0x0)
    at corba_object.c:132
#2  0x7f7d88e0 in ORBit_POA_handle_request (recv_buffer=3D0x1361e8, =
poa=3D0x2c2b8)
    at orbit_poa.c:513
#3  0x7f7db1b4 in ORBit_handle_incoming_request (recv_buffer=3D0x1361e8)
    at server.c:90
#4  0x7f7db55c in ORBit_handle_incoming_message (recv_buffer=3D0x1361e8)
    at server.c:160
#5  0x7f793924 in giop_main_handle_connection (connection=3D0xd0)
    at connection.c:1207
#6  0x7f827ccc in porbit_handle_connection ()
   from =
/home/dmaltz/CORBA-ORBit-0.4.5/blib/arch/auto/CORBA/ORBit/ORBit.so
#7  0x7f734a8c in g_io_unix_dispatch (source_data=3D0x1348b8,=20
    current_time=3D0xffbef2a0, user_data=3D0x135c68) at giounix.c:135
#8  0x7f7367a4 in g_main_dispatch (dispatch_time=3D0xffbef2a0) at =
gmain.c:656
#9  0x7f736c38 in g_main_iterate (block=3D2138420140, dispatch=3D1) at =
gmain.c:877
#10 0x7f7371e0 in g_main_run (loop=3D0x131890) at gmain.c:935
#11 0x7f81aa34 in XS_CORBA__ORB_run ()
   from =
/home/dmaltz/CORBA-ORBit-0.4.5/blib/arch/auto/CORBA/ORBit/ORBit.so

#1  0x7f7d9264 in ORBit_impl_CORBA_Object_is_a (servant=3D0x2e510,=20
    _ORBIT_recv_buffer=3D0x1361e8, ev=3D0xffbeef08, dummy=3D0x0)
    at corba_object.c:132
132             objkey->class_info->init_local_objref(&objdummy, =
servant);
(gdb) p *objkey->class_info
$1 =3D {relay_call =3D 0x7f8302a0 <porbit_get_skel>,=20
  class_name =3D 0x124018 "IDL:Account/Account:1.0", init_local_objref =
=3D 0}

[so it looks to me like the POA was mostly properly initialized, but =
init_local_objref was left set to 0 for reasons I don't understand]

I get the crash if I wait for the server to finish counting down before =
running the client or I run the client while the server is still =
counting down.  I'll admit I'm not exactly sure what the server is doing =
while couting down.

The example above uses perl 5.005_03 built for sun4-solaris on a Sun =
E450 runing solaris 2.8 and ORBit-0.5.17.  gcc information is below.  =
I'm using glib 1.2.10.  I see the same crash behavior whether I use perl =
5.005_03 or perl v5.6.1 built for sun4-solaris


hawaii ~/CORBA-ORBit-0.4.5 % gcc -v
Reading specs from =
/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.0.3/specs
Configured with: ../configure --with-as=3D/usr/local/bin/as =
--with-ld=3D/usr/local/bin/ld --enable-libgcj
Thread model: posix
gcc version 3.0.3

4) I guess I now also have a 4th question:  what's the right/most active =
group to send questions like this to?  Is orbit-perl-list@gnome the =
right place?  I had tried the COPE mailling list at =
http://www1.lunatech.com/cope/, but that seems to be lower activity.

Many, many thanks,
 -Dave Maltz