What is the autocommit option on or off at the dbend ----- Original Message ----- From: "Hemant Arora" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Wednesday, June 19, 2002 1:46 PM Subject: Transaction in SFSB
> Hi Ashwin > > Sorry for yesterday's mail. > > Actually I forgot to write some details of the transactions in my code > > Please find the latest code > > I do not have the "Account" table in my database > > so when I try to inseret the 2 queries > > then the second one should fail as its happening and the first insert > should rollback as there is > > Sql exception in the second query > > The weblogic console shows this error which is correct as per my > understanding > > Wed Jun 19 12:42:35 GMT+05:30 2002:<I> <EJB JAR deployment > d:/weblogic/myserver/romanCount.jar> Transaction: '1024470662649_3' rolled > back due to EJB excep > tion: > java.rmi.RemoteException: ORA-00942: table or view does not exist > at > com.wiley.compBooks.roman.session.Count.CountBean.dbconnection(CountBean.jav a:88) > at > com.wiley.compBooks.roman.session.Count.CountBeanEOImpl.dbconnection(CountBe anEOImpl.java:148) > at > com.wiley.compBooks.roman.session.Count.CountBeanEOImpl_WLSkel.invoke(CountB eanEOImpl_WLSkel.java:83) > at > weblogic.rmi.extensions.BasicServerObjectAdapter.invoke(BasicServerObjectAda pter.java:338) > at > weblogic.rmi.extensions.BasicRequestHandler.handleRequest(BasicRequestHandle r.java:69) > at > weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:1 5) > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120) > > > but when i see the database table "Accounts" The record does exists , it > should have been rolled back > > Any help > > Regards > Hemant > > > package com.wiley.compBooks.roman.session.Count; > > import javax.ejb.*; > import java.sql.Connection; > import java.sql.PreparedStatement; > import java.sql.ResultSet; > import java.sql.SQLException; > import java.sql.*; > import javax.naming.NamingException; > import javax.naming.InitialContext; > import javax.transaction.UserTransaction; > import javax.sql.DataSource; > import java.rmi.RemoteException; > import java.io.*; > > /** > * Demonstration Stateful Session Bean. This Bean is initialized > * to some integer value, and has a business method which > * increments the value. > * > * This example shows the basics of how to write a stateful > * session bean, and how passivation/activation works. > */ > public class CountBean implements SessionBean{ > > SessionContext ctx; > // The current counter is our conversational state. > public int val; > > // > // Business methods > // > > /** > * Counts up > */ > public int count() { > System.out.println("count()"); > return ++val; > } > > /** > * Counts up > */ > public String dbconnection() throws RemoteException,SQLException > { > InitialContext initCtx = null; > DataSource ds = null; > System.out.println("INSIDE dbconnection"); > String strGotit = ""; > Connection con = null; > PreparedStatement stmt = null; > PreparedStatement stmt1 = null; > > try > { > > initCtx = new InitialContext(); > ds = (javax.sql.DataSource) > initCtx.lookup("oraclePool"); > con = ds.getConnection(); > > stmt = con.prepareStatement("insert into accounts > (id,name,balance) values(?,?,?) "); > > stmt.setInt(1,1); > stmt.setString(2,"Tester 1"); > stmt.setInt(3,1212); > > if(stmt.executeUpdate() != 1){ > throw new RemoteException("Insert Failed"); > } > > stmt1 = con.prepareStatement("insert into account > (id,name,balance) values(?,?,?) "); > > stmt1.setInt(1,2); > stmt1.setString(2,"Tester 2"); > stmt1.setInt(3,1212); > > if(stmt1.executeUpdate() != 1){ > throw new RemoteException("Insert Failed"); > } > > > }catch(javax.naming.NamingException ne){ > throw new EJBException(ne); > }catch(SQLException sqe) > { > throw new RemoteException(sqe.getMessage()); > } > finally > { > try > { > stmt.close(); > stmt1.close(); > con.close(); > > if(initCtx != null) > initCtx.close(); > file://return ds.getConnection(); > } > catch(NamingException ne) > { > file://log("Error closing context: " + ne); > throw new EJBException(ne); > } > } > > return strGotit; > } > > // > // EJB-required methods > // > > public void ejbCreate(int val) throws CreateException { > this.val = val; > System.out.println("ejbCreate()"); > } > > public void ejbRemove() { > System.out.println("ejbRemove()"); > } > > public void ejbActivate() { > System.out.println("ejbActivate()"); > } > > public void ejbPassivate() { > System.out.println("ejbPassivate()"); > } > > public void setSessionContext(SessionContext ctx) { > } > } > > -----------------------Disclaimer------------------------ > > The views of the author may not necessarily reflect those > of the Company. All liability is excluded to the extent > permitted by law for any claims arising as a result of the > use of this medium to transmit information by or to > IT Solutions (India) Pvt. Ltd. > > We have taken precautions to minimize the risk of > transmitting software viruses, but we advise you to > carry out your own virus checks on any attachment to > this message. We cannot accept liability for any loss or > damage caused by software viruses. > > ------------------------Disclaimer------------------------ > > =========================================================================== > To unsubscribe, send email to [EMAIL PROTECTED] and include in the body > of the message "signoff EJB-INTEREST". For general help, send email to > [EMAIL PROTECTED] and include in the body of the message "help". > =========================================================================== To unsubscribe, send email to [EMAIL PROTECTED] and include in the body of the message "signoff EJB-INTEREST". For general help, send email to [EMAIL PROTECTED] and include in the body of the message "help".