一个关于BMP调用的问题!

luoyewuhen 2003-08-25 11:27:30
我仅仅在客户端程序调用一个create()方法向数据库插入一个数据,程序执行bean实现类中的ejbCreate()方法实现了数据插入,没有问题!但是,BMP自动调用ejbStore()方法,这时候会产生一个异常:Can't start a cloned connection while in manual transaction mode.跟踪进程序发现程序在ejbStore()中的conn.createcreateStatement()这句话跳出!
附上程序代码:
ejbCreate()
{
conn = getConnection();
pstmt = conn.prepareStatement("insert into test values(?,?)");
pstmt.setString(1, tt);
pstmt.setString(2, dd);
pstmt.executeUpdate();
}
ejbStore()
{
conn = getConnection();
pstmt = conn.createStatement();
pstmt.executeUpdate("update test set dd = 2");
}

我已经在程序中跟踪发现在ejbStore()中conn是能用的,实在搞不明白为什么!!!!!!!
...全文
36 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
luoyewuhen 2003-09-05
  • 打赏
  • 举报
回复
我在ejbCreate()方法最后已经释放了所有的资源了,而且我跟进程序中发现ejbStore()方法中用到的连接压根跟ejbCreate()中的连接没有关系,怎么能说是cloned Connection呢?同样的程序,我要是采用Oracle数据库一点问题都没有,现在我觉得可能是数据库的问题,但是不知道该怎么办!狂郁闷中!
netcobol 2003-09-05
  • 打赏
  • 举报
回复

ejbLoad()
{ try{
............
}catch(.....){
}finally{
if(pstmp!= null) pstmp.close();
if(conn!=null) conn.close();
}
}
ejbStore()
{}
改为
ejbStore()
{
String pk = cxt.getPrimaryKey()
conn = getConnection();
pstmt = conn.createStatement("update test set dd = 2 where pk=?");
pstmt.setString(1,pk);
pstmt.execute();
lye2000001979 2003-09-04
  • 打赏
  • 举报
回复
在Ejbstore里将conn.close然后再conn=getconnection();OK?
cheny 2003-09-04
  • 打赏
  • 举报
回复
在create中没有返回主键,
Martin2002 2003-09-03
  • 打赏
  • 举报
回复
请在用完数据库链接后,将数据库链接Conn关闭,并且也将使用到的ResutSet对象和PreparedStatement对象关闭。
luoyewuhen 2003-09-03
  • 打赏
  • 举报
回复
应该不是getConnection()方法有问题,我使用同样的代码连接oracle数据库,都没有一点问题,但是连接sql server就会出现这个错误!
luoyewuhen 2003-08-29
  • 打赏
  • 举报
回复
BMP不就是bean管理吗?换成container是不是就变成cmp了?
asdmonster 2003-08-29
  • 打赏
  • 举报
回复
看看你的getConnection()方法的代码。
netcobol 2003-08-29
  • 打赏
  • 举报
回复
ejbStore()
{}
改为
ejbStore()
{
String pk = cxt.getPrimaryKey()
conn = getConnection();
pstmt = conn.createStatement("update test set dd = 2 where pk=?");
pstmt.setString(1,pk);
pstmt.execute();
}
netcobol 2003-08-27
  • 打赏
  • 举报
回复
在配置文件中xml
<entity>
<ejb-name>Account</ejb-name>
..........................
..........................
<persistence-type>bean<persistence-type>//不能是容器管理
</entity>
luoyewuhen 2003-08-26
  • 打赏
  • 举报
回复
不懂,试着说清楚明白一点
Djava 2003-08-25
  • 打赏
  • 举报
回复
你这个BMP里启动了自已控制的事务了吧,
试着把你的事务去掉看一看.

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