<html>
    <head>
      <base href="http://www.jacorb.org/bugzilla/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - ClientGIOPConnection/closeAllowReopen and threads"
   href="http://www.jacorb.org/bugzilla/show_bug.cgi?id=967">967</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>ClientGIOPConnection/closeAllowReopen and threads
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>JacORB
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>3.3
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>major
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P5
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>ORB
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>jacorb-bugs@lists.spline.inf.fu-berlin.de
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>jacorb@goots.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Currently, if for instance, a server is killed the client receives a 
COMM_FAILURE then the transport is closed down and the GIOP layer is 
kept 'open'.


However, the problem is that with this scenario we get a 
ClientMessageReceptor thread stuck in receive messages loop. Of course, 
if the client object is _release'd this would go away.

If the GIOP connection is closed in 
ClientGIOPConnection::closeAllowReopen i.e. close() is called (after 
being called from streamClosed) then the thread is released into the 
pool and the transport and giop layer are closed down.
However, this does not negate the possibility of calling the client 
object again - it should simply attempt to call the server again, 
reopening the connection/transport if required.

There appears to be a trade-off here between object creation/gc versus 
threads. If the client does not call release, it can cause thread pool
exhaustion as many threads are simply locked up waiting.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>