You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by Vadim Pesochinsky <Va...@mscibarra.com> on 2006/07/31 22:23:23 UTC

Trouble with prefetch buffer.

Hi!

I have a test case to consider. 2 servers are processing 3 submitted jobs
with following processing times 10 min, 1 min, 1 min. This sequence should
finish in 10 minutes as one service will pick up the 10 minutes job,
meanwhile the other one should manage the two 1 minute jobs. Since I cannot
set prefetchSize=0, one of the 1 minute jobs is sitting in prefetch buffer
and the jobs are processed in 11 minutes instead of 10.

This is simplification of the real scenario where I have about 30 consumers
submitting jobs to 20 consumers through AMQ 4.0.1. I have following
problems:

•	Messages are sitting in prefetch buffer are not available to processors,
which results in a lot of idle time.
•	Order of processing is random. For some reason Job # 20 is processed after
Job # 1500. Since senders are synchronously blocked this can result in
time-outs.

What can I do to work around these problems? Any configuration changes? How
to set prefetchSize=0; should submit a JIRA for this?

Environment & Configuration
AMQ 4.0.1
QUEUE_NAME?consumer.prefetchSize=1;consumer.dispatchAsync=true


<beans xmlns="http://activemq.org/config/1.0">
    <!-- Allows us to use system properties as variables in this
configuration file -->
    <bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/>
    <broker useJmx="true" deleteAllMessagesOnStartup="true"
persistent="true" >  
        <!-- Use the following to configure how ActiveMQ is exposed in JMX
-->

        <managementContext>
            <managementContext connectorPort="1099"
jmxDomainName="org.apache.activemq"/>
        </managementContext>

        <destinationPolicy>
            <policyMap>
                <policyEntries>
                    <policyEntry topic="FIN.>">
                        <dispatchPolicy>
                            <strictOrderDispatchPolicy />
                        </dispatchPolicy>
                        <pendingMessageLimitStrategy>
                            <constantPendingMessageLimitStrategy limit="0"/>
                        </pendingMessageLimitStrategy>
                        <messageEvictionStrategy>
                            <oldestMessageEvictionStrategy />
                        </messageEvictionStrategy>
                    </policyEntry>
                </policyEntries>
            </policyMap>
        </destinationPolicy>

        <persistenceAdapter>
            <kahaPersistentAdaptor dir="activemq-kaha"/>
        </persistenceAdapter>
  
        <transportConnectors>
            <transportConnector name="default" uri="tcp://localhost:61616"
discoveryUri="multicast://default"/>
        </transportConnectors>
    
        <networkConnectors>
            <networkConnector name="default"
uri="static://(tcp://localhost:61616)"/>
        </networkConnectors>
    </broker>
</beans>

-- 
View this message in context: http://www.nabble.com/Trouble-with-prefetch-buffer.-tf2029800.html#a5583273
Sent from the ActiveMQ - User forum at Nabble.com.


Re: Trouble with prefetch buffer.

Posted by Vadim Pesochinsky <Va...@mscibarra.com>.
3 queues are for 3 categories of jobs. I need to have N servers which will
process jobs from Q1 and will only pick jobs from Q2 if there are no jobs in
Q1, and will process jobs from Q3 if no jobs in Q1, Q2. Then I have M
servers configured in another order, e.g. Q2, Q1, Q3 and other servers
configured Q3, Q2, Q1. This is all done because JMS message priorities are
inadequate in my case.

Yes, each of the 20 processing servers is single-threaded and can execute
only one job at a time. Servers that send the jobs are multi-threaded, they
start multiple threads and use the lingo requestor to issue synchronous
blocking calls.
-- 
View this message in context: http://www.nabble.com/Trouble-with-prefetch-buffer.-tf2029800.html#a5627018
Sent from the ActiveMQ - User forum at Nabble.com.


Re: Trouble with prefetch buffer.

Posted by James Strachan <ja...@gmail.com>.
Why do you need 3 queues and to check for messages in each of the 3
queues? Also is there no concurrency in each server? Is the whole
system single threaded?

