My Oracle Support Banner

ODI 12c Mapping Execution Fails with "java.lang.ArrayIndexOutOfBoundsException" Error using LKM "SQL To Oracle" and "APPEND_VALUES" Hint (Doc ID 2467494.1)

Last updated on FEBRUARY 02, 2019

Applies to:

Oracle Data Integrator - Version 12.2.1.1.0 and later
Information in this document applies to any platform.

Symptoms

Mapping execution fails with "java.lang.ArrayIndexOutOfBoundsException" error when the APPEND_VALUES Hint is used with LKM "SQL To Oracle" in Oracle Data Integrator (ODI) 12c and both the "Array Fetch" and "Batch Update" parameters are set to a high value.

There is no issue if the "APPEND_VALUES" hint is not used.

Steps to reproduce the issue:

  1. Create two data server connections for two different schemas on Oracle database version 12.1.0.2 (11.2.0.4 was working)
  2. Change the "Array Fetch" and "Batch Update" size to 50000.
  3. Create a mapping that transfers a table between the two schemas
  4. Use the KM "LKM_SQL_to_Oracle" and any IKM (error is in the LKM)
  5. Set the LOAD_DIRECT option to TRUE (APPEND_VALUES) in "LKM_SQL_to_Oracle"
  6. Run the mapping

Error:

oracle.odi.runtime.agent.exception.ExecutionEngineException:
java.lang.ArrayIndexOutOfBoundsException
at oracle.odi.runtime.agent.execution.sql.SQLExecutor.execute(SQLExecutor.java:177)
at oracle.odi.runtime.agent.execution.sql.SQLExecutor.execute(SQLExecutor.java:28)
at oracle.odi.runtime.agent.execution.Executor.performAction(Executor.java:449)
at
oracle.odi.runtime.agent.execution.Executor.handleDataMovementTask(Executor.java:334)
at
oracle.odi.runtime.agent.execution.DataMovementTaskExecutionHandler.handleTask(DataMovementTaskExecutionHandler.java:51)
at oracle.odi.runtime.agent.execution.SessionTask.processTask(SessionTask.java:206)
at
oracle.odi.runtime.agent.execution.SessionTask.doExecuteTask(SessionTask.java:117)
at
oracle.odi.runtime.agent.execution.AbstractSessionTask.execute(AbstractSessionTask.java:886)
at
oracle.odi.runtime.agent.execution.SessionExecutor$SerialTrain.runTasks(SessionExecutor.java:2231)
at
oracle.odi.runtime.agent.execution.SessionExecutor.executeSession(SessionExecutor.java:612)
at
oracle.odi.runtime.agent.processor.TaskExecutorAgentRequestProcessor$1.doAction(TaskExecutorAgentRequestProcessor.java:719)
at
oracle.odi.runtime.agent.processor.TaskExecutorAgentRequestProcessor$1.doAction(TaskExecutorAgentRequestProcessor.java:611)
at
oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:203)
at
oracle.odi.runtime.agent.processor.TaskExecutorAgentRequestProcessor.doProcessStartAgentTask(TaskExecutorAgentRequestProcessor.java:801)
at
oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.access$1400(StartSessRequestProcessor.java:74)
at
oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$StartSessTask.doExecute(StartSessRequestProcessor.java:702)
at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:180)
at
oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$2.run(DefaultAgentTaskExecutor.java:108)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ArrayIndexOutOfBoundsException
at java.lang.System.arraycopy(Native Method)
at
oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:15614)
at
oracle.jdbc.driver.OracleStatementWrapper.executeBatch(OracleStatementWrapper.java:264)
at
oracle.odi.runtime.agent.execution.sql.BatchSQLCommand.executeBatch(BatchSQLCommand.java:110)
at
oracle.odi.runtime.agent.execution.sql.BatchSQLCommand.execute(BatchSQLCommand.java:68)
at oracle.odi.runtime.agent.execution.sql.SQLExecutor.execute(SQLExecutor.java:141)
... 18 more

Changes

 

Cause

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


In this Document
Symptoms
Changes
Cause
Solution
References


My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.