近期维护人员反映,本地数据库中通过DBLINK调用远端数据库的存储过程时报4068错误。本地执行没有问题。该存储过程近期ddl过。
根据经验一般出现4068错误,重新执行即可解决问题。于是建议开发人员捕捉到4068错误后重新执行该存储过程。结果问题依旧。
于是登陆metalink,发现这篇文章
ORA-4068 : Local Objects Invalid When ORA-04068 raised by Remote Object
感觉挺符合故障。于是按照解决方案在执行的进程中
alter session set remote_dependencies_mode=signature;
问题解决。
remote_dependencies_mode参数有两个值TIMESTAMP 与 SIGNATURE
当设置为TIMESTAMP时用于指定数据库为远程 PL/SQL 存储的过程处理被依赖对象的方式。如果设置为 TIMESTAMP, 只有在服务器与本地时间戳相匹配的情况下, 才能执行该过程。如果设置为 SIGNATURE, 在签名安全的情况下即可执行该过程。
根据经验一般出现4068错误,重新执行即可解决问题。于是建议开发人员捕捉到4068错误后重新执行该存储过程。结果问题依旧。
于是登陆metalink,发现这篇文章
ORA-4068 : Local Objects Invalid When ORA-04068 raised by Remote Object
感觉挺符合故障。于是按照解决方案在执行的进程中
alter session set remote_dependencies_mode=signature;
问题解决。
remote_dependencies_mode参数有两个值TIMESTAMP 与 SIGNATURE
当设置为TIMESTAMP时用于指定数据库为远程 PL/SQL 存储的过程处理被依赖对象的方式。如果设置为 TIMESTAMP, 只有在服务器与本地时间戳相匹配的情况下, 才能执行该过程。如果设置为 SIGNATURE, 在签名安全的情况下即可执行该过程。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15017002/viewspace-543034/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/15017002/viewspace-543034/