One Star

ArrayIndexOutOfBoundsException TOS5.4 - tOracleOutput (ojdbc6.jar)

I am receiving the following error:
Exception in component tOracleOutput_1
java.lang.ArrayIndexOutOfBoundsException: -32703
at oracle.jdbc.driver.OraclePreparedStatement.setupBindBuffers(OraclePreparedStatement.java:2677)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:9270)
at oracle.jdbc.driver.OracleStatementWrapper.executeBatch(OracleStatementWrapper.java:210)
This error occurs after TalenD downloads the 'Required' ojdbc6.jar file. I had the ojdbc14.jar file in the proper locations, but TalenD didn't seem to utilize that driver. After downloading the job runs and inserts 10000 rows and then errors out.
I have both ojdbc6.jar and ojdbc14.jar in the following folders/locations:
TOS/lib/java
TOS/workspace/lib/.JAVA
oracle/product/.../jdbc/lib
My version of TalenD DI (5.4.1.r111943) is requiring the ojdbc6.jar for my tOracleOutput(s) that are connections to an Oracle 10.2.0.2 database. I am unable to process more than 10000 rows of data for any Oracle output. Some help would be greatly appreciated.
I have another environment that is running TalenD DI (5.2.0.92826) some exact jobs and connections to the same Oracle DB 10.2.0.2 and it works just fine. Locations of the ojdbc#.jar files are identical.
9 REPLIES
Moderator

Re: ArrayIndexOutOfBoundsException TOS5.4 - tOracleOutput (ojdbc6.jar)

Hi,
The component depends on an specific version. Unfortunately it does not help if you add a new driver into the lib directory.
You should put the newer version into the component directory and edit the xml file toracleOutput_java.xml (try to find the IMPORT declaration and change it to your newer version).
After doing that, please delete the file <studio-install-dir>/configuration/ComponentCache.javacache and restart studio.


Best regards
Sabrina
--
Don't forget to give kudos when a reply is helpful and click Accept the solution when you think you're good with it.
One Star

Re: ArrayIndexOutOfBoundsException TOS5.4 - tOracleOutput (ojdbc6.jar)

I have the same issue. I have ojdbc6.jar in all my categories. What should i change in toracleOutput_java.xml?
after i changed one line from ojdbc14 to ojdbc6 in import tag now oracle output component doesnt work at all.. can you give me more detailed and structured answer how can this problem be solved.
the line i have now in oracleoutput.xml yet component still not working in talend
<IMPORT NAME="ORACLE_11" MODULE="ojdbc6.jar" BundleID="" UrlPath="platform:/plugin/org.talend.libraries.jdbc.oracle/lib/ojdbc6.jar" REQUIRED_IF="(DB_VERSION == 'ORACLE_11') AND (USE_EXISTING_CONNECTION == 'false') AND (SPECIFY_DATASOURCE_ALIAS == 'false')" />
One Star

Re: ArrayIndexOutOfBoundsException TOS5.4 - tOracleOutput (ojdbc6.jar)

Hi all
I've the same error. I tried to commit every 1000 rows and the it's work fine.
One Star

Re: ArrayIndexOutOfBoundsException TOS5.4 - tOracleOutput (ojdbc6.jar)

I downgraded the driver from oracle 11 to oracle 10 - seemed to work fine.
Obviously not a great solution in all contexts but worked for me.
Seventeen Stars

Re: ArrayIndexOutOfBoundsException TOS5.4 - tOracleOutput (ojdbc6.jar)

hi all,
seems that i have same problems.
migration from 4.0.3 (using ojdbc14 & worked fine) to 5.4.2 (use ojdbc6 and crash).
What's the strategy for Talend to select the version of ojdbc to load. 
my component indicate  Oracle 11  & I have java 7. And if look for information about ojdbc6 at Oracle :
Oracle 11g : Classes for use with JDK 1.6

I've found some post about same problem in 2013.
Is it possible to point ojdbc version failure (seems always be ojdbc6 driver) to avoid load those ones !
or put an alert when using that one : 'be aware to  xxxxx lines /commit"
regards
laurent
edit :
for strategy all is in local provider :

