Hi
I am new to jboss messaging and i apologize if my question turns out to be
silly.
I have a sender that createConnection, createSession and createProducer on
every message. I am concerned this is very inefficient. I read on some other
posts that it is acceptable if one uses JmsXA
| public class JmsPublisher
| {
|
| private ConnectionFactory bizConnectionFactory ;
| private Destination bizDestination;
|
|
| public ConnectionFactory getBizConnectionFactory() {
| return bizConnectionFactory;
| }
| public void setBizConnectionFactory(ConnectionFactory
bizConnectionFactory) {
| this.bizConnectionFactory = bizConnectionFactory;
| }
| public Destination getBizDestination() {
| return bizDestination;
| }
| public void setBizDestination(Destination bizDestination) {
| this.bizDestination = bizDestination;
| }
|
| public JmsPublisher(){}
|
| public void sendEvent(SignalAbstract ev)
| throws
| JMSException
| {
| Connection connection = null;
| Session session = null;
| MessageProducer messageProducer = null;
|
| try
| {
|
| connection = bizConnectionFactory.createConnection();
| session = connection.createSession(false,
Session.AUTO_ACKNOWLEDGE);
| messageProducer =
session.createProducer(bizDestination);
|
| ObjectMessage msg = session.createObjectMessage(ev);
|
| messageProducer.send(msg);
|
| }
| finally
| {
| if (messageProducer != null) try {
messageProducer.close(); } catch (Exception ignore) { }
| if (session != null) try { session.close(); } catch
(Exception ignore) { }
| if (connection != null) try { connection.close(); }
catch (Exception ignore) { }
|
| }
|
| }
|
| }
|
I inject the jndi name via Spring
| <jee:jndi-lookup id="bizConnectionFactory"
| jndi-name="${biz.messagingConnectionFactoryName}">
| <jee:environment>
| java.naming.provider.url=${biz.messagingProviderUrl}
|
java.naming.factory.url.pkgs=org.jnp.interfaces:org.jboss.naming
|
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
| </jee:environment>
| </jee:jndi-lookup>
|
| <jee:jndi-lookup id="bizDestination"
| jndi-name="${biz.messagingDestinationName}">
| <jee:environment>
| java.naming.provider.url=${biz.messagingProviderUrl}
|
java.naming.factory.url.pkgs=org.jnp.interfaces:org.jboss.naming
|
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
| </jee:environment>
| </jee:jndi-lookup>
|
| <bean class="com.strateer.biz.impl.JmsPublisher"
| id="bizJmsPublisher">
| <property name="bizConnectionFactory"
ref="bizConnectionFactory" />
| <property name="bizDestination" ref="bizDestination" />
| </bean>
|
It works when
| biz.messagingProviderUrl=localhost:1099
| biz.messagingConnectionFactoryName=ConnectionFactory
|
but it doesn't when i change the connectionFactoryName to java:/JmsXA
| biz.messagingProviderUrl=localhost:1099
| biz.messagingConnectionFactoryName=java:/JmsXA
|
The logs say the following:
Error creating bean with name 'bizConnectionFactory': Invocation of init method
failed; nested exception is javax.naming.NameNotFoundException: JmsXA
And i don't seem to be able to get it working.
I would appreciate some tips
Thank you for your help
matt
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4160080#4160080
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4160080
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user