On 8/3/06, Vadim Pesochinsky <Va...@mscibarra.com> wrote:
>
> Thanks a lot to both of you. Now I understand the issue, but I still need
> prefetchSize=0 to fix it.
>
> I have ~20 servers doing the same type of work, but in deferent contexts.
> Some jobs are running for days or weeks, others are executed weekly and run
> a few hours, and there are real-time user requests. To  implement this jobs
> are split into small 1 sec - 5 min jobs and sent to different queues for
> different types of jobs, e.g:
>
> Queues:
>    FIN.Q1,  FIN.Q2, FIN.Q3
>
> Servers are configured to check different queues. E.g. n servers check
> FIN.Q1 first, if no jobs, they go to FIN.Q2; m servers check FIN.Q2 first
> and FIN.Q1 next; others check only one queue. When I check the queue I do
> receiveNoWait(), if no jobs found on any of the queues I do recieve(
> sleepTime ) on "FIN.>" queue. By changing number of servers configured one
> way or the other I make sure that performance requirements are met. With
> this setup some consumers are idle for some time and they hold some jobs.
> This means that real-time job can be sitting in prefetch buffer for a long
> time.
>
> I am wondering how 'common' is this problem. Maybe there is some more
> elegant solution, e.g. to allow external or very configurable (script like)
> dispatch policy. Anyway, for now I need to fix prefetchSize. I searched the
> code for prefetchSize, but I cannot find where it makes sure that 0 value is
> ignored. Thanks again.
> --
> View this message in context: http://www.nabble.com/Trouble-with-prefetch-buffer.-tf2029800.html#a5624757
> Sent from the ActiveMQ - User forum at Nabble.com.
>
>


-- 

James
-------
http://radio.weblogs.com/0112098/

Re: Trouble with prefetch buffer.

Posted by Hiram Chirino <hi...@hiramchirino.com>.
I Vadim.  I see now.  You are actually creating multiple consumers right?

The only way it will work is if you crate only 1 consumer per server.
The x server would be subscribe to something like:
  new ActiveMQQueue("FIN.BIG.MEDIUM.SMALL");
and the y servers would subscribe to
  new ActiveMQQueue("FIN.>");

And you publishers would send small messages to: FIN.BIG.MEDIUM.SMALL
medium messages to: FIN.BIG.MEDIUM
and big ones to: FIN.BIG

The thing is each server only has 1 consumer with 1 prefetch.

On 8/3/06, Vadim Pesochinsky <Va...@mscibarra.com> wrote:
>
> Hiram,
>
> You got it exactly right! This is exactly what I do. The problem is that the
> y servers (for either jobs) are holding messages in prefetch buffer. When
> there are a lot of long jobs they do not have time to check on the real-time
> queue, which keeps messages in their prefetch buffer. Thanks.
> --
> View this message in context: http://www.nabble.com/Trouble-with-prefetch-buffer.-tf2029800.html#a5638090
> Sent from the ActiveMQ - User forum at Nabble.com.
>
>


-- 
Regards,
Hiram

Blog: http://hiramchirino.com

Re: Trouble with prefetch buffer.

Posted by Vadim Pesochinsky <Va...@mscibarra.com>.
Hiram,

You got it exactly right! This is exactly what I do. The problem is that the
y servers (for either jobs) are holding messages in prefetch buffer. When
there are a lot of long jobs they do not have time to check on the real-time
queue, which keeps messages in their prefetch buffer. Thanks.
-- 
View this message in context: http://www.nabble.com/Trouble-with-prefetch-buffer.-tf2029800.html#a5638090
Sent from the ActiveMQ - User forum at Nabble.com.


Re: Trouble with prefetch buffer.

Posted by Hiram Chirino <hi...@hiramchirino.com>.
Based on what you stated.. it seems to me that you could occupy all
your servers with long jobs if the messages come in the right order.
I.e. 10 long jobs come in and tie up all your servers and now the
small real time jobs will have to wait for those to finish.

Why don't you dedicate x server for the short jobs and y servers for
either jobs?  When calculating you SLA for the real time jobs you
could only count on the x servers since the y servers could be in use
the big jobs.  But when big jobs are not being crunched, the y servers
would be avail to help with the load of the real time jobs.

