清幽傲竹实现的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。

时间: 2024-09-25 00:35:16

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

利用Application和Session优化Asp的数据库联接

application|session|数据|数据库|优化 ....对于Asp开发中对数据库的连接管理,目前一般的处理方法都是调用一个conn.asp页面,在里面定义好相关的变量,然后根据不同的数据库类型,建立好对应的Connection:以后其他需要数据库联接的地方就调用该页面,然后进行相应处理!     我在最近的研究中发现,其实这种方法并不是最优化的,对于稍大型一下的系统论坛来说,在每个页面调用时候如果超过连接时间,就需要重新建立一遍对于数据库的连接:我的初步想法是:在conn.asp页面

Asp.net 2.0加密数据库联接字符串

asp.net2.0加密数据库联接字符串 在asp.net2.0中,发布网站时,加密web.config,这样可以有效保证数据库用户和密码安全,其步骤如下: 1.添加密钥 执行:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -pc "hnlaw" -exp 其中"hnlaw"为密钥名称 2.添加web.config节点 在web.config的<configuration><

jdbc通过1433端口连接sqlserver数据库总是失败

问题描述 jdbc通过1433端口连接sqlserver数据库总是失败 最近在做一个小项目,在android的额产品里塞中直接用jdbc连接本地服务器的sqlserver数据库的时候出现这个错误:"请验证连接属性,并检查 SQL Server 的实例正在主机上运行, 且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接" 在网上查阅了很多资料,server的端口都是1433,IP2也启动了,sql实例也都启动了,server服务也重新启动了,防火墙也关闭了

mysql-thinkphp修改MySQL数据库字段失败

问题描述 thinkphp修改MySQL数据库字段失败 想要修改数据表里的uname和phone字段而其他字段不变,提示失败$info['uname'] = I('uname'); $info['phone'] = I('phone');$uid = session('uid');$res=M('member')->where('uid = ""$uid""')->setField($info); 解决方案 'uid = ""$uid

phpmyadmin-求大神~ MySQL数据库导入失败

问题描述 求大神~ MySQL数据库导入失败 错误 SQL 查询: -- phpMyAdmin SQL Dump -- version 4.0.10.7 -- http://www.phpmyadmin.net -- 涓绘------------------------------------- -- 琛ㄧdmin', 0, '', 0, 0, 'blank', 'Y-m-d', 0, 'line', 'a:2:{s:5:"style";s:4:"dash";s:5

sql server-java连接无法打开登陆所请求的数据库“ ” 登录失败

问题描述 java连接无法打开登陆所请求的数据库" " 登录失败 public void doGet(HttpServletRequest req,HttpServletResponse res){ Connection ct=null; Statement sm=null; ResultSet rs=null; try{ System.out.println("1"); //接受用户和密码 String u=req.getParameter("usren

java jsp-为什么我提示我数据库操作失败!!哪里出现了问题。

问题描述 为什么我提示我数据库操作失败!!哪里出现了问题. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% request.setCharacterEncoding("UTF-8"); %> <%@ page import="java.util.*"

entityfram...-ef框架数据库链接失败,基础提供程序在open上失败

问题描述 ef框架数据库链接失败,基础提供程序在open上失败 数据库上能看见表,却总是报这个错,求解啊为什么为什么啊,欲哭无泪了我 解决方案 检查你的连接字符串,以及sql server的配置.比如说实例名.账户.是否允许远程访问.防火墙等等.

vs2008创建数据库实例失败

问题描述 我在用vs2008创建一个web应用程序时在app_data文件夹下添加一个数据库时失败,提示"实例失败" 解决方案 解决方案二:实例名正确么?需要加XXX/sqlexpress?或者是不允许sa登录??多查查原因吧解决方案三:上个星期做的时候没这个问题,今天做却有问题了.就是在aap_data文件夹下添加一个**.mdf文件.提示实例失败.我用sql2005sa可以登录.解决方案四:重装VS解决方案五:有没有不重装得方法啊?谢谢大家了解决方案六:我重启了电脑,可以创建数据库