-
1. Re: HornetQ in Standalone Mode or not?
bjchip Mar 28, 2010 9:39 PM (in response to nnanda)Consider half-and-half ?
Live server inside JBoss - standalone for the backup.
respectfully
BJ
-
2. Re: HornetQ in Standalone Mode or not?
clebert.suconic Mar 28, 2010 11:07 PM (in response to nnanda)Performance wise there isn't much difference between HornetQ standalone or inside JBoss.
The only difference here is if it would make sense to keep it in separate VMs or not. (You will be inside the same VM as JBoss, sharing GC and other concurrent factors). I would need to know more of your application for that.
You were also saying MDBs. Keep in mind that MDBs will require a transactional context for each message you process on the MDB. If you were processing your messages outside of an MDB, you could get a much higher throuput by not using MDBs.
-
3. Re: HornetQ in Standalone Mode or not?
nnanda Mar 28, 2010 11:50 PM (in response to clebert.suconic)Hi,
Thank you for the reply. I want to understand few more points.
1. Can standalone HornetQ take this kind of load?
As far as my application goes, HornetQ will be running inside a separate VM; completely outside of my application. It will be like following.
VM 1: WAR file containing my web service application (one set of ports). For all queue messages, get the queue reference through a remove JNDI call and put the message in the queue.
VM2: HornetQ (either standalone or inside JBoss) on a separate set of ports.
- Both VMs will reside under same physical box running 1GB of Heap space bound to two different private IPs.
- The operations are not transactional in nature.
Please let me know if you see any issue with this deployment structure/design.
Second point that I want to understand is regarding MDB. As far as I understand, processing messages from a JMS queue can be done by a message listener and that can be a MDB. Am I wrong? Is there any other way to read messages from a JMS queue? Please provide some references and examples if possible.
Thanks,
Niranjan
-
4. Re: HornetQ in Standalone Mode or not?
timfox Mar 29, 2010 3:42 AM (in response to clebert.suconic)Clebert Suconic wrote:
You were also saying MDBs. Keep in mind that MDBs will require a transactional context for each message you process on the MDB.
That's only true if the MDB is marked as transacted.
-
5. Re: HornetQ in Standalone Mode or not?
timfox Mar 29, 2010 3:45 AM (in response to nnanda)NIranjan Nanda wrote:
Hi,
Thank you for the reply. I want to understand few more points.
1. Can standalone HornetQ take this kind of load?
As far as my application goes, HornetQ will be running inside a separate VM; completely outside of my application. It will be like following.
VM 1: WAR file containing my web service application (one set of ports). For all queue messages, get the queue reference through a remove JNDI call and put the message in the queue.
VM2: HornetQ (either standalone or inside JBoss) on a separate set of ports.
- Both VMs will reside under same physical box running 1GB of Heap space bound to two different private IPs.
- The operations are not transactional in nature.
Please let me know if you see any issue with this deployment structure/design.
Second point that I want to understand is regarding MDB. As far as I understand, processing messages from a JMS queue can be done by a message listener and that can be a MDB. Am I wrong? Is there any other way to read messages from a JMS queue? Please provide some references and examples if possible.
Thanks,
Niranjan
MDBs are not part of the JMS specification, they are part of the JEE specification. JMS knows nothing about MDBs.
If you want to know how to read a message from a JMS queue without using MDBs I suggest the following link:
http://java.sun.com/products/jms/tutorial/1_3_1-fcs/doc/copyright.html
-
6. Re: HornetQ in Standalone Mode or not?
timfox Mar 29, 2010 3:49 AM (in response to timfox)Regarding performance - you say the operations are non transactional, for non transactional auto ack, HornetQ (next release) can support a throughput of around 800K small messages *per second* on some pretty standard IBM 4 core servers, so 2 million messages per day is not a lot.
So, the overhead from HornetQ will be small, the real question is how many CPU cycles is burnt in sending/processing messages and the rest of your app. That I cannot answer.
-
7. Re: HornetQ in Standalone Mode or not?
nnanda Mar 29, 2010 12:36 PM (in response to timfox)Tim,
Thank you for clarifying my points.
What I understand from the Sun Micro tutorial is: we can read JMS messages by queue receievers, but MDBs provide an automatic way to consume queued messages. For us since we have decided to use MDBs, I think we need full JBoss app server. So, we can deploy both HornetQ and MDBs in a separate instance and the message producers will put the message in that remote queue.
"Bottom line: we have to go with NON-standalone mode"
You are mentioning 800K small messages. What is the notion of Small Messages here? Are you saying only Text Messages? Or small Object Messages. Our messages are not small. And those will be Object Messages (not Text Messages). But in any case, we will be using JBoss AS and hence, will use a JMS solution from the same house. We have initially planned to use JBoss Messaging (the default for JBoss 5.1 AS). However, seeing JBoss's stance towards HornetQ, we are redeciding.
By the way when is your next version coming out and which version you are mentioning (2.1 or 2.2)? Your roadmap shows both these versions.
Our project will go live in May 22. Does any of your versions will see sunlight within this time frame? In that case we can go ahead with with 2.0 now and can upgrade to the latest version. I don't think there will be any upgradation issue.
Please help me clarify these points.
Thanks,
Niranjan