複数の EXE で構成されるクライアント/サーバー アプリケーションがあります。データ アクセス レイヤーは、EXE モジュールによって共有されるライブラリ内のクライアントと同じ物理層にあります。ODBC および OleDB 接続プールは、プロセスごとに管理されます。プロセス間で DB 接続を共有する手法はありますか (データ アクセス層を中間層に移動する以外に)?
Natalie
質問する
1711 次
1 に答える
4
OLEDB と ODBC のデータベース接続は、本質的にプロセス バウンドです。最も低いレベルでは、SQL Server データベース接続は、名前付きパイプ、共有メモリ、TCP ソケットなどの IPC メカニズムを使用しています。他のデータベースは、おそらくネットワーク接続のみを使用します。考えてみると、接続プールを共有して接続を共有するには、これらの低レベル オブジェクト (ソケット、名前付きパイプ、共有メモリ セクション) を別のプロセスにコピーして、それらを管理できるようにする必要があります。それらを引き渡すことができたとしても、それらを同時に使用することはできません。
やりたいことを実行するには、データ アクセス レイヤーを、複数の exe すべてが使用したい共有スペースに移動する必要があります。これは通常、中間層であり、各 exe は何らかの IPC メカニズム (.net リモーティング、com サーバー、RPC、ネットワークなど) を介して中間層と通信します。
于 2008-12-14T01:14:32.800 に答える