[omniORB] multiple-profile IORs

Martin Volf volf at cncz.cz
Tue Nov 9 12:50:24 GMT 2004


Hello,

I attach (as simple as possible) piece of Python code, IDL file and three trace 
logs:

trace-ori is the trace from
echo.py -ORBclientCallTimeOutPeriod 10000 -ORBtraceLevel 25

trace-rules is from
echo.py -ORBclientCallTimeOutPeriod 10000 -ORBtraceLevel 25 
-ORBclientTransportRule "10.3.0.0/255.255.255.0 tcp"

and finally trace-forged is from
echo.py -ORBclientCallTimeOutPeriod 10000 -ORBtraceLevel 25

with ior changed (using genior) so as it does not contain the unreachable 
address. The two ior's are included in the Python code.

If that matters, the other side is TAO-1.1 based ORB.

Thanks and regards,

Martin

> 
>>this or similar problem was discussed here some time ago, but I have
>>not found any good solution for it. I am using omniORBpy 2.4, and I
>>got an object reference with two profiles, each with one address:
>>the second address is correct, but the first one was on unaccessible
>>subnet and the result is that the client - when it tries to send a
>>message to the object - ends with TRANSIENT_ConnectFailed. Using
>>clientTransportRule to forbid the first address does not help much,
>>since it results in an error TRANSIENT_NoUsableProfile.
> 
> 
> It should automatically try the second address. What is the IOR, and
> what does a trace from traceLevel 25 show?
> 
> Cheers,
> 
> Duncan.
> 

-------------- next part --------------
#!/usr/bin/env python2

import sys
from omniORB import CORBA
from _GlobalIDL import CI_Echo

orb = CORBA.ORB_init(sys.argv, CORBA.ORB_ID)

# original IOR:
ior = "IOR:000000000000001049444c3a43495f4563686f3a312e3000000000020000000000000037000100000000000d3139322e3136382e312e3739000004210000001b14010f005253544190a1c2000dfd43000000000000000100000001000000000000000037000100000000000b31302e332e302e3139340039042204210000001b14010f005253544190a1c2000dfd43000000000000000100000001"

# forged IOR:
# ior = "IOR:010000001000000049444c3a43495f4563686f3a312e3000010000000000000070000000010102000b00000031302e332e302e3139340000220400001b00000014010f005253544190a1c2000dfd43000000000000000100000001000200000000000000080000000100000000545441010000001c00000001000000010001000100000001000105090101000100000009010100"

obj = orb.string_to_object(ior)

eo = obj._narrow(CI_Echo)

if eo is None:
    print "Object reference is not an CI_Echo"
    sys.exit(1)

