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


    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;

        }

    我要啦免费统计
  • 相关阅读:
    Java系列: JAVA字符串格式化-String.format()的使用(zz)
    Eclipse系列: 在Eclipse中用TODO标签管理任务(Task)(ZZ)
    JNDI全面总结(zz)
    Java Platform Standard Edition 8 Documentation
    JAVA NIO是什么(zz)
    Java NIO框架Mina、Netty、Grizzly介绍与对比(zz)
    Bootstrap系列 -- 25. 下拉菜单分割线
    Bootstrap系列 -- 24. 下拉菜单基本用法
    Bootstrap系列 -- 23. 图片
    Bootstrap系列 -- 22. 按钮详解
  • 原文地址:https://www.cnblogs.com/attilax/p/5963885.html
Copyright © 2020-2023  润新知