ページの先頭行へ戻る
Interstage Business Application Server 運用ガイド(高信頼性ログ編)
FUJITSU Software

11.9 アプリケーション作成時の注意

アプリケーションサーバなどのように、他ノード上で動作するアプリケーションからリモートアクセスしているときに、Symfoware/RDBの動作するノードでクラスタシステムの切替えが発生した場合に返却するSQLSTATEについて示します。

フェイルオーバ運用で、リモートアクセスのアプリケーションが接続しているノードまたはSymfoware/RDBがダウンした場合

状態

SQLSTATE

詳細/検出時間

ノードダウン

アクセス中にダウンしたとき

40003

アプリケーションサーバのTCP/IP層でエラーを検出します。基本的にOSに依存します。
ダウンするタイミングにより、即時にエラーを検出できる場合もありますが、無応答になる場合もあります。

  • 業務アプリケーションをC/COBOLで作成する場合

    • クライアント用の動作環境パラメタのWAIT_TIMEを指定することなどにより、無応答を防ぐ必要があります。

  • 業務アプリケーションをJavaで作成する場合

    • JDBCデータソースの定義パラメタctuneparamのCLI_WAIT_TIMEを指定することなどにより、無応答を防ぐ必要があります。

ダウン中にCONNECTしたとき

71002

アプリケーションサーバのTCP/IP層でエラーを検出します。基本的にOSに依存します。
TCP/IPのタイムアウト時間まで応答がなく、エラーを検出できないことがあります。この場合はWAIT_TIMEの指定でもエラー検出までの時間は制御できませんが、無応答ではありません。

40003

アプリケーションサーバのTCP/IP層でエラーを検出します。基本的にOSに依存します。
エラーは即座に検出されます。

Symfoware/RDBサブシステムダウン

アクセス中にダウンしたとき

40003

ダウン中にアクセスしたとき

08004

40003

待機ノードへの切替え開始後

切替え前にアクセスしたとき

71900

Symfoware/RDBからエラーが通知されます。
エラーは即座に検出されます。ただし、ホットスタンバイ機能を使用している場合は、コネクションの接続・切断処理はエラーになりません。スタンバイ機能を使用している場合は、コネクションの接続は08004のエラーとなります。

切替え中にアクセスしたとき

71900

参照

ノードダウン発生からクラスタシステムによるクラスタアプリケーションの切替え完了までの間に返却されるSQLSTATEの詳細は、以下の表を参照してください。

SQLSTATE

意味

システムの状態

対処方法

08004

コネクションの接続が拒否された

  • RDBシステムがダウンしている時にアプリケーションからリモートアクセスで接続要求があった場合に、当値が返却されます。

  • 何らかの原因でRDBシステムの切替えに失敗した場合、RDBシステムの切替えを中断し、RDBシステムを強制停止してから再起動します。

  • 強制停止から再起動の間に、アプリケーションからリモートアクセスで接続要求があった場合に、当値が返却されます。

切替え完了後、コネクションを接続してください。

40003

アプリケーションが接続しているノードあるいはRDBシステムがアクセス中にダウンした

  • トランザクションはロールバックされます。

  • ダウンしたノードのRDBシステムとのコネクションは切断されます。

  • 切替え完了後、トランザクションの初めからSQL文を再実行してください。

  • 待機ノードのRDBシステムにコネクションを接続している場合は、トランザクションの再実行前に、現コネクションの変更をしてください。

  • 待機ノードのRDBシステムにコネクションを接続していない場合は、トランザクションの再実行前に、コネクションを再接続してください。

71002

ノード(サーバ)が起動されていない

ノードがダウンしている時に、アプリケーションからリモートアクセスで接続要求があった場合に、当値が返却されます。

切替え完了後、コネクションを接続してください。

71900

待機ノードのRDBシステムでデータベースをアクセスするSQL文を実行した

  • RDBシステムの切替えが完了する前(待機のクラスタアプリケーションの状態)に、データベースをアクセスするSQL文を実行された場合に、当値が返却されます。

  • トランザクションはロールバックされません。

ROLLBACK文を発行し、切替え完了後にトランザクションの初めからSQL文を再実行してください。