How to configure JMS Queue?

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();

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

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.
Who is Participating?
NetminderConnect With a Mentor Commented:
PAQed, with points refunded (100)

EE Admin
Are you sure you saved your wsadmin session?
skarthikeyan100Author 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?
Cloud Class® Course: CompTIA Cloud+

The CompTIA Cloud+ Basic training course will teach you about cloud concepts and models, data storage, networking, and network infrastructure.

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)
skarthikeyan100Author 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?
I don't know about 6, but in 5 this is a known issue sometimes.
Looks at this question -
It should walk you through it.
skarthikeyan100Author 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

I trhink that the installation issue is the same.
Without installing the JMS provider, your code will not run.
skarthikeyan100Author 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?
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.
skarthikeyan100Author 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.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.