24 時間 365 日稼働する非常に大きな DataSnap サーバーがあり、現在稼働している MIDAS (COM) サーバーの代わりになります。現在、接続されているすべてのクライアントを強制的に切断することなく、そのサーバーを更新する方法の問題に直面しています。
現在の midas サーバー (ちなみに、サービスを提供するための膨大なトラフィックはありません) では、接続がなくなるまで待ってから、サーバー アプリケーションをシャットダウンし、exe ファイルを置き換えます。サーバーが「ダウン」しているときに新しい接続が発生した場合、それは COM オブジェクトであるため、OS によって「プルアップ」され、クライアントに問題は発生しません。
新しい DataSnap アーキテクチャはもはや COM に基づいていません (すばらしい!) が、この方法では、新しい接続を失敗させることなくサーバーを停止する機会を失います。
一種の TCP「プロキシ」または「トンネル」が問題を解決できると考えていたので、新しいサーバー exe をどこかに置くだけで、その「プロキシ」にクライアント接続を新しい DS サーバーにリダイレクトさせることができます。TIdMappedPortTCP を試してみましたが、サーバーとクライアントのダイアログのランダムなポイントで継続的にハングします。
何か案は?
編集:効率上の理由から、純粋な TCP/IP トランスポートで DataSnap を使用しているため、http プロキシは私の特定のケースには適していません。