• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Transaction Management: BMP & CMP

 
Gajanan Kulkarni
Greenhorn
Posts: 11
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hello

As part of my application implementation I am doing following

1. MDB gets triggered when system finds message in Q
2. MDB calls Stateless Session Bean
3. Stateless Session Beans performs operations on CMP Entiry Beans as well as BMP entity beans in following sequence
UserTransaction tx = getSessionContext().getUserTransaction();
tx.start();
try{
Perform operation with CMP Entity Bean 1
Perform operation with another Stateless Session Bean
Perform operation with CMP Entity Bean 2
Perform operation with CMP Entity Bean 3
Perform operation with BMP Entity Bean 4
}
finally{
try {
if (tx.getStatus() !=
javax.transaction.Status.STATUS_MARKED_ROLLBACK){
tx.rollback();
}
else {
tx.commit();
}
}

If there a problem in BMP, I want all operations to roll back.


Am I doing anything wrong? Because I am getting problem in my BMP (last step) saying that
"illegal attempt to use multiple resources that have only one-phase capability".

Any suggestions ??
 
Vinay Raj
Ranch Hand
Posts: 81
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You need to check the database driver classes configured for your datasource. They should be XA Drivers. For example, for Oracle database one should use oracle.jdbc.xa.client.OracleXADataSource.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic