Error using Oracle Session if UnicodeEnvironment is set to true

Discussion of open issues, suggestions and bugs regarding ODAC (Oracle Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
GaryGaunt
Posts: 1
Joined: Thu 26 Jan 2017 14:51

Error using Oracle Session if UnicodeEnvironment is set to true

Post by GaryGaunt » Thu 26 Jan 2017 15:11

We have a large application that we are converting from Delphi 7 to Delphi 10.1 Berlin to use Unicode, and we are using ODAC 9.7.28 for RAD Studio 10.1.
We have an 'enhanced' version of a TOraSession that we have used in the application under Delphi 7 for many years:

// TSessionEnh is an enhanced TOraSession
TSessionEnh = class(TOraSession)
private
fActiveDataset: integer;
fActiveDatasetKnown: boolean;
fInStartTransaction : boolean;
procedure SetActiveDataset(DatasetID: integer);
function GetActiveDataset: integer;
protected
function GetInTransaction: boolean; override;
public
function State: TSessionState;
function InUse: boolean;
function DefaultDataset: integer;
procedure StartTransaction; override;
property ActiveDataset: integer read GetActiveDataset write SetActiveDataset;
end;

We have a Unicode database that we can update with Chinese characters using Toad.

If we create a session based on TSessionEnh and set UseUnicode to true and UnicodeEnvironment to false, then we cannot update the Oracle database correctly with Chinese characters.

If we set both UseUnicode and UnicodeEnvironment to true, we get the following error when the session is used:
ORA:03106: fatal two-task communication protocol error

The application uses multiple session connections that we control with a collection pool.

Any help with this problem would be much appreciated.

MaximG
Devart Team
Posts: 1822
Joined: Mon 06 Jul 2015 11:34

Re: Error using Oracle Session if UnicodeEnvironment is set to true

Post by MaximG » Tue 31 Jan 2017 17:00

We checked ODAC 9.7.28 behavior when working with Unicode. Unfortunately, we could not reproduce the described problem. Please compose and send us via the e-support form ( https://www.devart.com menu "Support"\"Request Support" ) a small sample in which the problem occurs.

Post Reply