今天在运行请求时候得到如下的错误日志:
原因:由于ORA-20100:为FND_FILE创建文件o0003167.tmp失败。
在请求日志的错误原因中您会找到更详细的信息。
查找了一些资料,总结了一下出问题的原因。
1.查看$APPLPTMP系统环境变量的值,一般是/usr/tmp,需要保证该文件夹是存在的。
2.查看utl_file_dir数据库参数,其第一个值也应该为/usr/tmp;
SELECT * FROM V$PARAMETER V WHERE v.NAME='utl_file_dir'
3.查看该文件夹的权限,该文件夹必须为应用用户和数据库用户都具有读写权限。
4.通过exec FND_FILE.PUT_LINE(FND_FILE.LOG, 'THIS IS A TEST');进行测试,查看是否能输入文件。
我做了上面的四个步骤,发现4能正常运行结束,我为什么请求上会报错呢?最后终于找到了原因,我是一台服务器上面装了两套环境的应用,环境管理员在刻环境的时候,没有修改$APPLPTMP的值,导致两个环境都往/usr/tmp写东西,在第一个环境的序列比较超前时,它已经在该目录里面创建了o0003167.tmp,我再在第二个环境发起请求的时候,它再创建o0003167.tmp的时候就会创建失败。
总结:
当一台服务器上运行了多套环境时,不能使用/usr/tmp作为$APPLPTMP,须定义成各自的目录。且该目录须在数据库参数utl_file_dir中。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/67253/viewspace-617395/ ,如需转载,请注明出处,否则将追究法律责任。