activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From haoqi <haoqi...@gmail.com>
Subject ActiveMQ in WebSphere 6.0 problems
Date Fri, 13 Apr 2007 05:19:57 GMT

I use ActiveMQ as JMS provider in WebSphere Application Server v6.0 and meet
some problems.

            The env:
            ActiveMQ version: 4.1.1
            Destination Type:  Queue
            OS: AIX 5.2
            JVM version: 1.4.2
            Application Server: WebSphere Application Server v6.0
Problems:
1.       I can’t restart websphere server successfully when there are some
messages in queue.

2.       Suppose I send 1,2,3…10, ten text messages to queue A, and the MDB
in websphere server was configured listening to queue A, only 9 messages
will be consumed, and the missed message is 3 (the third message I send to
A).

And when I monitor the AMQ throw JMX console (jconsole), it shows the
QueueSize of A is 2, but if I run command: browse --amqurl
tcp://localhost:61616 A in AMQ machine, it shows only one message, the
missed one, like: 

JMS_BODY_FIELD:JMSText = 3
JMS_HEADER_FIELD:JMSExpiration = 0
JMS_HEADER_FIELD:JMSMessageID = ID:XXXXXX
JMS_HEADER_FIELD:JMSPriority = 4
JMS_HEADER_FIELD:JMSDestination = A
JMS_HEADER_FIELD:JMSTimestamp = 1176279585263
JMS_HEADER_FIELD:JMSDeliveryMode = persistent
JMS_HEADER_FIELD:JMSRedelivered = false

If I send and receive messages throw independent JMS java application, it
works fine.

I tried to increase the MDB Listener Port maximum sessions size from 5 to
10, then all messages can be consumed by MDB, but when I check from the JMX
console, the QueueSize attribution is 2. and the browse --amqurl
tcp://localhost:61616 A command shows nothing.

I send another 500 messages, all can be received by MDB, but the QueueSize
will not be changed, it’s always 2.

I restart the ActiveMQ, the QueueSize is 2 also, and browse --amqurl
tcp://localhost:61616 A shows 2 messages.

Because the QueueSize can’t be reduced to 0, and with the problem 1 I
mentioned above, the WebSphere can’t be restart.

The only way to restart the WebSphere Server is to stop the ActiveMQ, and
delete the activemq data directory (where activemq used to store data, at
default is activemq-data directory). Then start the ActiveMQ as a fresh one,
restart the WebSphere at last.
If I only restart the ActiveMQ Server (with the QueueSize 2), then when I
send the message to the queue A, the MDB will not work.

Problem 3:
       I think there maybe some problems with the MDB, the bean consumed the
message but not acknowledge it, 
       so I changed the EJB transaction type from container to bean, the
message can be consumed successfully, 
       and the problem 2 disappeared.
       but it can't work correctly with 2 MDB which listened to different
queue:  
       suppose there are queue A, B, MDB-A, MDB-B
       I send message to A first, the MDB-A is invoked and work fine.
       Then I send message to B, the MDB-B not work at all.
       If I send to queue B first, then the MDB-A not work, even I changed
the session pool or connection pool.

I can't configure the AMQ work fine with WAS now,
any advice was appreciated.


      
-- 
View this message in context: http://www.nabble.com/ActiveMQ-in-WebSphere-6.0-problems-tf3569806s2354.html#a9973033
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Mime
View raw message