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