Rational® Synergy 7.0 または 7.1 からのアップグレードを行う前に、Illegal Character Detection ツールをインストールしてデータベースに対して実行してください。このツールは、UTF-8 への変換中に正しく変更されない可能性がある文字を検出します。
始める前に
現行バージョンの
Rational Synergy でこのタスクを行う必要があるかどうかを確認してください。
Current® Rational Synergy バージョン |
変換の必要性 |
7.0 |
必要 |
7.1 |
必要 |
7.1a |
不要 |
Rational Synergy 7.1a
では既に UTF-8 エンコードが使用されているため、エンコード変換は実行されません。7.1a からアップグレードするユーザーはこのセクションをスキップできます。
このタスクについて
Rational Synergy データベースを 7.0 または 7.1 から 7.2 以降に
アップグレードすると、そのデータベースのすべてのテキスト・メタデータ (タイプおよびオブジェクトの名前、ストリング属性およびテキスト属性の値、
および類似の項目) のエンコードが、旧リリースで使用されていた Windows CP1252 エンコードから、
リリース 7.2 以降で使用されている UTF-8 に変換されます。
Rational Synergy データベースで制御されているファイルの内容は変更されません。Informix® または Oracle に格納されているテキスト・メタデータのみが再エンコードされます。
リリース 7.0 および 7.1 の Rational Synergy では、テキスト・データが CP1252 (またはその Latin-1 サブセット) でエンコードされているものと想定しています。ただし、エンコードの検査が行われない Classic クライアントを使用するなどして、一部の文字が他のエンコードで入力されている可能性があります。
CP1252 で未定義の16 進数バイト値を以下に示します。
データベース・アップグレード中にテキスト・メタデータでこれらのバイト値が検出されると、「¥x」に 16 進数値がストリングとして続くシーケンスに変換されます。例えばアップグレード中にバイト値 0x81 が検出されると、ストリング「¥x81」に変換されます。アップグレード中に検出されたこのようなバイト値はそれぞれアップグレード・ログに記録され、検出結果のリストが今後の検索のためにデータベースに保管されます。
無効なバイト値 |
変換後のストリング・リテラル |
0x81 |
“¥x81“ |
0x8D |
“¥x8D“ |
0x8F |
“¥x8F“ |
0x90 |
“¥x90“ |
0x9D |
“¥x9D“ |
デフォルトでは、この表に示されているバイト値がこのツールでスキャンされ、報告されます。データベース内のユーザーが Classic クライアントを Windows CP1252 および ISO Latin-1 以外のエンコードで実行していた場合は、CP1252 とご使用のエンコードの間で相違しているコード・ポイントを特定する必要があります。以下のステップ
6 の指示に従って、それらのコード・ポイントもスキャンする必要があります。例えば、データベースに Latin-2 (ISO-8859-2) のデータが格納されているとします。以下の表には、CP-1252 と ISO-8859-2 の間で相違するコード・ポイントの一部が示されています。7.2 以降へのアップグレードではこのようなデータは正しい UTF-8 値に
変換されないので、検出スキャン・ツールの実行時にこのようなコード・ポイントを含める必要があります。
表 1. CP-1252 と ISO-8859-2 の間で相違するコード・ポイントコード・ポイント |
CP-1252 |
ISO-8859-2 |
0xB1 |
± |
ą |
0xB3 |
³ |
ł |
0xB6 |
¶ |
ś |
0xC0 |
À |
Ŕ |
手順
Rational Synergy
7.2 にアップグレードする前に、以下の Illegal Character Detection ツールを使用してください。
- 検出ライブラリー db_illegal.a をダウンロードします。
https://www.ibm.com/support/docview.wss?uid=swg27021595 から、該当するライブラリーをダウンロードします。
- Rational Synergy
7.0 または 7.1 で、Classic CLI セッションを開始します。
- コマンド ccm
load –a detection_library_location を実行して、ライブラリーをロードします。 例: ccm load -a /tmp/db_illegal.a
- ccm define detection db_illegal_detection cmd を実行して、Illegal Character Detection ツールのコマンドを定義します。
- ccm detection html_output_file_location を実行して、Illegal Character Detection ツールを実行してスキャンを開始します。 例: ccm detection /tmp/database1.html
- オプション: 無効バイト値の独自のセットを追加できます。それには、-a または -additional オプションを追加し、その後に 1 つ以上の 16 進値を指定します。
注: 複数の 16 進値を指定する場合は、値の間にスペースを挿入しないでください。
例えば 2 つの Latin-2 文字を追加するには、コマンド ccm detection –a B1B3B6C0 /tmp/database1_scan.html を使用します。 このコマンドでは、5 つの無効な CP1252 文字と、指定した Latin-2 文字が検出されます。
タスクの結果
スキャンに必要な時間は、データベースのサイズ、およびシステムの処理速度によって異なります。大規模データベースではスキャンに数時間かかることもあります。可能であれば、データベースの使用率が低い時間帯にスキャンを実行してください。スキャンは読み取り専用であるため、サーバーのシャットダウンやデータベースの保護は不要です。
Illegal Character Detection ツールの出力は HTML 形式であり、ブラウザーで表示できます。コマンドの実行時に定義された無効なデータを含む各オブジェクトが、ヘッダー・ブロックにリストされます。ヘッダー・ブロックをクリックすると、無効な値が含まれている属性が表示されます。無効な文字は赤色で強調表示されます。未定義の CP1252 文字は、不等号括弧で囲まれた 16 進値として表示されます。例えば、文字 16 進値 81 が検出された場合、レポートには大きな赤いフォントで「<81>」と表示されます。
次のタスク
Illegal Character Detection ツールの実行後にレポートを調べて、データベースに無効なテキスト・データが含まれているかどうかを確認します。含まれている場合は、
適切な Rational Synergy または Rational Change インターフェースでオブジェクトとその属性値を調べます。データを手動で削除または訂正することも、繰り返し発生しているエラーを修正するためのスクリプトを作成することも、データをこれ以上編集せずにそのままにしておくこともできます。
リリース 7.2 以降へのデータベースのアップグレード中には、
有効な CP1252 文字ではない残りのバイト値は
すべて前述の「¥xNN」シーケンスに変換されます。その他のすべてのテキスト・データは CP1252 エンコードであると見なされ、CP1252 から UTF-8 に変換されます。