"ORA-20100: 为 FND_FILE 创建文件 o0003167.tmp 失败"
今天在运行请求时候得到如下的错误日志:
原因:由于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中。
另:前面是摘自其它人的博客,后来又问了一下同事,utl_file_dir数据库参数,其第一个值可以不是/usr/tmp,报这个错误也有可能是tmp文件夹满了的,清空一下就可以了!今天在运行请求时候得到如下的错误日志:
原因:由于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中。
参考:http://blog.163.com/wangbin_bonnie/blog/static/12943869200992133328633/
另:前面是摘自其它人的博客,后来又问了一下同事,utl_file_dir数据库参数,其第一个值可以不是/usr/tmp,报这个错误也有可能是tmp文件夹满了的,清空一下就可以了!
If a PL/SQL Concurrent Program can't write to an external file, you will receive an error message similar to:
MSG-00102: Error Message :ORA-20100: File o0000071.tmp creation for FND_FILE failed.
You will find more information on the cause of the error in request log.
ORA-06512: at "APPS.FND_FILE", line 378
ORA-06512: at "APPS.FND_FILE", line 473
ORA-06512: at "APPS.AP_TRIAL_BALANCE_PKG", line 192
REP-1419: 'beforereport': PL/SQL program aborted.
NOTE: Applications also produces temporary PL/SQL output files used in concurrent processing. These files are written to a location on the database server node specified by the APPLPTMP environment setting. The APPLPTMP directory must be the same directory
as specified by the utl_file_dir parameter in your database initialization file.
.
Rapid Install sets both APPLPTMP and the utl_file_dir parameter to the same default directory. As the temporary files placed in this directory may contain context sensitive information, it should be a secure directory on the database server node with read and
write access for the database server owner. In a multi-node system, the directory defined by APPLPTMP does not need to exist on the application tier servers. During an upgrade with AutoUpgrade, you must provide the utl_file_dir parameter value for the APPLPTMP
environment setting.
To isolate where the problem is, verify the following:
1) Make sure that the name of the file is valid (the file name should not include characters like "^")
2) Make sure that APPLPTMP is set to a valid directory and that BOTH the applmgr user and the database user have read and write permissions on that directory (normally, it can be set to the same directory as APPLTMP)
3) Make sure that the file does not exit on the directory pointed by APPLPTMP
4) Make sure the directory pointed by APPLPTMP is the first entry on the utl_file_dir. Also, verify that all the entries on the utl_file_dir are valid and that the applmgr has read/write permissions.
If using an spfile, verify the proper syntax to set utl_file_dir:
Ex.
ALTER SYSTEM SET UTL_FILE_DIR='directory1','directory2' scope=spfile;
5) If still having problems, check if you can write a file directly using FND_FILE, which is the package used by the Application. From sqlplus, connected as the apps user, run:
SQL> exec FND_FILE.PUT_LINE(FND_FILE.LOG, 'THIS IS A TEST');
This should dump a file on APPLPTMP.
If this test works, it would indicate that FND_FILE is ok and the problem is possibly with the Application.
You may want to leave only one entry on utl_file_dir for this test.
6) If still having problems, check if you can write a file using UTL_FILE, which is used by FND_FILE.
Run the PL/SQL below, changing <first entry on utl_file_dir> to the first entry on utl_file_dir (you may want to leave just one entry on utl_file_dir for this test).
set serveroutput on
DECLARE
file_location VARCHAR2(256) := '';
file_name VARCHAR2(256) := 'utlfile1.lst';
file_text VARCHAR2(256) := 'THIS IS A TEST'; BEGIN
file_id := UTL_FILE.fopen(file_Location, file_name, 'W');
UTL_FILE.put_line(file_id, file_text);
UTL_FILE.fclose(file_id);
EXCEPTION
WHEN UTL_FILE.INVALID_PATH
THEN dbms_output.put_line('Invalid path ' || SQLERRM);
WHEN OTHERS
THEN dbms_output.put_line('Others '|| SQLCODE || ' ' || SQLERRM);
END;
/
This program should dump a file on the requested directory. If the test fails, the problem is probably on the Database side.
If it works, the problem is probably on FND_FILE. In this scenario, check the versions of AFCPPIOS.pls and AFCPPIOB.pls.
参考:http://blog.sina.com.cn/s/blog_5b021b480100ens8.html
"ORA-20100: 为 FND_FILE 创建文件 o0003167.tmp 失败"的更多相关文章
- lua创建文件和文件夹
创建文件夹: os.execute('mkdir xx') 创建文件: f = assert(io.open('a.tmp','w')) f:write('test') f:close()
- eclipse 向HDFS中创建文件夹报错 permission denied
环境:win7 eclipse hadoop 1.1.2 当执行创建文件的的时候, 即: String Path = "hdfs://host2:9000"; FileSy ...
- iOS 沙盒路径获取,创建文件
沙盒下主要有四个文件夹:document,caches,tmp,library document 的路径 程序运行时生成的文件,这个文件不要存比较放大的文件,比如音频,视频类,因为这里的东西会被上传 ...
- oracle-创建表空间报错 提示ora-01119 ora-27040:无法创建文件
create tablespace syx datafile 'D:\yangk\oraclespace\syx.ora' size 1000m; 低级错误,这是因为指定路径的路径问题,因为指定的路径 ...
- java使用io创建文件与删除文件的工具类
java中对于文件的操作,是再常见不过了.以下代码是自己代码中所用到的工具类,仅供参考. import java.io.File; import java.io.IOException; /** * ...
- Eclipse/MyEclipse向HDFS中如创建文件夹等操作报错permission denied解决办法
不多说,直接上干货! 问题现象 当执行创建文件的的时候, 即: String Path = "hdfs://host2:9000"; FileSystem fileSystem = ...
- File IO(NIO.2):读、写并创建文件
简介 本页讨论读,写,创建和打开文件的细节.有各种各样的文件I / O方法可供选择.为了帮助理解API,下图以复杂性排列文件I / O方法 在图的最左侧是实用程序方法readAllBytes,read ...
- Linux下几种另类创建文件之方法
以前我们用编辑器例如vi来新建文件,下面介绍几种另类生成文件的方法,多用在备份和测试上. 创建文件的方法: 1.echo 命令 #echo "set bell" >& ...
- java文件操作 之 创建文件夹路径和新文件
一:问题 (1)java 的如果文件夹路径不存在,先创建: (2)如果文件名 的文件不存在,先创建再读写;存在的话直接追加写,关键字true表示追加 (3)File myPath = new File ...
随机推荐
- bzip2
压缩和解压缩文件bzip2 options] [file-list] bunzip2 [options] [file-list] bzcat [options] [file-list] bzip2re ...
- 64. Minimum Path Sum(中等, 又做出一个DP题, 你们非问我开不开心,当然开心喽!^^)
Given an m x n grid filled with nonnegative numbers, find a path from top left to bottom right which ...
- Vue实践经验
多考虑应变 如果模版中绑定了 obj.xx 时,需要注意 obj 是否是异步数据,默认值是否为 null.安全起见,可在组件最外层加 v-if 判断. <template> <div ...
- 移动端meta标签缓存设置
1.<meta charset="utf-8"> 2.<meta content="width=device-width, initial-scale= ...
- 解决问题redis问题:ERR Client sent AUTH, but no password is set
是的,这又是一个坑爹的问题. 明明在redis.conf中设置了密码,而且redis还启动了,为什么说没有密码呢? 大家都知道linux下启动redis有很多种方法, 其中有 ./redis-serv ...
- CODEVS3269混合背包+二进制优化
codevs 3296 http://codevs.cn/problem/3269/ 题目描述 Description 背包体积为V ,给出N个物品,每个物品占用体积为Vi,价值为Wi,每个物品要么至 ...
- windows下 gvim8.0 编译器配置
最近由于各种原因,IDE从source insight换成了vim,参考了诸多博客的文章,折腾了好久折腾了个大概的样子,现在总结一下经验: 主要参考: 改造vim变成source insight Wi ...
- Docker快速配置指南
下面是一个跟 Docker 网络相关的命令列表. 其中有些命令选项只有在 Docker 服务启动的时候才能配置,而且不能马上生效. -b BRIDGE or --bridge=BRIDGE --指定容 ...
- Python3 数据结构
列表 Python中列表是可变的,这是它区别于字符串和元组的最重要的特点,一句话概括即:列表可以修改,而字符串和元组不能. 以下是 Python 中列表的方法: 方法 描述 list.append(x ...
- 分别用face++和百度获取人脸属性(python单机版)
称之为单机版,主要是相对于调用摄像头实时识别而言.本篇主要py2下利用face++和百度接口获取本地图片中的人脸属性,并按照一定格式保存数据. face++版 face++是刚注册的,只能用一个试用的 ...