puccaa9467 发表于 2012-08-02 15:11

proc程序是否能采用shared server方式连接数据库?

Oracle服务器处理请求的两种最常见的方式,分别是专用服务器(dedicated server)连接和共享服务器(shared server)。
专用服务器模式下,客户登录时,Oracle总会创建一个新的进程,这个服务器进程会在会话生存期中进行专门服务。对于每个会话,都会出现一个新的专用服务器,会话与专用服务器之间存在一对一的映射。按照定义,这个专用服务器不是实例的一部分。客户进程(也就是想要连接数据库的程序)会通过某种网络通道(如TCP/IP socket)与这个专用服务器直接通信,并由这个服务器进程接收和执行客户的SQL。
共享服务器(shared server),正式的说法是多线程服务器(Multi-Threaded Server)或MTS。如果采用这种方式,就不会对每条用户连接创建另外的线程或新的UNIX 进程。在共享服务器中,Oracle 使用一个“共享进程”池为大量用户提供服务。共享服务器实际上就是一种连接池机制。
我将oracle设置成shared server的方式了
shared_servers=3
max_shared_servers=5
dispatchers="(protocol=TCP)"
我们系统是c语言编程,采用proc程序链接数据库。
不过我们并没有采用多线程。请问各位大仙。我们是否能用shared server方式连接数据库呢
我查了好多资料。shared sever的前生就是multi_threaded server,证明共享服务器,就是应对多线程产生的。我还是想问问。只有进程,是否能用shared server的方式连接数据库呢

puccaa9467 发表于 2012-08-03 16:01

我自己以及解决了
http://blog.csdn.net/fangang001/article/details/7331985
从这个帖子中得到的启示。
我们之前proc程序连接oracle数据库一直是直连server断。
没有从tnsname.ora中获取变量。
oracle11g貌似在server端可以装客户端。oralce10g不行。不知道为什么
1。于是按照上面网页的方式配置了tnsname.ora
2。EXEC SQL CONNECT :userid USING :remoteDB;
3。配置shared server
        设置3个参数shared_servers, max_shared_servers,dispather
4。编译系统,然后重启。
我们的系统程序就是用shared的方式访问数据库了。
页: [1]
查看完整版本: proc程序是否能采用shared server方式连接数据库?