On 8/2/06, Vadim Pesochinsky <Va...@mscibarra.com> wrote:
>
> Thanks a lot to both of you. Now I understand the issue, but I still need
> prefetchSize=0 to fix it.
>
> I have ~20 servers doing the same type of work, but in deferent contexts.
> Some jobs are running for days or weeks, others are executed weekly and run
> a few hours, and there are real-time user requests. To  implement this jobs
> are split into small 1 sec - 5 min jobs and sent to different queues for
> different types of jobs, e.g:
>
> Queues:
>    FIN.Q1,  FIN.Q2, FIN.Q3
>
> Servers are configured to check different queues. E.g. n servers check
> FIN.Q1 first, if no jobs, they go to FIN.Q2; m servers check FIN.Q2 first
> and FIN.Q1 next; others check only one queue. When I check the queue I do
> receiveNoWait(), if no jobs found on any of the queues I do recieve(
> sleepTime ) on "FIN.>" queue. By changing number of servers configured one
> way or the other I make sure that performance requirements are met. With
> this setup some consumers are idle for some time and they hold some jobs.
> This means that real-time job can be sitting in prefetch buffer for a long
> time.
>
> I am wondering how 'common' is this problem. Maybe there is some more
> elegant solution, e.g. to allow external or very configurable (script like)
> dispatch policy. Anyway, for now I need to fix prefetchSize. I searched the
> code for prefetchSize, but I cannot find where it makes sure that 0 value is
> ignored. Thanks again.
> --
> View this message in context: http://www.nabble.com/Trouble-with-prefetch-buffer.-tf2029800.html#a5624757
> Sent from the ActiveMQ - User forum at Nabble.com.
>
>


-- 
Regards,
Hiram

Blog: http://hiramchirino.com

Re: Trouble with prefetch buffer.

Posted by Vadim Pesochinsky <Va...@mscibarra.com>.
Thanks a lot to both of you. Now I understand the issue, but I still need
prefetchSize=0 to fix it. 

I have ~20 servers doing the same type of work, but in deferent contexts.
Some jobs are running for days or weeks, others are executed weekly and run
a few hours, and there are real-time user requests. To  implement this jobs
are split into small 1 sec - 5 min jobs and sent to different queues for
different types of jobs, e.g:

Queues:
   FIN.Q1,  FIN.Q2, FIN.Q3

Servers are configured to check different queues. E.g. n servers check
FIN.Q1 first, if no jobs, they go to FIN.Q2; m servers check FIN.Q2 first
and FIN.Q1 next; others check only one queue. When I check the queue I do
receiveNoWait(), if no jobs found on any of the queues I do recieve(
sleepTime ) on "FIN.>" queue. By changing number of servers configured one
way or the other I make sure that performance requirements are met. With
this setup some consumers are idle for some time and they hold some jobs.
This means that real-time job can be sitting in prefetch buffer for a long
time.

I am wondering how 'common' is this problem. Maybe there is some more
elegant solution, e.g. to allow external or very configurable (script like)
dispatch policy. Anyway, for now I need to fix prefetchSize. I searched the
code for prefetchSize, but I cannot find where it makes sure that 0 value is
ignored. Thanks again.
-- 
View this message in context: http://www.nabble.com/Trouble-with-prefetch-buffer.-tf2029800.html#a5624757
Sent from the ActiveMQ - User forum at Nabble.com.


Re: Trouble with prefetch buffer.

Posted by Hiram Chirino <hi...@hiramchirino.com>.
Hi Vadim,

I created a testcase for this to verify that the prefetch buffer works
as expected and it does not fail.  Please review it to see if you are
doing anything substancially different:

    public void testPrefetch1MessageNotDispatched() throws Exception {

        // Set prefetch to 1
        connection.getPrefetchPolicy().setAll(1);
        connection.start();

        Session session = connection.createSession(true, 0);
        destination = new ActiveMQQueue("TEST");
        MessageConsumer consumer = session.createConsumer(destination);

        // Send 2 messages to the destination.
        sendMessages(session, destination, 2);
        session.commit();

        // Only pick up the first message.
        Message message1 = message1 = consumer.receive(1000);
        assertNotNull(message1);

        // Don't acknowledge yet.  This should keep our prefetch full.
        // Since prefetch is still full, the 2nd message should get
dispatched to
        // another consumer..  lets create the 2nd consumer test that
it does make sure it does.
        ActiveMQConnection connection2 = (ActiveMQConnection)
factory.createConnection();
        connections.add(connection2);
        Session session2 = connection2.createSession(true, 0);
        MessageConsumer consumer2 = session2.createConsumer(destination);

        // Only pick up the 2nd messages.
        Message message2 = consumer.receive(1000);
        assertNotNull(message2);

        session.commit();
        session2.commit();

        assertNull(consumer.receiveNoWait());

    }