message = "Hello from Python"
eo.echo(message)
-------------- next part --------------
interface CI_Echo
{
  void echo(in string str);
};
-------------- next part --------------
omniORB: Configuration file "/etc/omniORB.cfg" either does not exist or is not a file. No settings read.
omniORB: Distribution date: Mon Oct 18 18:06:03 BST 2004 dgrisby
omniORB: My addresses are: 
omniORB: 127.0.0.1
omniORB: 10.3.0.174
omniORB: 192.168.223.254
omniORB: Maximum supported GIOP version is 1.2
omniORB: Native char code sets: ISO-8859-1 UTF-8.
omniORB: Transmission char code sets: ISO-8859-1(1.2) ISO-8859-1(1.1) ISO-8859-1(1.0) UTF-8(1.2) UTF-8(1.1).
omniORB: Native wide char code sets: UTF-16.
omniORB: Transmission wide char code sets: UTF-16(1.2).
omniORB: Information: the omniDynamic library is not linked.
omniORB: Current configuration is as follows:
omniORB:   DefaultInitRef (file) = 
omniORB:   DefaultInitRef (args) = 
omniORB:   abortOnInternalError = 0
omniORB:   acceptBiDirectionalGIOP = 0
omniORB:   acceptMisalignedTcIndirections = 0
omniORB:   bootstrapAgentHostname = 
omniORB:   bootstrapAgentPort = 900
omniORB:   clientCallTimeOutPeriod = 10000
omniORB:   clientTransportRule = 10.3.0.0/255.255.255.0 tcp
omniORB:   diiThrowsSysExceptions = 0
omniORB:   dumpConfiguration = 0
omniORB:   endPoint = giop:tcp::
omniORB:   endPointPublishAllIFs = 0
omniORB:   giopMaxMsgSize = 2097152
omniORB:   giopTargetAddressMode = KeyAddr
omniORB:   id = omniORB4
omniORB:   inConScanPeriod = 180
omniORB:   lcdMode = 0
omniORB:   maxGIOPConnectionPerServer = 5
omniORB:   maxGIOPVersion = 1.2
omniORB:   maxInterleavedCallsPerConnection = 5
omniORB:   maxServerThreadPerConnection = 100
omniORB:   maxServerThreadPoolSize = 100
omniORB:   nativeCharCodeSet = ISO-8859-1
omniORB:   nativeWCharCodeSet = UTF-16
omniORB:   objectTableSize = 0
omniORB:   offerBiDirectionalGIOP = 0
omniORB:   omniORB_27_CompatibleAnyExtraction = 0
omniORB:   oneCallPerConnection = 1
omniORB:   outConScanPeriod = 120
omniORB:   poaHoldRequestTimeout = 0
omniORB:   poaUniquePersistentSystemIds = 1
omniORB:   principal = [Null]
omniORB:   scanGranularity = 5
omniORB:   serverCallTimeOutPeriod = 0
omniORB:   serverTransportRule = * unix,ssl,tcp
omniORB:   strictIIOP = 1
omniORB:   supportBootstrapAgent = 0
omniORB:   supportCurrent = 1
omniORB:   supportPerThreadTimeOut = 0
omniORB:   tcAliasExpand = 0
omniORB:   threadPerConnectionLowerLimit = 9000
omniORB:   threadPerConnectionPolicy = 1
omniORB:   threadPerConnectionUpperLimit = 10000
omniORB:   threadPoolWatchConnection = 1
omniORB:   traceExceptions = 1
omniORB:   traceInvocations = 0
omniORB:   traceLevel = 25
omniORB:   traceThreadId = 0
omniORB:   unixTransportDirectory = /tmp/omni-%u
omniORB:   unixTransportPermission =  777
omniORB:   useTypeCodeIndirections = 1
omniORB:   verifyObjectExistsAndType = 1
omniORB: omniORBpy distribution date: Mon Oct 18 18:08:02 BST 2004 dgrisby
omniORB: Python thread state scavenger start.
omniORB: Creating ref to remote: key<....RSTA......C............>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id: IDL:CI_Echo:1.0
omniORB: Creating Python ref to remote: key<....RSTA......C............>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id: IDL:CI_Echo:1.0
omniORB: omniRemoteIdentity deleted.
omniORB: ObjRef(IDL:CI_Echo:1.0) -- deleted.
omniORB: Creating Python ref to remote: key<....RSTA......C............>
 target id      : IDL:CI_Echo:1.0
 most derived id: IDL:CI_Echo:1.0
omniORB: LocateRequest to remote: key<....RSTA......C............>
omniORB: throw TRANSIENT from giopRope.cc:321 (NO,TRANSIENT_NoUsableProfile)
Traceback (most recent call last):
  File "./echo.py", line 24, in ?
    eo.echo(message)
  File "Echo_idl.py", line 46, in echo
    return _omnipy.invoke(self, "echo", _0__GlobalIDL.CI_Echo._d_echo, args)
