2

我们有一个由多个 EXE 组成的客户端/服务器应用程序。数据访问层与我们的 EXE 模块共享的库中的客户端位于同一物理层。ODBC 和 OleDB 连接池是按进程管理的;是否有跨进程共享数据库连接的技术(除了将数据访问层移动到中间层)?

4

1 回答 1

4

OLEDB 和 ODBC 中的数据库连接本质上是进程绑定的。在最低级别,sql server 数据库连接使用 IPC 机制,如命名管道、共享内存或 tcp 套接字。其他数据库可能专门使用网络连接。如果您考虑一下,要共享连接池并因此共享连接,您需要将这些低级对象(套接字、命名管道、共享内存部分)复制到另一个进程,然后允许它们管理它们。即使您可以将它们交给您,您也无法同时使用它们。

要做你想做的事,你真的必须将数据访问层移动到所有多个 exe 都想使用的共享空间中。这通常是一个中间层,然后每个 exe 将通过某种 IPC 机制(.net 远程处理、com 服务器、RPC、网络等)与之通信。

于 2008-12-14T01:14:32.800 回答