On 8/1/06, Hiram Chirino <hi...@hiramchirino.com> wrote:
> Weird.I'll try to dig through this. We may have some dispatching logic
> that is off by one.
>
> On 8/1/06, Vadim Pesochinsky <Va...@mscibarra.com> wrote:
> >
> > I am using transacted sessions, yet this is what I see. Every time there is a
> > long job, e.g. 5 min 20 sec, next message this consumer processes has the
> > queue wait time of 5 min 20 sec. What can I try to make it work?
> > CLIENT_ACKNOWLEDGE? Thanks.
> > --
> > View this message in context: http://www.nabble.com/Trouble-with-prefetch-buffer.-tf2029800.html#a5603579
> > Sent from the ActiveMQ - User forum at Nabble.com.
> >
> >
>
>
> --
> Regards,
> Hiram
>
> Blog: http://hiramchirino.com
>


-- 
Regards,
Hiram

Blog: http://hiramchirino.com

Re: Trouble with prefetch buffer.

Posted by Hiram Chirino <hi...@hiramchirino.com>.
Weird.I'll try to dig through this. We may have some dispatching logic
that is off by one.

On 8/1/06, Vadim Pesochinsky <Va...@mscibarra.com> wrote:
>
> I am using transacted sessions, yet this is what I see. Every time there is a
> long job, e.g. 5 min 20 sec, next message this consumer processes has the
> queue wait time of 5 min 20 sec. What can I try to make it work?
> CLIENT_ACKNOWLEDGE? Thanks.
> --
> View this message in context: http://www.nabble.com/Trouble-with-prefetch-buffer.-tf2029800.html#a5603579
> Sent from the ActiveMQ - User forum at Nabble.com.
>
>


-- 
Regards,
Hiram

Blog: http://hiramchirino.com

Re: Trouble with prefetch buffer.

Posted by James Strachan <ja...@gmail.com>.
BTW your consumers are all created in different Sessions right? If you
create all consumers in one session then by the JMS specification only
1 consumer will be processed at once.

These days on modern linuxes you can create 1000s of sessions and
consumers to get great load balancing and concurrency on a queue. But
always create consumers in different sessions otherwise they bascially
single thread.

On 8/2/06, James Strachan <ja...@gmail.com> wrote:
> Transacted sessions should do the trick - with a prefetch of 1. The
> only issue could be if you are creating consumers and not using them.
> e.g. creating a MessageConsumer and not calling receive() on it. So
> I'd recommend using the async mode (setting the MessageListener) so
> you don't forget to use a message consumer you've created.
>
> Does watching the system via JMX help you to understand what is
> happening? e.g. which consumers get which messages & so forth?
>
>
> On 8/1/06, Vadim Pesochinsky <Va...@mscibarra.com> wrote:
> >
> > I am using transacted sessions, yet this is what I see. Every time there is a
> > long job, e.g. 5 min 20 sec, next message this consumer processes has the
> > queue wait time of 5 min 20 sec. What can I try to make it work?
> > CLIENT_ACKNOWLEDGE? Thanks.
> > --
> > View this message in context: http://www.nabble.com/Trouble-with-prefetch-buffer.-tf2029800.html#a5603579
> > Sent from the ActiveMQ - User forum at Nabble.com.
> >
> >
>
>
> --
>
> James
> -------
> http://radio.weblogs.com/0112098/
>


-- 

James
-------
http://radio.weblogs.com/0112098/

Re: Trouble with prefetch buffer.

Posted by James Strachan <ja...@gmail.com>.
Transacted sessions should do the trick - with a prefetch of 1. The
only issue could be if you are creating consumers and not using them.
e.g. creating a MessageConsumer and not calling receive() on it. So
I'd recommend using the async mode (setting the MessageListener) so
you don't forget to use a message consumer you've created.

Does watching the system via JMX help you to understand what is
happening? e.g. which consumers get which messages & so forth?


On 8/1/06, Vadim Pesochinsky <Va...@mscibarra.com> wrote:
>
> I am using transacted sessions, yet this is what I see. Every time there is a
> long job, e.g. 5 min 20 sec, next message this consumer processes has the
> queue wait time of 5 min 20 sec. What can I try to make it work?
> CLIENT_ACKNOWLEDGE? Thanks.
> --
> View this message in context: http://www.nabble.com/Trouble-with-prefetch-buffer.-tf2029800.html#a5603579
> Sent from the ActiveMQ - User forum at Nabble.com.
>
>


-- 

James
-------
http://radio.weblogs.com/0112098/

Re: Trouble with prefetch buffer.

