aspose file tools*
The moose likes Websphere and the fly likes help me for stateful session bean please! Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Products » Websphere
Bookmark "help me for stateful session bean please!" Watch "help me for stateful session bean please!" New topic
Author

help me for stateful session bean please!

Tiger Liu
Greenhorn

Joined: Nov 19, 2002
Posts: 5
I change my Bean as following:
package hello;
import java.sql.*;
import java.util.*;
import javax.ejb.*;
import javax.naming.*;
import javax.sql.*;
/**
*
Title:

*
Description:

*
Copyright: Copyright (c) 2002

*
Company:

* @author unascribed
* @version 1.0
*/
public class StateSession1Bean implements SessionBean {
private String dbName = "java:comp/env/jdbc/MyOracle";
private SessionContext sessionContext;
private DataSource ds ;

public void addrecord(String id, String firstname, String lastname) {
try {
insertEntry(ds,id, firstname, lastname);
} catch (Exception ex) {
throw new EJBException("add record: " +
ex.getMessage());
}
}
public void selectRecord(String id) {
try {
selectEntry(ds,id) ;
}catch(Exception ex) {
throw new EJBException("add record: " +
ex.getMessage());
}
}
public void ejbCreate() {
System.out.println("ejb create load ...") ;
try {
makeConnection();
} catch (Exception ex) {
throw new EJBException("Unable to connect to database. " +
ex.getMessage());
}
}
public void ejbRemove() {
System.out.println("ejb remove load ...") ;
try {
ds = null ;
System.out.println("connection is closed ...") ;
} catch (Exception ex) {
throw new EJBException("ejbRemove: " + ex.getMessage());
}
}
public void ejbActivate() {
System.out.println("ejb activate load ...") ;
try {
makeConnection();
} catch (Exception ex) {
throw new EJBException("ejbActivate Exception: " + ex.getMessage());
}
}
public void ejbPassivate() {
System.out.println("ejb passivate load ...") ;
try {
ds = null ;
System.out.println("connection is closed ...") ;
} catch (Exception ex) {
throw new EJBException("ejbPassivate Exception: " + ex.getMessage());
}
}
public void setSessionContext(SessionContext sessionContext) {
System.out.println("set session context load ...") ;
this.sessionContext = sessionContext;
}
/*********************** Database Routines *************************/
private void makeConnection() throws NamingException, SQLException {
InitialContext ic = new InitialContext();
ds = (DataSource) ic.lookup(dbName);
System.out.println("connection is opened ...") ;
}
/* private void testConnection() {
try{
String deleteStatement =
"select id, firstname, lastname from tbltest";
PreparedStatement prepStmt =
con.prepareStatement(deleteStatement);
ResultSet rs = prepStmt.executeQuery();
System.out.println("sql execute : " + deleteStatement) ;
while (rs.next()) {
System.out.println("the record is : " + rs.getString(1) + "-" + rs.getString(2) + "-" + rs.getString(3));
}
}catch(SQLException ex){
System.out.println("sql test exception " + ex.getMessage() ) ;
}
}
*/
private void insertEntry(DataSource ds,String id, String first, String last){
PreparedStatement prepStmt = null ;
Connection cn = null ;
try{
cn = ds.getConnection() ;
String insertStatement =
"insert into tbltest values ( ? , ? , ? )";
prepStmt =
cn.prepareStatement(insertStatement);
prepStmt.setString(1, id) ;
prepStmt.setString(2, first) ;
prepStmt.setString(3, last) ;
prepStmt.executeUpdate();
prepStmt.close();
}catch(SQLException ex){
System.out.println("execute inset sql fail: " + ex.getMessage() ) ;
ex.printStackTrace() ;
}finally{
try{
if(prepStmt != null)
prepStmt.close() ;
if(cn != null)
cn.close() ;
}catch (SQLException ex) {
ex.printStackTrace() ;
}
}
}
private void selectEntry(DataSource ds,String id){
Connection cn = null ;
PreparedStatement prepStmt = null ;
ResultSet rs = null ;
try{
cn = ds.getConnection() ;
String deleteStatement =
"select id, firstname, lastname from tbltest where id = ?";
prepStmt = cn.prepareStatement(deleteStatement);
prepStmt.setString(1, id) ;
rs = prepStmt.executeQuery();
System.out.println("sql execute : " + deleteStatement) ;
while (rs.next()) {
System.out.println("the record is : " + rs.getString(1) + "-" + rs.getString(2) + "-" + rs.getString(3));
}
}catch(SQLException ex){
ex.printStackTrace() ;
System.out.println("sql execute select fail: " + ex.getMessage() ) ;
}finally{
try{
if(rs != null)
rs.close() ;
if(prepStmt != null)
prepStmt.close() ;
if(cn != null)
cn.close() ;
}catch (SQLException ex) {
ex.printStackTrace() ;
}
}
}
}
=================================================
=================================================
but when i run it again , the following error message occurs:
[02.11.22 17:26:49:919 CST] 2bb97b12 Server A WSVR0023I:服务器 Default Server 为电子商务开放
[02.11.22 17:26:59:871 CST] 5d6abb10 SystemOut U set session context load ...
[02.11.22 17:26:59:881 CST] 5d6abb10 SystemOut U ejb create load ...
[02.11.22 17:27:00:262 CST] 5d6abb10 SystemOut U connection is opened ...
com.ibm.ejs.cm.exception.TransactionAbortedException: JTS/JTA transaction has been aborted
at com.ibm.ejs.cm.pool.ConnectO.enlist(ConnectO.java:707)
at com.ibm.ejs.cm.pool.ConnectO.enlist(ConnectO.java:373)
at com.ibm.ejs.cm.pool.ConnectO.preInvoke(ConnectO.java:1300)
at com.ibm.ejs.cm.proxy.Proxy.__preInvoke(Proxy.java:113)[02.11.22 17:27:03:356 CST] 5d6abb10 ConnectO X CONM6016E:未能加入事务。抛出新的 (TransactionAbortedException)
at com.ibm.ejs.cm.proxy.Proxy.__preInvoke(Proxy.java:98)
at com.ibm.ejs.cm.proxy.OracleConnectionProxy.prepareStatement(OracleConnectionProxy.java:150)
at hello.StateSession1Bean.selectEntry(StateSession1Bean.java:150)
at hello.StateSession1Bean.selectRecord(StateSession1Bean.java:37)
at hello.EJSRemoteStatefulStateSession1.selectRecord(EJSRemoteStatefulStateSession1.java:49)
at hello._EJSRemoteStatefulStateSession1_Tie._invoke(_EJSRemoteStatefulStateSession1_Tie.java:137)
at com.ibm.CORBA.iiop.ExtendedServerDelegate.dispatch(ExtendedServerDelegate.java:506)
at com.ibm.CORBA.iiop.ORB.process(ORB.java:2294)
at com.ibm.CORBA.iiop.OrbWorker.run(OrbWorker.java:185)
at com.ibm.ejs.oa.pool.ThreadPool$PooledWorker.run(ThreadPool.java:95)
at com.ibm.ws.util.CachedThread.run(ThreadPool.java:122)
[02.11.22 17:27:03:766 CST] 5d6abb10 SystemOut U sql execute select fail: JTS/JTA transaction has been aborted
=================================================
=================================================
and the Client throws exception is :
Initializing bean access.
Initializing bean lookup...
Initializing bean narrow...
Succeeded initializing bean access.
Succeeded create remote object.
Failed initializing bean access.CORBA TRANSACTION_ROLLEDBACK 0 No; nested exception is:
org.omg.CORBA.TRANSACTION_ROLLEDBACK: com.ibm.websphere.csi.CSITransactionRolledbackException:
at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:194)
at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:67)
at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:411)
at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:2368)
at hello.EJSRemoteStatefulStateSession1.selectRecord(EJSRemoteStatefulStateSession1.java:60)
at hello._EJSRemoteStatefulStateSession1_Tie._invoke(_EJSRemoteStatefulStateSession1_Tie.java:137)
at com.ibm.CORBA.iiop.ExtendedServerDelegate.dispatch(ExtendedServerDelegate.java:506)
at com.ibm.CORBA.iiop.ORB.process(ORB.java:2294)
at com.ibm.CORBA.iiop.OrbWorker.run(OrbWorker.java:185)
at com.ibm.ejs.oa.pool.ThreadPool$PooledWorker.run(ThreadPool.java:95)
at com.ibm.ws.util.CachedThread.run(ThreadPool.java:122)
minor code: 0 completed: No
at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:2407)
at hello.EJSRemoteStatefulStateSession1.selectRecord(EJSRemoteStatefulStateSession1.java:60)
at hello._EJSRemoteStatefulStateSession1_Tie._invoke(_EJSRemoteStatefulStateSession1_Tie.java:137)
at com.ibm.CORBA.iiop.ExtendedServerDelegate.dispatch(ExtendedServerDelegate.java:506)
at com.ibm.CORBA.iiop.ORB.process(ORB.java:2294)
at com.ibm.CORBA.iiop.OrbWorker.run(OrbWorker.java:185)
at com.ibm.ejs.oa.pool.ThreadPool$PooledWorker.run(ThreadPool.java:95)
at com.ibm.ws.util.CachedThread.run(ThreadPool.java:122)
minor code: 0 completed: No
=================================================
=================================================
please tell me how to correct it, thank you very much!
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: help me for stateful session bean please!