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