<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body link="#355491" alink="#4262a1" vlink="#355491" style="background: #e2e2e2; margin: 0; padding: 20px;">

<div>
        <table cellpadding="0" bgcolor="#FFFFFF" border="0" cellspacing="0" style="border: 1px solid #dadada; margin-bottom: 30px; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                <tbody>
                        <tr>

                                <td>

                                        <table border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="border: solid 2px #ccc; background: #dadada; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                                                <tbody>
                                                        <tr>
                                                                <td bgcolor="#000000" valign="middle" height="58px" style="border-bottom: 1px solid #ccc; padding: 20px; -moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 5px; -webkit-border-top-left-radius: 5px;">
                                                                        <h1 style="color: #333333; font: bold 22px Arial, Helvetica, sans-serif; margin: 0; display: block !important;">
                                                                        <!-- To have a header image/logo replace the name below with your img tag -->
                                                                        <!-- Email clients will render the images when the message is read so any image -->
                                                                        <!-- must be made available on a public server, so that all recipients can load the image. -->
                                                                        <a href="http://community.jboss.org/index.jspa" style="text-decoration: none; color: #E1E1E1">JBoss Community</a></h1>
                                                                </td>

                                                        </tr>
                                                        <tr>
                                                                <td bgcolor="#FFFFFF" style="font: normal 12px Arial, Helvetica, sans-serif; color:#333333; padding: 20px;  -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 5px; -webkit-border-bottom-left-radius: 5px;"><h3 style="margin: 10px 0 5px; font-size: 17px; font-weight: normal;">
    Using JNDI to connect to Websphere MQ, without hardcoded info
</h3>
<span style="margin-bottom: 10px;">
    created by <a href="http://community.jboss.org/people/zecas">zecas zecas</a> in <i>JNDI and Naming</i> - <a href="http://community.jboss.org/message/619269#619269">View the full discussion</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">

