ページの先頭行へ戻る
Symfoware Server V12.8.0 トラブルシューティング集

2.1.2 運用時の異常

運用時に発生したトラブルの事例、およびその対処方法について説明します。

クライアントの画面で、メッセージ 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ドライバ編)”の“アプリケーションのチューニング”を参照してください。

ポイント

動的SQLの「SQL文識別子」を利用した場合とRDA接続の場合について
動的SQLでSQL文識別子を利用した場合、SQL文識別子は、トランザクションとは関係なく“DEALLOCATE PREPARE文”実行時に解放されます。したがって、SQLの数はSQL文識別子の数となります。
つまり、「SQL文識別子数=<MAX_SQL値」である必要があります。
ただし、RDA接続時に設定できるMAX_SQLの上限値は32です。
RDA接続時に同一トランザクション内で同時に操作するSQL文の数が32個を超えた場合には、“RDA2019:使用できるカーソル数の制限値を超えています”というエラーになります。

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文を実行します。

  1. “SELECT X FROM TABLE_XYZ WHERE Y=1111”の結果を、変数“MM”に取り込みます。

  2. “UPDATE TABLE_ABC SET A = :MM”を実行します。

Symfoware .NET Data Providerのアプリケーションを実行しようとすると、Microsoftのエラーが発生する

Symfoware .NET Data Providerのアプリケーションを実行しようとした場合に、以下のエラーが出力されることがあります。

このアプリケーションをインストールまたは実行できません。
このアプリケーションでは、まずグローバルアセンブリキャッシュ(GAC)に
アセンブリFujitsu.Symfowareバージョンx.xx.x.xをインストールする
必要があります。システム管理者に問い合わせてください。

.NET Frameworkは、CLR2.0(.NET Framework 3.5 SP1)とCLR4.0(.NET Framework 4.6.2/4.7/4.7.2/4.8/4.8.1)のグループに分けることができます。これらのグループには包含関係はありません。

エラーの原因として、以下のいずれかが考えられます。

  1. Symfoware .NET Data Provider機能が登録されていない。

    .NET Frameworkのインストール状態により、Symfoware .NET Data Provider機能の登録が必要な場合があります。以下を確認してください。

    • CLR2.0、CLR4.0がいずれもPCクライアントより前にインストール

      Symfoware .NET Data Provider機能の登録は不要です。

    • CLR2.0がPCクライアントより前にインストール

      CLR4.0の機能を利用する場合に、Symfoware .NET Data Provider機能の登録が必要です。

    • CLR4.0がPCクライアントより前にインストール

      CLR2.0の機能を利用する場合に、Symfoware .NET Data Provider機能の登録が必要です。

    • CLR2.0、CLR4.0がいずれもPCクライアントより後にインストール

      CLR2.0、CLR4.0の機能を利用する場合に、Symfoware .NET Data Provider機能の登録が必要です。

  2. インストールした.NET Frameworkのグループ以外のグループをコンパイルオプションに指定して、Symfoware .NET Data Providerのアプリケーションを実行する。

【対処方法】

以下の対処を実施してください。

a.の対処

Symfoware .NET Data Provider機能の登録が必要な場合は、登録作業を実施してください。

参照

詳細については、以下のマニュアルを参照してください。

  • “インストールガイド(クライアント編)”の“コマンドによるSymfoware .NET Data Provider機能の登録”

b.の対処

インストールした.NET Frameworkのグループをコンパイルオプションに指定し、Symfoware .NET Data Providerのアプリケーションをリコンパイルしてください。

Windowsアプリケーションの多重度を増やすと、メッセージ JYP1080U、JYP4980EまたはJYP5007E が出力される

OSのシステム制限により、以下のメッセージが出力されることがあります。

JYP1080U コード変換ライブラリがロードできません.errno:“4”
JYP4980E コード変換環境の設定に誤りがあります.
JYP5007E RDBIIサーバ空間内のメモリ不足が発生しました.
【対処方法】

クライアント用の動作環境ファイルのパラメタ“CHARACTER_TRANSLATE”または“CLI_CHARACTER_TRANSLATE”で、文字コードの変換をクライアントで行うように設定してください。

上記の対処を実施しても改善しない場合は、アプリケーションの多重度を減らしてください。

参照

  • “CHARACTER_TRANSLATE”の詳細は、“アプリケーション開発ガイド(埋込みSQL編)”の“クライアント用の動作環境ファイルによる定義”を参照してください。

  • “CLI_CHARACTER_TRANSLATE”の詳細は、“アプリケーション開発ガイド(JDBCドライバ編)”の“ctuneparamオプションについて”、または、“アプリケーション開発ガイド(ODBCドライバ編)”の“アプリケーションのチューニング”を参照してください。