This content has been marked as final.
Show 1 reply
-
1. Re: big message not removed from the queue
jchen0516 Sep 21, 2005 6:09 PM (in response to jchen0516)"jchen0516" wrote:
We found a problem on JMS. I am not sure if it is my configuration problem. I wrote a simple MDB. At client side, when I put a small size ObjectMessage into the queue, MDB works fine. Only one MDB pickups and processes the message for one time. However, when I put a big size ObjectMessage (~MB) into the queue and MDB needs to process a little longer for a message, I found there are serveral MDB which sequentially pick up the same message from the queue and process it. I wonder if I should set something for message persistence to solve this problem.
btw, jboss is running on a linux environment. I can see many same session pool message for MeesageDriverBean. Does that multithread or multi-CPU cause the problem? But I doubt because it is running fine for the small size message.
Thanks for your help in advance!
----------------------------------------------------
This is the my-jbossmq-destinations-service.xml in jboss-4.0.2/server/default/deploy/jms directory
mbean code="org.jboss.mq.server.jmx.Queue"
name="jboss.mq.destination:service=Queue,name=myQueue"
<depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
/mbean>
----------------------------------------------------------
MDB is very simple. ZippingMessage contains a list of filename need to be zipped. When ZippingMessage is bigger, this MDB needs to process longer time on zipping.
public void onMessage(Message arg0) {
// TODO Auto-generated method stub
try {
ObjectMessage om = (ObjectMessage) arg0;
ZippingMessage izm = (ZippingMessage) om.getObject();
// start zipping and wait it finished
ZipManager zipper = new ZipManager();
zipper.setName(izm.getZipFilename());
zipper.setFiles(izm.getItems());
zipper.start();
zipper.join();
} catch (Exception e) {
log.error("Unexpected exception: " + e.getMessage());
}