OGG-03533

2018-02-12 11:21:49  ERROR   OGG-03533  Conversion from character set CESU-8 of source column BANK_ACCOUNT_NUM_HASH1 to character se
t UTF-8 of target column BANK_ACCOUNT_NUM_HASH1 failed because the source column contains a character '98' at offset 2 that is not a

vailable in the target character set.

遇到這種報錯,翻開官方文檔

Applies to:
Oracle GoldenGate Application Adapters - Version 12.3 to 12.3 [Release 12.3]
Information in this document applies to any platform.
Symptoms
After upgrading OGG Application Adapter from version 12.1.0.1 to version 12.2.0.1.5 and replace EXTRACT with REPLICAT process to send message to JMS queue.
Replicat BMP1101 abends with ERROR OGG-03533 Conversion from character set CESU-8 of source column H1IT_NOTE to character set UTF-16 of target column H1IT_NOTE failed because the source column contains
a character 'e8' at offset 13 that is not available in the target character set.

Extract in the previous version 12.1.2.1 processes the same data with no error.
Changes
Upgraded to 12.2 and used Replicate instead of extract pump
Cause
The 0xe8 and 0xf9 characters which was expected to map to è and ù, respectively, … are written in the trail NOT in CESU-8 (UTF-8 compatible) mode. They are written as one byte of a seemingly Latin1 character set. This is incorrect. Replicat doesn’t like this because it tries to confirm to the UTF-8 that is advertised by the database itself.
Extract does not, so extract will give the data as is (like as shown in trail). Basically, replicate adds some validation to ensure the data is correct.
The extract in this case is lucky, the reason is, the data is actually a Latin1 data. And our JNI function which sends the data to the Java supports both Latin1 and UTF8, and basically the method will return a Java String which is in Unicode. However, if the extract is dealing with “other” than Latin1, then we can expect that the data will not be intact all the way to the JMS.
In this case, replicate is trying to make sure we detect bad data early, and act upon it.
Solution
1) Remove goldengate.userexit.outputencoding=8 from properties file (this is for extract only)
2) Add parameter SOURCECHARSET OVERRIDE ISO-8859-1 to the replicat parameter
3) Restart the replicate.


解決辦法:

只需要在報此錯的目標端添加參數

SOURCECHARSET OVERRIDE ISO-8859-1

即解決

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章