Are there any known issues with TIBCO BusinessWorks Collaborator (BWC) with Oracle 10.2 that has UTF-8 and byte length encoding.

Are there any known issues with TIBCO BusinessWorks Collaborator (BWC) with Oracle 10.2 that has UTF-8 and byte length encoding.

book

Article ID: KB0086647

calendar_today

Updated On:

Products Versions
TIBCO BusinessWorks Collaborator -
Not Applicable -

Description

Resolution:
If you are using 1 byte encoding then it would not throw DBMS error and IC/BWC will chop more than 2000 characters and truncate to the max.
But if you are using byte semantics/UTF-8, DBMS would throw a valid error which will be reported by BWC. This is quite common usage.

When using Oracle 10g with UTF8 encoding and byte length semantics; if VARCHAR(10) is inserted with 10 German/European characters it results in "data exceeds column length"-error. This is because Oracle 10g allocates 2 bytes per German character. This means only 5 characters fit in that column resulting in DBMS error ORA-12899.

From Oracle 10 documentation for UTF-8 Encoding I can see:
For the UTF-8 character codes following conditions are true:
- ASCII characters use 1 byte
- European (except ASCII), Arabic, and Hebrew characters require 2 bytes

NLS_CHARACTERSET: AL32UTF8 and Byte Length semantics.

In a WF process if you add an attribute that contains something as 1300 German characters "รครครค...". The WF Server reports:
Workflow server error. Workflow server error. [ERROR/DBMS/-12899]

From Oracle Docs:
ORA-12899: value too large for column string (actual: string, maximum: string)
Cause: An attempt was made to insert or update a column with a value which is too wide for the width of the destination column. The name of the column is given, along with the actual width of the value, and the maximum allowed width of the column. Note that widths are reported in characters if character length semantics are in effect for the column, otherwise widths are reported in bytes.
Action: Examine the SQL statement for correctness. Check source and destination column data types. Either make the destination column wider, or use a subset of the source column (i.e. use substring).

This is true in many cases where BWC reports directly any DBMS error in the format "Workflow server error. [ERROR/DBMS/-xxxxx]".

If Oracle is using ISO encoding then 1 byte is allocated per character and in that case past our maximum string length (2000 in Oracle's case) is truncated for an attribute.

Issue/Introduction

Are there any known issues with TIBCO BusinessWorks Collaborator (BWC) with Oracle 10.2 that has UTF-8 and byte length encoding.