ページの先頭行へ戻る
Symfoware Server V11.1.1 Mirroring Controllerセットアップガイド
FUJITSU Software

E.3.3 トランザクション内で複数のロググループに対して更新している場合の対処

DBミラーリングシステムの運用を行う場合、トランザクション内で複数のロググループに対する更新はできません。実行した場合、DBミラーリングシステムの制約により業務アプリケーションがエラーとなります。

[出力されるエラー]

SQLSTATE

SQLMSG

メッセージログファイル

71400

JYP2907E: トランザクション内で複数のロググループに対する更新はできません.

rdb: ERROR: qdg20763u: トランザクション内で複数のロググループに対する更新はできません ロググループ名='更新を行ったDSIの属するロググループ名' ロググループ名='更新が抑止されたDSIの属するロググループ名' DSI名='更新が抑止されたDSIのデータベース名.更新が抑止されたDSI名'

エラーとなる場合の例、および対処方法について以下に説明します。

[例と対処方法の概要]

No

エラーとなる例

対処方法

例1

トランザクションを終了せずに、別のロググループに対応づけられた資源に対して更新を行った場合

トランザクションを終了してから、別の資源にアクセスするようにしてください。

例2

複数のDSIに分割している表で、1つのSQL文で複数のロググループに対応づけられた資源に対して更新を行った場合

[対処方法1]
SQL文に分割条件を追加し、トランザクションを分けて資源にアクセスするようにしてください。

[対処方法2]
資源配置を修正し、1つのロググループに集約するようにしてください。

例1

トランザクションを終了せずに、別のロググループに対応づけられた資源に対して更新を行った場合は、エラーとなります。

対処方法

トランザクションを終了してから、別の資源にアクセスするようにしてください。

例2

複数のDSIに分割している表で、1つのSQL文で複数のロググループに対応づけられた資源に対して更新を行った場合はエラーとなります。

対処方法1

SQL文に分割条件を追加し、トランザクションを分けて資源にアクセスするようにしてください。

対処方法2

資源配置を修正し、1つのロググループに集約するようにしてください。

ポイント

定義を変更した後で変更したDSIに対する初期データを入力するために、Symfoware Serverのrdbunlコマンドを使用し、表DSIのデータを退避しておいてください。

参照

  • Symfoware Serverのrdbunlコマンドの詳細は、“コマンドリファレンス”を参照してください。

  • データベースの格納構造を変更する方法の詳細は、“RDB運用ガイド(データベース定義編)”を参照してください。

  • DBミラーリングシステムの運用開始後に定義を変更する方法の詳細は、“Mirroring Controller 運用ガイド”の“データベース定義の変更”を参照してください。