您的位置:首页 > 数据库

atitit.提升稳定性---hibernate 增加重试retry 机制解决数据库连接关闭

2014-09-01 21:55 489 查看
atitit.提升稳定性---hibernate 增加重试retry 机制解决数据库连接关闭

1. 流程总结

retry(5times).invoke(xxx).test().rest().$() throw OvertimeEX

retry(5times):: throw OvertimeEX

调用器() /// 调用原来的api

测试器() :::://////返回T/f

Reset() //// 重设器

End::

测试器()

命令Case1 ok, 返回T

Case2 fail, 返回F,>>重试

Case3 ex,返回F>>>重试

作者:: 老哇的爪子 Attilax 艾龙, EMAIL:1466519819@qq.com

转载请注明来源: http://blog.csdn.net/attilax

2. class

Deprecated

public abstract class retry

这个马reset 方法

3. retryO7 带reset方法

public static Session getSession() {

// attilax 老哇的爪子 i4148 o78

//for log rzt detail msg... normal use not neccesry...

retryRzt rzt = new retryRzt();

return new retryO7<Session>(5, rzt) {

@Override

public Boolean item(Object t) throws Exception {

// attilax 老哇的爪子 下午11:49:37 2014年6月9日

final Session sess = getSessionOri();

this.setResetObj(sess);

List li = sess.createQuery("select 1").list();

// core.ex4test();

if (li.size() > 0) {

this.setResult(sess);

return true;

}

return false;

}

// return null;

@Override

public void reset(final Object sessObj) {

core.log("---o79: conn is close ,now startclose session..");

Session sess = (Session) sessObj;

sess.close();

}

}.$O69();

}

4. getSessionOri

public static Session getSessionOri() throws HibernateException {

Session session = (Session) threadLocal.get();

if (session == null || !session.isOpen()) {

if (sessionFactory == null) {

rebuildSessionFactory();

}

session = (sessionFactory != null) ? sessionFactory.openSession()

: null;

threadLocal.set(session);

}

return session;

}



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