JNDI Entry for Queue on "Remote" Broker?

Posted by Admin on 08-Feb-2010 07:51

We have our management broker running on port 2500.  This container also has the directory service (JNDI).

We have a second messaging broker running on 2599 to support a client application.

The broker running on 2599 has a queue on it "Foo.Exit".

We've made an entry into JNDI mapping "MyQueue" --> "Foo.Exit".

The client application is connecting fine to JNDI and performing the lookup, but errors out with saying that the queue is not found.  The client application works fine when the queue is hosted on the management broker.  Thus, I believe the client application is trying to acceess the queue on the management broker because their is nothing to tell him otherwise.

We've tried setting Properties to specify host and port, but that didn't work.

Should we specify a complete JMS url in the JNDI mapping?

If so, do you have an example?

thanks.

All Replies

Posted by tsteinbo on 08-Feb-2010 08:11

How does the Client obtain the JMS connection? Seems the settings for the JMS connection are wrong. Do you have another JNDI entry for the connection? If so check that it does not use port 2500 but 2599.

Also, what kind of client is it? An JMS client? An ESB client?

Thomas

Posted by Admin on 08-Feb-2010 08:29

That is one of the issues....

Since this is Oracle Data Integrator (ODI), we have very little control over how it establishes the connection.

It has a field for JNDI url, and allows us to specify Properties for that connection, but we don't have any control beyond that.

In the JNDI url, we are pointing ODI to 7500.  It can successfully connect and performs the lookup. (receiving the "Foo.Exit" value)

But, when it goes to connect and use that value, it complains about not being able to find the queue.

Am I correct in assuming that JNDI only runs on the container that has DIRECTORY_SERVICES deployed?

Is there a way to run JNDI on other broker? (In this case we would run JNDI on 2599, such that ODI would already be connected to the broker that houses the queue)

thanks.

Posted by Admin on 08-Feb-2010 08:38

RESOLVED: I think we found it.

We need to create an additional ConnectionFactory within JNDI that points to the second broker (2599).  Then we can add that ConnectionFactory as a property in ODI.

Posted by Bill Wood on 08-Feb-2010 14:56

Original Author said problem was RESOLVED.

boneill421 wrote:

We need to create an additional ConnectionFactory within JNDI that
points to the second broker (2599).  Then we can add that
ConnectionFactory as a property in ODI.

That is correct. The connection factories and destination objects are not just those on the broker you are connecting through for the JNDI lookup.  Effectively, the JNDI 'store' is in the Directory Service, so you need a URL to get to the Management Broker (and then the D.S.), but the objects there can be for any valid ConnectionFactory (even if they aren't being managed by the D.S.)

.

This thread is closed