activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sinus <sinusa...@gmail.com>
Subject Re: createSession() makes all the threads to wait ...
Date Wed, 12 Aug 2009 07:25:29 GMT

Hello Norbert,
Thank you very much for your fast reply. Like you have said, I turned off
the ProducerFlowControl flag for my topic  and also increased the
systemUsage parameters. The adding of the below code, made my broker to work
stable and with no freeze. :) I really appreciate your help. Thanks a lot,
Nobert. Have a nice day!!!
        
        PolicyEntry entry = new PolicyEntry();
        entry.setTopic("myTopic");
        entry.setProducerFlowControl(false);
        //512MB
        entry.setMemoryLimit(536870912);
        List<PolicyEntry> entries= new ArrayList<PolicyEntry>();
        entries.add(entry);
        
        PolicyMap map = new PolicyMap();
        map.setPolicyEntries(entries);
        broker.setDestinationPolicy(map);
        
        
        SystemUsage systemUsage = new SystemUsage();
        MemoryUsage memoryUsage = new MemoryUsage();
        StoreUsage storeUsage = new StoreUsage();
        //128MB
        memoryUsage.setLimit(134217728);
        //1GB
        storeUsage.setLimit(1073741824);
        systemUsage.setMemoryUsage(memoryUsage);
        systemUsage.setStoreUsage(storeUsage);
        broker.setSystemUsage(systemUsage);






Norbert Pfistner-2 wrote:
> 
> Maybe this is a ProducerFlowControl issue. Have you tried to turn it off?
> (see also 
> http://kovyrin.net/2009/01/23/activemq-tips-flow-control-and-stalled-producers-problem/)
> 
> Greetings,
> Norbert
> 
> kley schrieb:
>> 
>> sinus wrote:
>>> Hello to everybody. I need a help. During 3 days I'm trying to solve a
>>> problem that appears with my embedded pub/sub(with listener) model after
>>> processing around 80000 messages.
>>> So, all goes well: publishing and consumig , but after  ~ 80000 messages
>>> the threads of my multi-theaded application block in
>>> connection.createSession(false, Session.AUTO_ACKNOWLEDGE) method. I
>>> noticed that at that moment i can not event make a ping to
>>> google.com.Some
>>> code that manege jms:
>>>
>>> BrokerService broker = new BrokerService();
>>> broker.setUseJmx(false);
>>> broker.setPersistent(false);
>>> broker.getSystemUsage().setSendFailIfNoSpace(true);
>>> broker.addConnector("vm://jms");
>>> broker.start();
>>>
>>> send process:
>>>           ActiveMQConnectionFactory connectionFactory= null;
>>>             String user = ActiveMQConnection.DEFAULT_USER;
>>>             String password = ActiveMQConnection.DEFAULT_PASSWORD;
>>>             connectionFactory= new ActiveMQConnectionFactory(user,
>>> password, "vm://jms");
>>>             connectionFactory.setUseAsyncSend(true);
>>>             connectionFactory.setCopyMessageOnSend(false);
>>>             Connection con = connectionFactory.createConnection();
>>>             con.start();
>>>             session = connection.createSession(false,
>>> Session.AUTO_ACKNOWLEDGE);
>>>             
>>>            topic = session.createTopic("myTopic"));
>>>             producer = session.createProducer(topic);
>>>             producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
>>>             message = session.createObjectMessage(ticket); 
>>>            producer.send(message);
>>>
>>> ActiveMQ 5.2  
>>>  So, I'm using a connection for all my threads of my application> Each
>>> thread creates its own session and the object that it need to send the
>>> message. All the clean is done well( close session, publisher, etc.).
>>> What can be the problem ???Can you help me please? Its really blocking
>>> for
>>> me. Please. Thanks.
>>> Serge.
>>>
>>>
>>>
>>>         
>>>
>> 
>> i have some kind an similar architecture  an multithreded server that
>> puts
>> data in JMS Queue to use is as a giant buffer for slow data treatment.
>> After a while ~ N number of messages all my workers (pooled threads) are
>> blocked on the method 
>> create jms session on the way to put data in jms Queue 
>> connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
>> as a result server doesn't respond any more to the new requests throwing 
>> RejectedExecutionException 
>> please help , why does it stops creating new jms sessions ?
>> 
>> did i use an wrong architecture using the same connection object and
>> creating -closing session after each task?
>> I assume that i 'm closing any used resource (connections ,sockets) ?
>> Any help will be appreciated.
>> 
>> 
>> 
> 
> 

-- 
View this message in context: http://www.nabble.com/createSession%28%29-makes-all-the-threads-to-wait-...-tp24916480p24931285.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Mime
View raw message