今天在运行请求时候得到如下的错误日志:

原因:由于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 失败"的更多相关文章

  1. lua创建文件和文件夹

    创建文件夹: os.execute('mkdir xx') 创建文件: f = assert(io.open('a.tmp','w')) f:write('test') f:close()

  2. eclipse 向HDFS中创建文件夹报错 permission denied

    环境:win7  eclipse    hadoop 1.1.2 当执行创建文件的的时候, 即: String Path = "hdfs://host2:9000"; FileSy ...

  3. iOS 沙盒路径获取,创建文件

    沙盒下主要有四个文件夹:document,caches,tmp,library document 的路径 程序运行时生成的文件,这个文件不要存比较放大的文件,比如音频,视频类,因为这里的东西会被上传 ...

  4. oracle-创建表空间报错 提示ora-01119 ora-27040:无法创建文件

    create tablespace syx datafile 'D:\yangk\oraclespace\syx.ora' size 1000m; 低级错误,这是因为指定路径的路径问题,因为指定的路径 ...

  5. java使用io创建文件与删除文件的工具类

    java中对于文件的操作,是再常见不过了.以下代码是自己代码中所用到的工具类,仅供参考. import java.io.File; import java.io.IOException; /** * ...

  6. Eclipse/MyEclipse向HDFS中如创建文件夹等操作报错permission denied解决办法

    不多说,直接上干货! 问题现象 当执行创建文件的的时候, 即: String Path = "hdfs://host2:9000"; FileSystem fileSystem = ...

  7. File IO(NIO.2):读、写并创建文件

    简介 本页讨论读,写,创建和打开文件的细节.有各种各样的文件I / O方法可供选择.为了帮助理解API,下图以复杂性排列文件I / O方法 在图的最左侧是实用程序方法readAllBytes,read ...

  8. Linux下几种另类创建文件之方法

    以前我们用编辑器例如vi来新建文件,下面介绍几种另类生成文件的方法,多用在备份和测试上. 创建文件的方法: 1.echo 命令    #echo "set bell"  >& ...

  9. java文件操作 之 创建文件夹路径和新文件

    一:问题 (1)java 的如果文件夹路径不存在,先创建: (2)如果文件名 的文件不存在,先创建再读写;存在的话直接追加写,关键字true表示追加 (3)File myPath = new File ...

随机推荐

  1. Java 8 的时间日期 API

    上一篇文章『Java 的时间日期 API』中,我们学习了由 Date.Calendar,DateFormat 等组成的「传统时间日期 API」,但是传统的处理接口设计并不是很友好,不易使用.终于,Ja ...

  2. Weekly Contest 75题解

    Q1. Rotate String(796) We are given two strings, A and B. A shift on A consists of taking string A a ...

  3. mybatis什么时候用resulttype 什么时候用resultmap

    如果你搜索只是返回一个值,比如说String ,或者是int,那你直接用resultType就行了. 但是你如果是返回一个复杂的对象,就必须定义好这个对象的resultMap的result map. ...

  4. Safari 3D transform变换z-index层级渲染异常

    (猛戳来源:http://www.zhangxinxu.com/wordpress/?p=5569)

  5. SSH(struts2+hibernate+spring)总结

    1 前三个文章 是我对ssh的具体实现 虽然没有真的写一个ssh的例子出来 但是 意思应该传达到了 主要还是注解注入的ssh太模块化了 感觉写出来意义不大 个人水平有限 说不清 2 我一开是写的是st ...

  6. 原生JS实现圆周运动

    <body> <div id="ball" style="width:20px; height:20px; background:red; border ...

  7. CODEVS3269混合背包+二进制优化

    codevs 3296 http://codevs.cn/problem/3269/ 题目描述 Description 背包体积为V ,给出N个物品,每个物品占用体积为Vi,价值为Wi,每个物品要么至 ...

  8. Node.js JXcore 打包

    Node.js 是一个开放源代码.跨平台的.用于服务器端和网络应用的运行环境. JXcore 是一个支持多线程的 Node.js 发行版本,基本不需要对你现有的代码做任何改动就可以直接线程安全地以多线 ...

  9. SQL Server 虚拟化(2)——理想的SQL Server虚拟机架构

    本文属于SQL Server虚拟化系列 搭建SQL Server虚拟机,在各个组织之间都有自己的标准和最佳实践.从第一眼看去,光物理配置就有过百种,所有的这些细微差别都有可能为后续日常管理过程中故障侦 ...

  10. Visual studio debug—Process with an Id of 5616 is not running的解决方法

    今天调试的时候,碰到下面的问题 打开项目的csproj文件,拉到最下方找我我图中红框中的部分,删除它即可.