for strategy of load all is in xml component (local provider) :)
<IMPORT NAME="Driver-Oracle-XDB" REQUIRED_IF="SCHEMA.DB_TYPE IN " UrlPath="platform:/plugin/org.talend.libraries.jdbc.oracle/lib/xdb.jar" MODULE="xdb.jar"/><IMPORT NAME="Driver-Oracle-XMLPARSERV2" REQUIRED_IF="SCHEMA.DB_TYPE IN " UrlPath="platform:/plugin/org.talend.libraries.jdbc.oracle/lib/xmlparserv2.jar" MODULE="xmlparserv2.jar" BundleID=""/><IMPORT NAME="Talend-oracle-timestamptz" REQUIRED_IF="(DB_VERSION == 'ORACLE_11-6') OR (DB_VERSION=='ORACLE_11') OR (DB_VERSION=='ORACLE_10')" UrlPath="platform:/plugin/org.talend.libraries.custom/lib/talend-oracle-timestamptz.jar" MODULE="talend-oracle-timestamptz.jar"/><IMPORT NAME="ORACLE_11-6" REQUIRED_IF="(DB_VERSION == 'ORACLE_11-6') AND (USE_EXISTING_CONNECTION == 'false') AND (SPECIFY_DATASOURCE_ALIAS == 'false')" UrlPath="platform:/plugin/org.talend.libraries.jdbc.oracle/lib/ojdbc6.jar" MODULE="ojdbc6.jar" BundleID=""/><IMPORT NAME="ORACLE_11" REQUIRED_IF="(DB_VERSION == 'ORACLE_11') AND (USE_EXISTING_CONNECTION == 'false') AND (SPECIFY_DATASOURCE_ALIAS == 'false')" UrlPath="platform:/plugin/org.talend.libraries.jdbc.oracle/lib/ojdbc6.jar" MODULE="ojdbc6.jar" BundleID=""/><IMPORT NAME="ORACLE_10" REQUIRED_IF="(DB_VERSION == 'ORACLE_10') AND (USE_EXISTING_CONNECTION == 'false') AND (SPECIFY_DATASOURCE_ALIAS == 'false')" UrlPath="platform:/plugin/org.talend.libraries.jdbc.oracle/lib/ojdbc14.jar" MODULE="ojdbc14.jar" BundleID=""/><IMPORT NAME="ORACLE_9" REQUIRED_IF="(DB_VERSION == 'ORACLE_9') AND (USE_EXISTING_CONNECTION == 'false') AND (SPECIFY_DATASOURCE_ALIAS == 'false')" UrlPath="platform:/plugin/org.talend.libraries.jdbc.oracle/lib/ojdbc14-9i.jar" MODULE="ojdbc14-9i.jar" BundleID=""/><IMPORT NAME="ORACLE_8" REQUIRED_IF="(DB_VERSION == 'ORACLE_8') AND (USE_EXISTING_CONNECTION == 'false') AND (SPECIFY_DATASOURCE_ALIAS == 'false')" UrlPath="platform:/plugin/org.talend.libraries.jdbc.oracle/lib/ojdbc12.jar" MODULE="ojdbc12.jar" BundleID=""/>

but when looking at modules (jar required)

And when Build Job, is the ojdbc6 that is stored in the lib (package).
So I want ot avoid to use it . but can I use ojdbc14 without risk (with Oracle11)? or which other one ?
down the number of lines/commit is not solution for my cases Smiley Happy
thanks for advices
Seventeen Stars

Re: ArrayIndexOutOfBoundsException TOS5.4 - tOracleOutput (ojdbc6.jar)

of cousre I can modify Talend code in the xml (looks like it correct the bug):
<IMPORT NAME="ORACLE_11"  MODULE="ojdbc14.jar" BundleID="" UrlPath="platform:/plugin/org.talend.libraries.jdbc.oracle/lib/ojdbc14.jar" REQUIRED_IF="(DB_VERSION == 'ORACLE_11') AND (USE_EXISTING_CONNECTION == 'false') AND (SPECIFY_DATASOURCE_ALIAS == 'false')" />

but I guess that there is a reason why Talend didn't provide it , isn't it ?
still a geek solution to not modify Talend code : replace ojdbc6 by ojdbc14 and rename it by ojdbc6 ... (seems to work as well)
but doesn't sound an optimal solution either, even if it's works
thanks for advices
ps : on TIS 5.4.2
regards
One Star

Re: ArrayIndexOutOfBoundsException TOS5.4 - tOracleOutput (ojdbc6.jar)

Hi Team,
We are getting below error when we are loading data from Oracle to Oracle DB when there are records greater than 10k. Please can you help me out with this issue.
Error:TOracleOutput_1 -32493 Exception in component tOracleOutput_1 java.lang.ArrayIndexOutOfBoundsException: -32493
Talend Studio Version : 6.1.1


Thanks,
Sanjay
One Star

Re: ArrayIndexOutOfBoundsException TOS5.4 - tOracleOutput (ojdbc6.jar)

Hi Team,
we are facing below issue when we are extracting data from Source Oracle views and loading into Oracle DWH table. We are using tOracleInput as source component and tOracleOutput as Target component. Please can you let us know how to resolve with this issue. Let me know if you need more details.
Error: Exception in component tOracleOutput_1 java.sql.SQLException: ORA-28040: No matching authentication protocol
We are using Talend Studio 6.1.1 version.

Regards,
Rajkumar.
One Star

Re: ArrayIndexOutOfBoundsException TOS5.4 - tOracleOutput (ojdbc6.jar)

Curious about this error and the cause. The default commit and batch size of 10,000 usually works fine for me. However; it the table structure or data size is large, I get the error ArrayIndexOutOfBoundsException error and can resolve it by lowering the commit and batch size, I will try 5,000 then 1,000 and worse case set to 500. It would seem to me this is a resource limitation but setting JVM args to higher values doesn't seem to matter. What are I missing here?