[omniORB] COMM_FAILURE in CosNaming::NamingContext::_narrow

Qian Feng fengqian at jfsys.com
Fri May 9 12:32:50 BST 2003


Hi, All
	Here is the simple code which caused the COMM_FAILURE:

	...
	SomeFunction()
	{	
	...
		initServ =
m_ptrORB->resolve_initial_references("NameService");
		rootContext =
CosNaming::NamingContext::_narrow(initServ); // COMM_FAILURE throwed
here sometimes.
	...
	}

	...

It seems that it will always successfully narrow the rootContext when I
call SomeFunction for the first time, but when I try to call
"SomeFunction" a few minutes(like 3 or 5) later, it will fail.

	And here is the trace information  when it failed with
traceLevel set to 40:

=The trace begins here==
omniORB: Initial reference `NameService' resolved from configuration
file.
omniORB: Invoke '_is_a' on remote: key<0x4e616d6553657276696365>
omniORB: sendChunk: to giop:tcp:10.1.1.13:2809 100 bytes
omniORB: 
4749 4f50 0100 0100 5800 0000 0000 0000 GIOP....X.......
1c00 0000 01cd cdcd 0b00 0000 4e61 6d65 ............Name
5365 7276 6963 65cd 0600 0000 5f69 735f Service....._is_
6100 6500 0000 0000 2800 0000 4944 4c3a a.e.....(...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: inputMessage: from giop:tcp:10.1.1.13:2809 12 bytes
omniORB: 
4749 4f50 0102 0105 0000 0000           GIOP........
omniORB: To endpoint: giop:tcp:10.1.1.13:2809. Send GIOP 1.0
MessageError because a protocol error has been detected. Connection is
closed.
omniORB: throw giopStream::CommFailure from
giopImpl10.cc:883(0,MAYBE,COMM_FAILURE_WaitingForReply)
omniORB: Client connection refcount = 0
omniORB: Client close connection to giop:tcp:10.1.1.13:2809
omniORB: throw COMM_FAILURE from omniObjRef.cc:754
(MAYBE,COMM_FAILURE_WaitingForReply)
=The trace ends here==

And at the mean time the server side doesn't have any trace output. 
But the following trace information happened on the server side before
the narrow call on the client:

==Begin trace info on the server side ==
omniORB: Scavenger close connection from giop:tcp:10.1.1.125:3718
omniORB: throw giopStream::CommFailure from
giopStream.cc:819(0,NO,COMM_FAILURE_UnMarshalArguments)
omniORB: Server connection refcount = 1
omniORB: Server connection refcount = 0
omniORB: Server close connection from giop:tcp:10.1.1.125:3718
omniORB: AsyncInvoker: thread id = 12 has exited. Total threads = 3

==End trace info on the server side ==

And here is the system environment:
Client: omniORB-4.0.1 on Windows 2000, IP: 10.1.1.125
Server: omniORB-4.0.1 on Redhat Linux 7.2, IP: 10.1.1.13

Is it a configuration problem or is there anything I missed? Any
comments are very welcomed! 

Thanks in advance,
Qian Feng




More information about the omniORB-list mailing list