omniORB.CORBA.TRANSIENT: Minor: TRANSIENT_NoUsableProfile, COMPLETED_NO.
omniORB: omniRemoteIdentity deleted.
omniORB: ObjRef(IDL:CI_Echo:1.0) -- deleted.
omniORB: omniRemoteIdentity deleted.
omniORB: ObjRef(IDL:CI_Echo:1.0) -- deleted.
omniORB: ORB not destroyed; no final clean-up.
-------------- next part --------------
omniORB: Configuration file "/etc/omniORB.cfg" either does not exist or is not a file. No settings read.
omniORB: Distribution date: Mon Oct 18 18:06:03 BST 2004 dgrisby
omniORB: My addresses are: 
omniORB: 127.0.0.1
omniORB: 10.3.0.174
omniORB: 192.168.223.254
omniORB: Maximum supported GIOP version is 1.2
omniORB: Native char code sets: ISO-8859-1 UTF-8.
omniORB: Transmission char code sets: ISO-8859-1(1.2) ISO-8859-1(1.1) ISO-8859-1(1.0) UTF-8(1.2) UTF-8(1.1).
omniORB: Native wide char code sets: UTF-16.
omniORB: Transmission wide char code sets: UTF-16(1.2).
omniORB: Information: the omniDynamic library is not linked.
omniORB: Current configuration is as follows:
omniORB:   DefaultInitRef (file) = 
omniORB:   DefaultInitRef (args) = 
omniORB:   abortOnInternalError = 0
omniORB:   acceptBiDirectionalGIOP = 0
omniORB:   acceptMisalignedTcIndirections = 0
omniORB:   bootstrapAgentHostname = 
omniORB:   bootstrapAgentPort = 900
omniORB:   clientCallTimeOutPeriod = 10000
omniORB:   clientTransportRule = * unix,ssl,tcp
omniORB:   diiThrowsSysExceptions = 0
omniORB:   dumpConfiguration = 0
omniORB:   endPoint = giop:tcp::
omniORB:   endPointPublishAllIFs = 0
omniORB:   giopMaxMsgSize = 2097152
omniORB:   giopTargetAddressMode = KeyAddr
omniORB:   id = omniORB4
omniORB:   inConScanPeriod = 180
omniORB:   lcdMode = 0
omniORB:   maxGIOPConnectionPerServer = 5
omniORB:   maxGIOPVersion = 1.2
omniORB:   maxInterleavedCallsPerConnection = 5
omniORB:   maxServerThreadPerConnection = 100
omniORB:   maxServerThreadPoolSize = 100
omniORB:   nativeCharCodeSet = ISO-8859-1
omniORB:   nativeWCharCodeSet = UTF-16
omniORB:   objectTableSize = 0
omniORB:   offerBiDirectionalGIOP = 0
omniORB:   omniORB_27_CompatibleAnyExtraction = 0
omniORB:   oneCallPerConnection = 1
omniORB:   outConScanPeriod = 120
omniORB:   poaHoldRequestTimeout = 0
omniORB:   poaUniquePersistentSystemIds = 1
omniORB:   principal = [Null]
omniORB:   scanGranularity = 5
omniORB:   serverCallTimeOutPeriod = 0
omniORB:   serverTransportRule = * unix,ssl,tcp
omniORB:   strictIIOP = 1
omniORB:   supportBootstrapAgent = 0
omniORB:   supportCurrent = 1
omniORB:   supportPerThreadTimeOut = 0
omniORB:   tcAliasExpand = 0
omniORB:   threadPerConnectionLowerLimit = 9000
omniORB:   threadPerConnectionPolicy = 1
omniORB:   threadPerConnectionUpperLimit = 10000
omniORB:   threadPoolWatchConnection = 1
omniORB:   traceExceptions = 1
omniORB:   traceInvocations = 0
omniORB:   traceLevel = 25
omniORB:   traceThreadId = 0
omniORB:   unixTransportDirectory = /tmp/omni-%u
omniORB:   unixTransportPermission =  777
omniORB:   useTypeCodeIndirections = 1
omniORB:   verifyObjectExistsAndType = 1
omniORB: omniORBpy distribution date: Mon Oct 18 18:08:02 BST 2004 dgrisby
omniORB: Python thread state scavenger start.
omniORB: Creating ref to remote: key<....RSTA......C............>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id: IDL:CI_Echo:1.0
omniORB: Creating Python ref to remote: key<....RSTA......C............>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id: IDL:CI_Echo:1.0
omniORB: omniRemoteIdentity deleted.
omniORB: ObjRef(IDL:CI_Echo:1.0) -- deleted.
omniORB: Creating Python ref to remote: key<....RSTA......C............>
 target id      : IDL:CI_Echo:1.0
 most derived id: IDL:CI_Echo:1.0
