Post by Duncan GrisbyPost by Bruno CARLUSI've been running omniNames (omniORB 4.0.7) for quite a long time on
the same machine (Mandriva 2006 x86) and everything was going smoothly
but one morning this week after an omniNames restart (ok) the
different client could not resolve the nameservice reference anymore
and omninames prints out a large bunch of messages "omninames cannot
create a worker for this endpoint". The point is that there is a lot
of clients connecting at the same time to the name service (about
1000).
"Cannot create a worker for this endpoint" means that omniORB was unable
to start a thread. Putting it into thread pool mode will probably make
it work. You might also want to reduce the idle connection timeout
(inConScanPeriod parameter) so that connections from idle clients are
closed sooner.
Cheers,
Duncan.
Thanks, everybody !
I solved the "cannot create a worker fot this endpoint" problem with a
thread pool but have now another problem:
I've got about 1000 client app trying to fetch the reference of their
server app. in tha name service.
When I try to start the server app, he finds the name service but
cannot bind its reference if there is more than 1009 (?)clients
contacting the name service...is there some kind of limit there ?
As I increased the file descriptor number per process, I don't know
where does this new problem come from...
Here is the log of the server app:
omniORB: Distribution date: Thu Apr 14 17:19:57 BST 2005 dgrisby
omniORB: My addresses are:
omniORB: 127.0.0.1
omniORB: 134.158.140.49
omniORB: 172.16.11.1
omniORB: 172.16.0.2
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: Initialising omniDynamic library.
omniORB: Current configuration is as follows:
omniORB: DefaultInitRef (file) =
omniORB: DefaultInitRef (args) =
omniORB: InitRef = NameService=corbaname::172.16.0.2:2809
omniORB: InitRef = EventService=corbaname::172.16.0.2:11169
omniORB: abortOnInternalError = 0
omniORB: acceptBiDirectionalGIOP = 0
omniORB: acceptMisalignedTcIndirections = 0
omniORB: bootstrapAgentHostname =
omniORB: bootstrapAgentPort = 900
omniORB: clientCallTimeOutPeriod = 1500
omniORB: clientTransportRule = * unix,ssl,tcp
omniORB: diiThrowsSysExceptions = 0
omniORB: dumpConfiguration = 0
omniORB: endPoint = giop:tcp:172.16.0.2:
omniORB: endPoint = giop:tcp:172.16.0.2:
omniORB: endPointPublishAllIFs = 0
omniORB: giopMaxMsgSize = 2097152
omniORB: giopTargetAddressMode = KeyAddr
omniORB: id = omniORB4
omniORB: inConScanPeriod = 10
omniORB: lcdMode = 0
omniORB: maxGIOPConnectionPerServer = 5
omniORB: maxGIOPVersion = 1.2
omniORB: maxInterleavedCallsPerConnection = 5
omniORB: maxServerThreadPerConnection = 20
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 = 20
omniORB: poaHoldRequestTimeout = 0
omniORB: poaUniquePersistentSystemIds = 1
omniORB: principal = [Null]
omniORB: scanGranularity = 3
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 = 250
omniORB: threadPerConnectionPolicy = 1
omniORB: threadPerConnectionUpperLimit = 300
omniORB: threadPoolWatchConnection = 1
omniORB: traceExceptions = 1
omniORB: traceInvocations = 0
omniORB: traceLevel = 50
omniORB: traceThreadId = 0
omniORB: unixTransportDirectory = /tmp/omni-%u
omniORB: unixTransportPermission = 777
omniORB: useTypeCodeIndirections = 1
omniORB: verifyObjectExistsAndType = 1
omniORB: Initialising incoming endpoints.
omniORB: Explicit bind to host 172.16.0.2.
omniORB: Bind to address 172.16.0.2.
omniORB: Explicit bind to host 172.16.0.2.
omniORB: Bind to address 172.16.0.2.
omniORB: Starting serving incoming endpoints.
omniORB: Adding root<0> (activating) to object table.
omniORB: State root<0> (activating) -> active
omniORB: Creating ref to local: root<0>
target id : IDL:HighPrecisionTracker/managerToHPTdaqItf:1.0
most derived id: IDL:HighPrecisionTracker/managerToHPTdaqItf:1.0
omniORB: Adding root<1> (activating) to object table.
omniORB: State root<1> (activating) -> active
omniORB: Creating ref to local: root<1>
target id : IDL:HighPrecisionTracker/HPTsensorToHPTdaqItf:1.0
most derived id: IDL:HighPrecisionTracker/HPTsensorToHPTdaqItf:1.0
omniORB: Creating ref to remote: key<NameService>
target id : IDL:omg.org/CORBA/Object:1.0
most derived id:
omniORB: Initial reference `NameService' resolved from configuration file.
omniORB: Client attempt to connect to giop:tcp:172.16.0.2:2809
omniORB: Client opened connection to giop:tcp:172.16.0.2:2809
omniORB: sendChunk: to giop:tcp:172.16.0.2:2809 100 bytes
omniORB:
4749 4f50 0100 0100 5800 0000 0000 0000 GIOP....X.......
0200 0000 010a 6f6d 0b00 0000 4e61 6d65 ......om....Name
5365 7276 6963 6566 0600 0000 5f69 735f Servicef...._is_
6100 7669 0000 0000 2800 0000 4944 4c3a a.vi....(...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: Switch rope to use address giop:tcp:172.16.0.2:2809
omniORB: throw giopStream::CommFailure from
giopStream.cc:834(0,MAYBE,COMM_FAILURE_WaitingForReply)
omniORB: AsyncInvoker: thread id = 1 has started. Total threads = 3
omniORB: giopRendezvouser task execute for giop:tcp:172.16.0.2:34823
omniORB: AsyncInvoker: thread id = 2 has started. Total threads = 3
omniORB: giopRendezvouser task execute for giop:tcp:172.16.0.2:34824
omniORB: AsyncInvoker: thread id = 3 has started. Total threads = 3
omniORB: Scavenger task execute.
omniORB: Client connection refcount = 0
omniORB: Client close connection to giop:tcp:172.16.0.2:2809
omniORB: throw COMM_FAILURE from omniObjRef.cc:754
(MAYBE,COMM_FAILURE_WaitingForReply)
omniORB: ORB not destroyed; no final clean-up.
Any idea ?
Thanks, Bruno.
PS: sorry Duncan for the redundant message...