データベースアクセス管理機能を利用したサーバアプリケーションで発生するトラブルについて、事例およびその対処について説明します。
本章に記載されていないトラブルや、事例に一致しないトラブルの場合は、Symfoware Serverが提供するマニュアルを参照し対処を行ってください。
注意
データベースからの異常を認識するためには、サーバアプリケーションでデータベースからの異常を適切に受け取り、標準出力または標準エラー出力に表示する必要があります。
詳細については、Symfoware Serverが提供するマニュアルを参照してください。
以下の可能性があります。
■サーバアプリケーションの作成方法に誤りがあります。または、サーバアプリケーションの運用モードに誤りがあります。
スレッドモードで作成したサーバアプリケーションをプロセスモードで運用しているか、プロセスモードで作成したサーバプリケーションをスレッドモードで運用しています。
サーバアプリケーション作成時におけるプレコンパイル、コンパイル、およびリンク時のオプションを確認し、ワークユニットの運用モードと一致しているか調査してください。
一致していない場合は、サーバアプリケーションを再作成するか、ワークユニットの運用モードを変更してください。
■データベースアクセス管理機能が有効ではありません。
データベースアクセス管理機能が有効でない可能性があります。
システム構築シートを利用している場合は、業務用データベースを「使用する」に設定して再定義してください。
システム構築シートを利用していない場合は、アプリケーション連携実行基盤定義ファイルを編集し、“dbconnect-config”に業務データベースのデータベースリソースを記載してください。
以下の対処を実施してください。以下の対処で解決できない場合は、Symfoware Serverが提供するマニュアルを参照し対処を行ってください。
■サーバアプリケーションをCOBOLで作成している場合
クライアント用の動作環境ファイルに、CHAR_SETパラメタおよびNCHAR_CODEパラメタを記載する必要があります。また、これらのパラメタには、サーバアプリケーションが動作する文字コードに合わせて適切な値を設定する必要があります。
詳細については、“Interstage Business Application Server セットアップガイド”の“実行環境の作成”を参照して対処してください。
■サーバアプリケーションをC言語で作成している場合
クライアント用の動作環境ファイルに記載している、CHAR_SETパラメタおよびNCHAR_CODEパラメタの設定値を確認してください。これらのパラメタには、サーバアプリケーションが動作する文字コードに合わせて適切な値を設定する必要があります。
なお、通常Symfoware Serverが環境変数LANGに合わせて文字コードを変換するため、CHAR_SETパラメタおよび、NCHAR_CODEパラメタを記載する必要はありません。
注意
C言語アプリケーションを使用できるのは、同期アプリケーション連携実行基盤だけです。
データベースアクセス管理機能を利用する場合、トランザクションを開始した状態で業務アプリケーションを呼び出します。このため、トランザクション外で動作するSQL文を利用することはできません。詳細については、“Interstage Business Application Server アプリケーション開発ガイド”の“データベースアクセス管理機能”を参照してください。
なお、トランザクション内で動作可能なSQL文については、Symfoware Serverが提供するマニュアルを参照してください。
注意
データベースアクセス管理機能を利用する場合は、サーバアプリケーションでトランザクションを終了しないでください。
Symfowareのタイムアウト設定に誤りがあるか、サーバアプリケーションに問題がありタイムアウトが発生した可能性があります。“Interstage Business Application Server チューニングガイド”の“タイムアウト値のチューニング”を参照してタイムアウト設定を確認してください。また、サーバアプリケーションでタイムアウトが発生する処理を行っていないことを確認してください。タイムアウト設定に該当しない場合には、“Interstage Business Application Server メッセージ集”およびSymfowareのマニュアルを参照し対処してください。
注意
非同期アプリケーション連携実行基盤のサーバアプリケーションの処理中に、キューの閉塞を行うとサーバアプリケーションで実施しているトランザクションの処理で遅延が発生します。キューの閉塞を行う場合は、キューの閉塞を行う時間を考慮してタイムアウト設計を実施してください。
Symfowareの利用者制御機能に設定されているパラメタに不備があるか、サーバアプリケーションに問題があります。“Interstage Business Application Server メッセージ集”を参照し、エラーが発生した利用者制御機能のパラメタを調査してください。以下にパラメタごとの対処方法を記載します。パラメタの詳細や設定方法については、Symfoware Serverのマニュアルを参照してください。
エラーが発生したパラメタ | 対処 |
MAX_CONNECTION | データベースへのコネクション数が超過しています。利用者制御機能で設定されている最大のコネクション数を見直すか、使用しているコネクション数が減少するのを待ってください。 |
MAX_MEMORY_USE | 1つのコネクションで使用可能なメモリ量を超過しています。サーバアプリケーションの動作を見直してください。なお、非同期アプリケーション連携実行基盤で、メッセージとDBの整合性保証機能またはメッセージトラッキング機能を利用している場合は、最低でも以下の値を設定する必要があります。 MAX_MEMORY_USE(MByte) = アクティビティで利用するキュー数 = 注意 メッセージ長については、“Interstage Business Application Server チューニングガイド”の“メッセージ長の見積り式”を参照して計算してください。 |
MAX_TRAN_MEM | トランザクションで使用可能なメモリを超過しています。サーバアプリケーションの動作を見直してください。なお、非同期アプリケーション連携実行基盤で、メッセージとDBの整合性保証機能またはメッセージトラッキング機能を利用している場合は、最低でも以下の値を設定する必要があります。 MAX_TRAN_MEM(KByte) = アクティビティで利用するキュー数 = 注意 メッセージ長については、“Interstage Business Application Server チューニングガイド”の“メッセージ長の見積り式”を参照して計算してください。 |
MAX_TRAN_TIME | トランザクションの最大処理時間が超過しています。“データベースからJYP1004E/JYP1006E/JYP1002Uのエラーが通知される”を参照して対処してください。 |
MAX_WAIT_TIME | 無応答時間が超過しています。“データベースからJYP1004E/JYP1006E/JYP1002Uのエラーが通知される”を参照して対処してください。 |
MAX_WORKFILE_USE | 1つのコネクションで使用可能な作業用ファイルの量が超過しています。サーバアプリケーションの動作を見直すか、指定値を見直してください。本パラメタには0を指定してください。 |
MAX_WORKFILE_NUM | 1つのコネクションで使用可能な作業用ファイルの数を指定します。本パラメタには0を指定してください。 |