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.java:88)
        at
com.wiley.compBooks.roman.session.Count.CountBeanEOImpl.dbconnection(CountBeanEOImpl.java:148)
        at
com.wiley.compBooks.roman.session.Count.CountBeanEOImpl_WLSkel.invoke(CountBeanEOImpl_WLSkel.java:83)
        at
weblogic.rmi.extensions.BasicServerObjectAdapter.invoke(BasicServerObjectAdapter.java:338)
        at
weblogic.rmi.extensions.BasicRequestHandler.handleRequest(BasicRequestHandler.java:69)
        at
weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:15)
        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();
                    //return ds.getConnection();
               }
               catch(NamingException ne)
               {
                    //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".

Reply via email to