How to resolve ORA-22285 error thrown in the Data Archiving process of RSA Identity Governance & Lifecycle
2 years ago
Originally Published: 2019-12-14
Article Number
000064824
Applies To
RSA Product Set: RSA Identity Governance & Lifecycle
RSA Version/Condition: 7.1.x
Issue
What can be done to resolve the below ORA-22285 error found in aveksaServer.log when the Data Archiving process is run?
11/14/2019 12:31:56.230 WARN (default task-47) [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] SQL Error: 22285, SQLState: 99999
11/14/2019 12:31:56.232 ERROR (default task-47) [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] ORA-22285: non-existent directory or file for FILEEXISTS operation
ORA-06512: at "SYS.DBMS_LOB", line 786
ORA-06512: at "AVUSER.ARCHIVEPURGE_PKG", line 1451
ORA-06512: at line 1
...
Caused by: Error : 22285, Position : 0, Sql = BEGIN :1 := ArchivePurge_Pkg.DBServer_FileExists(:2 ); END;, OriginalSql = {? = call ArchivePurge_Pkg.DBServer_FileExists(?)}, Error Msg = ORA-22285: non-existent directory or file for FILEEXISTS operation
ORA-06512: at "SYS.DBMS_LOB", line 786
ORA-06512: at "AVUSER.ARCHIVEPURGE_PKG", line 1451
ORA-06512: at line 1

at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:498)
... 92 more
Resolution

During the Data Archiving process, the system uses the AVUSER connection to create a backup in the Export/Import directory. However in this scenario, the AVUSER does not have the correct privileges to access the Export/Import directory, hence it is throwing the ORA-22285: non-existent directory or file for FILEEXISTS operation error.

To solve this, run below SQL as AVUSER:

  1. Check if AVEKSA_EXPORTIMPORT_DIRECTORY directory name points to a correct path:
SELECT * FROM all_directories;

The output should be similar to the below displaying your directory_path. The example below shows the Export/Import directory mapped to /home/oracle/AveksaExportImportDir as created during the database setup. 

AVEKSA_EXPORTIMPORT_DIRECTORY

If the above SQL returns 0 row(s), you must create the directory in the file system on the database server, map the directory variable to the physical directories, and grant AVUSER the Read-Write permissions to the Export/Import directory. Refer to the below sub-sections of "Create the Required Objects" in the RSA Identity Governance & Lifecycle Database Setup and Management Guide V7.1:

    Create the Export/Import Database Directory
    Map the Export/Import Directory
    Configure the User Schema Privilege Grants
 

       2. Confirm if AVUSER has the privileges to the Export/Import directory. It should return two records with privileges READ & WRITE.
SELECT table_name, grantee, privilege, grantor 
FROM user_tab_privs
WHERE type='DIRECTORY' AND table_name='AVEKSA_EXPORTIMPORT_DIRECTORY';
If the above SQL returns 0 row(s), you must grant AVUSER the Read-Write permissions to the Export/Import directory by executing SQL below.
$ SQLPLUS / AS SYSDBA
SQL> grant read, write on directory AVEKSA_EXPORTIMPORT_DIRECTORY to AVUSER; 

After granting AVUSER the Read-Write permissions to the Export/Import directory, it should show:

Read-Write Privileges