问题描述
请求执行失败,错误提示为:
Cause: FDPSTP failed due to ORA-20100: 错误: FND_FILE 失败。无法在目录 /a01/BBIC/tmp 中创建文件 o0137365.tmp.
您可以在请求日志中找到更多信息。
问题原因
- 相关路径不存在;
- 相关路径权限配置有误;
- 多个实例的环境参数“$APPLPTMP”配置为同一个地址,造成争用;
- 环境参数“$APPLPTMP”与数据库参数“utl_file_dir”不一致。
问题处理
1. 检查文件路径
使用下面的语句检测临时文件路径及权限配置是否有误:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19-- 测试FND生成文件
exec FND_FILE.PUT_LINE(FND_FILE.LOG, 'THIS IS A TEST');
-- 测试文件生成
DECLARE
file_location VARCHAR2(256) := '';
file_name VARCHAR2(256) := 'utlfile1.lst';
file_text VARCHAR2(256) := 'THIS IS A TEST';
file_id UTL_FILE.file_type;
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;
/
若过程成功执行,则可以判断文件路径及权限配置无误。
2. 多实例环境下环境配置检查
若服务器上有多个实例同时启用的,检查不同实例的“\$APPLPTMP”参数是否不同,若相同则需要重新配置。配置方式为修改$APPL_TOP下对应实例的env文件。
3. 数据库参数检查
3.1 检查参数配置
数据库静态参数“ utl_file_dir”应与“$APPL_TOP”一致,且对应的路径应处于首位。查询方式为以APPS连接数据库,执行:1
show parameter utl_file_dir;
本次查询的结果为:
NAME TYPE VALUE
utl_file_dir string /usr/tmp, /tmp, /a01/BBIC/db/tech_st/11.2.0.2/appsutil/outbound/BBIC_dellpower01, /usr/tmp
可以看出其中没有“/a01/BBIC/tmp”这个路径。
因此需要关闭数据库并修改对应的PFILE文件,添加该路径。
3.2 关闭数据库
执行语句关闭应用和数据库(两者在同一服务器上)1
ebsctl stop_all BBIC
3.3 修改PFILE文件
文件位于
$ORACLE_HOME/dbs下的 SID__ifile.ora ( pfile)文件
直接编辑,添加 utl_file_dir = /a01/BBIC/tmp 并确保其位于其它相同参数之前:1
utl_file_dir = /a01/BBIC/tmp
3.4 重启数据库和应用
1 | ebsctl start_all BBIC |
本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。