Discussion:
[omniORB] Problem in network between 'server' and 'client'
VEYSSIERE Nicolas
2010-10-20 16:04:47 UTC
Permalink
Hello,

I have a little problem here, I have 2 apps : one 'server' using omniORB, named Claire, et a second, a 'client' named PO.

Claire is started first, register itself to the name service (I am using the java name service, orbd) and waits.
PO is started then, register itself to the name service, search for Claire in the name service, and do some methods calls.

At this point, everything is ok.

Then PO call a method named 'abonnement(in string name)', where name represents the name used in the name service.

Claire use the name parameter for searching PO in the name service, and retreive a reference to it.

The problem, is that when I call a PO method from this reference, it fails.

Here is the omniorb's log from Claire :

omniORB: (4) 2010-10-20 10:44:36.756051:
4749 4f50 0102 0000 0000 006d 0000 0007 GIOP.......m....
0300 0000 0000 0002 0000 000e fe4c beab .............L..
c642 5700 0000 0000 0000 0001 0000 000b .BW.............
6162 6f6e 6e65 6d65 6e74 0078 0000 0003 abonnement.x....
0000 0011 0000 0002 0002 0011 0000 0001 ................
0000 000c 0000 0000 0001 0001 0001 0109 ................
4e45 4f00 0000 0002 0014 4f00 0000 0002 NEO.......O.....
0000 0005 706c 6f70 00 ....plop.
omniORB: (4) 2010-10-20 10:44:36.756088: Receive codeset service context and set TCS to (ISO-8859-1,UTF-16)
omniORB: (4) 2010-10-20 10:44:36.756106: Dispatching remote call 'abonnement' to: root<0> (active)
omniORB: (4) 2010-10-20 10:44:36.756191: Initial reference `NameService' resolved from configuration file.
omniORB: (4) 2010-10-20 10:44:36.756217: Invoke '_is_a' on remote: key<............................RootPOA.....NameService.....NC0.>
omniORB: (4) 2010-10-20 10:44:36.756249: sendChunk: to giop:tcp:192.9.10.213:1049 148 bytes
omniORB: (4) 2010-10-20 10:44:36.756267:
4749 4f50 0102 0000 0000 0088 0000 0006 GIOP............
0300 0000 0000 2034 0000 003c afab cb00 ...... 4...<....
0000 0022 0000 03e8 0000 0001 0000 0000 ..."............
0000 0002 0000 0008 526f 6f74 504f 4100 ........RootPOA.
0000 000c 4e61 6d65 5365 7276 6963 6500 ....NameService.
0000 0003 4e43 3014 0000 0006 5f69 735f ....NC0....._is_
6100 0020 0000 0000 0000 0028 4944 4c3a a.. .......(IDL:
6f6d 672e 6f72 672f 436f 734e 616d 696e omg.org/CosNamin
672f 4e61 6d69 6e67 436f 6e74 6578 743a g/NamingContext:
312e 3000 1.0.
omniORB: (4) 2010-10-20 10:44:36.757341: inputMessage: from giop:tcp:192.9.10.213:1049 41 bytes
omniORB: (4) 2010-10-20 10:44:36.757361:
4749 4f50 0102 0001 0000 001d 0000 0006 GIOP............
0000 0000 0000 0001 4e45 4f00 0000 0002 ........NEO.....
0014 00cc 0000 0006 01 .........
omniORB: (4) 2010-10-20 10:44:36.757393: Return '_is_a' on remote: key<............................RootPOA.....NameService.....NC0.>
omniORB: (4) 2010-10-20 10:44:36.757420: Creating ref to remote: key<............................RootPOA.....NameService.....NC0.>
target id : IDL:omg.org/CosNaming/NamingContext:1.0
most derived id:
omniORB: (4) 2010-10-20 10:44:36.757464: Invoke 'resolve' on remote: key<............................RootPOA.....NameService.....NC0.>
omniORB: (4) 2010-10-20 10:44:36.757489: sendChunk: to giop:tcp:192.9.10.213:1049 125 bytes
omniORB: (4) 2010-10-20 10:44:36.757505:
4749 4f50 0102 0000 0000 0071 0000 0008 GIOP.......q....
0300 0000 0000 2034 0000 003c afab cb00 ...... 4...<....
0000 0022 0000 03e8 0000 0001 0000 0000 ..."............
0000 0002 0000 0008 526f 6f74 504f 4100 ........RootPOA.
0000 000c 4e61 6d65 5365 7276 6963 6500 ....NameService.
0000 0003 4e43 3014 0000 0008 7265 736f ....NC0.....reso
6c76 6500 0000 0000 0000 0001 0000 0005 lve.............
706c 6f70 0072 672f 0000 0001 00 plop.rg/.....
omniORB: (4) 2010-10-20 10:44:36.758805: inputMessage: from giop:tcp:192.9.10.213:1049 210 bytes
omniORB: (4) 2010-10-20 10:44:36.758821:
4749 4f50 0102 0001 0000 00c6 0000 0008 GIOP............
0000 0000 0000 0001 4e45 4f00 0000 0002 ........NEO.....
0014 00cc 0000 0006 0000 0013 4944 4c3a ............IDL:
434c 412f 436c 6965 6e74 3a31 2e30 002e CLA/Client:1.0..
0000 0001 0000 0000 0000 0086 0001 0200 ................
0000 000d 3139 312e 302e 3234 382e 3533 ....191.0.248.53
0000 130f 0000 0031 afab cb00 0000 0020 .......1.......
c8d0 a394 0000 0001 0000 0000 0000 0001 ................
0000 0008 526f 6f74 504f 4100 0000 0008 ....RootPOA.....
0000 0001 0000 0000 1400 0000 0000 0002 ................
0000 0001 0000 0020 0000 0000 0001 0001 ....... ........
0000 0002 0501 0001 0001 0020 0001 0109 ........... ....
0000 0001 0001 0100 0000 0026 0000 0002 ...........&....
0002 ..
omniORB: (4) 2010-10-20 10:44:36.758985: Creating ref to remote: key<............................RootPOA..............>
target id : IDL:omg.org/CORBA/Object:1.0
most derived id: IDL:CLA/Client:1.0
omniORB: (4) 2010-10-20 10:44:36.759010: Return 'resolve' on remote: key<............................RootPOA.....NameService.....NC0.>
omniORB: (4) 2010-10-20 10:44:36.759063: LocateRequest to remote: key<............................RootPOA..............>
omniORB: (4) 2010-10-20 10:44:36.759172: Client attempt to connect to giop:tcp:191.0.248.53:4879
omniORB: (4) 2010-10-20 10:44:36.759269: Failed to connect: 191.0.248.53
omniORB: (4) 2010-10-20 10:44:36.759329: Switch rope to use address giop:tcp:191.0.248.53:4879
omniORB: (4) 2010-10-20 10:44:36.759355: Unable to open new connection: giop:tcp:191.0.248.53:4879
omniORB: (4) 2010-10-20 10:44:36.759371: throw giopStream::CommFailure from giopStream.cc:1152(0,NO,TRANSIENT_ConnectFailed)
omniORB: (4) 2010-10-20 10:44:36.759612: throw TRANSIENT from omniObjRef.cc:1137 (NO,TRANSIENT_ConnectFailed)
omniORB: (4) 2010-10-20 10:44:36.759812: omniRemoteIdentity deleted.
omniORB: (4) 2010-10-20 10:44:36.759830: ObjRef(IDL:CLA/Client:1.0) -- deleted.
omniORB: (4) 2010-10-20 10:44:36.759895: ObjRef() -- deleted.
omniORB: (4) 2010-10-20 10:44:36.759938: sendChunk: to giop:tcp:191.0.248.53:4884 28 bytes


I tried to telnet the ip/port of the PO app, and it works, I don't understand why omniORB fails.
I tried to developp a test programme of Claire in java, implementing the same idl, everything works well.

Can the problem be linked to the fact that the Claire app runs on a server that have more that one interface ? :

omniORB: (0) 2010-10-20 11:18:06.044802: My addresses are:
omniORB: 192.9.12.16
omniORB: 192.9.10.213
omniORB: 127.0.0.1

and

omniORB: endPoint = giop:tcp:192.9.10.213:

Note : there is a router between the network 192.9.10.213 and 191.0.248.53, but the problem is still here if I tried from the same network.


Thanks for your help.

--
Nicolas V.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20101020/b06cf207/attachment-0001.htm
bjorn rohde jensen
2010-10-20 19:19:34 UTC
Permalink
Post by VEYSSIERE Nicolas
Hello,
I have a little problem here, I have 2 apps : one 'server' using omniORB, named Claire, et a second, a 'client' named PO.
Claire is started first, register itself to the name service (I am using the java name service, orbd) and waits.
PO is started then, register itself to the name service, search for Claire in the name service, and do some methods calls.
At this point, everything is ok.
Then PO call a method named 'abonnement(in string name)', where name represents the name used in the name service.
Claire use the name parameter for searching PO in the name service, and retreive a reference to it.
The problem, is that when I call a PO method from this reference, it fails.
4749 4f50 0102 0000 0000 006d 0000 0007 GIOP.......m....
0300 0000 0000 0002 0000 000e fe4c beab .............L..
c642 5700 0000 0000 0000 0001 0000 000b .BW.............
6162 6f6e 6e65 6d65 6e74 0078 0000 0003 abonnement.x....
0000 0011 0000 0002 0002 0011 0000 0001 ................
0000 000c 0000 0000 0001 0001 0001 0109 ................
4e45 4f00 0000 0002 0014 4f00 0000 0002 NEO.......O.....
0000 0005 706c 6f70 00 ....plop.
omniORB: (4) 2010-10-20 10:44:36.756088: Receive codeset service context and set TCS to (ISO-8859-1,UTF-16)
omniORB: (4) 2010-10-20 10:44:36.756106: Dispatching remote call 'abonnement' to: root<0> (active)
omniORB: (4) 2010-10-20 10:44:36.756191: Initial reference `NameService' resolved from configuration file.
omniORB: (4) 2010-10-20 10:44:36.756217: Invoke '_is_a' on remote: key<............................RootPOA.....NameService.....NC0.>
omniORB: (4) 2010-10-20 10:44:36.756249: sendChunk: to giop:tcp:192.9.10.213:1049 148 bytes
4749 4f50 0102 0000 0000 0088 0000 0006 GIOP............
0300 0000 0000 2034 0000 003c afab cb00 ...... 4...<....
0000 0022 0000 03e8 0000 0001 0000 0000 ..."............
0000 0002 0000 0008 526f 6f74 504f 4100 ........RootPOA.
0000 000c 4e61 6d65 5365 7276 6963 6500 ....NameService.
0000 0003 4e43 3014 0000 0006 5f69 735f ....NC0....._is_
6f6d 672e 6f72 672f 436f 734e 616d 696e omg.org/CosNamin
312e 3000 1.0.
omniORB: (4) 2010-10-20 10:44:36.757341: inputMessage: from giop:tcp:192.9.10.213:1049 41 bytes
4749 4f50 0102 0001 0000 001d 0000 0006 GIOP............
0000 0000 0000 0001 4e45 4f00 0000 0002 ........NEO.....
0014 00cc 0000 0006 01 .........
omniORB: (4) 2010-10-20 10:44:36.757393: Return '_is_a' on remote: key<............................RootPOA.....NameService.....NC0.>
omniORB: (4) 2010-10-20 10:44:36.757420: Creating ref to remote: key<............................RootPOA.....NameService.....NC0.>
target id : IDL:omg.org/CosNaming/NamingContext:1.0
omniORB: (4) 2010-10-20 10:44:36.757464: Invoke 'resolve' on remote: key<............................RootPOA.....NameService.....NC0.>
omniORB: (4) 2010-10-20 10:44:36.757489: sendChunk: to giop:tcp:192.9.10.213:1049 125 bytes
4749 4f50 0102 0000 0000 0071 0000 0008 GIOP.......q....
0300 0000 0000 2034 0000 003c afab cb00 ...... 4...<....
0000 0022 0000 03e8 0000 0001 0000 0000 ..."............
0000 0002 0000 0008 526f 6f74 504f 4100 ........RootPOA.
0000 000c 4e61 6d65 5365 7276 6963 6500 ....NameService.
0000 0003 4e43 3014 0000 0008 7265 736f ....NC0.....reso
6c76 6500 0000 0000 0000 0001 0000 0005 lve.............
706c 6f70 0072 672f 0000 0001 00 plop.rg/.....
omniORB: (4) 2010-10-20 10:44:36.758805: inputMessage: from giop:tcp:192.9.10.213:1049 210 bytes
4749 4f50 0102 0001 0000 00c6 0000 0008 GIOP............
0000 0000 0000 0001 4e45 4f00 0000 0002 ........NEO.....
434c 412f 436c 6965 6e74 3a31 2e30 002e CLA/Client:1.0..
0000 0001 0000 0000 0000 0086 0001 0200 ................
0000 000d 3139 312e 302e 3234 382e 3533 ....191.0.248.53
0000 130f 0000 0031 afab cb00 0000 0020 .......1.......
c8d0 a394 0000 0001 0000 0000 0000 0001 ................
0000 0008 526f 6f74 504f 4100 0000 0008 ....RootPOA.....
0000 0001 0000 0000 1400 0000 0000 0002 ................
0000 0001 0000 0020 0000 0000 0001 0001 ....... ........
0000 0002 0501 0001 0001 0020 0001 0109 ........... ....
0000 0001 0001 0100 0000 0026 0000 0002 ...........&....
0002 ..
omniORB: (4) 2010-10-20 10:44:36.758985: Creating ref to remote: key<............................RootPOA..............>
target id : IDL:omg.org/CORBA/Object:1.0
most derived id: IDL:CLA/Client:1.0
omniORB: (4) 2010-10-20 10:44:36.759010: Return 'resolve' on remote: key<............................RootPOA.....NameService.....NC0.>
omniORB: (4) 2010-10-20 10:44:36.759063: LocateRequest to remote: key<............................RootPOA..............>
omniORB: (4) 2010-10-20 10:44:36.759172: Client attempt to connect to giop:tcp:191.0.248.53:4879
omniORB: (4) 2010-10-20 10:44:36.759269: Failed to connect: 191.0.248.53
omniORB: (4) 2010-10-20 10:44:36.759329: Switch rope to use address giop:tcp:191.0.248.53:4879
omniORB: (4) 2010-10-20 10:44:36.759355: Unable to open new connection: giop:tcp:191.0.248.53:4879
omniORB: (4) 2010-10-20 10:44:36.759371: throw giopStream::CommFailure from giopStream.cc:1152(0,NO,TRANSIENT_ConnectFailed)
omniORB: (4) 2010-10-20 10:44:36.759612: throw TRANSIENT from omniObjRef.cc:1137 (NO,TRANSIENT_ConnectFailed)
omniORB: (4) 2010-10-20 10:44:36.759812: omniRemoteIdentity deleted.
omniORB: (4) 2010-10-20 10:44:36.759830: ObjRef(IDL:CLA/Client:1.0) -- deleted.
omniORB: (4) 2010-10-20 10:44:36.759895: ObjRef() -- deleted.
omniORB: (4) 2010-10-20 10:44:36.759938: sendChunk: to giop:tcp:191.0.248.53:4884 28 bytes
I tried to telnet the ip/port of the PO app, and it works, I don't understand why omniORB fails.
I tried to developp a test programme of Claire in java, implementing the same idl, everything works well.
omniORB: 192.9.12.16
omniORB: 192.9.10.213
omniORB: 127.0.0.1
and
Note : there is a router between the network 192.9.10.213 and 191.0.248.53, but the problem is still here if I tried from the same network.
Thanks for your help.
--
Nicolas V.
Hi there,

