Ibatis批处理SqlMapClient使用不关闭,资源耗尽,死锁错误!

博客讲述了在实现消息缓存时,由于使用Ibatis批处理而不关闭SqlMapClient,导致服务器出现死锁和资源耗尽的问题。通过分析,发现问题是由于频繁启动线程并进行数据库操作,未正确管理事务和释放数据库连接。添加事务管理并确保SqlMapClient关闭后,解决了死锁和资源耗尽的情况,强调了事务管理和数据库资源释放的重要性。
摘要由CSDN通过智能技术生成

 今天做OA的及时消息通讯的---消息缓存方式实现.

因为要求缓存消息,发送到服务器的消息并不会立即持久化到数据库中,我做的是,当缓存的消息达到一定的数目的时候,启动持久化线程,进行持久化,持久化是用Ibatis写的一个方法:如下:

 

public   void  insertMEG2REV(Hashtable messagequeue, Vector receiverqueue)  throws  MessageErrorException, SQLException {
        SqlMapClient sqlmap
=(SqlMapClient)ServiceLocator.findMyBean("sqlMapClient");
        
                    
            sqlmap.startBatch();
        Enumeration em
=messagequeue.elements();
        
//插入及时消息
        while(em.hasMoreElements()){
            Message message
=(Message)em.nextElement();
          Object Key
=sqlmap.insert("MessageDao.insertNewMessage3",message);
        
        }
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值