ページの先頭行へ戻る
Linkexpress Transactional Replication option V5.0L60 説明書
FUJITSU Software

4.8 異常発生時の対処

異常発生時の対処について説明します。

対処の手順

対処の基本的な手順は、以下のとおりです。

異常の種類と対処

発生するおもな異常と対処について説明します。
異常時に採取/確認すべき情報については、"A.4 異常発生時に採取する情報"を参照してください。

異常の種類

確認または対処

概要

詳細

エラーメッセージが出力されている。

エラーの原因および対処については、"第10章 メッセージ"を参照してください。
データと定義の不整合が原因の場合、対処方法については"データと定義が不整合の場合"を参照してください。

エラーログ情報が出力されている。

エラーログ情報をもとに、データや各種定義を確認してください。
エラーログ情報については、"第9章 エラーロギング機能"を参照してください。
データと定義の不整合が原因の場合、対処方法については"データと定義が不整合の場合"を参照してください。

逐次差分反映が開始されない。

エラーメッセージが出力されていない。
lxrtmdspsvコマンドの出力内容においてstatusが"inact"。

以下を確認してください。

- 必須製品がインストールされていること
- 環境変数の設定(PATH、LD_LIBRARY_PATH)が正しいこと
- OracleまたはSQL Serverの場合、バージョンレベルが正しくエントリされていること(詳細はインストールガイドを参照)

データが反映されない。

エラーメッセージが出力されていない。
lxrtmdspsvコマンドの出力内容においてstatusが"act"だが、msg-countの値が変化しない。
trmqdprtqコマンドで確認した結果、メッセージキュー上にメッセージが格納されている。

抽出側システムのトランザクションの単位を確認してください。
msg-countの値は、トランザクションのコミットを契機に変化します。このため、1トランザクションの単位が大きい場合、msg-countの値が長時間変化しないことがあります。この場合、トランザクションがコミットされるまで待ってください。
トランザクションの単位による問題でない場合、以下を確認してください。

- 他のアプリケーションが対象の表を使用していないこと(例:データベースへアクセスするツールから対象の表をロック)
- Symfoware/RDBの場合、Symfowareの動作環境ファイルのWAIT_TIMEの内容
- Oracleデータベースの場合、ORACLE_LOCK_RETRY_INTERVALキーワードの内容
- SQL Serverデータベースの場合、SQLSERVER_LOCK_RETRY_INTERVALキーワードの内容

エラーメッセージが出力されていない。
lxrtmdspsvコマンドの出力内容においてstatusが"act"だが、msg-countの値が変化しない。
trmqdprtqコマンドで確認した結果、メッセージキュー上にメッセージが格納されていない。

以下を確認してください。

- JournalTransferの状態(trjtdisplayコマンド)
- 抽出側システムの状態

動作環境や定義の変更内容が有効にならない。

DBサービス定義を変更したが、その内容が有効にならない。

DBサービス定義の内容を確認してください。
DBサービスグループを再度登録してください。

DB動作環境定義を変更したが、その内容が有効にならない。

DB動作環境定義の内容を確認してください。
逐次差分反映を再度開始してください。

コード変換の設定を変更したが、その内容が有効にならない。

コード変換の設定内容を確認してください。
逐次差分反映を再度開始してください。

データと定義が不整合の場合

データと各種定義(DBサービス定義や格納側の表の定義など)の不整合によることが原因の場合、エラーメッセージやエラーログ情報をもとに、定義を修正すべきなのか、抽出側のデータを修正すべきなのか、データを補正またはエラーを無視して逐次差分反映処理を継続すべきなのか判断してください。

定義を修正する場合

DBサービス定義を修正する場合、以下の手順で行ってください。

  1. DBサービスグループの登録抹消(lxrtmgensvコマンド)

  2. DBサービス定義の修正

  3. DBサービスグループの登録(lxrtmgensvコマンド)

  4. 逐次差分反映の開始(lxrtmdbコマンド)

表の定義を修正する場合、以下の手順で行ってください。

  1. 表の定義の修正

  2. 逐次差分反映の開始(lxrtmdbコマンド)

抽出側のデータを修正する場合

抽出側システムで正しいデータを抽出するように修正します。メッセージキュー上に存在する先頭メッセージにはエラー原因があるため、逐次差分反映を開始する前に取り除く必要があります。なお、メッセージを取り除く方法には以下があります。

逐次差分反映処理を継続する場合

たとえば、DB動作環境定義キーワードの指定により、以下のことができます。

詳細は"4.3.2 DB動作環境定義の作成"を参照してください。

誤りやすいケース

誤りやすいケースと対処の手順について説明します。

RT14102メッセージ(DBMS message)が出力された場合
  1. 原因の特定

    1. 各種情報を採取します。詳細は"A.4 異常発生時に採取する情報"を参照してください。

    2. おもな原因として以下が考えられます。詳細はRT14102メッセージの説明を参照してください。

      • DBサービス定義が誤っている。

      • 格納側データベースの環境(表の定義など)が誤っている。

      • データが誤っている。(データが列の属性と合っていない。)

    3. エラー箇所/原因を特定します。

      • エラーメッセージ中に、エラーの発生箇所(表名など)が示されていることがあります。

      • エラーログ情報から、DBサービス定義内のエラー発生箇所/原因および対象データを特定できます。詳細は"第9章 エラーロギング機能"を参照してください。

      • エラー箇所/原因をもとに、抽出側システムを含めて、各種定義や環境を確認します。

  2. 修正

    エラーの原因を修正します。

  3. 復旧

    逐次差分反映を開始します。
    また、修正内容によっては、別途必要な操作があります。詳細は"4.7 環境作成における注意事項"を参照してください。

RT70019メッセージ(Input record and definition unmatched)が出力された場合
  1. 原因の特定

    1. 各種情報を採取します。詳細は"A.4 異常発生時に採取する情報"を参照してください。

    2. おもな原因として以下が考えられます。詳細はRT70019メッセージの説明を参照してください。

      • DBサービス定義が誤っている。

      • 抽出側システムの定義(TJNLの定義)が誤っている。

    3. エラー箇所/原因を特定します。

      • エラーメッセージ中に、エラーの発生箇所/原因が示されています。

      • エラーログ情報から、DBサービス定義内のエラー発生箇所/原因および対象データを特定できます。詳細は"第9章 エラーロギング機能"を参照してください。

      • エラー箇所/原因をもとに、抽出側システムを含めて、各種定義や環境を確認します。

  2. 修正

    エラーの原因を修正します。

  3. 復旧

    逐次差分反映を開始します。
    また、修正内容によっては、別途必要な操作があります。詳細は"4.7 環境作成における注意事項"を参照してください。