We are planning to use JMS - Point-to-Point mechanism. Once the message is read from Queue, we would like to save them in oracle database. What are the different options available for the transaction processing?
We are considering the following options.
1. Use Message Driven Beans to read the messages from Queues. Use Container Managed Transactions ( CMP) and use required attribute setting in Deployment descriptor. This will ensure that if there are any previous transactions, the message will be saved within the same transaction. Otherwise, it will create new transaction and commit the changes to oracle database.
2. Use some simple POJO's and write your own JDBC to save into oracle database?
3. Use some object mapping relational tools like hibernate, JDO and use their transaction control mechanism etc.
Are there any other options available for transaction processing?
Also, My biggest concern is , what happens if the message is read from message queue and if there is some problem in saving to database (database is down etc)? what happens to the message already read at that point?