[jboss-jira] [JBoss JIRA] Commented: (JBMESSAGING-1751) ClientConnectionFactoryDelegate.getClientAOPStack() should close its Remoting Client

Howard Gao (JIRA) jira-events at lists.jboss.org
Wed Nov 18 03:13:29 EST 2009


    [ https://jira.jboss.org/jira/browse/JBMESSAGING-1751?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12495166#action_12495166 ] 

Howard Gao commented on JBMESSAGING-1751:
-----------------------------------------

the client should be disconnected like

try
      {
         theClient = createClient();
      
         ConnectionFactoryGetClientAOPStackRequest req =
            new ConnectionFactoryGetClientAOPStackRequest(id, v);
      
         return (byte[])doInvoke(theClient, req);
      }
      finally
      {
         if (theClient != null)
         {
            theClient.disconnect();
         }
      }




> ClientConnectionFactoryDelegate.getClientAOPStack() should close its Remoting Client
> ------------------------------------------------------------------------------------
>
>                 Key: JBMESSAGING-1751
>                 URL: https://jira.jboss.org/jira/browse/JBMESSAGING-1751
>             Project: JBoss Messaging
>          Issue Type: Bug
>    Affects Versions: 1.4.0.SP3.CP09, 1.4.6.GA
>            Reporter: Ron Sigal
>            Assignee: Howard Gao
>            Priority: Minor
>             Fix For: 1.4.0.SP3.CP10, 1.4.6.GA.SP1, 1.4.7.GA
>
>
> org.jboss.remoting.transport.socket.MicroSocketClientInvoker uses a complex key for the map of connection pools, and one element of the key is the value of "maxPoolSize".  Since the org.jboss.remoting.Client used by ClientConnectionFactoryDelegate.getClientAOPStack() uses the default maxPoolSize, and the main Client created by JMSRemotingConnection uses the value 200 set in remoting-bisocket-service.xml, two separate connection pools are created.  Since ClientConnectionFactoryDelegate.getClientAOPStack() doesn't close its Client, the first connection pool doesn't get deleted promptly.
> Now, MicroSocketClientInvoker is paranoid about the failure to close Clients, so, whenever a Client is closed (technically, when the last Client to use a particular MicroSocketClientInvoker is closed), all connection pools are deleted.  So, whenever the last JBM connection to a particular server is closed, the orphan connection pool will be closed.  But it's unpredictable when that will happen.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-jira mailing list