<div class="jive-rendered-content"><p>Hi,</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>I'm struggling with JBoss to properly use a JNDI connection to completly make a connection to Websphere MQ Series, to feed an MDB.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>I need some help, I'm trying to "sell" the idea of JBoss for this specific client I'm working for, and I would like to pass this difficulty, but I need some help from the community.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Versions:</p><p>JBoss 5.1.0 GA</p><p>Java JDK 1.6.0</p><p>WebSphere MQ 7.0.1 (on remote machine, 192.168.1.30:1414)</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>I've copied the "wmq.jmsra.rar" file into c:\...\jboss-5.1.0.GA\server\default\deploy folder. In that same location, I've created the file "wmq.jmsra-ds.xml", for the queue settings.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>File "wmq.jmsra-ds.xml" contents:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><pre class="jive-pre"><code class="jive-code jive-xml"><span class="jive-xml-tag">&lt;?xml version="1.0" encoding="UTF-8" standalone="yes"?&gt;</span>
<span class="jive-xml-tag">&lt;connection-factories&gt;</span>
&#160;&#160;&#160; <span class="jive-xml-tag">&lt;mbean code="org.jboss.resource.deployment.AdminObject" name="jboss.jca:service=WASDestination,name=TestQ"&gt;</span>
&#160;&#160;&#160; <span class="jive-xml-comment">&lt;!--<span class="jive-xml-tag">&lt;mbean code="org.jboss.resource.deployment.AdminObject" name="jca.wmq:name=TestQ"&gt;</span>--&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="jive-xml-tag">&lt;depends optional-attribute-name="RARName"&gt;</span>jboss.jca:service=RARDeployment,name='wmq.jmsra.rar'<span class="jive-xml-tag">&lt;/depends&gt;</span>
&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="jive-xml-tag">&lt;attribute name="JNDIName"&gt;</span>queue/TestQ<span class="jive-xml-tag">&lt;/attribute&gt;</span>
&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="jive-xml-tag">&lt;attribute name="Type"&gt;</span>javax.jms.Queue<span class="jive-xml-tag">&lt;/attribute&gt;</span>
&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="jive-xml-tag">&lt;attribute name="Properties"&gt;</span>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; baseQueueManagerName=QM_server01
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; baseQueueName=TestQ
&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="jive-xml-tag">&lt;/attribute&gt;</span>
&#160;&#160;&#160; <span class="jive-xml-tag">&lt;/mbean&gt;</span>
&#160;&#160;&#160; <span class="jive-xml-tag">&lt;tx-connection-factory&gt;</span>
&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="jive-xml-tag">&lt;jndi-name&gt;</span>conn/TestQ<span class="jive-xml-tag">&lt;/jndi-name&gt;</span>
&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="jive-xml-tag">&lt;xa-transaction&gt;</span><span class="jive-xml-tag">&lt;/xa-transaction&gt;</span>
&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="jive-xml-tag">&lt;rar-name&gt;</span>wmq.jmsra.rar<span class="jive-xml-tag">&lt;/rar-name&gt;</span>
&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="jive-xml-tag">&lt;connection-definition&gt;</span>javax.jms.ConnectionFactory<span class="jive-xml-tag">&lt;/connection-definition&gt;</span>
&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="jive-xml-tag">&lt;config-property name="channel" type="java.lang.String"&gt;</span>SYSTEM.DEF.SVRCONN<span class="jive-xml-tag">&lt;/config-property&gt;</span>
&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="jive-xml-tag">&lt;config-property name="hostName" type="java.lang.String"&gt;</span>192.168.1.30<span class="jive-xml-tag">&lt;/config-property&gt;</span>
&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="jive-xml-tag">&lt;config-property name="port" type="java.lang.String"&gt;</span>1414<span class="jive-xml-tag">&lt;/config-property&gt;</span>
&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="jive-xml-tag">&lt;config-property name="queueManager" type="java.lang.String"&gt;</span>QM_gestaosw_dds02<span class="jive-xml-tag">&lt;/config-property&gt;</span>
&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="jive-xml-tag">&lt;config-property name="transportType" type="java.lang.String"&gt;</span>CLIENT<span class="jive-xml-tag">&lt;/config-property&gt;</span>
&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;!--<span class="jive-xml-tag">&lt;max-pool-size&gt;</span>20<span class="jive-xml-tag">&lt;/max-pool-size&gt;</span>--&gt;</span>
&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="jive-xml-tag">&lt;security-domain-and-application&gt;</span>JmsXARealm<span class="jive-xml-tag">&lt;/security-domain-and-application&gt;</span>
&#160;&#160;&#160; <span class="jive-xml-tag">&lt;/tx-connection-factory&gt;</span>
<span class="jive-xml-tag">&lt;/connection-factories&gt;</span>
</code></pre><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>In WebSphere MQ server, I have the queue manager instance named "QM_server01" and I've created a queue "TestQ" with default values applied. It was a fresh MQ install, I've just entered "IBM MQ Explorer" and created the "TestQ" queue.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Now from my project, I have the following Message Driven Bean:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><pre class="jive-pre"><code class="jive-code jive-java">@MessageDriven(
&#160;&#160;&#160;&#160;&#160;&#160;&#160; activationConfig = <font color="navy">{</font>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; @ActivationConfigProperty(propertyName=<font color="red">"destinationType"</font>, propertyValue=<font color="red">"javax.jms.Queue"</font>),
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; @ActivationConfigProperty(propertyName=<font color="red">"destination"</font>, propertyValue=<font color="red">"queue/TestQ"</font>),
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; @ActivationConfigProperty(propertyName=<font color="red">"useJNDI"</font>, propertyValue=<font color="red">"true"</font>),
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; @ActivationConfigProperty(propertyName=<font color="red">"hostName"</font>, propertyValue=<font color="red">"192.168.1.30"</font>),
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; @ActivationConfigProperty(propertyName=<font color="red">"port"</font>, propertyValue=<font color="red">"1414"</font>),
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; @ActivationConfigProperty(propertyName=<font color="red">"queueManager"</font>, propertyValue=<font color="red">"QM_server01"</font>)
&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="navy">}</font>)
@ResourceAdapter(<font color="red">"wmq.jmsra.rar"</font>)
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
<font color="navy"><b>public</b></font> <font color="navy"><b>class</b></font> TestMQ <font color="navy"><b>implements</b></font> MessageListener <font color="navy">{</font>
&#160;
&#160;&#160;&#160; <font color="navy"><b>public</b></font> <font color="navy"><b>void</b></font> onMessage(Message message) <font color="navy">{</font>
&#160;&#160;&#160;&#160;&#160;&#160;&#160; System.out.println(message.toString());
&#160;&#160;&#160; <font color="navy">}</font>
&#160;
<font color="navy">}</font>
</code></pre><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Now this works fine. If I insert a message in the Websphere MQ, my MDB will pick it up with no problem.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>My real problem is that, although I have defined the "mbean" in my "wmq.jmsra-ds.xml" JBoss deploy file, I cannot find a way to use it to get the MQ info.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Looking at my MDB code, I have the IP, PORT, QueManager name all hardcoded. And also I have a reference to "@ResourceAdapter" JBoss specific annotation.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>I was hoping to configure this info in some server specific file, like the "wmq.jmsra-ds.xml", and eventually in the "jboss.xml" or some binding file that I could provide in my EJB jar file (which is part of an EAR).</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>I need to make the project work on JBoss and WebSphere Application Servers, and also (and specially) to not relly on remote MQ location hardcoded in my MDB's.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>My project will go through several environments until reaching the final production environment, and I don't want to make builds for each of them.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>So any way of just pointing to the JNDI and JBoss pick it up? Do I need to provide a jboss-specific xml binding file in my project?</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>It this a limitation of JBoss 5.1.0 GA? If so, will JBoss 6 provide the solution I'm looking for?</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Again, I'm hopping the community to help me solve this situation. As I have it now, I will have a hard time moving on with the project in JBoss.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Thanks</p></div>

<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
    <p style="margin: 0;">Reply to this message by <a href="http://community.jboss.org/message/619269#619269">going to Community</a></p>
        <p style="margin: 0;">Start a new discussion in JNDI and Naming at <a href="http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2083">Community</a></p>
</div></td>
                        </tr>
                    </tbody>
                </table>


                </td>
            </tr>
        </tbody>
    </table>

</div>

</body>
</html>