ORACLE自动断开数据库连接解决办法

 

最近,有客户提出在系统的应用中使用PLSQL DEVELOPER工具,出现数据库频繁自动断开连接,是在不使用的情况下(每隔一段时间)的异常现象,而且还有个怪异形象,就是同一个网段就没有出现过这样的现象,由于开发人员提到了,就到网上找相应的资料,有三种解决方法。

方法一、直接修改资源配置文件

第一步,查询资源文件,找到CONNECT_TIME所在的profile名。

select resource_name,profile from dba_profiles;

第二步,用alter命令修改profile中的值;

alter profile MONITORING_PROFILE limit connect_time unlimited;(或跟一个时间值,如1000,单位为分钟)

alter profile MONITORING_PROFILE limit idle_time unlimited;

第三步,用如下命令查看profile中的值;

select resource_name,limit from dba_profiles where profile='MONITORING_PROFILE';

方法二:通过创建资源配置文件并进行用户分配来完成。

分三个步骤在sqlplus环境下完成。[该方法不对其它数据库连接用户产生影响]

第一步,查看并修改resource_limit的状态。

SQL>show parameter resource_limit; 如果为FALSE,则将其修改为TRUE,否则配置不会生效:

SQL>alter system set resource_file=true;

第二步,用create profile命令创建一个新的profile文件:

SQL>create profile [profile文件名] limit connect_time unlimited idle_time unlimited;

[示例:create profile test_profile limit connect_time unlimited idle_time unlimited;]

第三步,将这个新的配置文件分配给该用户:

SQL>alter user   [user_name,如ROOT_QY]  profile [profile文件名];

[示例:alter user root_qy profile test_profile;]

还有一种方法,在监听文件listener.ora文件中设置参数CONNECT_TIMEOUT_LISTENER=0

还有一种可能是网络不稳定因素造成,

目前只是采用了第一种办法,看后面二天的反映情况,如果还出现相应的问题,再继续跟进。。。。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
连接Oracle数据库自动重连机制的实现可以通过以下步骤: 1. 使用Oracle提供的OCI(Oracle Call Interface)库连接数据库。 2. 在连接数据库时,设置OCI_ATTR_CONNECTION_TIMEOUT属性,该属性设置连接超时时间(单位为秒)。 3. 在连接数据库时,设置OCI_ATTR_RETRY_COUNT属性,该属性设置连接失败后的重试次数。 4. 在连接数据库时,设置OCI_ATTR_RETRY_DELAY属性,该属性设置连接失败后的重试间隔时间(单位为秒)。 5. 在连接数据库时,设置OCI_ATTR_DRIVER_NAME属性,该属性设置数据库驱动名称。 6. 在连接数据库时,使用OCI_ATTR_CONN_NOWAIT属性,该属性设置连接为非阻塞连接,可以在连接失败时及时返回错误信息。 7. 在连接数据库时,使用OCI_ATTR_CONN_NO_AUTH属性,该属性设置连接不需要进行身份验证,可以快速连接数据库。 8. 在连接数据库时,使用OCI_ATTR_CONN_IS_DEDICATED属性,该属性设置连接为专用连接,可以提高连接的稳定性和安全性。 9. 在连接数据库时,使用OCI_ATTR_CONN_TIMEOUT属性,该属性设置连接的超时时间(单位为秒),可以在连接超时时及时返回错误信息。 10. 在连接数据库时,使用OCI_ATTR_CONN_LOST属性,该属性设置连接断开后的重连机制,可以保证连接的可靠性。 通过以上步骤,可以实现连接Oracle数据库自动重连机制。同时,为了确保程序的稳定性和安全性,需要在连接数据库时进行异常处理和错误处理,及时返回错误信息并进行相应的处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值