你这个BMP里启动了自已控制的事务了吧,
   试着把你的事务去掉看一看.

解决方案 »

  1.   

    在配置文件中xml
    <entity>
    <ejb-name>Account</ejb-name>
    ..........................
    ..........................
    <persistence-type>bean<persistence-type>//不能是容器管理
    </entity>
      

  2.   

    BMP不就是bean管理吗?换成container是不是就变成cmp了?
      

  3.   

    看看你的getConnection()方法的代码。
      

  4.   

    ejbStore()
    {}
    改为
    ejbStore()
    {
       String pk = cxt.getPrimaryKey()
       conn = getConnection();
       pstmt = conn.createStatement("update test set dd = 2 where pk=?");
       pstmt.setString(1,pk);
       pstmt.execute();
     }
      

  5.   

    应该不是getConnection()方法有问题,我使用同样的代码连接oracle数据库,都没有一点问题,但是连接sql server就会出现这个错误!
      

  6.   

    请在用完数据库链接后,将数据库链接Conn关闭,并且也将使用到的ResutSet对象和PreparedStatement对象关闭。
      

  7.   

    在Ejbstore里将conn.close然后再conn=getconnection();OK?
      

  8.   


    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();
      

  9.   

    我在ejbCreate()方法最后已经释放了所有的资源了,而且我跟进程序中发现ejbStore()方法中用到的连接压根跟ejbCreate()中的连接没有关系,怎么能说是cloned Connection呢?同样的程序,我要是采用Oracle数据库一点问题都没有,现在我觉得可能是数据库的问题,但是不知道该怎么办!狂郁闷中!