You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Ali Sadik Kumlali (JIRA)" <ji...@apache.org> on 2006/07/07 16:30:31 UTC

[jira] Commented: (AXIS2-869) New JMS Implementation - ConnectionFactory cache for client

    [ http://issues.apache.org/jira/browse/AXIS2-869?page=comments#action_12419723 ] 

Ali Sadik Kumlali commented on AXIS2-869:
-----------------------------------------

I've digged a little bit further into the new JMS implementation. What I've found there;
- JMSListener creates and maintains a connection factory cache. Throughout the operation it
   - Reads connection factory descriptions found in axis2.xml through TransportInDescription,
   - Parses the descriptions,
   - Creates JMSConnectionFactory instance for each connection factory,
   - Retrieves the connection factory from the JMS Server's JNDI tree by calling jmsConFactory.connect() and store it in JMSConnectionFactory instance for later use.
   - Adds the JMSConnectionFactory instance to the connectionFactories map. Factories are keyed by name.

I don't think default connection factory is enough for all the outgoing needs. Actually, I don't see any difference between sending and receiving the messages. So, if a message can be retrieved from different destinations, a client should be able to send a message to different destinations. For this, if the listener needs to store connection factories, the sender also needs to it as well.

My suggestions (if I'm not missing something):
- The same thing can/should be done for JMSSender
- Instead of putting the same code into both JMSListener and JMSSender, a more general class can be used. For example,  JMSConnectionFactoryManager can be used to initialize and store factories. Then it can be accessed from both JMSSender and JMSListener.

> New JMS Implementation - ConnectionFactory cache for client
> -----------------------------------------------------------
>
>          Key: AXIS2-869
>          URL: http://issues.apache.org/jira/browse/AXIS2-869
>      Project: Apache Axis 2.0 (Axis2)
>         Type: New Feature

>   Components: transports
>     Reporter: Ali Sadik Kumlali
>     Priority: Minor

>
> I'm creating this issue regarding discussion found at http://www.mail-archive.com/axis-dev@ws.apache.org/msg18547.html
> Following is the related excerpt from the mentioned discussion:
> [Ali Sadik Kumlali]
>  - In SonicMQ, if ConnectionFactory is retrieved from the JNDI for each connection, very high memory usage which prevents access to admin console occurs during high message traffic. And sometimes the server crashes.
>  - AFAIK, old JMS implementation uses connectors to achive this.
> [Asankha]  
> The JMS listener focuses on listening for JMS messages - and I believe that the optimization that one could perform on outgoing JMS is limited - as different messages may be destined for different JMS destinations. However, I also think that we could use the "default" connection factory (if one is defined) for outgoing messages with a minor patch.. Will this be ok?

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


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org