分布式应用中操作远程数据库的方式都有什么?目前我们生产使用的DBLink,但是每天不定时会报ORA-02068和 ORA-03135这两个错误,ORA-02068: following severe error from DB_LINK
ORA-03135: connection lost contact报错的堆栈信息可以看到是获取不到连接,类似下面的错误。getWeblogicPoolConnection(DBConn.java:255)现在需要解决这个问题,但是网络上很多网友都是遇到了这个问题,却没有一个具体的解决方案。我搜索了一天时间,但是没有比较好的解决办法。遇到这个问题的网友有很多。使用DBLink远程访问数据库本身就不是一个好办法嘛?DBLink有很多BUG?分布式应用连接DBLink的原理是什么?使用DBLink连接的远程应用不使用数据库连接池吗?
ORA-03135: connection lost contact报错的堆栈信息可以看到是获取不到连接,类似下面的错误。getWeblogicPoolConnection(DBConn.java:255)现在需要解决这个问题,但是网络上很多网友都是遇到了这个问题,却没有一个具体的解决方案。我搜索了一天时间,但是没有比较好的解决办法。遇到这个问题的网友有很多。使用DBLink远程访问数据库本身就不是一个好办法嘛?DBLink有很多BUG?分布式应用连接DBLink的原理是什么?使用DBLink连接的远程应用不使用数据库连接池吗?
解决方案 »
- ORA-29532 ora_06512 请各位帮忙解决一下,谢谢~ 附图
- 多个进程使用同一个连接对数据库进行查询
- oracle
- ORACLE安装后em无法访问问题(急!)
- 初学者问题
- 关于表空间的设置
- 请问高人:定时间每隔一个月运行一次存储过程,时间那段如何计算( DBMS—JOB。SUBMIT(:JOBNO,‘PROCEDURE—NAME’,SYSDATE,‘SYSDA
- 怎么用jdbc在jbuilder中连接oracle数据库获取其中的多媒体数据?
- oracle 11g 安装库文件出现的问题 求解答!
- 安装oracle19c的时候安装进度条到了80%又退回到0 接着提示已安装但有错误
- 为什么我的em进不去啊?如图
- orcl11g
Alter session close database link DBLINKNAME
但是在应用这这句话怎么添加呀,通过PL/Sql连接的话是没有错误的。
SQLNET.EXPIRE_TIME =10
但是使用了,这种办法无效
1.检查网络主机配置,防火墙,网关,路由器,交换机等
2.大事物分割成多个小事务,减小事务,减少因为网络终止导致的异常
3.SQLNET.EXPIRE_TIME =10 可以考虑
4.可以使用其他方法来同步数据,不一定是dblink
【现象】
应用使用数据库连接池,访问A库时通过dblink查询B库,应用时不时会报错ORA-02068和ORA-0313。
【过程还原】
当应用获取了一个数据库连接,并在数据库连接中使用了dblink,如果应用到A库的连接不释放,则A库到B库的dblink 连接也不释放;当A库到B库的dblink连接由于长时间无数据被防火墙设备断开后,如果应用再次从连接池中获取这个连接,并要使用dblink查询时,则oracle就会报错。
【根本原因】
oracle替你保存了dblink连接,当你再使用时,没有检查就直接使用,则可能导致报错。
【可行的解决方案】
1. 升级oracle到11g,高版本oracle可以保证dblink使用时都是ok的;
2. 应用访问数据库的代码中,查询完毕后,显示关闭dblink;
3. 取消A库到B库的超时断开机制,这方法不保险,因为长时间的网络连接可能还会被其他因素断开;
4. 配置应用连接池,每次提供连接时也要检查dblink是否可用。