FND无法创建临时文件

问题描述

请求执行失败,错误提示为:

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 国际许可协议进行许可。

# EBS, FND

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×