我们在oracle11GR2上使用DRCP。 PHP程序通过DRCP机制连接。 其中一些不使用类名(连接类) 我们可以在这里看到它:
SQL> select cclass_name from SYS.V_$CPOOL_CONN_INFO t
2 where t.CCLASS_NAME like '%.OCI:SP%';
CCLASS_NAME
--------------------------------------------------------------------------------
HR.OCI:SP:VrTPt6ovb+3gU2c2QwotSD
HR.OCI:SP:VrTUiOwbcWzgU2c2QwrueA
HR.OCI:SP:VrTDd2EXbNrgU2c2QwppDC
HR.OCI:SP:VrStd0RaZqbgU2c2QwrYOB
HR.OCI:SP:VrS7pWwzap/gU2c2Qwoi1B
GUEST.OCI:SP:VrTHg68PbTbgU2c2QwphTC
GUEST.OCI:SP:VrTKGjaBbgbgU2c2QwpPDD
GUEST.OCI:SP:VrTCpw5jbMDgU2c2Qwo9pD
8 rows selected
SQL>
我想知道哪个应用程序正在这样做并避免这种竞争。 所以我有两个问题:
1)有没有办法将SYS.V_ $ CPOOL_CONN_INFO加入v $ session或v $ process等视图,以了解哪个进程有罪?
2)我可以请求php团队在配置文件中强制使用环境变量来强制使用默认类吗?
答案 0 :(得分:1)
V $ CPOOL_CONN_INFO的PROGRAM和MACHINE列可能就是您想要查看的内容。
您可以在SADDR / SESSION_ADDR
上加入V $ SESSION不要忘记要求开发人员设置跟踪属性,如
oci_set_action() — Sets the action name
oci_set_module_name() - Sets the module name
oci_set_client_info() - Sets the client information
oci_set_client_identifier() - Sets the client identifier
在php.ini中没有默认连接类的基本原理是,这可能会在不应该共享它的应用程序之间“泄漏”会话信息。如果您感觉强烈,请求更改的地方位于PHP bug database。