How to solve 'Transliteration failed, reason: invalid UTF8 data' JDBC driver exception for running the ADB Adapter

How to solve 'Transliteration failed, reason: invalid UTF8 data' JDBC driver exception for running the ADB Adapter

book

Article ID: KB0076234

calendar_today

Updated On:

Products Versions
TIBCO ActiveMatrix BusinessWorks Plug-in for Database 7.2.0

Description

Below error is thrown by the TIBCO JDBC driver in the adapter log while running the adapter Publication service,
++++
[tibcosoftwareinc][Oracle JDBC Driver]Transliteration failed, reason: invalid UTF8 data when construct minstance based on source table

In the JDBC driver spy log file, the stack trace looks as follows,
++++
spy>> java.sql.SQLException: [tibcosoftwareinc][Oracle JDBC Driver]Transliteration failed, reason: invalid UTF8 data ErrorCode=0 SQLState=HY000
java.sql.SQLException: [tibcosoftwareinc][Oracle JDBC Driver]Transliteration failed, reason: invalid UTF8 data
at tibcosoftwareinc.jdbc.oraclebase.ddcr.b(Unknown Source)
at tibcosoftwareinc.jdbc.oraclebase.ddcr.a(Unknown Source)
at tibcosoftwareinc.jdbc.oraclebase.ddcq.b(Unknown Source)
at tibcosoftwareinc.jdbc.oraclebase.ddcq.a(Unknown Source)
at tibcosoftwareinc.jdbc.oracle.ddn.b(Unknown Source)
at tibcosoftwareinc.jdbc.oraclebase.ddav.a(Unknown Source)
at tibcosoftwareinc.jdbc.oracle.ddn.a(Unknown Source)
at tibcosoftwareinc.jdbc.oraclebase.ddd7.getObject(Unknown Source)
at tibcosoftwareinc.jdbc.oraclebase.ddd6.getObject(Unknown Source)
at tibcosoftwareinc.jdbcspyoracle.SpyResultSet.getObject(Unknown Source)

The root cause of the problem is that the source table columns contains the corrupted data that can not be found in the translator table.

Environment

All supported platforms

Resolution

To solve the problem, please follow below approaches,
-- please figure out the corrupted data in the source table and correct it.(the SPY JDBC driver log can be used to identify the particular column which contains the invalid data)
-- enable Java system property allowExceptionForInvalidEncodedData=false in the adapter application .tra file, i.e. java.property.allowExceptionForInvalidEncodedData=false

Note: the java system property allowExceptionForInvalidEncodedData is a TIBCO JDBC driver hidden property. When this property is enabled, the driver will not throw such exceptions but rather introduce substitution characters (question marks) when invalid data is encountered. In most cases this will eliminate the exception and allow the driver to fetch rows beyond the problematic one. 
 

Issue/Introduction

How to solve 'Transliteration failed, reason: invalid UTF8 data' JDBC driver exception for running the ADB Adapter.

Additional Information

Transliteration failed, ADB Adapter, allowExceptionForInvalidEncodedData