一部のビジネス ロジック タスクにはステートフルな DataSnap サーバーを使用し、クライアント データセット データを提供します。
ビジネス ルールを変更するためにサーバーを更新する必要がある場合は、新しいバージョンを新しい空のフォルダにコピーして登録します (Delphi のバージョンに応じて、TRegSvr ユーティリティを起動または実行するだけです)。
これは、古いサーバー インスタンスの実行中でも実行できます。ただし、新しいバージョンを登録した後は、すべての新しいクライアント接続で、現在実行中の (古い) サーバー インスタンスが引き続き使用されます。最初にすべてのクライアントを切断する必要があります。その後、新しいサーバーが次のクライアントに使用されます。
登録直後に、すべての新しいクライアント接続を新しいサーバーに転送する方法はありますか?
(新しいまたは変更されたメソッド署名にはクライアントの変更と再起動も必要であることは知っていますが、この質問はインターフェイスに影響を与えない内部変更に関するものです)
ソケット接続を使用しており、すべてのクライアントが同じサーバー アプリケーションを共有しています (1 つのアプリケーション ウィンドウのみが開いています)。初期の頃は、クライアントごとに 1 つのアプリ ウィンドウになるリモート データ モジュールの別の構成を使用していました。多分これは解決策になるでしょうか?(すべての新しいクライアントが現在登録されている実行可能ファイルを起動するため)
更新: Delphi XE は、(更新されたサーバーの) 「ホット デプロイメント」をサポートしていますか? 現在、Delphi 2009 を使用していますが、「ホット デプロイメント」の実装がより簡単であれば、XE にアップグレードします。