[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 --