Could it be that you used the endPoint option to pick a particular
interface to listen to but didnt use the endPointPublish option to
ensure, that this interface was the one published in the IORs?

Its documented under section 4.5 in the omniORB user guide.

Regards,

Bjorn
VEYSSIERE Nicolas
2010-10-20 19:32:24 UTC
Permalink
I haven't done anything specific to endPoint.

But I don't undestand, endPointPublish seems to be a parameter for the 'server' side of omniORB, and in fact this part works.


Claire <------ PO
C/omniORB -------> Java/sun

The problem is that every call from Claire to PO don't works.

Here is the log from omniORB :

omniORB: (0) 2010-10-20 14:19:22.350504: My addresses are:
omniORB: 192.9.10.213
omniORB: 127.0.0.1
omniORB: (0) 2010-10-20 14:19:22.350605: Maximum supported GIOP version is 1.2
omniORB: (0) 2010-10-20 14:19:22.350721: Native char code sets: ISO-8859-1 UTF-8.
omniORB: (0) 2010-10-20 14:19:22.350737: 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: (0) 2010-10-20 14:19:22.359827: Native wide char code sets: UTF-16.
omniORB: (0) 2010-10-20 14:19:22.359842: Transmission wide char code sets: UTF-16(1.2).
omniORB: (0) 2010-10-20 14:19:22.359897: Initialising omniDynamic library.
omniORB: (0) 2010-10-20 14:19:22.360172: Current configuration is as follows:
omniORB: DefaultInitRef (file) =
omniORB: DefaultInitRef (args) =
omniORB: InitRef = NameService=corbaloc:iiop:127.0.0.1:900/NameService
omniORB: abortOnInternalError = 0
omniORB: abortOnNativeException = 0
omniORB: acceptBiDirectionalGIOP = 0
omniORB: acceptMisalignedTcIndirections = 0
omniORB: bootstrapAgentHostname =
omniORB: bootstrapAgentPort = 900
omniORB: clientCallTimeOutPeriod = 0
omniORB: clientConnectTimeOutPeriod = 0
omniORB: clientTransportRule = * unix,ssl,tcp
omniORB: configFile = /etc/omniORB.cfg
omniORB: connectionWatchImmediate = 0
omniORB: connectionWatchPeriod = 50000
omniORB: copyValuesInLocalCalls = 1
omniORB: diiThrowsSysExceptions = 0
omniORB: dumpConfiguration = 0
omniORB: endPoint = giop:tcp::
omniORB: endPointPublish = addr
omniORB: giopMaxMsgSize = 2097152
omniORB: giopTargetAddressMode = KeyAddr
omniORB: id = omniORB4
omniORB: idleThreadTimeout = 10
omniORB: immediateAddressSwitch = 0
omniORB: inConScanPeriod = 180
omniORB: lcdMode = 0
omniORB: maxGIOPConnectionPerServer = 5
omniORB: maxGIOPVersion = 1.2
omniORB: maxInterleavedCallsPerConnection = 5
omniORB: maxServerThreadPerConnection = 100
omniORB: maxServerThreadPoolSize = 100
omniORB: maxSocketRecv = 2147483647
omniORB: maxSocketSend = 2147483647
omniORB: nativeCharCodeSet = ISO-8859-1
omniORB: nativeWCharCodeSet = UTF-16
omniORB: objectTableSize = 0
omniORB: offerBiDirectionalGIOP = 0
omniORB: oneCallPerConnection = 1
omniORB: outConScanPeriod = 120
omniORB: poaHoldRequestTimeout = 0
omniORB: poaUniquePersistentSystemIds = 1
omniORB: principal = [Null]
omniORB: resetTimeOutOnRetries = 0
omniORB: scanGranularity = 5
omniORB: serverCallTimeOutPeriod = 0
omniORB: serverTransportRule = * unix,ssl,tcp
omniORB: socketSendBuffer = -1
omniORB: strictIIOP = 1
omniORB: supportBootstrapAgent = 1
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: traceFile = /tmp/omniorb.trace
omniORB: traceInvocationReturns = 1
omniORB: traceInvocations = 1
omniORB: traceLevel = 30
omniORB: traceThreadId = 1
omniORB: traceTime = 1
omniORB: unixTransportDirectory = /tmp/omni-%u
omniORB: unixTransportPermission = 777
omniORB: useTypeCodeIndirections = 1
omniORB: validateUTF8 = 0
omniORB: verifyObjectExistsAndType = 1
omniORB: (0) 2010-10-20 14:19:22.367598: Initialising incoming endpoints.
omniORB: (0) 2010-10-20 14:19:22.367635: Instantiate endpoint 'giop:tcp::0'
omniORB: (0) 2010-10-20 14:19:22.367754: Bind to address :: ephemeral port.
omniORB: (0) 2010-10-20 14:19:22.367867: Publish specification: 'addr'
omniORB: (0) 2010-10-20 14:19:22.367900: Try to publish 'addr' for endpoint giop:tcp:192.9.10.213:49487
omniORB: (0) 2010-10-20 14:19:22.367922: Publish endpoint 'giop:tcp:192.9.10.213:49487'
omniORB: (0) 2010-10-20 14:19:22.368040: Starting serving incoming endpoints.
omniORB: (1) 2010-10-20 14:19:22.368994: AsyncInvoker: thread id = 1 has started. Total threads = 1
omniORB: (1) 2010-10-20 14:19:22.369019: giopRendezvouser task execute for giop:tcp:192.9.10.213:49487
omniORB: (0) 2010-10-20 14:19:22.388273: Adding root<0> (activating) to object table.
omniORB: (0) 2010-10-20 14:19:22.388307: State root<0> (activating) -> active
omniORB: (0) 2010-10-20 14:19:22.394211: Creating ref to local: root<0>



