You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Ning Li (JIRA)" <ji...@apache.org> on 2006/06/12 21:04:51 UTC

[jira] Created: (AMQ-749) MQ multithreaded issue

MQ multithreaded issue
----------------------

         Key: AMQ-749
         URL: https://issues.apache.org/activemq/browse/AMQ-749
     Project: ActiveMQ
        Type: Bug

    Versions: 4.0    
 Environment: Windows
    Reporter: Ning Li
    Priority: Critical
     Fix For: incubation


Unable to run multithreaded MQ application, even for the simplest case.

This is the peudo code, modified the ProducerTool.java

For ( thread 1 to 30 )
{
    Connection  connection = createConnection();
    Session session = createSession(connection);
   Producer producer = createProducer(session);
   sendMessages(producer, 20);  //send 20 messages to broker using all default settings
}

these are the exceptions from broker:
Caught: javax.jms.JMSException: java.util.ConcurrentModificationException
[cp://localhost/127.0.0.1:61616] ActiveMQConnection             WARN  Async exception with no exception listener: java.util.ConcurrentModificationException
java.util.ConcurrentModificationException
	at java.util.HashMap$HashIterator.nextEntry(HashMap.java:787)
	at java.util.HashMap$EntryIterator.next(HashMap.java:829)
	at java.util.HashMap$EntryIterator.next(HashMap.java:827)
	at org.apache.activemq.broker.view.ConnectionDotFileInterceptor.printProducers(ConnectionDotFileInterceptor.java:157)
	at org.apache.activemq.broker.view.ConnectionDotFileInterceptor.generateFile(ConnectionDotFileInterceptor.java:140)
	at org.apache.activemq.broker.view.DotFileInterceptorSupport.generateFile(DotFileInterceptorSupport.java:47)
	at org.apache.activemq.broker.view.ConnectionDotFileInterceptor.addProducer(ConnectionDotFileInterceptor.java:85)
	at org.apache.activemq.broker.MutableBrokerFilter.addProducer(MutableBrokerFilter.java:90)
	at org.apache.activemq.broker.AbstractConnection.processAddProducer(AbstractConnection.java:397)
	at org.apache.activemq.command.ProducerInfo.visit(ProducerInfo.java:100)
	at org.apache.activemq.broker.AbstractConnection.service(AbstractConnection.java:201)
	at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:62)
	at org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:97)
	at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:63)
	at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:114)
	at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:122)
	at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:87)
	at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:143)
	at java.lang.Thread.run(Thread.java:595)


and exception in the client side:
javax.jms.JMSException: java.util.ConcurrentModificationException
	at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:45)
	at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1137)
	at org.apache.activemq.AdvisoryConsumer.<init>(AdvisoryConsumer.java:45)
	at org.apache.activemq.ActiveMQConnection.ensureConnectionInfoSent(ActiveMQConnection.java:1227)
	at org.apache.activemq.ActiveMQConnection.start(ActiveMQConnection.java:435)
	at com.businessobjects.framework.services.mq.ToolSupport.createConnection(ToolSupport.java:51)
	at com.businessobjects.framework.services.mq.ProducerTool.run(ProducerTool.java:106)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   https://issues.apache.org/activemq/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Updated: (AMQ-749) ConnectionDotFileInterceptor not thread safe.

Posted by "Hiram Chirino (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/AMQ-749?page=all ]

Hiram Chirino updated AMQ-749:
------------------------------

        Summary: ConnectionDotFileInterceptor not thread safe.  (was: MQ multithreaded issue)
    Fix Version: 4.0.1
                 4.1
                     (was: incubation)

As a simple workaround, disable the dot file broker plugin.

> ConnectionDotFileInterceptor not thread safe.
> ---------------------------------------------
>
>          Key: AMQ-749
>          URL: https://issues.apache.org/activemq/browse/AMQ-749
>      Project: ActiveMQ
>         Type: Bug

>     Versions: 4.0
>  Environment: Windows
>     Reporter: Ning Li
>     Priority: Critical
>      Fix For: 4.1, 4.0.1

