My Oracle Support Banner

"java.lang.ArrayIndexOutOfBoundsException" Error Received in ODI after Upgrading Oracle Database from 11.2.0.4 to 12.1.0.2.0 (Doc ID 2456848.1)

Last updated on OCTOBER 11, 2018

Applies to:

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

Symptoms

After upgrading the Oracle database from version 11.2.0.4 to 12.1.0.2.0 and setting the "Batch Update Size" to 500 via Oracle Data Integrator (ODI) Studio, the following error is encountered when running a job:

ODI-1226: Step Physical_STEP fails after 1 attempt(s).
ODI-1227: Task SERIAL-MAP_MAIN- fails on the source connection <Empty Value>.
ODI-1298: Serial task "SERIAL-MAP_MAIN- (10)" failed because child task "<TASK_NAME>" is in error.
ODI-1298: Serial task "<TASK_NAME>" failed because child task "<TASK_NAME>" is in error.
Caused By: oracle.odi.runtime.agent.exception.ExecutionEngineException: java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 0
    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:189)
    at oracle.odi.runtime.agent.execution.SessionTask.doExecuteTask(SessionTask.java:111)
    at oracle.odi.runtime.agent.execution.AbstractSessionTask.execute(AbstractSessionTask.java:864)
    at oracle.odi.runtime.agent.execution.SessionExecutor$SerialTrain.runTasks(SessionExecutor.java:2024)
    at oracle.odi.runtime.agent.execution.SessionExecutor.executeSession(SessionExecutor.java:562)
    at oracle.odi.runtime.agent.processor.TaskExecutorAgentRequestProcessor$1.doAction(TaskExecutorAgentRequestProcessor.java:718)
    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:800)
    at oracle.odi.runtime.agent.processor.impl.StartScenRequestProcessor.access$2700(StartScenRequestProcessor.java:84)
    at oracle.odi.runtime.agent.processor.impl.StartScenRequestProcessor$StartScenTask.doExecute(StartScenRequestProcessor.java:916)
    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.util.concurrent.Executors$RunnableAdapter.call(Executors.java:483)
    at oracle.odi.runtime.agent.execution.job.OdiJob.call(OdiJob.java:73)
    at oracle.odi.runtime.agent.execution.job.OdiJob.call(OdiJob.java:73)
    at java.util.concurrent.FutureTask.run(FutureTask.java:274)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1157)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:627)
    at java.lang.Thread.run(Thread.java:798)
Caused by: java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 0
    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)
    ... 24 more
    at oracle.odi.runtime.agent.processor.impl.StartScenRequestProcessor$StartScenTask.doExecute(StartScenRequestProcessor.java:939)
    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.util.concurrent.Executors$RunnableAdapter.call(Executors.java:483)
    at oracle.odi.runtime.agent.execution.job.OdiJob.call(OdiJob.java:73)
    at oracle.odi.runtime.agent.execution.job.OdiJob.call(OdiJob.java:73)
    at java.util.concurrent.FutureTask.run(FutureTask.java:274)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1157)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:627)
    at java.lang.Thread.run(Thread.java:798)


Steps to Reproduce Issue
The issue can be reproduced at will with the following steps:

1. Update the Oracle database from version 11.2.0.4 to 12.1.0.2.0.
2. Open ODI Studio and navigate to Topology > Physical Architecture > Technologies > Oracle > Double click the affected Oracle Data Server name.
3. Change the "Batch Update Size" to 500 and "Array Fetch Size" to at least 500.
4. Save and close the Data Server.
5. Execute an ODI job and notice that the error stack above is presented.

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.