PowerReplicationが行う文字コード変換について説明します。
文字コードが異なるデータベース間で同期実行を行う場合、PowerReplicationは連携する相手システムの動作環境によって文字コードの変換方式が異なります。
ASP レプリケーションサービスの動作文字コードにシフトJISを設定している、または、ASP V24以前のシステムと連携する場合
図2.15 ASP レプリケーションサービスの動作文字コードにシフトJISを設定している、または、ASP V24以前のシステムと連携する場合
文字コード変換は、同期処理によってデータが反映されるサーバで行われます。
PowerReplicationは、ASP側からWindows側へデータを反映するとき「Charset Manager」または「JEF拡張漢字サポート」を使用して、EBCDIC/JEFコードの文字をシフトJISコードの文字にコード変換します。OracleまたはSQL ServerのUnicodeデータを扱う場合、ODBCドライバがシフトJISコードとUnicodeのコード変換を行います。
この変換方式は、PowerReplication V3.0と同じ変換方式です。
JEFコードの旧字体とシフトJISコードの変換は、PowerReplicationの動作環境に設定したJEFコード変換タイプに従って変換されます。
JEFコード系は、83JISにより字体変更された文字を拡張漢字領域に割り当てており、変換前の旧字体についてはそのままJIS領域に存在しています。これらの文字を新字体/旧字体ともに、83JISベースのJIS領域を持つコード系(シフトJIS)に変換するためには、文字コードを対応づけることが必要です。対応づけられていない文字コードを変換すると‘_’(アンダーバー)に変換され、同期が続行されます。
JEFコード変換タイプには、「字形重視」と「領域重視」の2つがあります。
・ 字形重視の場合
Windowsの文字コードは、JEFコードの新字体に変換されます。
・ 領域重視の場合
Windowsの文字コードは、JEFコードの旧字体に変換されます。
レプリケーションで扱える文字は、シフトJISコードで表現できる文字の範囲内に限られます。
また、外字(利用者定義文字)を扱うとき、ODBCドライバの文字コード変換で変換できない場合があります。
ASP レプリケーションサービスの動作文字コードにUnicode(UTF8)が設定されている場合
図2.16 ASP レプリケーションサービスの動作文字コードにUnicode(UTF8)が設定されている場合
ASP側でEBCDIC/JEFコードの文字とUnicode(UTF8)の文字を変換します。ASPとWindows間は、Unicodeのデータで送受信します。
PowerReplicationは、OracleまたはSQL ServerのシフトJISデータを連携する場合、ODBCドライバの機能を使用してUnicodeの文字をシフトJISコードの文字にコード変換します。
このため、Windows側に文字コード変換製品は不要です。
レプリケーションで扱える文字は、EBCDIC/JEFコードで表現できる文字の範囲内に限られます。Unicodeのデータと連携する場合、JIS X 0123:2004に対応した文字セット(JIS2004)の4バイトの文字は扱えません。
また、外字(利用者定義文字)を扱うとき、ODBCドライバの文字コード変換で変換できない場合があります。変換できない文字は、‘_’(アンダーバー)に変換されます。
PowerReplication V3.0(PowerRW+)と連携している場合
図2.17 PowerReplication V3.0(PowerRW+)と連携している場合
シフトJISコードのデータを扱う場合、コード変換は行いません。Unicodeのデータを扱う場合、ODBCドライバがシフトJISコードとUnicodeのコード変換を行います。
OracleまたはSQL ServerでUnicodeのデータと連携する場合、レプリケーションで扱える文字は、シフトJISで表現できる文字の範囲内に限られます。また、外字(利用者定義文字)を扱うとき、ODBCドライバの文字コード変換で変換できない場合があります。変換できない文字は、‘_’(アンダーバー)に変換されます。
ASP レプリケーションサービスの動作文字コードおよびASP側で行われるEBCDIC/JEFコードとUnicodeの文字コード変換については、「ASP レプリケーションサービス説明書 V25~」を参照してください。
ODBCドライバの文字コード変換機能については、使用するDBMSのオンラインマニュアルなどを参照してください。
文字コード変換において、文字以外の不正データが検出された場合、変換不可能な文字を代替文字に変換し、同期実行は正常終了します。
このとき、イベントビューア(アプリケーションログ)には警告が通知され、警告の詳細情報が詳細メッセージ情報ファイルに出力されます。
詳細メッセージ情報ファイルの出力内容の詳細は、"付録F 詳細メッセージ情報ファイルの出力形式"を参照してください。