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。

清幽傲竹实现的kbmMWServer数据库联接失败重联(转载红鱼儿)的更多相关文章

  1. 清幽傲竹实现kbmMWServer的方法(转)

    感谢竹子! 整体思路,是不用kbmMWUNIDACQuery,而是直接用uniQuery做数据查询,利用kbmMWUNIDACConnectioPool取得数据库联接,自己再建一个uniQuery对象 ...

  2. "SQLServer无法打开用户默认数据库,登录失败,错误4064"的解决办法

    "SQLServer无法打开用户默认数据库,登录失败,错误4064"的解决办法 1.检查登录密码 如果密码错误,修改数据库密码,用windows身份验证登录进去, (1)安全--登 ...

  3. tomcat 运行异常Cannot create PoolableConnectionFactory (到主机 的 TCP/IP 联接失败)(用户sa登录失败)

    这是在java web中启动tomcat遇到的问题,因为这个问题,整整折腾了两天的时间,找了很都解决方案,但终究还是不能正常.现在整理下这个问题的解决方案: 首先,出这个问题之前,请检查一下的问题,这 ...

  4. SQL Server数据库附加失败:错误5120和错误950

    再次敲机房,想參考曾经的物理模型,结果在附加数据库这一环节出现了点问题,以下总结一下. 1.附加数据库失败,错误5120 对于这样的错误,我在网上搜集了一下,主要有下面几种解决的方法: 方法一:将要附 ...

  5. 【转载】Sqlserver强制密码过期导致数据库登录失败

    Sqlserver在设置登录账户信息的时候,有个复选框信息会被默认勾上,即强制实施密码策略,默认勾选上的还有强制密码过期.如果勾上了这个强制密码过期后,则你的账户密码在一定时间登录后会提示Sqlser ...

  6. ORA-03113: end-of-file on communication channel 磁盘慢,数据库启动失败

    磁盘慢,数据库启动失败:解决思路:1.让数据文件offline: 2.删除表空间 SQL> startup pfile='/server/oracle/admin/test/pfile/init ...

  7. Oracle 11g 发行版2的安装,PLSQL_Developer安装 , Oracle数据库安装失败,完全卸载,常用的命令

    Oracle 11g 发行版2的安装 PLSQL_Developer安装 Oracle数据库安装失败,完全卸载oracle11g 常用的命令 Oracle 11g 发行版2的安装 1. 下载 下载地址 ...

  8. Linux删除ORACLE数据库用户失败提示ORA-01940解决方法

    操作环境 SuSE11+Oracle11gR2 问题现象 删除ORACLE数据库用户失败,提示ORA-01940: cannot drop a user that is currently conne ...

  9. Hive中将文件加载到数据库表失败解决办法

    Hive中将文件加载到数据库表失败解决办法(hive创建表失败) 遇到的问题: FAILED: Execution Error, return code 1 from org.apache.hadoo ...

随机推荐

  1. cnpm安装

    npm install -g cnpm --registry=https://registry.npm.taobao.org 如果安装失败,可以使用 npm cache clean 清理缓存,然后再重 ...

  2. 全国高校绿色计算大赛 预赛第一阶段(C++)第1关:将字符串反转

    挑战任务 将输入的字符串str进行反转. 编程要求 补全右侧vector<char> inversion(string str)函数实现字符串的反转并返回反转之后的字符串,其中函数参数st ...

  3. pta l2-1紧急救援(Dijkstra)

    题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805073643683840 题意:给n个城市,m条边,每个城市 ...

  4. openstack(pike 版)集群部署(一)----基础环境部署

    一.环境 1.系统: a.CentOS Linux release 7.4.1708 (Core) b.更新yum源和安装常用软件 #  yum -y install  epel-release ba ...

  5. 数位dp poj1850

    题目链接:https://vjudge.net/problem/POJ-1850 这题我用的是数位dp,刚刚看了一下别人用排列组合,我脑子不行,想不出来. 在这题里面我把a看成1,其他的依次递增,如果 ...

  6. Unity之Application.runInBackground = true

    默认是False, 设置 Application.runInBackground = true; 则 void OnApplicationPause(bool pause) 不再起作用

  7. SQL Server2005/2008 作业执行失败的解决办法

    数据库:SQL Server 2005/2008,运行环境:Windows Server 2008  在数据库里的所有作业都执行失败,包括自动执行和手动执行.在事件查看器里看到的错误报告如下: 该 作 ...

  8. netcore sqlserver linq contains生成的sql语句不是使用like而是charIndex

    在ef中使用linq调用了contains,结果怎么都查不到值,打开sqlserver profiler 发现生成的sql语句不是使用like...而是CharIndex 参考文档:https://s ...

  9. CSS day49

    前端基础之CSS CSS介绍 CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTML元素. 当浏览器读到一个样式表,它就会按照这个样式表来对文档进行格式化(渲染). CS ...

  10. 完全卸载jdk

    完全卸载jdk  如(卸载jdk1.7.0_80),  当卸载jdk时出现删除信息不全,导致无法安装,可通过此方法实现完全卸载. 1.打开系统运行输入regedit(注册表)分别查找以下路径  (1) ...