Hi Asankha/Ruwan:
JMSUtil.java in the JMS transport module does set all JMS Connection
properties specified in axis2.xml.
For Sonic MQ, there is one vendor specific JMS connection property
"com.sonicsw.jndi.mfcontext.domain", which I have specified in my axis2.xml
file , but JMSUtils.java set only the following properties,
public static void setConnectionFactoryParameters(
Parameter param, JMSConnectionFactory jmsConFactory) {
ParameterIncludeImpl pi = new ParameterIncludeImpl();
try {
pi.deserializeParameters((OMElement) param.getValue());
} catch (AxisFault axisFault) {
log.error("Error reading parameters for JMS connection factory"
+
jmsConFactory.getName(), axisFault);
}
Iterator params = pi.getParameters().iterator();
while (params.hasNext()) {
Parameter p = (Parameter) params.next();
if (JMSConstants.CONFAC_TYPE.equals(p.getName())) {
String connectionFactoryType = (String) p.getValue();
jmsConFactory.setConnectionFactoryType(connectionFactoryType);
} else if (JMSConstants.RECONNECT_TIMEOUT.equals(p.getName())) {
String strTimeout = (String) p.getValue();
int reconnectTimeoutSeconds = Integer.parseInt(strTimeout);
long reconnectTimeoutMillis = reconnectTimeoutSeconds * 1000;
jmsConFactory.setReconnectTimeout(reconnectTimeoutMillis);
} else if (Context.INITIAL_CONTEXT_FACTORY.equals(p.getName()))
{
jmsConFactory.addJNDIContextProperty(
Context.INITIAL_CONTEXT_FACTORY, (String) p.getValue());
} else if (Context.PROVIDER_URL.equals(p.getName())) {
jmsConFactory.addJNDIContextProperty(
Context.PROVIDER_URL, (String) p.getValue());
} else if (Context.SECURITY_PRINCIPAL.equals(p.getName())) {
jmsConFactory.addJNDIContextProperty(
Context.SECURITY_PRINCIPAL, (String) p.getValue());
} else if (Context.SECURITY_CREDENTIALS.equals(p.getName())) {
jmsConFactory.addJNDIContextProperty(
Context.SECURITY_CREDENTIALS, (String) p.getValue());
} else if
(JMSConstants.CONFAC_JNDI_NAME_PARAM.equals(p.getName())) {
jmsConFactory.setConnFactoryJNDIName((String) p.getValue());
jmsConFactory.addJNDIContextProperty(
JMSConstants.CONFAC_JNDI_NAME_PARAM, (String)
p.getValue());
}
}
}
As a result it cannot connect to the right Domain of Sonic MQ. My axis2.xml
looks like
<transportReceiver name="jms"
class="org.apache.synapse.transport.jms.JMSListener">
<parameter name="myTopicConnectionFactory">
<parameter
name="java.naming.factory.initial">com.sonicsw.jndi.mfcontext.MFContextFactory</parameter>
<parameter
name="java.naming.provider.url">tcp://sonicdev3:3506</parameter>
<parameter
name="com.sonicsw.jndi.mfcontext.domain">dev3Domain</parameter>
<parameter
name="java.naming.security.principal">Administrator</parameter>
<parameter
name="java.naming.security.credentials">Administrator</parameter>
<parameter
name="transport.jms.ConnectionFactoryJNDIName">SonicTopicConnectionFactory</parameter>
<parameter name="transport.jms.ConnectionFactoryType"
locked="false">topic</parameter>
</parameter>
<parameter name="myQueueConnectionFactory">
<parameter
name="java.naming.factory.initial">com.sonicsw.jndi.mfcontext.MFContextFactory</parameter>
<parameter
name="java.naming.provider.url">tcp://sonicdev3:3506</parameter>
<parameter
name="com.sonicsw.jndi.mfcontext.domain">dev3Domain</parameter>
<parameter
name="java.naming.security.principal">Administrator</parameter>
<parameter
name="java.naming.security.credentials">Administrator</parameter>
<parameter
name="transport.jms.ConnectionFactoryJNDIName">SonicQueueConnectionFactory</parameter>
<parameter name="transport.jms.ConnectionFactoryType"
locked="false">queue</parameter>
</parameter>
</transportReceiver>
I have tested this by building Synapse from source with some debug statement
in JNDIConnectionFactory
as
log.info("com.sonicsw.jndi.mfcontext.domain=" + (String)
jndiProperties.get("com.sonicsw.jndi.mfcontext.domain"));
My log shows 2008-07-11 17:10:15,652 [10.200.182.100-PS-TSAHA]
[WrapperSimpleAppMain] INFO JMSConnectionFactory
com.sonicsw.jndi.mfcontext.domain=null
Pl fix this issue
-thanks
tanmay
--
View this message in context:
http://www.nabble.com/JMSUtil-does-not-set-all-JMS-Connection-properties-specified-in-axis2.xml-tp18414679p18414679.html
Sent from the Synapse - User mailing list archive at Nabble.com.