[omniORB] ORBscanGranularity == shutdown time?
Roloff, Craig A
craig.a.roloff at boeing.com
Wed Jan 14 08:04:19 GMT 2004
On Monday 15 December, Grisby, Duncan" wrote:
> On Thursday 11 December, "Roloff, Craig A" wrote:
>
> > Why is there a relationship between ORBscanGranularity (SG) and the
> > shutdown time? It appears when shutdown (1) is executed that it
> > takes somewhat less than SG seconds to complete. Here is a table
> > of SG vs shutdown times (in seconds) for a particular applicaton:
>
> Shutdown time shouldn't be affected by the scan granularity at all.
>
> What version of omniORB are you using? Please try with 4.0.3. If you
> still get the delays, please run the traces again with
> -ORBtraceThreadId 1.
To illustrate where the delays are occurring during shutdown, I
installed the following log function to version 4.0.3 on HP-UX 11:
#include <time.h>
static void logTime (const char *s)
{
char buf[17];
static double total, offset = 0;
struct timespec ts;
if (clock_gettime (CLOCK_REALTIME, &ts) != -1)
{
total = (double) ts.tv_sec +
(double) ts.tv_nsec * 1.e-9;
if (offset == 0)
offset = total;
else
total -= offset;
sprintf (buf, "%.2f ", total);
fputs (buf, stderr);
}
fputs (s, stderr);
}
...
omniORB::setLogFunction (logTime);
omniORB::traceLevel = 40;
theOrb->shutdown (1);
...
It prepends the delta time from start of ORB shutdown to the log
messages. Below are excerpts of the messages for various values
of ORBscanGranularity. It shows a delay after the message
giopServer waits for completion of rendezvousers and workers
as well as after the message
AsyncInvoker: thread id = 1 has exited. Total threads = 3
(when present).
ORBscanGranularity = 60
=======================
0.00 omniORB: (0) Stopping serving incoming endpoints.
0.00 omniORB: (0) giopServer waits for completion of rendezvousers and workers
10.10 omniORB: (1) AsyncInvoker: thread id = 1 has exited. Total threads = 3
36.85 omniORB: (2) Scan for idle connections (1074031992,671698000)
36.85 omniORB: (2) Scavenger reduce idle count for strand 400cbcc0 to 1
36.85 omniORB: (2) Scavenger reduce idle count for strand 40427000 to 2
36.85 omniORB: (2) Scan for idle connections done (1074031992,671698000).
56.01 omniORB: (3) throw giopStream::CommFailure from giopStream.cc:828(0,NO,COMM_FAILURE_UnMarshalArguments)
56.01 omniORB: (3) Server connection refcount = 1
ORBscanGranularity = 30
=======================
0.00 omniORB: (0) Stopping serving incoming endpoints.
0.00 omniORB: (0) giopServer waits for completion of rendezvousers and workers
9.46 omniORB: (2) Scan for idle connections (1074032203,304669000)
9.46 omniORB: (2) Scavenger reduce idle count for strand 400cbcc0 to 3
9.46 omniORB: (2) Scavenger reduce idle count for strand 40427000 to 5
9.47 omniORB: (2) Scan for idle connections done (1074032203,304669000).
10.10 omniORB: (1) AsyncInvoker: thread id = 1 has exited. Total threads = 3
25.52 omniORB: (3) throw giopStream::CommFailure from giopStream.cc:828(0,NO,COMM_FAILURE_UnMarshalArguments)
25.53 omniORB: (3) Server connection refcount = 1
ORBscanGranularity = 10
=======================
0.00 omniORB: (0) Stopping serving incoming endpoints.
0.01 omniORB: (0) giopServer waits for completion of rendezvousers and workers
4.62 omniORB: (3) throw giopStream::CommFailure from giopStream.cc:828(0,NO,COMM_FAILURE_UnMarshalArguments)
4.62 omniORB: (3) Server connection refcount = 1
ORBscanGranularity = 2
======================
0.00 omniORB: (0) Stopping serving incoming endpoints.
0.00 omniORB: (0) giopServer waits for completion of rendezvousers and workers
0.48 omniORB: (3) throw giopStream::CommFailure from giopStream.cc:828(0,NO,COMM_FAILURE_UnMarshalArguments)
0.49 omniORB: (3) Server connection refcount = 1
More information about the omniORB-list
mailing list