Sure is :)

AbstractRegion.java#send():
does a lookup of the destination...

            final Destination regionDestination = lookup(context,
messageSend.getDestination(),false);


in AbstractRegion#lookup() you have this:

        if (dest == null) {
            if (isAutoCreateDestinations()) {
                // Try to auto create the destination... re-invoke broker
                // from the
                // top so that the proper security checks are performed.
                context.getBroker().addDestination(context,
destination, createTemporary);
                dest = addDestination(context, destination, false);
                // We should now have the dest created.
                destinationsLock.readLock().lock();
                try {
                    dest = destinations.get(destination);
                } finally {
                    destinationsLock.readLock().unlock();
                }
            }

            if (dest == null) {
                throw new JMSException("The destination " +
destination + " does not exist.");
            }
        }

On Fri, Nov 8, 2013 at 10:43 AM,  <[email protected]> wrote:
> So there must be some code written in the broker to dynamically create that 
> queue then, correct?  And other system type queues?
>
> Regards,
>
> Barry Barnett
> WMQ Enterprise Services & Solutions
> Wells Fargo
> Cell: 704-564-5501
>
>
> -----Original Message-----
> From: Christian Posta [mailto:[email protected]]
> Sent: Friday, November 08, 2013 12:21 PM
> To: [email protected]
> Subject: Re: ActiveMQ.DLQ
>
> Well, it would be the same as a user-queue... ie.. if something tries to send 
> to the DLQ, it will be auto-created. So for example, when the broker checks 
> for expiring messages upon dispatch, if it finds any it will send them to the 
> DLQ... if that queue, "ActiveMQ.DLQ" is not already in the system (it's not 
> on a fresh broker install, for example), then it will be auto-created just 
> like a user queue is.
>
> On Fri, Nov 8, 2013 at 9:26 AM,  <[email protected]> wrote:
>> After reading the wiki, I see the following:
>>
>> This means that a client can create a new Queue or Topic dynamically
>> either by calling createQueue() or createTopic() on a JMS Session
>> creating an instance of ActiveMQTopic or ActiveMQQueue and possibly
>> registering them in JNDI
>>
>> This still isn't telling me how ActiveMQ knows when to create the 
>> ActiveMQ.DLQ.  Are you saying that the client would have to dynamically 
>> create it, or again, is it something at the server side system config that's 
>> telling it to create a DLQ if messages cant be delivered, expired, etc?
>>
>> Regards,
>>
>> Barry Barnett
>> WMQ Enterprise Services & Solutions
>>
>>
>> -----Original Message-----
>> From: Christian Posta [mailto:[email protected]]
>> Sent: Friday, November 08, 2013 9:57 AM
>> To: [email protected]
>> Subject: Re: ActiveMQ.DLQ
>>
>> Nope :)
>>
>> http://activemq.apache.org/how-do-i-create-new-destinations.html
>>
>> But it's completely configurable.. ie, you can specify whether destinations 
>> should be auto-created.. or you can use security to lockdown people from 
>> creating destinations on demand... lots of ways to do it, but by default the 
>> destinations are auto-created as described in the wiki above.
>>
>> If you want to have destinations created when the broker starts up, you 
>> could do something like this in the activemq.xml file:
>>
>>  <broker xmlns="http://activemq.apache.org/schema/core";>
>>
>>     <destinations>
>>
>>       <queue physicalName="FOO.BAR" />
>>
>>       <topic physicalName="SOME.TOPIC" />
>>
>>     </destinations>
>>
>>   </broker>
>>
>>
>> but it's not necessary....
>>
>> On Fri, Nov 8, 2013 at 5:58 AM,  <[email protected]> wrote:
>>> Thank you.  But doesn't it have to be in some configuration file somewhere 
>>> so that the broker knows how to create it when it's needed?  I don't see it 
>>> in the activemq.xml file.
>>>
>>> Regards,
>>>
>>> Barry Barnett
>>> WMQ Enterprise Services & Solutions
>>>
>>>
>>>
>>> -----Original Message-----
>>> From: Christian Posta [mailto:[email protected]]
>>> Sent: Thursday, November 07, 2013 3:00 PM
>>> To: [email protected]
>>> Subject: Re: ActiveMQ.DLQ
>>>
>>> Barry,
>>>
>>> ActiveMQ by default auto-creates destinations as it needs/requires them. 
>>> You don't have to define the DLQ explicitly. If a message goes to the 
>>> ActiveMQ.DLQ, or if a consumer listens to the ActiveMQ.DLQ queue, then the 
>>> broker will create it.
>>>
>>> You can set up queues ahead of time if you'd like, but it's not necessary.
>>>
>>>
>>>
>>> On Thu, Nov 7, 2013 at 11:17 AM,  <[email protected]> wrote:
>>>> It is my understanding that expired messages are stored on the 
>>>> ActiveMQ.DLQ queue.  When I start the ActiveMQ broker, I do not see the 
>>>> DLQ defined.  If this is where the expired messages go to, wouldn't it be 
>>>> a default queue for the default configuration?  If not, then do I need to 
>>>> define it using that exact name?  What other attributes would I define the 
>>>> queue with?
>>>>
>>>> I don't see this queue in my activemq.xml file or any config file out of 
>>>> the box...
>>>>
>>>>
>>>> Regards,
>>>>
>>>> Barry Barnett
>>>> WMQ Enterprise Services & Solutions
>>>> W
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> Christian Posta
>>> http://www.christianposta.com/blog
>>> twitter: @christianposta
>>
>>
>>
>> --
>> Christian Posta
>> http://www.christianposta.com/blog
>> twitter: @christianposta
>
>
>
> --
> Christian Posta
> http://www.christianposta.com/blog
> twitter: @christianposta



-- 
Christian Posta
http://www.christianposta.com/blog
twitter: @christianposta

Reply via email to