Linkexpress Replication optionの複写先データベースでのJYP2099Eエラーについて

Linkexpress Replication optionで一括差分複写を実行すると、レプリケーション業務の差分格納処理が、「JYP2099E デッドロックが発生しました.」というエラーになりました。原因と対処方法を教えてください。
[原因]
Linkexpress Replication optionで一括差分複写を実行すると、レプリケーション業務の差分格納処理は格納コマンド(lxstrdbコマンド)内で動的SQL文を使って複写先のデータベースを更新します。この動的SQL文と複写先データベースに対して利用者が実行したSQL文の間で排他の競合が発生したことが原因です。

[対処方法]
デッドロックが発生した場合は、以下の対処を実施してください。
・レプリケーション業務の差分格納処理(lxstrdbコマンド)がエラーになった場合
 次のサイクルで実行するレプリケーション業務の格納処理が正常終了することで復旧するため、対処は不要です。
・利用者が実行したSQL文がエラー復帰した場合
 SQL文を再実行してください。

また、デッドロックが発生する可能性を低減するため、以下の対処も検討してください。
・利用者による複写先データベースに対するSQL文の実行は、データベース資源を占有しない指定(占有モード指定でNO_LOCKを指定)や行単位の排他(行ロック)を利用する。
・Symfoware Server V10.1以降を使用している場合は、複写先データベースの表のDSO定義にPRECEDENCE(1)を指定して、コミットデータ即時読込み機能を利用する。

データベース資源を占有しない指定や行単位の排他についての詳細は、以下のマニュアルを参照してください。

  Symfoware Server V12.3.0 アプリケーション開発ガイド(共通編)
    第1部 アプリケーション開発における基礎知識
      第1章 アプリケーションの設計に必要な概念
        1.1 トランザクションと排他制御
  Symfoware Server V12.3.0 RDB運用ガイド(データベース定義編)
    第4章 格納構造
      4.1 表の格納構造の特徴
        4.1.1 SEQUENTIAL構造
          コミットデータ即時読込み機能を利用する場合

なお、上記以外の製品バージョン/レベルについては、該当するマニュアル箇所を参照してください。
製品・サービス区分 Symfoware
製品・サービス情報
対象製品 Symfoware Server (Native Interface)
プラットフォーム Windows, Solaris, Linux
アンサー種別 運用/保守
このページの先頭へ