[omniORB] multiple Profile IORs and timeouts

Jochen Behrens jochen.behrens at barco.com
Mon Dec 13 16:22:39 GMT 2004


Hi,

I've a similar problem as reported in this newsgroup a couple of weeks 
ago (multiple-profile IORs) but this is related to omniORB 4.0.5.  The 
client tries to establish a connection to a server via a corbaloc 
reference. Since the server host provides two multiple ethernet 
interfaces both of them are listed in the corbaloc reference as follows:

corbaloc:iiop:1.2 at 192.168.207.11:5555,iiop:1.2 at 192.168.208.11:5555/EventService

Tests have shown that the guaranteed fault-tolerance behaviour works as 
expected when the first interface is not available (i.e. the client 
tries to establish a connection to 192.168.207.11, gives up after same 
time and establishes a connection via 192.168.208.11).

However, the TCP timeout delay which forces the ORB to use the second 
profile can run into tens of seconds. This contradicts our requirements 
and I have to find a way to reduce this delay. I've tried out a client 
call timeout (e.g. clientCallTimeOutPeriod=1000) and retry to establish 
a connection within a loop. But unfortunetly, it doesn't work. The ORB 
only retries to establish a connection via the first profile.

Maybe I've missed something. But is there any way to cope with that on 
ORB level (forcing a profile switch)? Or do I need to adjust the TCP 
settings of our platform (which is Redhat Linux 7.2). Has anyone a 
solution or any experiences that may be helpful? Any help is appreciated.

I've attached both traces below.

Trace clientCallTimeOutPeriod=0:

omniORB: Initialising incoming endpoints.
omniORB: Bind to address 0.0.0.0.
omniORB: Starting serving incoming endpoints.
SubscriberImpl::SubscriberImpl
omniORB: Adding root/bidir.persistent<0> (activating) to object table.
omniORB: State root/bidir.persistent<0> (activating) -> active
omniORB: Creating ref to local: root/bidir.persistent<0>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id: IDL:PS/Subscriber:1.0
omniORB: AsyncInvoker: thread id = 1 has started. Total threads = 1
omniORB: giopRendezvouser task execute for giop:tcp:192.168.207.10:33854
omniORB: Creating ref to remote: boa<0x4576656e7453657276696365>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id:
Try to connect EventService
corbaloc:iiop:1.2 at 192.168.207.11:5555,iiop:1.2 at 192.168.208.11:5555/EventService
omniORB: AsyncInvoker: thread id = 2 has started. Total threads = 2
omniORB: Scavenger task execute.
omniORB: throw giopStream::CommFailure from 
giopStream.cc:1073(1,NO,TRANSIENT_ConnectFailed)
omniORB: Client opened bidirectional connection to 
giop:tcp:192.168.208.11:5555
omniORB:  send bidir IIOP service context: ( 192.168.208.10:33854 )
omniORB: sendChunk: to giop:tcp:192.168.208.11:5555 124 bytes
omniORB: AsyncInvoker: thread id = 3 has started. Total threads = 4
omniORB: AsyncInvoker: thread id = 4 has started. Total threads = 4
omniORB: giopWorker task execute.


Trace clientCallTimeOutPeriod=1000:

omniORB: Initialising incoming endpoints.
omniORB: Bind to address 0.0.0.0.
omniORB: Starting serving incoming endpoints.
SubscriberImpl::SubscriberImpl
omniORB: Adding root/bidir.persistent<0> (activating) to object table.
omniORB: State root/bidir.persistent<0> (activating) -> active
omniORB: Creating ref to local: root/bidir.persistent<0>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id: IDL:PS/Subscriber:1.0
omniORB: AsyncInvoker: thread id = 1 has started. Total threads = 1
omniORB: giopRendezvouser task execute for giop:tcp:192.168.207.10:33859
omniORB: Creating ref to remote: boa<0x4576656e7453657276696365>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id:
Try to connect EventService
corbaloc:iiop:1.2 at 192.168.207.11:5555,iiop:1.2 at 192.168.208.11:5555/EventService
omniORB: AsyncInvoker: thread id = 2 has started. Total threads = 2
omniORB: Scavenger task execute.
omniORB: throw giopStream::CommFailure from 
giopStream.cc:1073(1,NO,TRANSIENT_ConnectFailed)
omniORB: throw giopStream::CommFailure from 
giopStream.cc:1073(0,NO,TRANSIENT_ConnectFailed)
omniORB: throw TRANSIENT from omniObjRef.cc:759 (NO,TRANSIENT_ConnectFailed)
omniORB: omniRemoteIdentity deleted.
omniORB: ObjRef() -- deleted.
omniORB: Creating ref to remote: boa<0x4576656e7453657276696365>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id:
Try to connect EventService
corbaloc:iiop:1.2 at 192.168.207.11:5555,iiop:1.2 at 192.168.208.11:5555/EventService
omniORB: throw giopStream::CommFailure from 
giopStream.cc:1073(1,NO,TRANSIENT_ConnectFailed)
omniORB: throw giopStream::CommFailure from 
giopStream.cc:1073(0,NO,TRANSIENT_ConnectFailed)
omniORB: throw TRANSIENT from omniObjRef.cc:759 (NO,TRANSIENT_ConnectFailed)
omniORB: omniRemoteIdentity deleted.
omniORB: ObjRef() -- deleted.
omniORB: Creating ref to remote: boa<0x4576656e7453657276696365>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id:

-- 
Best regards,

Jochen Behrens
Software Engineer

Barco Orthogon AG
Hastedter Osterdeich 222, D-28207 Bremen
Tel +49-421-20122-447 Fax +49-421-20122-999
www.barco-orthogon.com
jochen.behrens at barco.com

- - - - - - - DISCLAIMER - - - - - - - -
This e-mail and any further files transmitted with it are
confidential. If you are not the intended recipient, please
notify postmaster.orthogon at barco.com and delete the files.
Full disclaimer: www.barco-orthogon.com/html/e-mail_disclaimer.htm

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20041213/33e3a7be/attachment.htm


More information about the omniORB-list mailing list