You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by ba...@wellsfargo.com on 2013/11/07 19:17:24 UTC
ActiveMQ.DLQ
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
Wells Fargo
Cell: 704-564-5501
Re: ActiveMQ.DLQ
Posted by Christian Posta <ch...@gmail.com>.
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, <ba...@wellsfargo.com> 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:christian.posta@gmail.com]
> Sent: Friday, November 08, 2013 12:21 PM
> To: users@activemq.apache.org
> 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, <ba...@wellsfargo.com> 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:christian.posta@gmail.com]
>> Sent: Friday, November 08, 2013 9:57 AM
>> To: users@activemq.apache.org
>> 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, <ba...@wellsfargo.com> 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:christian.posta@gmail.com]
>>> Sent: Thursday, November 07, 2013 3:00 PM
>>> To: users@activemq.apache.org
>>> 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, <ba...@wellsfargo.com> 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
RE: ActiveMQ.DLQ
Posted by ba...@wellsfargo.com.
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:christian.posta@gmail.com]
Sent: Friday, November 08, 2013 12:21 PM
To: users@activemq.apache.org
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, <ba...@wellsfargo.com> 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:christian.posta@gmail.com]
> Sent: Friday, November 08, 2013 9:57 AM
> To: users@activemq.apache.org
> 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, <ba...@wellsfargo.com> 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:christian.posta@gmail.com]
>> Sent: Thursday, November 07, 2013 3:00 PM
>> To: users@activemq.apache.org
>> 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, <ba...@wellsfargo.com> 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
Re: ActiveMQ.DLQ
Posted by Christian Posta <ch...@gmail.com>.
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, <ba...@wellsfargo.com> 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:christian.posta@gmail.com]
> Sent: Friday, November 08, 2013 9:57 AM
> To: users@activemq.apache.org
> 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, <ba...@wellsfargo.com> 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:christian.posta@gmail.com]
>> Sent: Thursday, November 07, 2013 3:00 PM
>> To: users@activemq.apache.org
>> 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, <ba...@wellsfargo.com> 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
RE: ActiveMQ.DLQ
Posted by ba...@wellsfargo.com.
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:christian.posta@gmail.com]
Sent: Friday, November 08, 2013 9:57 AM
To: users@activemq.apache.org
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, <ba...@wellsfargo.com> 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:christian.posta@gmail.com]
> Sent: Thursday, November 07, 2013 3:00 PM
> To: users@activemq.apache.org
> 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, <ba...@wellsfargo.com> 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
Re: ActiveMQ.DLQ
Posted by Christian Posta <ch...@gmail.com>.
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, <ba...@wellsfargo.com> 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
> Wells Fargo
> Cell: 704-564-5501
>
>
> -----Original Message-----
> From: Christian Posta [mailto:christian.posta@gmail.com]
> Sent: Thursday, November 07, 2013 3:00 PM
> To: users@activemq.apache.org
> 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, <ba...@wellsfargo.com> 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
>> Wells Fargo
>> Cell: 704-564-5501
>>
>>
>>
>
>
>
> --
> Christian Posta
> http://www.christianposta.com/blog
> twitter: @christianposta
--
Christian Posta
http://www.christianposta.com/blog
twitter: @christianposta
RE: ActiveMQ.DLQ
Posted by ba...@wellsfargo.com.
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
Wells Fargo
Cell: 704-564-5501
-----Original Message-----
From: Christian Posta [mailto:christian.posta@gmail.com]
Sent: Thursday, November 07, 2013 3:00 PM
To: users@activemq.apache.org
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, <ba...@wellsfargo.com> 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
> Wells Fargo
> Cell: 704-564-5501
>
>
>
--
Christian Posta
http://www.christianposta.com/blog
twitter: @christianposta
Re: ActiveMQ.DLQ
Posted by Christian Posta <ch...@gmail.com>.
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, <ba...@wellsfargo.com> 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
> Wells Fargo
> Cell: 704-564-5501
>
>
>
--
Christian Posta
http://www.christianposta.com/blog
twitter: @christianposta