Posted by Vadim Pesochinsky <Va...@mscibarra.com>.
I am using transacted sessions, yet this is what I see. Every time there is a
long job, e.g. 5 min 20 sec, next message this consumer processes has the
queue wait time of 5 min 20 sec. What can I try to make it work?
CLIENT_ACKNOWLEDGE? Thanks.
-- 
View this message in context: http://www.nabble.com/Trouble-with-prefetch-buffer.-tf2029800.html#a5603579
Sent from the ActiveMQ - User forum at Nabble.com.


Re: Trouble with prefetch buffer.

Posted by Hiram Chirino <hi...@hiramchirino.com>.
Hi Vadim,

On 7/31/06, Vadim Pesochinsky <Va...@mscibarra.com> wrote:
>
> Hi!
>
> I have a test case to consider. 2 servers are processing 3 submitted jobs
> with following processing times 10 min, 1 min, 1 min. This sequence should
> finish in 10 minutes as one service will pick up the 10 minutes job,
> meanwhile the other one should manage the two 1 minute jobs. Since I cannot
> set prefetchSize=0, one of the 1 minute jobs is sitting in prefetch buffer
> and the jobs are processed in 11 minutes instead of 10.

I would think that a 10 min job will sit in the prefetch buffer in 1
consumer and a 1 min job sit in the prefetch buffer of the 2nd
consumer and the last 1 min job will not be in any prefetch buffer.
It will be waiting for one of the 2 consumers prefetch buffers to
empty.

Since the prefetch buffer usage is only decreased when the message is
acknowledged, if you acknowledge the message after you have processed
it, I think it should work how you want it to work.  If you are using
AUTO-ACK, the message gets acked as soon as the message is received()
before you process it.  So then another message queues up waiting for
your 10 min processing time.  I think if you witch to using client ack
or to using transacted sessions, things should work better for you.

>
> This is simplification of the real scenario where I have about 30 consumers
> submitting jobs to 20 consumers through AMQ 4.0.1. I have following
> problems:
>
> •       Messages are sitting in prefetch buffer are not available to processors,
> which results in a lot of idle time.
> •       Order of processing is random. For some reason Job # 20 is processed after
> Job # 1500. Since senders are synchronously blocked this can result in
> time-outs.
>
> What can I do to work around these problems? Any configuration changes? How
> to set prefetchSize=0; should submit a JIRA for this?
>
> Environment & Configuration
> AMQ 4.0.1
> QUEUE_NAME?consumer.prefetchSize=1;consumer.dispatchAsync=true
>
>
> <beans xmlns="http://activemq.org/config/1.0">
>     <!-- Allows us to use system properties as variables in this
> configuration file -->
>     <bean
> class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/>
>     <broker useJmx="true" deleteAllMessagesOnStartup="true"
> persistent="true" >
>         <!-- Use the following to configure how ActiveMQ is exposed in JMX
> -->
>
>         <managementContext>
>             <managementContext connectorPort="1099"
> jmxDomainName="org.apache.activemq"/>
>         </managementContext>
>
>         <destinationPolicy>
>             <policyMap>
>                 <policyEntries>
>                     <policyEntry topic="FIN.>">
>                         <dispatchPolicy>
>                             <strictOrderDispatchPolicy />
>                         </dispatchPolicy>
>                         <pendingMessageLimitStrategy>
>                             <constantPendingMessageLimitStrategy limit="0"/>
>                         </pendingMessageLimitStrategy>
>                         <messageEvictionStrategy>
>                             <oldestMessageEvictionStrategy />
>                         </messageEvictionStrategy>
>                     </policyEntry>
>                 </policyEntries>
>             </policyMap>
>         </destinationPolicy>
>
>         <persistenceAdapter>
>             <kahaPersistentAdaptor dir="activemq-kaha"/>
>         </persistenceAdapter>
>
>         <transportConnectors>
>             <transportConnector name="default" uri="tcp://localhost:61616"
> discoveryUri="multicast://default"/>
>         </transportConnectors>
>
>         <networkConnectors>
>             <networkConnector name="default"
> uri="static://(tcp://localhost:61616)"/>
>         </networkConnectors>
>     </broker>
> </beans>
>
> --
> View this message in context: http://www.nabble.com/Trouble-with-prefetch-buffer.-tf2029800.html#a5583273
> Sent from the ActiveMQ - User forum at Nabble.com.
>
>


-- 
Regards,
Hiram

Blog: http://hiramchirino.com

