Re: Threads not killed during disconnection

Brent Eagles <[email protected]> Fri, 12 Jul 2002 10:59:20 -0230
Newsgroups gmane.comp.lib.jtc
Organization Object Oriented Concepts, Inc. - An IONA Company
Message-ID <[email protected]>
Hi,

On Tue, Jul 02, 2002 at 01:14:58PM +0200, Eric RENIER wrote:
> I work with ORBACUS 3.3.2 and JTC 1.0.12 packages under Linux mandrake 7.2
> I have a big problem with my CORBA application.
> In fact, I have a CORBA server running under Linux on computer A. My server is running with conModel threaded.
> I start a client (applet JAVA) from another computer B. CORBA server register the connection,
> a closeCB and return a callback to the client. On side server, I have two new threads creating for this connection (receivethread and senderthread of GIOPServerWorkerThread) and I save the OCI_Transport_Info variable.
> 
> I simulate a crash or a interrupted network liaison by disconnecting network cable on computer A.
> I kill client and reconnect network cable on computer A.
> 
> I start another client on computer C. During this new connection, I check all availabe connections on server side by creating a OB_policy_timeout on callback and calling _non_existent API on it. I received
> a corba exception CORBA_COMM_FAILURE. In this case, I release the callback by calling remove_close_cb with the OCI_Transport_Info saving before.
> I observe that the two threads (receivethread and senderthread of GIOPServerWorkerThread) are not killed.
> 
> How can I do to killing these threads in side server and cleaning properly this connection that doesn't exist following a network problem ?
> 
> Thank regards for your answer.
> 
> e-mail : [email protected]

Please note that this is more of an ORBacus question than a JThreads/C++
specific question.  

The question is really whether how the drop in the connection is
determined.  It may be the case that the recv() operation is not
returning after the connection has been dropped, in which case the send
and receive threads will not be released.  This usually means that the
sockets implementation on the host does not realized that the connection
has been dropped.  Unfortunately, there is no way in ORBacus 3 to deal
with inactive connections.  This type of problem is handled in ORBacus
4 by using the standard CORBA 'Active Connection Management' feature.  

Best regards,

Brent

-- 
Brent Eagles                          
IONA 
END 2 ANYWHERE (TM)  
Email: mailto:[email protected]
Phone: 709-738-3725
WWW  : http://www.iona.com
_______________________________________________
JTC-Users Mailing List - [email protected]
http://www.orbacus.com/mailman/listinfo/jtc-users
Visit our support FAQ before you send a message.
http://www.orbacus.com/faq/support.html