運用時に発生したトラブルの事例、およびその対処方法について説明します。
クライアントの画面で、メッセージ JYP2008E が出力される
クライアントの画面で、サーバから以下のメッセージが出力されることがあります。
SQL-STATE=71020 JYP2008E 同時に操作できるSQL文の数を超えました.
以下の2つの場合が考えられます。
1トランザクション内でのSQL文の実行数が動作環境ファイルでのパラメタの設定値を超えた
動的SQLでSQL文識別子を利用しており、SQL文識別子の数が動作環境ファイルでのパラメタの設定値を超えた
同時に操作可能なSQL文の数は、動作環境ファイルのパラメタ“MAX_SQL”または“CLI_MAX_SQL”で指定します。“MAX_SQL”または“CLI_MAX_SQL”の値を見直してください。なお、初期値は1024に設定されています。
参照
“MAX_SQL”の詳細は、“アプリケーション開発ガイド(埋込みSQL編)”の“クライアント用の動作環境ファイルによる定義”を参照してください。
“CLI_MAX_SQL”の詳細は、“アプリケーション開発ガイド(JDBCドライバ編)”の“ctuneparamオプションについて”、または、“アプリケーション開発ガイド(ODBCドライバ編)”の“アプリケーションのチューニング”を参照してください。
UPDATE文を実行すると、メッセージ JYP6015E が出力される
「SET=<値式>」の<値式>中に問合せ指定(SELECT文)を記述するようなUPDATE文は、Symfoware/RDBではサポートしてないため、以下のエラーが出力されます。
JYP6015E UPDATE文の設定句に副問合せが指定されました.
SELECT文の結果を一度変数に格納してから、UPDATE文を実行することで、回避してください。
“UPDATE TABLE_ABC SET A = (SELECT X FROM TABLE_XYZ WHERE Y=1111)”というSQL文を実行する代わりに、以下の手順でSQL文を実行します。
“SELECT X FROM TABLE_XYZ WHERE Y=1111”の結果を、変数“MM”に取り込みます。
“UPDATE TABLE_ABC SET A = :MM”を実行します。