Re: Trouble with prefetch buffer.

Posted by Vadim Pesochinsky <Va...@mscibarra.com>.
I do not think AMQ-850 will help, because in addition to the 2 described
issues I have real-time requests from users going to the same queue and I
cannot wait for the prefetch buffer to time-out. Round robin will not help
me, because it does not garantee that server that picked a long job will not
have anything in the prefetch buffer.

I created a JIRA for this: https://issues.apache.org/activemq/browse/AMQ-855

James, maybe you can give me a few tips on fixing this. It is a party pooper
for me. The company is not very excited about open source and with upset
like this they will be even less excited.

Thanks.
-- 
View this message in context: http://www.nabble.com/Trouble-with-prefetch-buffer.-tf2029800.html#a5599978
Sent from the ActiveMQ - User forum at Nabble.com.


Re: Trouble with prefetch buffer.

Posted by James Strachan <ja...@gmail.com>.
A combination of setting a prefetch of 1 and using a round robin
dispatch policy should do the trick I think.

http://incubator.apache.org/activemq/dispatch-policies.html

We could also add support for a prefetch of zero - or this issue might
also resolve your issue...

http://issues.apache.org/activemq/browse/AMQ-850

allowing the setting a timeout by which messages are returned to the
broker for timed out consumers...




On 7/31/06, Vadim Pesochinsky <Va...@mscibarra.com> wrote:
>
> Hi!
>
> I have a test case to consider. 2 servers are processing 3 submitted jobs
> with following processing times 10 min, 1 min, 1 min. This sequence should
> finish in 10 minutes as one service will pick up the 10 minutes job,
> meanwhile the other one should manage the two 1 minute jobs. Since I cannot
> set prefetchSize=0, one of the 1 minute jobs is sitting in prefetch buffer
> and the jobs are processed in 11 minutes instead of 10.
>
> This is simplification of the real scenario where I have about 30 consumers
> submitting jobs to 20 consumers through AMQ 4.0.1. I have following
> problems:
>
> •       Messages are sitting in prefetch buffer are not available to processors,
> which results in a lot of idle time.
> •       Order of processing is random. For some reason Job # 20 is processed after
> Job # 1500. Since senders are synchronously blocked this can result in
> time-outs.
>
> What can I do to work around these problems? Any configuration changes? How
> to set prefetchSize=0; should submit a JIRA for this?
>
> Environment & Configuration
> AMQ 4.0.1
> QUEUE_NAME?consumer.prefetchSize=1;consumer.dispatchAsync=true
>
>
> <beans xmlns="http://activemq.org/config/1.0">
>     <!-- Allows us to use system properties as variables in this
> configuration file -->
>     <bean
> class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/>
>     <broker useJmx="true" deleteAllMessagesOnStartup="true"
> persistent="true" >
>         <!-- Use the following to configure how ActiveMQ is exposed in JMX
> -->
>
>         <managementContext>
>             <managementContext connectorPort="1099"
> jmxDomainName="org.apache.activemq"/>
>         </managementContext>
>
>         <destinationPolicy>
>             <policyMap>
>                 <policyEntries>
>                     <policyEntry topic="FIN.>">
>                         <dispatchPolicy>
>                             <strictOrderDispatchPolicy />
>                         </dispatchPolicy>
>                         <pendingMessageLimitStrategy>
>                             <constantPendingMessageLimitStrategy limit="0"/>
>                         </pendingMessageLimitStrategy>
>                         <messageEvictionStrategy>
>                             <oldestMessageEvictionStrategy />
>                         </messageEvictionStrategy>
>                     </policyEntry>
>                 </policyEntries>
>             </policyMap>
>         </destinationPolicy>
>
>         <persistenceAdapter>
>             <kahaPersistentAdaptor dir="activemq-kaha"/>
>         </persistenceAdapter>
>
>         <transportConnectors>
>             <transportConnector name="default" uri="tcp://localhost:61616"
> discoveryUri="multicast://default"/>
>         </transportConnectors>
>
>         <networkConnectors>
>             <networkConnector name="default"
> uri="static://(tcp://localhost:61616)"/>
>         </networkConnectors>
>     </broker>
> </beans>
>
> --
> View this message in context: http://www.nabble.com/Trouble-with-prefetch-buffer.-tf2029800.html#a5583273
> Sent from the ActiveMQ - User forum at Nabble.com.
>
>


-- 

James
-------
http://radio.weblogs.com/0112098/