[omniORB] Servant Locator / tcpSocketMT Exception
Shanmugam Deveraj
shm@transynergy.net
Tue, 22 May 2001 15:20:52 +0200
Hi Duncan!
The idl, locator and servant implementation source is also included at
the end of this mail.
OmniNames Trace Message:-
***********************
omniORB: strand Rope_iterator: delete unused Rope.
omniORB: tcpSocketMTfactory ~tcpSocketOutgoingRope: called
omniORB: tcpSocketMTfactory Rendezvouser: unblock from accept()
omniORB: tcpSocketMTfactory Rendezvouser: accept new strand.
omniORB: tcpSocketMTfactory Rendezvouser: block on accept()
omniORB: tcpSocketMTfactory Worker: start.
omniORB: Handling a GIOP LOCATE_REQUEST.
omniORB: Dispatching remote call 'resolve' to:
key<0x4e616d6553657276696365>
omniORB: Dispatching local call 'resolve' to root/<939524096>
omniORB: throw omniConnectionBroken (minor 10054) from
tcpSocketMTfactory.cc:106
8
omniORB: tcpSocketMTfactory Worker: #### Connection closed.
omniORB: tcpSocketMTfactory Worker: exit.
omniORB: tcpSocketStrand::~Strand() close socket no. 436
and some time later...
omniORB: throw omniConnectionBroken (minor 0) from
tcpSocketMTfactory.cc:1079
omniORB: tcpSocketMTfactory Worker: #### Connection closed.
omniORB: tcpSocketMTfactory Worker: exit.
omniORB: tcpSocketStrand::~Strand() close socket no. 460
Regards,
Shanmugam.D.
// 1. IDL
module Quoter
{
interface Stock_Factory
{
double get_stock (in string stock_symbol);
};
};
// 2. Locator
//preinvoke
{
cout << "Quoter_Stock_Factory_i::preinvoke()" << operation << endl;
return new Quoter_Stock_Factory_i;
}
//postinvoke
{
cout << "Quoter_Stock_Factory_i::postinvoke()" << endl;
the_servant->_remove_ref();
}
// 3. servant implementation
class Quoter_Stock_Factory_i : public POA_Quoter::Stock_Factory,
public PortableServer::RefCountServantBase {
public:
virtual ~Quoter_Stock_Factory_i()
{ cout << "Quoter_Stock_Factory_i::~Quoter_Stock_Factory_i()" <<
endl; }
CORBA::Double get_stock (const char *symbol)
{
cout << "Inside the get stock function" << endl;
return 7.0;
}
};
// 4. Any more source needed???
-----Original Message-----
From: owner-omniorb-list@uk.research.att.com
[mailto:owner-omniorb-list@uk.research.att.com]On Behalf Of Duncan
Grisby
Sent: Tuesday, May 22, 2001 3:43 AM
To: Shanmugam Deveraj
Cc: 'omniorb-list@uk.research.att.com'
Subject: Re: [omniORB] Servant Locator / tcpSocketMT Exception
On Monday 21 May, Shanmugam Deveraj wrote:
> Could anybody suggest the reason for the following exception?
> "omniORB: An exception has occured and was caught by tcpSocketMT
> Worker thread".
>
> This occurs after calling a method in the servant more than 2 times.
Something bad has happened if you get that error, but it's difficult
to see what. Try running your program with command line arguments of
-ORBtraceLevel 25 -ORBtraceInvocations, and see if the output reveals
more of what's going wrong.
Cheers,
Duncan.
--
-- Duncan Grisby \ Research Engineer --
-- AT&T Laboratories Cambridge --
-- http://www.uk.research.att.com/~dpg1 --