暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 数据库驻留连接池和代理用户

askTom 2016-05-10
475

问题描述

嗨,伙计们,

我正在学习DRCP和代理用户,以期将它们都合并到我们的应用程序中。因此,我有以下两个问题。希望你能帮上忙! !

问题1 :

当使用数据库驻留连接池功能时,我观察到以下行为。

1)使用DBMS_连接_POOL.start_s( )打开连接池,使用默认值;
2)更改TNS连接详细信息以添加
3)使用修改的TNS连接详细信息成功连接到数据库。

都很好...但是

如果超出MAX_THINK_TINK_TIM参数(缺省值为120 ) (即。池化会话不会发出任何命令) ,会话将终止并生成ORA-03113 :通信通道上的文件结尾。我相信这是有记录的,但似乎有一个令人讨厌的副作用:

假设,作为应用程序的一部分,使用2,000个数字的缓存选项定义了一个序列。我注意到,每当以这种方式终止一个池化的会话时,序列会丢弃缓存中的未使用的数字- -就好像实例会因此重新启动一样。我已经浏览了在线手册,我找不到任何地方都有这种行为的记录。如果这确实是所需的行为,是否可以覆盖此行为(除了增加MAX_THINK_TINK_TING参数之外) ?

问题2 :

使用代理用户功能时,是否有方法在命令行中为SQL*Plus指定代理用户密码?有很好的说明,可以使用以下语法指定代理用户:

$sqlplus /nolog
SQL> conn web[mark]/web@testpdb

可以使用以下语法添加标记的密码,但似乎不起作用:
SQL> conn web[mark/mark]/web@testpdb

我还使用Pro*C ,但找不到类似于EXEC SQL连接的扩展来允许代理用户。

先谢了
马克。


专家解答

我没看到这样的行为

SQL> select seq.nextval from dual;

   NEXTVAL
----------
    200013

[wait]

SQL> /
select seq.nextval from dual
*
ERROR at line 1:
ORA-03113: end-of-file on communication channel
Process ID: 2336
Session ID: 216 Serial number: 31927


SQL> conn mcdonac/xxxxxx@np12_pooled
Connected.

SQL> select seq.nextval from dual;

   NEXTVAL
----------
    200014


你确定它不只是正常的行为,也就是说,当一个序列老化到内存不足时,你就会丢失缓存。在这种情况下,您可以使用dbms_共享池来固定序列来解决这个问题。

关于问题2 ,我不确定其理由...

conn web[mark]/web@testpdb

这很有意义,因为“web”被授予了不使用Mark密码的标记连接的特权。

conn web[mark/mark]/web@testpdb

说我们已经知道马克的密码了,那我们为什么不

conn标记/mark@testpdb






「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论