Serguei Kolos
2007-03-08 23:29:03 UTC
Hello
I'm using omniORB 4.0.7 on SLC4 Linux (kernel 2.6.9-42).
I have a system with server and subscriber which subscribes to the
server and
periodically receives callbacks (defined as oneway method) from the server.
I have set the scanGranularity parameter to 0 on the server and I'm using
default settings on the subscriber.
I have noticed the following problem - if the server sends callback to
subscriber
and then waits for several minutes before sending another one then this new
callback is not properly processed on the subscriber side and in fact it
never goes
to the user code. This is the ouput which appears on the subscriber side
when
the callback should have been received:
omniORB: throw giopStream::CommFailure from
giopStream.cc:838(0,NO,COMM_FAILURE_UnMarshalArguments)
I had a look to the code and found that this happens because the ::recv
function which
is called by the Recv method returns 0 which happens probably because it
is trying to
read from the socket which was already shut down.
If I don't set the scanGranularity to 0 then the problem never occurs.
I have attached the output of both server and subscriber with the
traceLevel set to 35.
Cheers,
Sergei
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Server.debug.gz
Type: application/x-tar
Size: 3657 bytes
Desc: not available
Url : http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20070308/5311487f/Server.debug.tar
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Subscriber.debug.gz
Type: application/x-tar
Size: 3461 bytes
Desc: not available
Url : http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20070308/5311487f/Subscriber.debug.tar
I'm using omniORB 4.0.7 on SLC4 Linux (kernel 2.6.9-42).
I have a system with server and subscriber which subscribes to the
server and
periodically receives callbacks (defined as oneway method) from the server.
I have set the scanGranularity parameter to 0 on the server and I'm using
default settings on the subscriber.
I have noticed the following problem - if the server sends callback to
subscriber
and then waits for several minutes before sending another one then this new
callback is not properly processed on the subscriber side and in fact it
never goes
to the user code. This is the ouput which appears on the subscriber side
when
the callback should have been received:
omniORB: throw giopStream::CommFailure from
giopStream.cc:838(0,NO,COMM_FAILURE_UnMarshalArguments)
I had a look to the code and found that this happens because the ::recv
function which
is called by the Recv method returns 0 which happens probably because it
is trying to
read from the socket which was already shut down.
If I don't set the scanGranularity to 0 then the problem never occurs.
I have attached the output of both server and subscriber with the
traceLevel set to 35.
Cheers,
Sergei
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Server.debug.gz
Type: application/x-tar
Size: 3657 bytes
Desc: not available
Url : http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20070308/5311487f/Server.debug.tar
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Subscriber.debug.gz
Type: application/x-tar
Size: 3461 bytes
Desc: not available
Url : http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20070308/5311487f/Subscriber.debug.tar