000028199 - Collector run fails during the data collection task with an ORA-01722 error on RSA Identity Governance & Lifecycle

Document created by RSA Customer Support Employee on Jun 15, 2016Last modified by RSA Customer Support on Dec 28, 2018
Version 3Show Document
  • View in full screen mode

Article Content

Article Number000028199
Applies ToRSA Product Set: RSA Identity Governance & Lifecycle
RSA Version/Condition: 6.9.1, 7.0.0, 7.0.1, 7.0.2, 7.1.0
Issue
  • The collector fails during the first task of data collection.
  • The raw data and database logs of the run are empty.
  • The aveksaServer.log shows the following error at the time of the failure:


05/30/2018 14:32:31.820 ERROR (Exec Task Consumer#1) [com.aveksa.server.xfw.TaskExecutor]
Failed method=Execute ExecutionTask[TaskID=50 RunID=28 Source=3 Type=DataObjectProcessing Status=InProgress]
com.aveksa.server.xfw.ExecutionException: com.aveksa.server.collector.DataProcessorException:
com.aveksa.server.db.PersistenceException: java.sql.SQLSyntaxErrorException: ORA-01722: invalid number
ORA-06512: at "AVUSER.IDC_NORMALIZE", line 203
ORA-06512: at "AVUSER.IDC_DATA_COLLECTOR", line 105
ORA-06512: at "AVUSER.IDC_DATA_COLLECTOR", line 195
ORA-06512: at line 1

at com.aveksa.server.xfw.DataObjectProcessingExecutor.executeFullTask(DataObjectProcessingExecutor.java:121)
at com.aveksa.server.xfw.DataObjectProcessingExecutor.executeTask(DataObjectProcessingExecutor.java:58)
at com.aveksa.server.xfw.TaskExecutor.execute(TaskExecutor.java:99)
at com.aveksa.server.xfw.ExecutionTaskQueue$Worker.run(ExecutionTaskQueue.java:116)
at java.lang.Thread.run(Thread.java:748)
Caused by: com.aveksa.server.collector.DataProcessorException:
com.aveksa.server.db.PersistenceException: java.sql.SQLSyntaxErrorException: ORA-01722: invalid number
ORA-06512: at "AVUSER.IDC_NORMALIZE", line 203
ORA-06512: at "AVUSER.IDC_DATA_COLLECTOR", line 105
ORA-06512: at "AVUSER.IDC_DATA_COLLECTOR", line 195
ORA-06512: at line 1

at com.aveksa.server.xfw.DefaultIdentityObjectDataFilter.loadData(DefaultIdentityObjectDataFilter.java:134)
at com.aveksa.server.xfw.DefaultIdentityObjectDataFilter.process(DefaultIdentityObjectDataFilter.java:71)
at com.aveksa.server.xfw.DefaultIdentityObjectDataFilter.process(DefaultIdentityObjectDataFilter.java:144)
at com.aveksa.server.xfw.DataProcessor.process(DataProcessor.java:85)
at com.aveksa.server.xfw.DataProcessor.process(DataProcessor.java:64)
at com.aveksa.server.xfw.DataObjectProcessingExecutor.executeFullTask(DataObjectProcessingExecutor.java:116)
... 4 more
Caused by: com.aveksa.server.db.PersistenceException: java.sql.SQLSyntaxErrorException: ORA-01722: invalid number
ORA-06512: at "AVUSER.IDC_NORMALIZE", line 203
ORA-06512: at "AVUSER.IDC_DATA_COLLECTOR", line 105
ORA-06512: at "AVUSER.IDC_DATA_COLLECTOR", line 195
ORA-06512: at line 1

at com.aveksa.server.db.PersistenceManager.runStoredProcedure(PersistenceManager.java:267)
at com.aveksa.server.xfw.DefaultIdentityObjectDataFilter.loadData(DefaultIdentityObjectDataFilter.java:116)
... 11 more
Caused by: java.sql.SQLSyntaxErrorException: ORA-01722: invalid number
ORA-06512: at "AVUSER.IDC_NORMALIZE", line 203
ORA-06512: at "AVUSER.IDC_DATA_COLLECTOR", line 105
ORA-06512: at "AVUSER.IDC_DATA_COLLECTOR", line 195
ORA-06512: at line 1

at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:450)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:399)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1059)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:522)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:257)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:587)
at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:220)
at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:48)
at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:938)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1150)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:4798)
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:4901)
at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:5631)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1385)
... 15 more
Cause

The collection agent first collects the data into a temporary datafile which uses the UTF-8 character xC2AA (also represented as Âª) as an internal separator in the datafile. If the collected data contains the same character, then the datafile structure becomes invalid and importing it fails with the above error.

Resolution
  1. Make sure you take a backup of the database first before modifying anything.
  2. Update the internal value of the separator used in T_SYSTEM_SETTINGS using the below query. Make sure that the new character to be used as the separator does not exist in your data. The below example uses the x07 (Ring terminal bell) character. Do not remove 

    UPDATE T_SYSTEM_SETTINGS SET VALUE='0x''07''' WHERE LOWER(PARAMETER)='data-file-field-separator';
    COMMIT;

  3. Restart the application

    acm stop
    acm start

Note: To roll back to the default separator, follow the same steps above but use this update query instead


UPDATE T_SYSTEM_SETTINGS SET VALUE='0x''c2aa''' WHERE LOWER(PARAMETER)='data-file-field-separator';
COMMIT;

Attachments

    Outcomes