On my side I tried to make it works, so I created a client Claire -> PO, and it works.
Now I will try to add the server part to this test app, and try to find what makes it fail.


Thanks.
--
Nicolas V.


-----Message d'origine-----
De?: omniorb-list-***@omniorb-support.com [mailto:omniorb-list-***@omniorb-support.com] De la part de bjorn rohde jensen
Envoy??: mercredi 20 octobre 2010 15:19
??: omniorb-***@omniorb-support.com
Objet?: Re: [omniORB] Problem in network between 'server' and 'client'
Post by VEYSSIERE Nicolas
Hello,
I have a little problem here, I have 2 apps : one 'server' using omniORB, named Claire, et a second, a 'client' named PO.
Claire is started first, register itself to the name service (I am using the java name service, orbd) and waits.
PO is started then, register itself to the name service, search for Claire in the name service, and do some methods calls.
At this point, everything is ok.
Then PO call a method named 'abonnement(in string name)', where name represents the name used in the name service.
Claire use the name parameter for searching PO in the name service, and retreive a reference to it.
The problem, is that when I call a PO method from this reference, it fails.
4749 4f50 0102 0000 0000 006d 0000 0007 GIOP.......m....
0300 0000 0000 0002 0000 000e fe4c beab .............L..
c642 5700 0000 0000 0000 0001 0000 000b .BW.............
6162 6f6e 6e65 6d65 6e74 0078 0000 0003 abonnement.x....
0000 0011 0000 0002 0002 0011 0000 0001 ................
0000 000c 0000 0000 0001 0001 0001 0109 ................
4e45 4f00 0000 0002 0014 4f00 0000 0002 NEO.......O.....
0000 0005 706c 6f70 00 ....plop.
omniORB: (4) 2010-10-20 10:44:36.756088: Receive codeset service context and set TCS to (ISO-8859-1,UTF-16)
omniORB: (4) 2010-10-20 10:44:36.756106: Dispatching remote call 'abonnement' to: root<0> (active)
omniORB: (4) 2010-10-20 10:44:36.756191: Initial reference `NameService' resolved from configuration file.
omniORB: (4) 2010-10-20 10:44:36.756217: Invoke '_is_a' on remote: key<............................RootPOA.....NameService.....NC0.>
omniORB: (4) 2010-10-20 10:44:36.756249: sendChunk: to giop:tcp:192.9.10.213:1049 148 bytes
4749 4f50 0102 0000 0000 0088 0000 0006 GIOP............
0300 0000 0000 2034 0000 003c afab cb00 ...... 4...<....
0000 0022 0000 03e8 0000 0001 0000 0000 ..."............
0000 0002 0000 0008 526f 6f74 504f 4100 ........RootPOA.
0000 000c 4e61 6d65 5365 7276 6963 6500 ....NameService.
0000 0003 4e43 3014 0000 0006 5f69 735f ....NC0....._is_
6f6d 672e 6f72 672f 436f 734e 616d 696e omg.org/CosNamin
312e 3000 1.0.
omniORB: (4) 2010-10-20 10:44:36.757341: inputMessage: from giop:tcp:192.9.10.213:1049 41 bytes
4749 4f50 0102 0001 0000 001d 0000 0006 GIOP............
0000 0000 0000 0001 4e45 4f00 0000 0002 ........NEO.....
0014 00cc 0000 0006 01 .........
omniORB: (4) 2010-10-20 10:44:36.757393: Return '_is_a' on remote: key<............................RootPOA.....NameService.....NC0.>
omniORB: (4) 2010-10-20 10:44:36.757420: Creating ref to remote: key<............................RootPOA.....NameService.....NC0.>
target id : IDL:omg.org/CosNaming/NamingContext:1.0
omniORB: (4) 2010-10-20 10:44:36.757464: Invoke 'resolve' on remote: key<............................RootPOA.....NameService.....NC0.>
omniORB: (4) 2010-10-20 10:44:36.757489: sendChunk: to giop:tcp:192.9.10.213:1049 125 bytes
4749 4f50 0102 0000 0000 0071 0000 0008 GIOP.......q....
0300 0000 0000 2034 0000 003c afab cb00 ...... 4...<....
0000 0022 0000 03e8 0000 0001 0000 0000 ..."............
0000 0002 0000 0008 526f 6f74 504f 4100 ........RootPOA.
0000 000c 4e61 6d65 5365 7276 6963 6500 ....NameService.
0000 0003 4e43 3014 0000 0008 7265 736f ....NC0.....reso
6c76 6500 0000 0000 0000 0001 0000 0005 lve.............
706c 6f70 0072 672f 0000 0001 00 plop.rg/.....
omniORB: (4) 2010-10-20 10:44:36.758805: inputMessage: from giop:tcp:192.9.10.213:1049 210 bytes
4749 4f50 0102 0001 0000 00c6 0000 0008 GIOP............
0000 0000 0000 0001 4e45 4f00 0000 0002 ........NEO.....
434c 412f 436c 6965 6e74 3a31 2e30 002e CLA/Client:1.0..
0000 0001 0000 0000 0000 0086 0001 0200 ................
0000 000d 3139 312e 302e 3234 382e 3533 ....191.0.248.53
0000 130f 0000 0031 afab cb00 0000 0020 .......1.......
c8d0 a394 0000 0001 0000 0000 0000 0001 ................
0000 0008 526f 6f74 504f 4100 0000 0008 ....RootPOA.....
0000 0001 0000 0000 1400 0000 0000 0002 ................
0000 0001 0000 0020 0000 0000 0001 0001 ....... ........
0000 0002 0501 0001 0001 0020 0001 0109 ........... ....
0000 0001 0001 0100 0000 0026 0000 0002 ...........&....
0002 ..
omniORB: (4) 2010-10-20 10:44:36.758985: Creating ref to remote: key<............................RootPOA..............>
target id : IDL:omg.org/CORBA/Object:1.0
most derived id: IDL:CLA/Client:1.0
omniORB: (4) 2010-10-20 10:44:36.759010: Return 'resolve' on remote: key<............................RootPOA.....NameService.....NC0.>
omniORB: (4) 2010-10-20 10:44:36.759063: LocateRequest to remote: key<............................RootPOA..............>
omniORB: (4) 2010-10-20 10:44:36.759172: Client attempt to connect to giop:tcp:191.0.248.53:4879
omniORB: (4) 2010-10-20 10:44:36.759269: Failed to connect: 191.0.248.53
omniORB: (4) 2010-10-20 10:44:36.759329: Switch rope to use address giop:tcp:191.0.248.53:4879
omniORB: (4) 2010-10-20 10:44:36.759355: Unable to open new connection: giop:tcp:191.0.248.53:4879
omniORB: (4) 2010-10-20 10:44:36.759371: throw giopStream::CommFailure from giopStream.cc:1152(0,NO,TRANSIENT_ConnectFailed)
omniORB: (4) 2010-10-20 10:44:36.759612: throw TRANSIENT from omniObjRef.cc:1137 (NO,TRANSIENT_ConnectFailed)
omniORB: (4) 2010-10-20 10:44:36.759812: omniRemoteIdentity deleted.
omniORB: (4) 2010-10-20 10:44:36.759830: ObjRef(IDL:CLA/Client:1.0) -- deleted.
omniORB: (4) 2010-10-20 10:44:36.759895: ObjRef() -- deleted.
omniORB: (4) 2010-10-20 10:44:36.759938: sendChunk: to giop:tcp:191.0.248.53:4884 28 bytes
I tried to telnet the ip/port of the PO app, and it works, I don't understand why omniORB fails.
I tried to developp a test programme of Claire in java, implementing the same idl, everything works well.
omniORB: 192.9.12.16
omniORB: 192.9.10.213
omniORB: 127.0.0.1
and
Note : there is a router between the network 192.9.10.213 and 191.0.248.53, but the problem is still here if I tried from the same network.
Thanks for your help.
--
Nicolas V.
Hi there,

Could it be that you used the endPoint option to pick a particular
interface to listen to but didnt use the endPointPublish option to
ensure, that this interface was the one published in the IORs?

Its documented under section 4.5 in the omniORB user guide.

Regards,

Bjorn
VEYSSIERE Nicolas
2010-10-20 20:42:20 UTC
Permalink
---- oups, forgot to send to the list too ----

Yes a freshly launched NameService don't solve the problem.

But after my tests I can say this :

Claire 'light' (only client to PO) -> PO : works
Claire 'light' (both client and server) -> PO : don't works

Maybe it is a problem about sharing the orb ?

Claire light, is really light : wiating as server on orb->run(), and as soon the abonnement method is fired, search the PO in the nameservice, and call notification to the PO.

As was able to shrink the code to the minium, I will post it:


CORBA::ORB_var orb;

int runOrb()
{
CORBA::Object_var poaObj = orb->resolve_initial_references("RootPOA");
PortableServer::POA_var rootPoa = PortableServer::POA::_narrow(poaObj);

CIORAdmin_impl* claireImpl = new CLA::CIORAdmin_impl(orb);
PortableServer::ObjectId_var _cior_impl_oid = rootPoa->activate_object(claireImpl);

CORBA::Object_var obj1 = claireImpl->_this();

CORBA::String_var x;
x = orb->object_to_string(obj1);
printf("Ref : %s", x.inout());

// ---------------------------------------------------------------------
CosNaming::NamingContext_var rootContext;

CORBA::Object_var obj;
obj = orb->resolve_initial_references("NameService");

rootContext = CosNaming::NamingContext::_narrow(obj);
if(CORBA::is_nil(rootContext))
{
printf("Failed to narrow the root naming context.\n");
return 0;
}

CosNaming::Name objectName;
objectName.length(1);
objectName[0].id = (const char*) "CLAIRE";
rootContext->rebind(objectName, obj1);
// ---------------------------------------------------------------------

claireImpl->_remove_ref();
PortableServer::POAManager_var pman = rootPoa->the_POAManager();
pman->activate();

orb->run();

return 0;
}

int main(int argc, char *argv[])
{
orb = CORBA::ORB_init(argc, argv);

printf("---> Run ORB : %d\n", runOrb());

return 0;
}



and here is the code abonnement :

bool CLAIRE_impl::abonnement(const char* name) throw (CORBA::SystemException) {
try
{
CORBA::Object_var referenceRootContext = _orb->resolve_initial_references("NameService");
if(CORBA::is_nil(referenceRootContext))
{
return false;
}

// nameservice ....
CosNaming::NamingContext_var rootContext = CosNaming::NamingContext::_narrow(referenceRootContext);
if(CORBA::is_nil(rootContext))
{
return false;
}

CosNaming::Name nsName;
nsName.length(1);
nsName[0].id = CORBA::string_dup(name);

CORBA::Object_var referenceClient;
try
{
referenceClient = rootContext->resolve(nsName);
}
catch(CosNaming::NamingContext::NotFound& ex)
{
return false;
}
catch(CORBA::TRANSIENT& ex)
{
return false;
}

PO_var m_Client = PO::_narrow(referenceClient);
if(CORBA::is_nil(m_Client.in()))
{
return false;
}

m_Client->notification("TEST !!!!");
}
catch(CORBA::COMM_FAILURE& ex)
{
return false;
}
catch(CORBA::SystemException&)
{
return false;
}
catch(CORBA::Exception&)
{
return false;
}
catch(omniORB::fatalException& fe)
{
return false;
}
catch(...)
{
return false;
}

return true;
}



So I am a bit lost, as the code is quite simple.

But maybe I have to init 2 orb, I really don't know.


Thanks anyway for your help.

--
Nicolas V.




-----Message d'origine-----
De : bjorn rohde jensen [mailto:***@fastmail.fm]
Envoy? : mercredi 20 octobre 2010 16:15
? : VEYSSIERE Nicolas (D3S)
Objet : Re: [omniORB] Problem in network between 'server' and 'client'
Post by VEYSSIERE Nicolas
I haven't done anything specific to endPoint.
But I don't undestand, endPointPublish seems to be a parameter for the 'server' side of omniORB, and in fact this part works.
Claire <------ PO
C/omniORB -------> Java/sun
The problem is that every call from Claire to PO don't works.
omniORB: 192.9.10.213
omniORB: 127.0.0.1
omniORB: (0) 2010-10-20 14:19:22.350605: Maximum supported GIOP version is 1.2
omniORB: (0) 2010-10-20 14:19:22.350721: Native char code sets: ISO-8859-1 UTF-8.
omniORB: (0) 2010-10-20 14:19:22.350737: 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: (0) 2010-10-20 14:19:22.359827: Native wide char code sets: UTF-16.
omniORB: (0) 2010-10-20 14:19:22.359842: Transmission wide char code sets: UTF-16(1.2).
omniORB: (0) 2010-10-20 14:19:22.359897: Initialising omniDynamic library.
omniORB: DefaultInitRef (file) =
omniORB: DefaultInitRef (args) =
omniORB: InitRef = NameService=corbaloc:iiop:127.0.0.1:900/NameService
omniORB: abortOnInternalError = 0
omniORB: abortOnNativeException = 0
omniORB: acceptBiDirectionalGIOP = 0
omniORB: acceptMisalignedTcIndirections = 0
omniORB: bootstrapAgentHostname =
omniORB: bootstrapAgentPort = 900
omniORB: clientCallTimeOutPeriod = 0
omniORB: clientConnectTimeOutPeriod = 0
omniORB: clientTransportRule = * unix,ssl,tcp
omniORB: configFile = /etc/omniORB.cfg
omniORB: connectionWatchImmediate = 0
omniORB: connectionWatchPeriod = 50000
omniORB: copyValuesInLocalCalls = 1
omniORB: diiThrowsSysExceptions = 0
omniORB: dumpConfiguration = 0
omniORB: endPointPublish = addr
omniORB: giopMaxMsgSize = 2097152
omniORB: giopTargetAddressMode = KeyAddr
omniORB: id = omniORB4
omniORB: idleThreadTimeout = 10
omniORB: immediateAddressSwitch = 0
omniORB: inConScanPeriod = 180
omniORB: lcdMode = 0
omniORB: maxGIOPConnectionPerServer = 5
omniORB: maxGIOPVersion = 1.2
omniORB: maxInterleavedCallsPerConnection = 5
omniORB: maxServerThreadPerConnection = 100
omniORB: maxServerThreadPoolSize = 100
omniORB: maxSocketRecv = 2147483647
omniORB: maxSocketSend = 2147483647
omniORB: nativeCharCodeSet = ISO-8859-1
omniORB: nativeWCharCodeSet = UTF-16
omniORB: objectTableSize = 0
omniORB: offerBiDirectionalGIOP = 0
omniORB: oneCallPerConnection = 1
omniORB: outConScanPeriod = 120
omniORB: poaHoldRequestTimeout = 0
omniORB: poaUniquePersistentSystemIds = 1
omniORB: principal = [Null]
omniORB: resetTimeOutOnRetries = 0
omniORB: scanGranularity = 5
omniORB: serverCallTimeOutPeriod = 0
omniORB: serverTransportRule = * unix,ssl,tcp
omniORB: socketSendBuffer = -1
omniORB: strictIIOP = 1
omniORB: supportBootstrapAgent = 1
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: traceFile = /tmp/omniorb.trace
omniORB: traceInvocationReturns = 1
omniORB: traceInvocations = 1
omniORB: traceLevel = 30
omniORB: traceThreadId = 1
omniORB: traceTime = 1
omniORB: unixTransportDirectory = /tmp/omni-%u
omniORB: unixTransportPermission = 777
omniORB: useTypeCodeIndirections = 1
omniORB: validateUTF8 = 0
omniORB: verifyObjectExistsAndType = 1
omniORB: (0) 2010-10-20 14:19:22.367598: Initialising incoming endpoints.
omniORB: (0) 2010-10-20 14:19:22.367635: Instantiate endpoint 'giop:tcp::0'
omniORB: (0) 2010-10-20 14:19:22.367754: Bind to address :: ephemeral port.
omniORB: (0) 2010-10-20 14:19:22.367867: Publish specification: 'addr'
omniORB: (0) 2010-10-20 14:19:22.367900: Try to publish 'addr' for endpoint giop:tcp:192.9.10.213:49487
omniORB: (0) 2010-10-20 14:19:22.367922: Publish endpoint 'giop:tcp:192.9.10.213:49487'
omniORB: (0) 2010-10-20 14:19:22.368040: Starting serving incoming endpoints.
omniORB: (1) 2010-10-20 14:19:22.368994: AsyncInvoker: thread id = 1 has started. Total threads = 1
omniORB: (1) 2010-10-20 14:19:22.369019: giopRendezvouser task execute for giop:tcp:192.9.10.213:49487
omniORB: (0) 2010-10-20 14:19:22.388273: Adding root<0> (activating) to object table.
omniORB: (0) 2010-10-20 14:19:22.388307: State root<0> (activating) -> active
omniORB: (0) 2010-10-20 14:19:22.394211: Creating ref to local: root<0>
On my side I tried to make it works, so I created a client Claire -> PO, and it works.
Now I will try to add the server part to this test app, and try to find what makes it fail.
Thanks.
network between 'server' and 'client'
Post by VEYSSIERE Nicolas
Hello,
I have a little problem here, I have 2 apps : one 'server' using omniORB, named Claire, et a second, a 'client' named PO.
Claire is started first, register itself to the name service (I am using the java name service, orbd) and waits.
PO is started then, register itself to the name service, search for Claire in the name service, and do some methods calls.
At this point, everything is ok.
Then PO call a method named 'abonnement(in string name)', where name represents the name used in the name service.
Claire use the name parameter for searching PO in the name service, and retreive a reference to it.
The problem, is that when I call a PO method from this reference, it fails.
4749 4f50 0102 0000 0000 006d 0000 0007 GIOP.......m....
0300 0000 0000 0002 0000 000e fe4c beab .............L..
c642 5700 0000 0000 0000 0001 0000 000b .BW.............
6162 6f6e 6e65 6d65 6e74 0078 0000 0003 abonnement.x....
0000 0011 0000 0002 0002 0011 0000 0001 ................
0000 000c 0000 0000 0001 0001 0001 0109 ................
4e45 4f00 0000 0002 0014 4f00 0000 0002 NEO.......O.....
0000 0005 706c 6f70 00 ....plop.
omniORB: (4) 2010-10-20 10:44:36.756088: Receive codeset service context and set TCS to (ISO-8859-1,UTF-16)
omniORB: (4) 2010-10-20 10:44:36.756106: Dispatching remote call 'abonnement' to: root<0> (active)
omniORB: (4) 2010-10-20 10:44:36.756191: Initial reference `NameService' resolved from configuration file.
omniORB: (4) 2010-10-20 10:44:36.756217: Invoke '_is_a' on remote: key<............................RootPOA.....NameService.....NC0.>
omniORB: (4) 2010-10-20 10:44:36.756249: sendChunk: to giop:tcp:192.9.10.213:1049 148 bytes
4749 4f50 0102 0000 0000 0088 0000 0006 GIOP............
0300 0000 0000 2034 0000 003c afab cb00 ...... 4...<....
0000 0022 0000 03e8 0000 0001 0000 0000 ..."............
0000 0002 0000 0008 526f 6f74 504f 4100 ........RootPOA.
0000 000c 4e61 6d65 5365 7276 6963 6500 ....NameService.
0000 0003 4e43 3014 0000 0006 5f69 735f ....NC0....._is_
6f6d 672e 6f72 672f 436f 734e 616d 696e omg.org/CosNamin
312e 3000 1.0.
omniORB: (4) 2010-10-20 10:44:36.757341: inputMessage: from giop:tcp:192.9.10.213:1049 41 bytes
4749 4f50 0102 0001 0000 001d 0000 0006 GIOP............
0000 0000 0000 0001 4e45 4f00 0000 0002 ........NEO.....
0014 00cc 0000 0006 01 .........
omniORB: (4) 2010-10-20 10:44:36.757393: Return '_is_a' on remote: key<............................RootPOA.....NameService.....NC0.>
omniORB: (4) 2010-10-20 10:44:36.757420: Creating ref to remote: key<............................RootPOA.....NameService.....NC0.>
target id : IDL:omg.org/CosNaming/NamingContext:1.0
omniORB: (4) 2010-10-20 10:44:36.757464: Invoke 'resolve' on remote: key<............................RootPOA.....NameService.....NC0.>
omniORB: (4) 2010-10-20 10:44:36.757489: sendChunk: to giop:tcp:192.9.10.213:1049 125 bytes
4749 4f50 0102 0000 0000 0071 0000 0008 GIOP.......q....
0300 0000 0000 2034 0000 003c afab cb00 ...... 4...<....
0000 0022 0000 03e8 0000 0001 0000 0000 ..."............
0000 0002 0000 0008 526f 6f74 504f 4100 ........RootPOA.
0000 000c 4e61 6d65 5365 7276 6963 6500 ....NameService.
0000 0003 4e43 3014 0000 0008 7265 736f ....NC0.....reso
6c76 6500 0000 0000 0000 0001 0000 0005 lve.............
706c 6f70 0072 672f 0000 0001 00 plop.rg/.....
omniORB: (4) 2010-10-20 10:44:36.758805: inputMessage: from giop:tcp:192.9.10.213:1049 210 bytes
4749 4f50 0102 0001 0000 00c6 0000 0008 GIOP............
0000 0000 0000 0001 4e45 4f00 0000 0002 ........NEO.....
434c 412f 436c 6965 6e74 3a31 2e30 002e CLA/Client:1.0..
0000 0001 0000 0000 0000 0086 0001 0200 ................
0000 000d 3139 312e 302e 3234 382e 3533 ....191.0.248.53
0000 130f 0000 0031 afab cb00 0000 0020 .......1.......
c8d0 a394 0000 0001 0000 0000 0000 0001 ................
0000 0008 526f 6f74 504f 4100 0000 0008 ....RootPOA.....
0000 0001 0000 0000 1400 0000 0000 0002 ................
0000 0001 0000 0020 0000 0000 0001 0001 ....... ........
0000 0002 0501 0001 0001 0020 0001 0109 ........... ....
0000 0001 0001 0100 0000 0026 0000 0002 ...........&....
0002 ..
omniORB: (4) 2010-10-20 10:44:36.758985: Creating ref to remote: key<............................RootPOA..............>
target id : IDL:omg.org/CORBA/Object:1.0
most derived id: IDL:CLA/Client:1.0
omniORB: (4) 2010-10-20 10:44:36.759010: Return 'resolve' on remote: key<............................RootPOA.....NameService.....NC0.>
omniORB: (4) 2010-10-20 10:44:36.759063: LocateRequest to remote: key<............................RootPOA..............>
omniORB: (4) 2010-10-20 10:44:36.759172: Client attempt to connect to giop:tcp:191.0.248.53:4879
omniORB: (4) 2010-10-20 10:44:36.759269: Failed to connect: 191.0.248.53
omniORB: (4) 2010-10-20 10:44:36.759329: Switch rope to use address giop:tcp:191.0.248.53:4879
omniORB: (4) 2010-10-20 10:44:36.759355: Unable to open new connection: giop:tcp:191.0.248.53:4879
omniORB: (4) 2010-10-20 10:44:36.759371: throw giopStream::CommFailure from giopStream.cc:1152(0,NO,TRANSIENT_ConnectFailed)
omniORB: (4) 2010-10-20 10:44:36.759612: throw TRANSIENT from omniObjRef.cc:1137 (NO,TRANSIENT_ConnectFailed)
omniORB: (4) 2010-10-20 10:44:36.759812: omniRemoteIdentity deleted.
omniORB: (4) 2010-10-20 10:44:36.759830: ObjRef(IDL:CLA/Client:1.0) -- deleted.
omniORB: (4) 2010-10-20 10:44:36.759895: ObjRef() -- deleted.
omniORB: (4) 2010-10-20 10:44:36.759938: sendChunk: to giop:tcp:191.0.248.53:4884 28 bytes
I tried to telnet the ip/port of the PO app, and it works, I don't understand why omniORB fails.
I tried to developp a test programme of Claire in java, implementing the same idl, everything works well.
omniORB: 192.9.12.16
omniORB: 192.9.10.213
omniORB: 127.0.0.1
and
Note : there is a router between the network 192.9.10.213 and 191.0.248.53, but the problem is still here if I tried from the same network.
Thanks for your help.
--
Nicolas V.
Hi there,
Could it be that you used the endPoint option to pick a particular
interface to listen to but didnt use the endPointPublish option to
ensure, that this interface was the one published in the IORs?
Its documented under section 4.5 in the omniORB user guide.
Regards,
Bjorn
_______________________________________________
omniORB-list mailing list
http://www.omniorb-support.com/mailman/listinfo/omniorb-list
If you havent done anything fancy like specifying endpoints, things
should just work. Are you sure, your Claire program isnt picking up an
old stale PO object reference in the nameservice?

