We help IT Professionals succeed at work.

Check out our new AWS podcast with Certified Expert, Phil Phillips! Listen to "How to Execute a Seamless AWS Migration" on EE or on your favorite podcast platform. Listen Now

x

How to configure JMS Queue?

skarthikeyan100
on
Medium Priority
6,596 Views
Last Modified: 2013-12-10
I have a websphere 6.0 running. I need to create and/or delete JMS Queues dynamically using a java class. I used AdminClient and added destinations in resources.xml as follows

<factories xmi:type="resources.jms.internalmessaging:WASQueue" xmi:id="WASQueue_1080102412281" name="testQ" jndiName="queue/testQ" persistence="APPLICATION_DEFINED" priority="APPLICATION_DEFINED" expiry="APPLICATION_DEFINED"/>

I'm not able to do a lookup on this queue.

InitialContext ic = new InitialContext();
ic.lookup("queue/testQ");

throws a NameNotFoundException.

I'm able to find  entries for "testQ" in WebSphere JMS Provider screen in admin console.

How do i lookup this queue?

This link points to documentation
http://publib.boulder.ibm.com/infocenter/wsphelp/topic/com.ibm.websphere.nd.doc/info/ae/ae/tmj_adm23.html

Documentation says as follows

"To make a queue destination available to applications, you need to host the queue on a JMS server. To add a new queue to a JMS server or to change an existing queue on a JMS server, you define the administrative name of the queue to the JMS server, as described in Managing WebSphere internal JMS servers."

 But i'm not able to find JMSServer under Servers in Navigation pane.
Comment
Watch Question

Commented:
Are you sure you saved your wsadmin session?

Author

Commented:
Yes i saved session and it is available in resources.xml file, Do i have to install anything else for JMS Server to come up in navigqation pane?

Commented:
When installing websphere, did you make sure you installed the messaging component?
If not, you should see in the server.log file the message "Messaging is not started" (or something similar, it should be in the begining of the log file)

Author

Commented:
I did a full installation of Websphere 6. I assumed that it would install JMS components too.
You are right. Server log says that embedded messaging was not installed. Is it possible to install it separately?

Commented:
I don't know about 6, but in 5 this is a known issue sometimes.
Looks at this question - https://www.experts-exchange.com/Web/Application_Servers/Websphere/Q_20907165.html
It should walk you through it.

Author

Commented:
Thanks for your help, but i needed this in version 6. We need to define SIB Queue too for every JMS Queue. SIB Queue is the physical destination. We can use following script to create a queue.

SetJMSScope node

# create a ConnectionFactory
CreateJMSConnectionFactory "MyJMSConnFactory"
ModifyJMSConnectionFactoryProperties MyJMSConnFactory [list [list BusName "DEFAULT"]]

# create a Queue
set QNAME "MyQueue"
set JSDest "MySIBQueue"

CreateJMSQueue "$QNAME"
ModifyJMSQueueProperties "$QNAME" [list [list QueueName "$JSDest"]]

$AdminConfig save


Commented:
I trhink that the installation issue is the same.
Without installing the JMS provider, your code will not run.

Author

Commented:
This works, but i have to restart after configuring JMS Queue to do a lookup using InitialContext. Otherwise, the call

InitialContext ic = new InitialContext();
ic.lookup("MyQueue"); //This call fails.

Wnen i restart the appServer, it works fine. Is there way to enable this jndi binding at runtime?

Commented:
I am not sure what is your question. YOu mean do you need to restart the client or the server?
I think WebSphere requires an app server restart after configuring a JMS object.

Author

Commented:
The problem is solved. It is required that either app server should be restarted or an application should be started to do JNDI bindings. What we did is before deploying an application, JMS objects are created and the deployed application is then restarted. Now JNDI bindings occur without any problem. This is possible for us since we deploy an application programmatically in websphere.

Thanks for all your help vzika.
Unlock this solution and get a sample of our free trial.
(No credit card required)
UNLOCK SOLUTION
Unlock the solution to this question.
Thanks for using Experts Exchange.

Please provide your email to receive a sample view!

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.