zoukankan      html  css  js  c++  java
  • 清幽傲竹实现的kbmMWServer数据库联接失败重联(转载红鱼儿)

    1。修改kbmMWUnidac单元的TkbmMWUNIDACConnection.InternalOpenConnection方法,加上:

     

             //支持unidac重联
              FDatabase.Options.LocalFailover:=Options.LocalFailover;
              FDatabase.OnConnectionLost:=OnConnectionLost;
              FDatabase.AfterConnect:=AfterConnect;

    2.处理UniConnection组件:

    设置Options.LocalFailover:=True;

    编码OnConnectionLost及AfterConnect事件:

    procedure TFServerDM.UniMysqlConnectionConnectionLost(Sender: TObject;
      Component: TComponent; ConnLostCause: TConnLostCause;
      var RetryMode: TRetryMode);
    begin
      if (Sender as TUniConnection).Tag < 1 then
      begin
        RetryMode := rmReconnectExecute;
        (Sender as TUniConnection).Tag := (Sender as TUniConnection).Tag + 1;
      end
      else
      begin
        RetryMode := rmRaise;
        (Sender as TUniConnection).Tag := 0;
      end;
    end;

    procedure TFServerDM.UniMysqlConnectionAfterConnect(Sender: TObject);
    begin
      (sender as TUniConnection).Tag := 0;
    end;

    感谢清幽傲竹!用这方法,就不怕数据库与AppServer的异常断开了!

    我没有遇到这个问题,可能的原因是生产环境好,用的还是MSSQL,联接没有异常断开过,竹子用的是MYSQL。
  • 相关阅读:
    Android Studio 的 10 个你非常有可能不知道的技巧
    SSH框架的基本整合
    Spring Boot 配置类1-配置类流程
    Spring Boot web容器启动
    Tomcat介绍
    微服务演进史
    SpringBoot异常报告器
    SpringBoot Profile源码介绍
    SpringBoot Environment使用
    Spring Aware原理
  • 原文地址:https://www.cnblogs.com/xalion/p/4672847.html
Copyright © 2011-2022 走看看