Does the same thing happen, if you start with an empty nameservice?

Regards,

Bjorn
VEYSSIERE Nicolas
2010-10-20 21:40:32 UTC
Permalink
OK, I managed to find where is the problem : HP-UX, the test version of Claire works perfectly on linux (fedora core 12), but not on HP-UX 11.23.

But I have to make it works on HP-UX. I don't know if it is a confguration problem, or a OS problem.


--
Nicolas V.


-----Message d'origine-----
De : omniorb-list-***@omniorb-support.com [mailto:omniorb-list-***@omniorb-support.com] De la part de VEYSSIERE Nicolas
Envoy? : mercredi 20 octobre 2010 16:43
? : bjorn rohde jensen
Cc : omniorb-***@omniorb-support.com
Objet : RE: [omniORB] Problem in network between 'server' and 'client'

---- oups, forgot to send to the list too ----

Yes a freshly launched NameService don't solve the problem.

But after my tests I can say this :

Claire 'light' (only client to PO) -> PO : works
Claire 'light' (both client and server) -> PO : don't works

Maybe it is a problem about sharing the orb ?

Claire light, is really light : wiating as server on orb->run(), and as soon the abonnement method is fired, search the PO in the nameservice, and call notification to the PO.

As was able to shrink the code to the minium, I will post it:


CORBA::ORB_var orb;

int runOrb()
{
CORBA::Object_var poaObj = orb->resolve_initial_references("RootPOA");
PortableServer::POA_var rootPoa = PortableServer::POA::_narrow(poaObj);

CIORAdmin_impl* claireImpl = new CLA::CIORAdmin_impl(orb);
PortableServer::ObjectId_var _cior_impl_oid = rootPoa->activate_object(claireImpl);

CORBA::Object_var obj1 = claireImpl->_this();

CORBA::String_var x;
x = orb->object_to_string(obj1);
printf("Ref : %s", x.inout());

// ---------------------------------------------------------------------
CosNaming::NamingContext_var rootContext;

CORBA::Object_var obj;
obj = orb->resolve_initial_references("NameService");

rootContext = CosNaming::NamingContext::_narrow(obj);
if(CORBA::is_nil(rootContext))
{
printf("Failed to narrow the root naming context.\n");
return 0;
}

CosNaming::Name objectName;
objectName.length(1);
objectName[0].id = (const char*) "CLAIRE";
rootContext->rebind(objectName, obj1);
// ---------------------------------------------------------------------

claireImpl->_remove_ref();
PortableServer::POAManager_var pman = rootPoa->the_POAManager();
pman->activate();

orb->run();

return 0;
}

