UniDAC 斷線重連方法

來源:互聯網
上載者:User

標籤:exec   pass   dac   nal   ase   exe   false   oca   pen   

KBM服務端的 UniConnection 要實現斷線重連(串連 MSSQLServer), 需要以下幾個步驟:

一、修改單元檔案:kbmMWUniDAC.pas 

 

procedure TkbmMWUNIDACConnection.InternalOpenConnection(ConnectionPool:TkbmMWCustomConnectionPool);begin  // Create new database connection using template.  with TkbmMWUNIDACConnectionPool(ConnectionPool).FDBTemplate do  begin    //  針對UniDAC需要增加這個語句,否則串連資料庫失敗    FDatabase.Server := Server;    FDatabase.Database := Database;    FDatabase.Username := UserName;    FDatabase.Password := Password;    FDatabase.LoginPrompt := False;    FDatabase.ProviderName := ProviderName;        FDatabase.Port := Port;    FDatabase.SpecificOptions.Assign(SpecificOptions);    // 支援unidac重聯    FDatabase.Options.LocalFailover:=Options.LocalFailover;    FDatabase.OnConnectionLost:=OnConnectionLost;    FDatabase.AfterConnect:=AfterConnect;    with TkbmMWUNIDACConnectionPool(ConnectionPool) do      if Assigned(FOnSetupDBConnection) then        FOnSetupDBConnection(self,FDatabase);  end;   if FDatabase.ProviderName=‘SQL Server‘  then    CoInitialize(nil);  FDatabase.Open;end;

  

 

二. 把 UniConnection  的 Options.LocalFailover:=True ; 

 

三. 在 UniConnection  的 ConnectionLost 事件修改如下:

 

procedure TDM.CON_AConnectionLost(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;

  

四、如果在服務端的函數裡有調用 UniQuery 或其他資料庫組件,在函數的開頭加:CoInitialize(nil);  結尾加:CoUninitialize;

 


 

 

UniDAC 斷線重連方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.