For the financial application, which I am currently working on, we have following situation.
-We are going to configure JMS queue for one of the scanarios where requests first come to queue and will be processed by a service. (e.g. buy trade request comes to queue, sell service will perform the match logic and process the request if it passes matching criteria )
-This application will have thousands of requests (1 million transactions/day) so we will need to cluster it (vertical first). In order to cluster JMS piece, what would be the correct approach. Very important points to keep in mind are 1)Instnace safety. e.g. if two instances of JMS piece are running in clustered environment, we need to be very sure that no two instances of JMS piece (in cluster)don't step on each other's toes. Meaning if first instance of the cluster picked up a record for stock A, second instance of JMS piece should not pick up the same stock record. How do we ensure this?
How do we architect JMS piece in clustered environment.
FYI: We use Spring, Struts. We are considering to use ActiveMQ but not sure if it's a good fit for such large voulme application and should we consider JBoss Messaging provider, Websphere MQ, MQ Series? However cost would be a factor here.