> I'm using a data-source (Oracle) from a stateless session bean.
> The session bean uses bean managed transactions (User transactions).
> Reading and writing data to the Oracle database works fine.
> 
> The only problem is that when the ejb-transaction gets rolled back the
> database transaction does not roll back.
> 
> Simplified example:
> 
> <i>
> // Get the connection
> Context context = new InitialContext();
> ds = (DataSource)context.lookup("jdbc/MyDSCore");
> Connection conn = ds.getConnection();
> conn.setAutoCinnit(false);
> 
> 
> try
> {
>    sessionContext.getUserTransaction().begin();
> 
>    conn.createStatement(.....);
>    conn.executeUpdate();
> 
>    // If a rollback occurs here the data still gets updated
> 
>    ...
>    sessionContext.getUserTransaction().commit();
> }
> catch(Exception e)
> {
>    e.printStackTrace();
>    sessionContext.getUserTransaction().rollback();
> }
> </i>
> 
> My <b>data-sources.xml</b> looks like this:
> 
> <i>
> <data-source
> class="com.evermind.sql.DriverManagerDataSource"
> name="MyDS"
> connection-driver="oracle.jdbc.driver.OracleDriver"
> location="jdbc/MyDSCore"
> username="scott"
> password="tiger"
> url="jdbc:oracle:thin:@SERVER:PORT:SID"
> />
> </i>
> 
> Does anyone have any idea of why the transactions are not working
> properly???

Reply via email to