>
>
> Unable to run multithreaded MQ application, even for the simplest case.
> This is the peudo code, modified the ProducerTool.java
> For ( thread 1 to 30 )
> {
>     Connection  connection = createConnection();
>     Session session = createSession(connection);
>    Producer producer = createProducer(session);
>    sendMessages(producer, 20);  //send 20 messages to broker using all default settings
> }
> these are the exceptions from broker:
> Caught: javax.jms.JMSException: java.util.ConcurrentModificationException
> [cp://localhost/127.0.0.1:61616] ActiveMQConnection             WARN  Async exception with no exception listener: java.util.ConcurrentModificationException
> java.util.ConcurrentModificationException
> 	at java.util.HashMap$HashIterator.nextEntry(HashMap.java:787)
> 	at java.util.HashMap$EntryIterator.next(HashMap.java:829)
> 	at java.util.HashMap$EntryIterator.next(HashMap.java:827)
> 	at org.apache.activemq.broker.view.ConnectionDotFileInterceptor.printProducers(ConnectionDotFileInterceptor.java:157)
> 	at org.apache.activemq.broker.view.ConnectionDotFileInterceptor.generateFile(ConnectionDotFileInterceptor.java:140)
> 	at org.apache.activemq.broker.view.DotFileInterceptorSupport.generateFile(DotFileInterceptorSupport.java:47)
> 	at org.apache.activemq.broker.view.ConnectionDotFileInterceptor.addProducer(ConnectionDotFileInterceptor.java:85)
> 	at org.apache.activemq.broker.MutableBrokerFilter.addProducer(MutableBrokerFilter.java:90)
> 	at org.apache.activemq.broker.AbstractConnection.processAddProducer(AbstractConnection.java:397)
> 	at org.apache.activemq.command.ProducerInfo.visit(ProducerInfo.java:100)
> 	at org.apache.activemq.broker.AbstractConnection.service(AbstractConnection.java:201)
> 	at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:62)
> 	at org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:97)
> 	at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:63)
> 	at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:114)
> 	at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:122)
> 	at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:87)
> 	at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:143)
> 	at java.lang.Thread.run(Thread.java:595)
> and exception in the client side:
> javax.jms.JMSException: java.util.ConcurrentModificationException
> 	at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:45)
> 	at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1137)
> 	at org.apache.activemq.AdvisoryConsumer.<init>(AdvisoryConsumer.java:45)
> 	at org.apache.activemq.ActiveMQConnection.ensureConnectionInfoSent(ActiveMQConnection.java:1227)
> 	at org.apache.activemq.ActiveMQConnection.start(ActiveMQConnection.java:435)
> 	at com.businessobjects.framework.services.mq.ToolSupport.createConnection(ToolSupport.java:51)
> 	at com.businessobjects.framework.services.mq.ProducerTool.run(ProducerTool.java:106)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   https://issues.apache.org/activemq/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Resolved: (AMQ-749) ConnectionDotFileInterceptor not thread safe.

Posted by "Hiram Chirino (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/AMQ-749?page=all ]
     
Hiram Chirino resolved AMQ-749:
-------------------------------

    Resolution: Fixed
     Assign To: Hiram Chirino

Added synchronization to make thread safe.

> ConnectionDotFileInterceptor not thread safe.
> ---------------------------------------------
>
>          Key: AMQ-749
>          URL: https://issues.apache.org/activemq/browse/AMQ-749
>      Project: ActiveMQ
>         Type: Bug

>     Versions: 4.0
>  Environment: Windows
>     Reporter: Ning Li
>     Assignee: Hiram Chirino
>     Priority: Critical
>      Fix For: 4.1, 4.0.1

>
>
> Unable to run multithreaded MQ application, even for the simplest case.
> This is the peudo code, modified the ProducerTool.java
> For ( thread 1 to 30 )
> {
>     Connection  connection = createConnection();
>     Session session = createSession(connection);
>    Producer producer = createProducer(session);
>    sendMessages(producer, 20);  //send 20 messages to broker using all default settings
> }
> these are the exceptions from broker:
> Caught: javax.jms.JMSException: java.util.ConcurrentModificationException
> [cp://localhost/127.0.0.1:61616] ActiveMQConnection             WARN  Async exception with no exception listener: java.util.ConcurrentModificationException
> java.util.ConcurrentModificationException
> 	at java.util.HashMap$HashIterator.nextEntry(HashMap.java:787)
> 	at java.util.HashMap$EntryIterator.next(HashMap.java:829)
> 	at java.util.HashMap$EntryIterator.next(HashMap.java:827)
> 	at org.apache.activemq.broker.view.ConnectionDotFileInterceptor.printProducers(ConnectionDotFileInterceptor.java:157)
> 	at org.apache.activemq.broker.view.ConnectionDotFileInterceptor.generateFile(ConnectionDotFileInterceptor.java:140)
> 	at org.apache.activemq.broker.view.DotFileInterceptorSupport.generateFile(DotFileInterceptorSupport.java:47)
> 	at org.apache.activemq.broker.view.ConnectionDotFileInterceptor.addProducer(ConnectionDotFileInterceptor.java:85)
> 	at org.apache.activemq.broker.MutableBrokerFilter.addProducer(MutableBrokerFilter.java:90)
> 	at org.apache.activemq.broker.AbstractConnection.processAddProducer(AbstractConnection.java:397)
> 	at org.apache.activemq.command.ProducerInfo.visit(ProducerInfo.java:100)
> 	at org.apache.activemq.broker.AbstractConnection.service(AbstractConnection.java:201)
> 	at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:62)
> 	at org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:97)
> 	at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:63)
> 	at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:114)
> 	at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:122)
> 	at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:87)
> 	at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:143)
> 	at java.lang.Thread.run(Thread.java:595)
> and exception in the client side:
> javax.jms.JMSException: java.util.ConcurrentModificationException
> 	at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:45)
> 	at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1137)
> 	at org.apache.activemq.AdvisoryConsumer.<init>(AdvisoryConsumer.java:45)
> 	at org.apache.activemq.ActiveMQConnection.ensureConnectionInfoSent(ActiveMQConnection.java:1227)
> 	at org.apache.activemq.ActiveMQConnection.start(ActiveMQConnection.java:435)
> 	at com.businessobjects.framework.services.mq.ToolSupport.createConnection(ToolSupport.java:51)
> 	at com.businessobjects.framework.services.mq.ProducerTool.run(ProducerTool.java:106)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   https://issues.apache.org/activemq/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira