Skip to main content

Summary This article explains an issue with Server threads getting stuck in IT_ATLI2_IP::TCPConnectionImpl::get_send_buffer()
Environment

Orbix 6.3
All Supported Operating Systems

Question/Problem Description

Why does a stack trace show a number of threads in "IT_ATLI2_IP::TCPConnectionImpl::get_send_buffer()" ?

Clarifying Information

 

Error Message

void IT_Condition::wait(IT_Locker<IT_Mutex>&,IT_ExceptionHandler&)IT_Buffer::Buffer*IT_ATLI2_IP::TCPConnectionImpl::get_send_buffer(unsigned long,const TimeBase::UtcT&)IT_Buffer::Buffer*IT_ATLI2_IOP::ConnectionHandlerImpl::get_message_buffer(bool,const TimeBase::UtcT&)
void IT_GIOP_OutStream::get_next_buffer(unsigned long,bool,unsigned char*&,unsigned long&,unsigned long&)
void IT_CDR_OutStream::write_string(const char*)
void IT_GIOP_ServerRequest::send_reply(bool)
void IT_GIOP_ServerRequest::write_outputs(IT_Binding::TargetContext*)
void IT_Binding_ServerRequestImpl::it_respond()
void POA_Simple::SimpleObject::call_me_itgen_dispatch(PortableServer::ServantBase*,CORBA::IT_ServerRequest*,CORBA::completion_status&) void PortableServer::ServantBase::_dispatch(CORBA::IT_ServerRequest*)
void IT_POA_RequestInterceptor::invoke(IT_Binding::ServerRequestData*,IT_Binding::ServerRequestCallback*)

Defect/Enhancement Number
Cause

When a large amount of data is sent from server to the client then a very slow client reading the server response causes the server thread to get stuck and generates a pstack as shown below.

Resolution

Orbix thread pools are unlimited by default and if all threads are stuck waiting for the client to read in their response then a new thread will be created. The initial number of threads is defined by thread_pool:initial_threads and the maximum number of threads are controlled by thread_pool:high_water_mark.

Please refer to the article below for more information on ""How to configure thread pool setting in Orbix 6.3"

Workaround

Notes
Related Documentation:  
 
For further details on multi-threading in Orbix please consult the Orbix "Configuration Reference" and the Orbix "CORBA Programmer's Guide" available below by selecting the "CORBA Middleware" product family: http://supportline.microfocus.com/productdoc.aspx
 
 
Related KB Article(s):
 
http://community.microfocus.com/microfocus/corba/orbix/w/knowledge_base/22974.how-to-configure-thread-pool-settings-in-orbix-6-3.aspx 

 

Attachment


#Orbix
#KnowledgeDocs