How to resolve error:com.tibco.adapter.adb.database.DBSQLException: java.sql.SQLException: [tibcosoftwareinc][Oracle JDBC Driver]Transliteration failed, reason: invalid UTF8 data when construct minstance based on source table

How to resolve error:com.tibco.adapter.adb.database.DBSQLException: java.sql.SQLException: [tibcosoftwareinc][Oracle JDBC Driver]Transliteration failed, reason: invalid UTF8 data when construct minstance based on source table

book

Article ID: KB0076070

calendar_today

Updated On:

Products Versions
TIBCO ActiveMatrix BusinessWorks Plug-in for Database 7.2

Description

How to resolve error: com.tibco.adapter.adb.database.DBSQLException: java.sql.SQLException: [tibcosoftwareinc][Oracle JDBC Driver]Transliteration failed, reason: invalid UTF8 data when construct minstance based on source table
 

Issue/Introduction

Add property java.property.allowExceptionForInvalidEncodedData=false in adbagent.tra

Environment

=================================================== Product:TIBCO ActiveMatrix BusinessWorks Plug-in for Database Version: 7.2 OS: All Supported Operating Systems ====================================================

Resolution

The error message "[tibcosoftwareinc][Oracle JDBC Driver]Transliteration failed, reason: invalid UTF8 data when construct minstance based on publishing table", a JDBC driver thrown error indicated that the specific character triggers the error comes from a single byte DB code page, and when it tried to store in the multiple byte UTF8 code page, it converts a different character that is invalid and resulted in conversion error when being retrieved. In other words, the character that caused the issue does not conform to the UTF8 code page. 

The article below illustrated a similar issue,

https://knowledgebase.progress.com/articles/Article/000052030

To resolve this error install the latest TIBCO JDBC driver version 2.0.6 

Our JDBC drivers support a hidden system property that can direct the driver to 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. This should be used in identifying corrupted data.

Note: this solution only applies to queried data. Inserts of corrupted data will still cause the error to occur.

The system property is: allowExceptionForInvalidEncodedData=false

Being that is a system property, it should be set as: java -D allowExceptionForInvalidEncodedData=false <application_name>
*****

Follow below steps:

1) Edit the adbagent.tra / application .tra fileand add below property at the end of the file,

       java.property.allowExceptionForInvalidEncodedData=false

2) Restart the adapter application