I dont get this. Where is the destination manager used by MDB:s?

here a couple of snippets from JMSContainerInvoker:

 // Connect to the JNDI server and get a reference to root context
      Context context = adapter.getInitialContext();
...
         Topic topic = (Topic)createDestination(Topic.class,
                                                context,
                                                "topic/" + jndiSuffix,
                                                jndiSuffix);
...
   protected Destination createDestination(final Class type,
                                           final Context ctx,
                                           final String jndiName,
                                           final String jndiSuffix)
      throws Exception
   {
      try
      {
         // first try to look it up
         return (Destination)ctx.lookup(jndiName);
      }
      catch (NamingException e)

I.e destinations are looked up in the JNDI context given by the provider
adapter. What will not work is if the given destination does not exist,
then a local destination will be created. If the destination exist on
the remote server, all will work fine (should at least).

//Peter


On 25 Sep, Barlow, Dustin wrote:
> I am using the 3.2.0beta2 CVS version of JBoss and have run into a problem
> with the JMS DestinationManager.  It appears that the JMS DestinationManager
> stores in a hashmap the actual queue/topic JNDI names that are then looked
> up at deployment time by the MDB deployment logic in JBoss.  This works fine
> for local queues and topics as the internal hashmap that the
> DestinationManager uses has entries (ie destinations) for each of the local
> queues that were deployed in the jbossmq-destinations.xml file on startup.
> However, in the case of remote queues, the hashmap does not have the JNDI
> names of those queues and thus the MDB deploys with an error saying it
> cannot find the queue to bind to.
> 
> I find this coupling of the MDB deployer to the local DestinationManager odd
> in that you are allowed to use the ProviderUrl on the JMSProviderLoader
> service to point to a remote JBoss instance that houses the queues.  I have
> my MDB confired to use the Remote JMSProviderLoader I setup, and JBoss is
> deploying the JMSProviderLoader which in turn is binding to the remote JNDI
> context.  However, the local DestinationManager is still being used in that
> setup to look up queue names even though it only has local queue names, not
> the remote ones.  I looked through the JBossMQ code base and really didn't
> see any way to have the MDB deployer do a "real" JNDI lookup for the queue
> on a remote host.  It appears that the MDB deployment system is setup to
> always use the DestinationManager for doing it's JNDI resource lookups.
> 
> Any tips would be greatly appreciated.  
> 
> Dustin
> 
> 
> -------------------------------------------------------
> This sf.net email is sponsored by:ThinkGeek
> Welcome to geek heaven.
> http://thinkgeek.com/sf
> _______________________________________________
> Jboss-development mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/jboss-development

-- 
------------------------------------------------------------
Peter Antman    Chief Systems Architect, Business Development
Technology in Media, Box 34105 100 26 Stockholm
WWW: http://www.tim.se  WWW: http://www.backsource.org
Email: [EMAIL PROTECTED]        
Phone: +46-(0)8-506 381 11 Mobile: 070-675 3942 
------------------------------------------------------------



-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to