Concurrent program error

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Concurrent program error

satish
Hi erman,

We are using apps version r12.2.5 and db version 19.17.

We are facing error with concurrent program.

APP-FND-01564: ORACLE error 20100 in close_user_handles.
Cause:close_user_handles failed due to ORA-20100 FILE creation for FND_FILE failed.
File handle for l4298251.tmp is invalid.

The program is running since long,but all of the sudden we are facing this issue.  Utl file directory,folder permissions are fine. No changes done. Can you pls guide us how to approach on this issue.

Thank you,
SG
Reply | Threaded
Open this post in threaded view
|

Re: Concurrent program error

ErmanArslansOracleBlog
Administrator
The error is coming from UTL_FILE and it complains with INVALID_FILEHANDLE.

1)Check the directory permission
2)Check if a file with the same name already exists in the relevant directory.
3)Check db alert log for errors
4)Check the directory / filesystem space

-- You can also use the following PLSQL for checking the utl file operations in this context and ensuring all is well - >

declare
     v_FileHandle UTL_FILE.FILE_TYPE;
begin
     v_FileHandle := UTL_FILE.FOPEN('<relevant_directory>','<same_name_as_the_reported_one','a');
     UTL_FILE.PUT_LINE(v_FileHandle,to_char(sysdate,'DD-MON-YY HH24:MI:SS') || 'test....');
     UTL_FILE.FFLUSH(v_FileHandle);
     UTL_FILE.FCLOSE(v_FileHandle);
     dbms_output.put_line('This worked with no exceptions');
exception
     WHEN UTL_FILE.INVALID_OPERATION THEN
          UTL_FILE.FCLOSE(v_FileHandle);
          RAISE_APPLICATION_ERROR(-20001,'Error - INVALID OPERATION');
    WHEN UTL_FILE.INVALID_FILEHANDLE THEN
          UTL_FILE.FCLOSE(v_FileHandle);
          RAISE_APPLICATION_ERROR(-20002,'Error - INVALID_FILEHANDLE');
    WHEN UTL_FILE.WRITE_ERROR THEN
          UTL_FILE.FCLOSE(v_FileHandle);
          RAISE_APPLICATION_ERROR(-20003,'Error - WRITE_ERROR');
    WHEN UTL_FILE.INVALID_PATH THEN
          UTL_FILE.FCLOSE(v_FileHandle);
          RAISE_APPLICATION_ERROR(-20004,'Error - INVALID_PATH');
    WHEN OTHERS THEN
          UTL_FILE.FCLOSE(v_FileHandle);
          RAISE_APPLICATION_ERROR(-20004,'Error - OTHERS');
end;
/


Also noıte that ,he APPLPTMP environment variable points to a directory that does not exist on the database server. APPLPTMP is used by PL/SQL when temporary data storage is needed. If the environment variable points to a directory that does not exist then any PL/SQL process needing temporary storage will fail.