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. matlab画图标题自定义字体大小

    title('标题','fontname','Times New Roman','Color','b','FontSize',20);字体是Times New Roman,颜色是蓝色('b'即blue ...

  2. python 最简单的爬虫

    import urllib.request file=urllib.request.urlopen("http://www.qq.com") data=file.read() da ...

  3. Unity性能优化 – 脚本篇

    https://wuzhiwei.net/unity_script_optimization/

  4. 绝对路径${pageContext.request.contextPath}

    ${pageContext.request.contextPath}用于解决使用相对路径时出现的问题,它的作用是取出所部署项目的名字. 如图,${pageContext.request.context ...

  5. FragmentManager V4包下 应该用FragmentActivity

    import android.os.Bundle; import android.support.v4.app.FragmentActivity; public class MainActivity ...

  6. spring boot 1.5.3项目放到resin4.0.53报错

    报错信息: {main} java.lang.AbstractMethodError: org.hibernate.validator.internal.engine.ConfigurationImp ...

  7. 遇到返回键会退到页面的问题(window.location)

    我的需求是a全局列表页->b展示列表页->c新增页(编辑页)我从b展示列表页,通过编辑进入c编辑页,保存回到b展示列表页. 重,我的b展示列表页,返回要返回的其实是a全局列表页*使用rep ...

  8. 访问WebServcie遇到配额不足的时候,请增加配额

    常常遇到的报错: 1.错误一: Error in deserializing body of reply message for operation 'GetArticleInfo'.,StackTr ...

  9. python学习笔记Day2

    字符编码 编程规范(PEP8) 变量1.常量(用大写) 2.变量 常用类型:str .int.float. long.bool 字串格式化: %d 整数 %2d占两位 %02d占两位用0填充 %f 浮 ...

  10. Attribute Syntax

    Attribute Syntax This section describes the syntax with which __attribute__ may be used, and the con ...