2013/02/21

三層應用 webconnection與httpsrvr.dll與IIS的有關的問題

似乎可以改善WebConnection的連線狀況,有時間來試試


資料節錄如下:
改寫部分RemoteDataModule中的代碼:
線程模型(Threading Model)用Neutral
 /// Delphi
class procedure TEverydayInfoServer.UpdateRegistry(Register: Boolean; 
    const ClassID, ProgID: string);
begin
  if Register then
  begin
    inherited UpdateRegistry(Register, ClassID, ProgID);
    EnableWebTransport(ClassID);
    RegisterPooled(ClassID, 50, 1); //關鍵是這一句,用緩衝池的.
  end else
  begin
    DisableWebTransport(ClassID);
    UnregisterPooled(ClassID);
    inherited UpdateRegistry(Register, ClassID, ProgID);
  end;
end;

2015/ 02/19 更新
 // C++ Builder
  // Listing 21.1 UpdateRegistry to enable Connection Pooling
  // Function invoked to (un)register object
  //
  static HRESULT WINAPI UpdateRegistry(BOOL bRegister)
  {
  TRemoteDataModuleRegistrar regObj(GetObjectCLSID(),  GetProgID(), GetDescription());
  // Disable these flags to disable use by socket or Web connections.
  // Also set other flags to configure the behavior of your application server.
  // For more information, see atlmod.h and atlvcl.cpp.
  regObj.Singleton = false;
  regObj.MaxObjects = 10;
  regObj.Timeout = 42;
  regObj.RegisterPooled = true;
  regObj.EnableWeb = true;
  regObj.EnableSocket = true;
  return regObj.UpdateRegistry(bRegister);
  }

從 Document 來看,設定後會保留一個 RDM Instance,一併設定 Client 的最大連線數。

Client 連線數設定上限也可以達到節省 Database 的版權費用,的確可以參考使用。

資料來源:

沒有留言:

張貼留言