int main(int argc, char *argv[])
{
orb = CORBA::ORB_init(argc, argv);

printf("---> Run ORB : %d\n", runOrb());

return 0;
}



and here is the code abonnement :

bool CLAIRE_impl::abonnement(const char* name) throw (CORBA::SystemException) {
try
{
CORBA::Object_var referenceRootContext = _orb->resolve_initial_references("NameService");
if(CORBA::is_nil(referenceRootContext))
{
return false;
}

// nameservice ....
CosNaming::NamingContext_var rootContext = CosNaming::NamingContext::_narrow(referenceRootContext);
if(CORBA::is_nil(rootContext))
{
return false;
}

CosNaming::Name nsName;
nsName.length(1);
nsName[0].id = CORBA::string_dup(name);

CORBA::Object_var referenceClient;
try
{
referenceClient = rootContext->resolve(nsName);
}
catch(CosNaming::NamingContext::NotFound& ex)
{
return false;
}
catch(CORBA::TRANSIENT& ex)
{
return false;
}

PO_var m_Client = PO::_narrow(referenceClient);
if(CORBA::is_nil(m_Client.in()))
{
return false;
}

m_Client->notification("TEST !!!!");
}
catch(CORBA::COMM_FAILURE& ex)
{
return false;
}
catch(CORBA::SystemException&)
{
return false;
}
catch(CORBA::Exception&)
{
return false;
}
catch(omniORB::fatalException& fe)
{
return false;
}
catch(...)
{
return false;
}

return true;
}



So I am a bit lost, as the code is quite simple.

But maybe I have to init 2 orb, I really don't know.


Thanks anyway for your help.

--
Nicolas V.