omniORB: LocateRequest to remote: key<....RSTA......C............>
omniORB: AsyncInvoker: thread id = 2 has started. Total threads = 1
omniORB: Scavenger task execute.
omniORB: Client attempt to connect to giop:tcp:10.3.0.194:1058
omniORB: Client opened connection to giop:tcp:10.3.0.194:1058
omniORB: sendChunk: to giop:tcp:10.3.0.194:1058 51 bytes
omniORB: inputMessage: from giop:tcp:10.3.0.194:1058 20 bytes
omniORB:  send codeset service context: (ISO-8859-1,UTF-16)
omniORB: sendChunk: to giop:tcp:10.3.0.194:1058 118 bytes
omniORB: inputMessage: from giop:tcp:10.3.0.194:1058 48 bytes
omniORB: omniRemoteIdentity deleted.
omniORB: ObjRef(IDL:CI_Echo:1.0) -- deleted.
omniORB: omniRemoteIdentity deleted.
omniORB: ObjRef(IDL:CI_Echo:1.0) -- deleted.
omniORB: ORB not destroyed; no final clean-up.
-------------- next part --------------
omniORB: Configuration file "/etc/omniORB.cfg" either does not exist or is not a file. No settings read.
omniORB: Distribution date: Mon Oct 18 18:06:03 BST 2004 dgrisby
omniORB: My addresses are: 
omniORB: 127.0.0.1
omniORB: 10.3.0.174
omniORB: 192.168.223.254
omniORB: Maximum supported GIOP version is 1.2
omniORB: Native char code sets: ISO-8859-1 UTF-8.
omniORB: Transmission char code sets: ISO-8859-1(1.2) ISO-8859-1(1.1) ISO-8859-1(1.0) UTF-8(1.2) UTF-8(1.1).
omniORB: Native wide char code sets: UTF-16.
omniORB: Transmission wide char code sets: UTF-16(1.2).
omniORB: Information: the omniDynamic library is not linked.
omniORB: Current configuration is as follows:
omniORB:   DefaultInitRef (file) = 
omniORB:   DefaultInitRef (args) = 
omniORB:   abortOnInternalError = 0
omniORB:   acceptBiDirectionalGIOP = 0
omniORB:   acceptMisalignedTcIndirections = 0
omniORB:   bootstrapAgentHostname = 
omniORB:   bootstrapAgentPort = 900
omniORB:   clientCallTimeOutPeriod = 10000
omniORB:   clientTransportRule = * unix,ssl,tcp
omniORB:   diiThrowsSysExceptions = 0
omniORB:   dumpConfiguration = 0
omniORB:   endPoint = giop:tcp::
omniORB:   endPointPublishAllIFs = 0
omniORB:   giopMaxMsgSize = 2097152
omniORB:   giopTargetAddressMode = KeyAddr
omniORB:   id = omniORB4
omniORB:   inConScanPeriod = 180
omniORB:   lcdMode = 0
omniORB:   maxGIOPConnectionPerServer = 5
omniORB:   maxGIOPVersion = 1.2
omniORB:   maxInterleavedCallsPerConnection = 5
omniORB:   maxServerThreadPerConnection = 100
omniORB:   maxServerThreadPoolSize = 100
omniORB:   nativeCharCodeSet = ISO-8859-1
omniORB:   nativeWCharCodeSet = UTF-16
omniORB:   objectTableSize = 0
omniORB:   offerBiDirectionalGIOP = 0
omniORB:   omniORB_27_CompatibleAnyExtraction = 0
omniORB:   oneCallPerConnection = 1
omniORB:   outConScanPeriod = 120
omniORB:   poaHoldRequestTimeout = 0
omniORB:   poaUniquePersistentSystemIds = 1
omniORB:   principal = [Null]
omniORB:   scanGranularity = 5
omniORB:   serverCallTimeOutPeriod = 0
omniORB:   serverTransportRule = * unix,ssl,tcp
omniORB:   strictIIOP = 1
omniORB:   supportBootstrapAgent = 0
omniORB:   supportCurrent = 1
omniORB:   supportPerThreadTimeOut = 0
omniORB:   tcAliasExpand = 0
omniORB:   threadPerConnectionLowerLimit = 9000
omniORB:   threadPerConnectionPolicy = 1
omniORB:   threadPerConnectionUpperLimit = 10000
omniORB:   threadPoolWatchConnection = 1
omniORB:   traceExceptions = 1
omniORB:   traceInvocations = 0
omniORB:   traceLevel = 25
omniORB:   traceThreadId = 0
omniORB:   unixTransportDirectory = /tmp/omni-%u
omniORB:   unixTransportPermission =  777
omniORB:   useTypeCodeIndirections = 1
omniORB:   verifyObjectExistsAndType = 1
omniORB: omniORBpy distribution date: Mon Oct 18 18:08:02 BST 2004 dgrisby
omniORB: Python thread state scavenger start.
omniORB: Creating ref to remote: key<....RSTA......C............>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id: IDL:CI_Echo:1.0
omniORB: Creating Python ref to remote: key<....RSTA......C............>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id: IDL:CI_Echo:1.0
omniORB: omniRemoteIdentity deleted.
omniORB: ObjRef(IDL:CI_Echo:1.0) -- deleted.
omniORB: Creating Python ref to remote: key<....RSTA......C............>
 target id      : IDL:CI_Echo:1.0
 most derived id: IDL:CI_Echo:1.0
omniORB: LocateRequest to remote: key<....RSTA......C............>
omniORB: AsyncInvoker: thread id = 2 has started. Total threads = 1
omniORB: Client attempt to connect to giop:tcp:192.168.1.79:1057
omniORB: Scavenger task execute.
omniORB: throw giopStream::CommFailure from giopStream.cc:1073(0,NO,TRANSIENT_ConnectFailed)
Traceback (most recent call last):
  File "./echo.py", line 24, in ?
    eo.echo(message)
  File "Echo_idl.py", line 46, in echo
    return _omnipy.invoke(self, "echo", _0__GlobalIDL.CI_Echo._d_echo, args)
omniORB.CORBA.TRANSIENT: Minor: TRANSIENT_ConnectFailed, COMPLETED_NO.
omniORB: omniRemoteIdentity deleted.
omniORB: ObjRef(IDL:CI_Echo:1.0) -- deleted.
omniORB: omniRemoteIdentity deleted.
omniORB: ObjRef(IDL:CI_Echo:1.0) -- deleted.
omniORB: ORB not destroyed; no final clean-up.


More information about the omniORB-list mailing list