I think OTM is kind of "deprecated", but i don't know if it's important for this issue. In my mind when you do a commit a transaction, if something fails, no step of the transaction should have been commited, so maybe your database do not support transactions.
2006/2/21, Vamsi Atluri <[EMAIL PROTECTED]>: > > Hello all, > > I tested my own solution suggested below, but it still did not work. The > class that I got for connection was : > > [EMAIL PROTECTED] > wrapped [EMAIL PROTECTED] > ] > > Why wouldn't straight commit() and rollback() not work on a Connection? > Any help is greatly appreciated. Thank you. > > Regards, > -Vamsi > > --- Vamsi Atluri <[EMAIL PROTECTED]> wrote: > > > Hello all, > > > > I am having problem with getting my transactions rolled back. I have > > read > > the documentation a bit about OTM but I am not clear about what I should > > do in my situation. > > > > I am using OJB1.0.1 for DB2 and running on WAS 5.0 (currently testing on > > WSAD 5.1.2). My data save code looks something like this: > > > > PersistenceBroker broker = > > PersistenceBrokerFactory.defaultPersistenceBroker(); > > > > try { > > broker.beginTransaction(); > > > > broker.store(objA); //step 1 > > broker.store(objB); //step 2 > > broker.store(objC); //step 3 > > broker.deleteByQuery(someQuery); //step 4 > > broker.store(objD); //step 5 > > > > broker.commitTransaction(); > > } catch(PersistenceBrokerException pbe) { > > if(null != broker) { > > broker.abortTransaction(); > > } > > } catch(Exception e) { > > if(null != broker) { > > broker.abortTransaction(); > > } > > } finally { > > if(null != broker) { > > broker.close(); > > } > > } > > > > It so happens that if there is any Exception during any of the steps, > > the > > previous steps are not being rolled back. Is it possible that I can get > > the ConnectionManager from the broker and use it for managing my > > transactions? The document says that OJB provides only DB level > > transactions but not object level transactions. What does that this > > exactly mean? Do I "have" to implement OTM (which would be a huge > > undertaking given the amount of tables we store)? Or can I do something > > like this: > > > > PersistenceBroker broker = > > PersistenceBrokerFactory.defaultPersistenceBroker(); > > java.sql.Connection conn = null; > > > > try { > > ConnectionManagerIF connectionManager = > > broker.serviceConnectionManager(); > > conn = connectionManager.getConnection(); > > conn.setAutoCommit(false); > > > > broker.store(objA); //step 1 > > broker.store(objB); //step 2 > > broker.store(objC); //step 3 > > broker.deleteByQuery(someQuery); //step 4 > > broker.store(objD); //step 5 > > > > conn.commit(); > > } catch(PersistenceBrokerException pbe) { > > if(null != conn) { > > conn.rollback(); > > } > > } catch(Exception e) { > > if(null != conn) { > > conn.rollback(); > > } > > } finally { > > if(null != broker) { > > broker.close(); > > } > > } > > > > Any help is greatly appreciated in this matter. Thank you. > > > > Regards, > > -Vamsi > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > >