[tao-users] TAO Server and Client disconnection

Phil Mesnier mesnierp at ociweb.com
Thu Sep 22 09:00:03 CDT 2016


Hi Prebhakar,

Since you are using OCI's commercial release  of TAO, you should work with OCI directly for support. There are some situations in which a server using a bidir connection may abandon it. For example, if the server is multithreaded and needs to send concurrent requests, or if the connection was otherwise lost. 

-Phil

> On Sep 22, 2016, at 1:35 AM, Prabhakar Bhatt <prabhakar.bhatt at gmail.com> wrote:
> 
> Hi,
>  
>    Greetings to everybody.
>  
>   We are using ACE+TAO 2.0a  in out project and facing following issues in one of the customer production.
>  
>    The details as follows:
>  
>     ==================================================================
>  
>                  TAO VERSION: 2.0a
>  
>                  HOST MACHINE and OPERATING SYSTEM: LINUX (Red Hat Enterprise Linux Server release 5.2 (Tikanga) )
>                  TARGET MACHINE and OPERATING SYSTEM, if different from HOST: LINUX (Red Hat Enterprise Linux Server release 5.2 (Tikanga) )
>                  COMPILER NAME AND VERSION (AND PATCHLEVEL): gcc-c++-4.1.2-42.el5
>                  CONTENTS OF $ACE_ROOT/ace/config.h : #include "ace/config-linux.h"
>                  CONTENTS OF $ACE_ROOT/include/makeinclude/platform_macros.GNU :include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
>                                                                                                                              INSTALL_PREFIX=/tmp/TAO-INSTAL
>                  CONTENTS OF $ACE_ROOT/bin/MakeProjectCreator/config/default.features: File is not present.
>                  LEVEL OF URGENCY (LOW, MEDIUM, or HIGH): HIGH
>                  AREA/CLASS/EXAMPLE AFFECTED: Change in BiDirectional Port causes disconnection between server and client AND TAO traces not logged.
>                  DOES THE PROBLEM AFFECT:
>                                   COMPILATION? No
>                                   LINKING? No 
>                                   On Unix systems, did you run make realclean first? No
>                                   EXECUTION? Yes
>                                   OTHER (please specify)? No
>  
> ==================================================================
> 
> 
> SYNOPSIS and DESCRIPTION as follows :
>  
> =============================================================================
>  
> 1.  We are setting following debug options in  orb_init at server side. But logs are seen only at the process startup. After that no logs are seen.
> 
>          Orb_init signature : MCC_T_CHAR *defaultOptions_p[] = {"dummy", "-ORBDebug", "-ORBDebugLevel","99","-ORBLogFile",(char *)procInfo.proc_trace_info.trace_file,0};
> 
> 
> 2.  We are using BIDIRECTIONAL port usage in our Server and Client application for communication. Two thread are being used at server side to Communication with client. One thread is uses a callback of client to send the actual data, second thread calls client callback for polling mechanism . When everything is going fine both the threads at server use 6001 to communicate with client. But suddenly polling thread callback request from the server will be sent to client on different port ( Ex : 52345). After this connection is lost between the server and client. After analyzing the pcaps it is confirmed that signature remains for all the disconnections and RST( at TCP Level) is received from the client for request on port 42345. Even though BiDirectional is set why the request is going on new port.
> 
>  
>  Configuration : # TAO Naming
> 
>                  NameServiceIOR=corbaloc:iiop:localhost:3075/NameService
> 
>                  # TAO IIOP Endpoint
> 
>                  TAO_ORBENDPOINT="iiop://:6000/portspan=31"
> 
>  
>  
>  Bidirectional policy :
> 
>                 At client : POAPolicyList[1] = m_client_orb->create_policy(BiDirPolicy::BIDIRECTIONAL_POLICY_TYPE, pol);
> 
>  
>                 At Server :
> 
>                              
>                           callsPOAPolicyList[0] = m_rootPOA->create_lifespan_policy(PortableServer::TRANSIENT);
> 
>                           callsPOAPolicyList[1] = m_server_orb->create_policy(BiDirPolicy::BIDIRECTIONAL_POLICY_TYPE, pol2);
> 
>  
>  
> Additional policies are set before calling the Client side callback every time at server side :
> 
>                               policyList[0] = callbackRef->_get_orb()->create_policy(Messaging::RELATIVE_RT_TIMEOUT_POLICY_TYPE, rt_timeout_any);
> 
>                               CORBA::Object_var object = callbackRef->_set_policy_overrides(policyList, CORBA::ADD_OVERRIDE);
> 
>                                          
> =============================================================================================================
> 
> Please do let me know your answers/suggestions.
> 
>  
>  
> Thaks and Regards,
> 
> Prabhakar Bhatt
> _______________________________________________
> tao-users mailing list
> tao-users at list.isis.vanderbilt.edu
> http://list.isis.vanderbilt.edu/cgi-bin/mailman/listinfo/tao-users

--
Phil Mesnier
Principal Engineer & Partner

OCI | WE ARE SOFTWARE ENGINEERS.
tel  +1.314.579.0066 x225
ociweb.com <http://ociweb.com/>





-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.isis.vanderbilt.edu/pipermail/tao-users/attachments/20160922/1058402b/attachment-0001.html>


More information about the tao-users mailing list