-----Message d'origine-----
De : bjorn rohde jensen [mailto:***@fastmail.fm]
Envoy? : mercredi 20 octobre 2010 16:15
? : VEYSSIERE Nicolas (D3S)
Objet : Re: [omniORB] Problem in network between 'server' and 'client'
Post by VEYSSIERE Nicolas
I haven't done anything specific to endPoint.
But I don't undestand, endPointPublish seems to be a parameter for the 'server' side of omniORB, and in fact this part works.
Claire <------ PO
C/omniORB -------> Java/sun
The problem is that every call from Claire to PO don't works.
omniORB: 192.9.10.213
omniORB: 127.0.0.1
omniORB: (0) 2010-10-20 14:19:22.350605: Maximum supported GIOP version is 1.2
omniORB: (0) 2010-10-20 14:19:22.350721: Native char code sets: ISO-8859-1 UTF-8.
omniORB: (0) 2010-10-20 14:19:22.350737: 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: (0) 2010-10-20 14:19:22.359827: Native wide char code sets: UTF-16.
omniORB: (0) 2010-10-20 14:19:22.359842: Transmission wide char code sets: UTF-16(1.2).
omniORB: (0) 2010-10-20 14:19:22.359897: Initialising omniDynamic library.
omniORB: DefaultInitRef (file) =
omniORB: DefaultInitRef (args) =
omniORB: InitRef = NameService=corbaloc:iiop:127.0.0.1:900/NameService
omniORB: abortOnInternalError = 0
omniORB: abortOnNativeException = 0
omniORB: acceptBiDirectionalGIOP = 0
omniORB: acceptMisalignedTcIndirections = 0
omniORB: bootstrapAgentHostname =
omniORB: bootstrapAgentPort = 900
omniORB: clientCallTimeOutPeriod = 0
omniORB: clientConnectTimeOutPeriod = 0
omniORB: clientTransportRule = * unix,ssl,tcp
omniORB: configFile = /etc/omniORB.cfg
omniORB: connectionWatchImmediate = 0
omniORB: connectionWatchPeriod = 50000
omniORB: copyValuesInLocalCalls = 1
omniORB: diiThrowsSysExceptions = 0
omniORB: dumpConfiguration = 0
omniORB: endPointPublish = addr
omniORB: giopMaxMsgSize = 2097152
omniORB: giopTargetAddressMode = KeyAddr
omniORB: id = omniORB4
omniORB: idleThreadTimeout = 10
omniORB: immediateAddressSwitch = 0
omniORB: inConScanPeriod = 180
omniORB: lcdMode = 0
omniORB: maxGIOPConnectionPerServer = 5
omniORB: maxGIOPVersion = 1.2
omniORB: maxInterleavedCallsPerConnection = 5
omniORB: maxServerThreadPerConnection = 100
omniORB: maxServerThreadPoolSize = 100
omniORB: maxSocketRecv = 2147483647
omniORB: maxSocketSend = 2147483647
omniORB: nativeCharCodeSet = ISO-8859-1
omniORB: nativeWCharCodeSet = UTF-16
omniORB: objectTableSize = 0
omniORB: offerBiDirectionalGIOP = 0
omniORB: oneCallPerConnection = 1
omniORB: outConScanPeriod = 120
omniORB: poaHoldRequestTimeout = 0
omniORB: poaUniquePersistentSystemIds = 1
omniORB: principal = [Null]
omniORB: resetTimeOutOnRetries = 0
omniORB: scanGranularity = 5
omniORB: serverCallTimeOutPeriod = 0
omniORB: serverTransportRule = * unix,ssl,tcp
omniORB: socketSendBuffer = -1
omniORB: strictIIOP = 1
omniORB: supportBootstrapAgent = 1
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: traceFile = /tmp/omniorb.trace
omniORB: traceInvocationReturns = 1
omniORB: traceInvocations = 1
omniORB: traceLevel = 30
omniORB: traceThreadId = 1
omniORB: traceTime = 1
omniORB: unixTransportDirectory = /tmp/omni-%u
omniORB: unixTransportPermission = 777
omniORB: useTypeCodeIndirections = 1
omniORB: validateUTF8 = 0
omniORB: verifyObjectExistsAndType = 1
omniORB: (0) 2010-10-20 14:19:22.367598: Initialising incoming endpoints.
omniORB: (0) 2010-10-20 14:19:22.367635: Instantiate endpoint 'giop:tcp::0'
omniORB: (0) 2010-10-20 14:19:22.367754: Bind to address :: ephemeral port.
omniORB: (0) 2010-10-20 14:19:22.367867: Publish specification: 'addr'
omniORB: (0) 2010-10-20 14:19:22.367900: Try to publish 'addr' for endpoint giop:tcp:192.9.10.213:49487
omniORB: (0) 2010-10-20 14:19:22.367922: Publish endpoint 'giop:tcp:192.9.10.213:49487'
omniORB: (0) 2010-10-20 14:19:22.368040: Starting serving incoming endpoints.
omniORB: (1) 2010-10-20 14:19:22.368994: AsyncInvoker: thread id = 1 has started. Total threads = 1
omniORB: (1) 2010-10-20 14:19:22.369019: giopRendezvouser task execute for giop:tcp:192.9.10.213:49487
omniORB: (0) 2010-10-20 14:19:22.388273: Adding root<0> (activating) to object table.
omniORB: (0) 2010-10-20 14:19:22.388307: State root<0> (activating) -> active
omniORB: (0) 2010-10-20 14:19:22.394211: Creating ref to local: root<0>
On my side I tried to make it works, so I created a client Claire -> PO, and it works.
Now I will try to add the server part to this test app, and try to find what makes it fail.
Thanks.
network between 'server' and 'client'
Post by VEYSSIERE Nicolas
Hello,
I have a little problem here, I have 2 apps : one 'server' using omniORB, named Claire, et a second, a 'client' named PO.
Claire is started first, register itself to the name service (I am using the java name service, orbd) and waits.
PO is started then, register itself to the name service, search for Claire in the name service, and do some methods calls.
At this point, everything is ok.
Then PO call a method named 'abonnement(in string name)', where name represents the name used in the name service.
Claire use the name parameter for searching PO in the name service, and retreive a reference to it.
The problem, is that when I call a PO method from this reference, it fails.
4749 4f50 0102 0000 0000 006d 0000 0007 GIOP.......m....
0300 0000 0000 0002 0000 000e fe4c beab .............L..
c642 5700 0000 0000 0000 0001 0000 000b .BW.............
6162 6f6e 6e65 6d65 6e74 0078 0000 0003 abonnement.x....
0000 0011 0000 0002 0002 0011 0000 0001 ................
0000 000c 0000 0000 0001 0001 0001 0109 ................
4e45 4f00 0000 0002 0014 4f00 0000 0002 NEO.......O.....
0000 0005 706c 6f70 00 ....plop.
omniORB: (4) 2010-10-20 10:44:36.756088: Receive codeset service context and set TCS to (ISO-8859-1,UTF-16)
omniORB: (4) 2010-10-20 10:44:36.756106: Dispatching remote call 'abonnement' to: root<0> (active)
omniORB: (4) 2010-10-20 10:44:36.756191: Initial reference `NameService' resolved from configuration file.
omniORB: (4) 2010-10-20 10:44:36.756217: Invoke '_is_a' on remote: key<............................RootPOA.....NameService.....NC0.>
omniORB: (4) 2010-10-20 10:44:36.756249: sendChunk: to giop:tcp:192.9.10.213:1049 148 bytes
4749 4f50 0102 0000 0000 0088 0000 0006 GIOP............
0300 0000 0000 2034 0000 003c afab cb00 ...... 4...<....
0000 0022 0000 03e8 0000 0001 0000 0000 ..."............
0000 0002 0000 0008 526f 6f74 504f 4100 ........RootPOA.
0000 000c 4e61 6d65 5365 7276 6963 6500 ....NameService.
0000 0003 4e43 3014 0000 0006 5f69 735f ....NC0....._is_
6f6d 672e 6f72 672f 436f 734e 616d 696e omg.org/CosNamin
312e 3000 1.0.
omniORB: (4) 2010-10-20 10:44:36.757341: inputMessage: from giop:tcp:192.9.10.213:1049 41 bytes
4749 4f50 0102 0001 0000 001d 0000 0006 GIOP............
0000 0000 0000 0001 4e45 4f00 0000 0002 ........NEO.....
0014 00cc 0000 0006 01 .........
omniORB: (4) 2010-10-20 10:44:36.757393: Return '_is_a' on remote: key<............................RootPOA.....NameService.....NC0.>
omniORB: (4) 2010-10-20 10:44:36.757420: Creating ref to remote: key<............................RootPOA.....NameService.....NC0.>
target id : IDL:omg.org/CosNaming/NamingContext:1.0
omniORB: (4) 2010-10-20 10:44:36.757464: Invoke 'resolve' on remote: key<............................RootPOA.....NameService.....NC0.>
omniORB: (4) 2010-10-20 10:44:36.757489: sendChunk: to giop:tcp:192.9.10.213:1049 125 bytes
4749 4f50 0102 0000 0000 0071 0000 0008 GIOP.......q....
0300 0000 0000 2034 0000 003c afab cb00 ...... 4...<....
0000 0022 0000 03e8 0000 0001 0000 0000 ..."............
0000 0002 0000 0008 526f 6f74 504f 4100 ........RootPOA.
0000 000c 4e61 6d65 5365 7276 6963 6500 ....NameService.
0000 0003 4e43 3014 0000 0008 7265 736f ....NC0.....reso
6c76 6500 0000 0000 0000 0001 0000 0005 lve.............
706c 6f70 0072 672f 0000 0001 00 plop.rg/.....
omniORB: (4) 2010-10-20 10:44:36.758805: inputMessage: from giop:tcp:192.9.10.213:1049 210 bytes
4749 4f50 0102 0001 0000 00c6 0000 0008 GIOP............
0000 0000 0000 0001 4e45 4f00 0000 0002 ........NEO.....
434c 412f 436c 6965 6e74 3a31 2e30 002e CLA/Client:1.0..
0000 0001 0000 0000 0000 0086 0001 0200 ................
0000 000d 3139 312e 302e 3234 382e 3533 ....191.0.248.53
0000 130f 0000 0031 afab cb00 0000 0020 .......1.......
c8d0 a394 0000 0001 0000 0000 0000 0001 ................
0000 0008 526f 6f74 504f 4100 0000 0008 ....RootPOA.....
0000 0001 0000 0000 1400 0000 0000 0002 ................
0000 0001 0000 0020 0000 0000 0001 0001 ....... ........
0000 0002 0501 0001 0001 0020 0001 0109 ........... ....
0000 0001 0001 0100 0000 0026 0000 0002 ...........&....
0002 ..
omniORB: (4) 2010-10-20 10:44:36.758985: Creating ref to remote: key<............................RootPOA..............>
target id : IDL:omg.org/CORBA/Object:1.0
most derived id: IDL:CLA/Client:1.0
omniORB: (4) 2010-10-20 10:44:36.759010: Return 'resolve' on remote: key<............................RootPOA.....NameService.....NC0.>
omniORB: (4) 2010-10-20 10:44:36.759063: LocateRequest to remote: key<............................RootPOA..............>
omniORB: (4) 2010-10-20 10:44:36.759172: Client attempt to connect to giop:tcp:191.0.248.53:4879
omniORB: (4) 2010-10-20 10:44:36.759269: Failed to connect: 191.0.248.53
omniORB: (4) 2010-10-20 10:44:36.759329: Switch rope to use address giop:tcp:191.0.248.53:4879
omniORB: (4) 2010-10-20 10:44:36.759355: Unable to open new connection: giop:tcp:191.0.248.53:4879
omniORB: (4) 2010-10-20 10:44:36.759371: throw giopStream::CommFailure from giopStream.cc:1152(0,NO,TRANSIENT_ConnectFailed)
omniORB: (4) 2010-10-20 10:44:36.759612: throw TRANSIENT from omniObjRef.cc:1137 (NO,TRANSIENT_ConnectFailed)
omniORB: (4) 2010-10-20 10:44:36.759812: omniRemoteIdentity deleted.
omniORB: (4) 2010-10-20 10:44:36.759830: ObjRef(IDL:CLA/Client:1.0) -- deleted.
omniORB: (4) 2010-10-20 10:44:36.759895: ObjRef() -- deleted.
omniORB: (4) 2010-10-20 10:44:36.759938: sendChunk: to giop:tcp:191.0.248.53:4884 28 bytes
I tried to telnet the ip/port of the PO app, and it works, I don't understand why omniORB fails.
I tried to developp a test programme of Claire in java, implementing the same idl, everything works well.
omniORB: 192.9.12.16
omniORB: 192.9.10.213
omniORB: 127.0.0.1
and
Note : there is a router between the network 192.9.10.213 and 191.0.248.53, but the problem is still here if I tried from the same network.
Thanks for your help.
--
Nicolas V.
Hi there,
Could it be that you used the endPoint option to pick a particular
interface to listen to but didnt use the endPointPublish option to
ensure, that this interface was the one published in the IORs?
Its documented under section 4.5 in the omniORB user guide.
Regards,
Bjorn
_______________________________________________
omniORB-list mailing list
http://www.omniorb-support.com/mailman/listinfo/omniorb-list
If you havent done anything fancy like specifying endpoints, things
should just work. Are you sure, your Claire program isnt picking up an
old stale PO object reference in the nameservice?

Does the same thing happen, if you start with an empty nameservice?

Regards,

Bjorn
Thomas Lockhart
2010-10-20 22:37:24 UTC
Permalink
OK, I managed to find where is the problem : HP-UX, the test version of Cla=
ire works perfectly on linux (fedora core 12), but not on HP-UX 11.23.
But I have to make it works on HP-UX. I don't know if it is a confguration =
problem, or a OS problem.
Typically it is a routing problem or a DNS problem, all the more likely
since your test case works on one set of machines but not another.

hth

- Tom
VEYSSIERE Nicolas
2010-10-21 14:46:56 UTC
Permalink
I am able to test both Claire and PO on the HP-UX machine, and it works.

Now I have to find what make it fails.


I don't really understand the link between the fact that I am using the orb as server and client, and the network ????


hum....
--
Nicolas V.

-----Message d'origine-----
De?: Thomas Lockhart [mailto:***@fourpalms.org]
Envoy??: mercredi 20 octobre 2010 18:37
??: VEYSSIERE Nicolas (D3S)
Cc?: bjorn rohde jensen; omniorb-***@omniorb-support.com
Objet?: Re: [omniORB] Problem in network between 'server' and 'client'
OK, I managed to find where is the problem : HP-UX, the test version of Cla=
ire works perfectly on linux (fedora core 12), but not on HP-UX 11.23.
But I have to make it works on HP-UX. I don't know if it is a confguration =
problem, or a OS problem.
Typically it is a routing problem or a DNS problem, all the more likely
since your test case works on one set of machines but not another.

hth

- Tom
Duncan Grisby
2010-10-21 15:09:55 UTC
Permalink
Post by VEYSSIERE Nicolas
I don't really understand the link between the fact that I am using
the orb as server and client, and the network ????
It is presumably due to the difference between which end opens the
network connection. There could, for example, be a firewall that allows
outgoing TCP connections on arbitrary ports, but does not permit
incoming connections.

Cheers,

Duncan.
--
-- Duncan Grisby --
-- ***@grisby.org --
-- http://www.grisby.org --
VEYSSIERE Nicolas
2010-10-21 15:14:48 UTC
Permalink
Yes, I tried to find a firewall problem, but when in the logs it fails to open ip/port connection,
I tried to open a telnet to this ip/port and nothing is blocked, but as I am send bad data, there is an exception fired in the client.


This seems to be a HP-UX configuration problem.


As soon I find it, I will post it here.

Regards,
--
Nicolas V.


-----Message d'origine-----
De?: Duncan Grisby [mailto:***@grisby.org]
Envoy??: jeudi 21 octobre 2010 11:10
??: VEYSSIERE Nicolas (D3S)
Cc?: omniorb-***@omniorb-support.com
Objet?: RE: [omniORB] Problem in network between 'server' and 'client'
Post by VEYSSIERE Nicolas
I don't really understand the link between the fact that I am using
the orb as server and client, and the network ????
It is presumably due to the difference between which end opens the
network connection. There could, for example, be a firewall that allows
outgoing TCP connections on arbitrary ports, but does not permit
incoming connections.

Cheers,

Duncan.
--
-- Duncan Grisby --
-- ***@grisby.org --
-- http://www.grisby.org --
VEYSSIERE Nicolas
2010-10-21 18:55:20 UTC
Permalink
Good news, I managed to find the problem :

in the file src/lib/omniORB/orbcore/tcp/tcpAdress.cc, in the doConnect method, and in the USE_NONBLOCKING_CONNECT block, the call to connect have to be patched.

It seems there is a bug in connect in HP-UX 11.23 (I have to contact HP for that).

The bug : connect return -1 (RC_SOCKET_ERROR) but, errno = 0 !

So I here is the new code :

if (::connect(sock,ai->addr(),ai->addrSize()) == RC_SOCKET_ERROR) {

if (ERRNO != EINPROGRESS
#if defined(__hpux__)
&& ERRNO != 0
#endif
) {
logFailure("Failed to connect", ai);
CLOSESOCKET(sock);
return 0;
}


Houra ! it works !


Thanks for all.
--
Nicolas V.

-----Message d'origine-----
De?: omniorb-list-***@omniorb-support.com [mailto:omniorb-list-***@omniorb-support.com] De la part de VEYSSIERE Nicolas
Envoy??: jeudi 21 octobre 2010 11:15
??: Duncan Grisby
Cc?: omniorb-***@omniorb-support.com
Objet?: RE: [omniORB] Problem in network between 'server' and 'client'

Yes, I tried to find a firewall problem, but when in the logs it fails to open ip/port connection, I tried to open a telnet to this ip/port and nothing is blocked, but as I am send bad data, there is an exception fired in the client.


This seems to be a HP-UX configuration problem.


As soon I find it, I will post it here.

Regards,

--
Nicolas V.


-----Message d'origine-----
De?: Duncan Grisby [mailto:***@grisby.org]
Envoy??: jeudi 21 octobre 2010 11:10
??: VEYSSIERE Nicolas (D3S)
Cc?: omniorb-***@omniorb-support.com
Objet?: RE: [omniORB] Problem in network between 'server' and 'client'
Post by VEYSSIERE Nicolas
I don't really understand the link between the fact that I am using
the orb as server and client, and the network ????
It is presumably due to the difference between which end opens the
network connection. There could, for example, be a firewall that allows
outgoing TCP connections on arbitrary ports, but does not permit
incoming connections.

Cheers,

Duncan.
--
-- Duncan Grisby --
-- ***@grisby.org --
-- http://www.grisby.org --
Loading...