ページの先頭行へ戻る
Symfoware Server V12.4.0 アップデート情報
FUJITSU Software

3.1 V12.4.0でのプログラム修正一覧

今回のバージョンレベルで吸収された修正内容、および修正番号については、以降に示す表を参照してください。

No.

バージョン
レベル

P番号

現象

EEE

EE

SE

1

V12.4.0

PH01444

[現象]

結合表を入れ子で指定したSQL文を実行すると、「qdg02842u:シグナル11を受信したためRDBIIシステム空間が異常終了しました」を出力し、Symfoware/RDBがダウンする場合があります。

[環境]

以下のいずれかのOSである。

  • Oracle Solaris

  • Linux

  • Windows

[発生条件]

1)以下のいずれかを指定する。かつ、

  1-1)ASSIST指定のLEADING_TABLEを指定する。または、

  1-2)以下のいずれかのJOIN_ORDERパラメタ、CLI_JOIN_ORDERパラメタにAUTO、または、OUTSIDEを指定する。

    1-2-1)システム用の動作環境ファイル。または、

    1-2-2)クライアント用の動作環境ファイル。または、

    1-2-3)サーバ用の動作環境ファイル。または、

    1-2-4)JDBCのctuneparamオプション。または、

    1-2-5)ODBCデータソースのその他パラメタ。または、

    1-2-6)Symfoware .NET Data ProviderのConnectionStringプロパティのtuneparamキーワード。

2)問合せ指定のFROM句に2階層以上の入れ子の結合表を指定している。かつ、

3)2)の外側の結合表のON句には、比較演算子“=”で表を結合する結合条件を指定している。かつ、

4)2)の結合表が以下のいずれかに該当する。かつ、

  4-1)2)の内側の結合表に含まれる表(*1)の列をWHERE句の探索条件に指定する。または、

  4-2)2)の外側の結合表がINNER JOINである。

5)WHERE句に副問合せを指定している場合。

(*1)外結合型がLEFT JOINなら左表、RIGHT JOINなら右表になります。

例)

SELECT *

FROM S1.T1 LEFT JOIN

(S1.T2 LEFT JOIN S1.T3 ON T2.C1=T3.C1) ON T1.C1=T2.C1 WHERE T2.C1>0

AND T1.C2=(SELECT ~)

2

PH07709

[現象]

埋込みSQLを使用したアプリケーションが動作異常になる場合があります。RDBライブラリ内から誤ってユーザーの同名関数を呼び出すため、異常終了、動作異常、メッセージ異常などなにが起きるかは不定です。

[環境]

以下の環境の場合に発生します。

1)OSがLinuxである。かつ

2)以下のいずれかのバージョンを使用している場合。

  -32ビットアプリケーションを使用している場合

    ・Symfoware Server V11.0.0以降

    ・Symfoware Server クライアント V11.0.0以降

  -64ビットアプリケーションを使用している場合

    ・Symfoware Server V7.0L10以降

    ・Symfoware Server 添付クライアント V7.0L10以降

[発生条件]

1)埋込みSQLを使用したアプリケーションである。かつ

2)1)または、1)にリンクしてるRDBライブラリ以外のライブラリが、RDBライブラリ(*1)内の関数(*2)と同名の関数を使用している。

埋込みSQLを使用したアプリケーションaplがlibapllib.soとlibsqldrv.soをリンクしている場合

apl - libapllib.so

- libsqldrv.so - libsqldrv2.so

libsqldrv2.so内の関数と同名の関数がapl、または、 libapllib.soに含まれると問題が発生します。

*1

RDBライブラリは、以下のいずれかのライブラリです

  ・32ビットシングルスレッドアプリケーションの場合:libsqldrv2.so

  ・32ビットマルチスレッドアプリケーションの場合:libsqldrv2m.so

  ・64ビットシングルスレッドアプリケーションの場合:libsql64drv2.so

  ・64ビットマルチスレッドアプリケーションの場合:libsql64drv2m.so

*2

以下のコマンドで関数名を確認してください。

    nm RDBライブラリ名 |grep " T "

  例

    AttachSharedMemory

3

PH07715

[現象]

JDBCアプリケーションでConnection Manager連携を行った場合に、メモリ使用量が増加してしまいます。

[環境]

以下のいずれかのOSを使用している。

  • Oracle Solaris

  • Linux

  • Windows

[発生条件]

1)JDBCドライバを使用して、Symfowareに接続する。かつ、

2)ConnectionManagerを使用する。かつ、

3)コネクションプーリング機能を使用していない。

4

PH07793

[現象]

同一の列に対し異なる相関名を指定したSQL文を実行すると、JYP2711Eのエラーになる場合があります。

JYP2711E システム障害が発生したためSQL文の実行ができませんでした.エラー識別子=sg100xxx

[環境]

以下のいずれかのOSの場合。

  • Oracle Solaris

  • Linux

  • Windows

[発生条件]

1)動作環境ファイルにSCAN_KEY_CASTにYESを指定、または省略する。かつ、

2)FROM句にVIEW表または導出表(以降導出表とする)を指定する。かつ、

3)2)の導出表が以下の条件を満たす。かつ、

  3-1)DISTINCTが指定されていない。かつ、

  3-2)選択リストに以下のいずれかが指定されている。かつ、

    3-2-1)列指定。または、

    3-2-2)演算。または、

    3-2-3)定数。

  3-3)3-2-2)または3-2-3)が親の問合せ指定のWHERE句、GROUP BY句、HAVING句に指定されていない。かつ、

  3-4)GROUP BY句を含まない。かつ、

  3-5)HAVING句を含まない。

4)導出表の3-2)に、同一の列に複数の相関名を指定した列が含まれる。かつ、

5)親の問合せ指定にGROUP BY句を指定する。かつ、

6)5)に4)の複数の相関名を指定する場合。

SELECT DT1.DC1,
       DT1.DC2
  FROM (SELECT C1 AS DC1,
               ^^^^^^^^^^
               C1 AS DC2
               ^^^^^^^^^^
               修飾しているが同じ列
         FROM S1.T1) DT1
GROUP BY DT1.DC1,DT1.DC2
         ^^^^^^^^^^^^^^^^
         同じ列をGROUP BYに指定している。

5

PH08737

[現象]

作業用ソート領域へのI/O時にエラーが発生すると、qdg12695uのメッセージを出力してSymfoware/RDBがダウンする場合があります。

・qdg12695u システム障害が発生しました 分類コード=s* 内部コード=(idt_p:xxxxxxxx sub_code:xxxxxxxx module:jypifw05 line:xxx) u*

・qdg12695u システム障害が発生しました 分類コード=s* 内部コード=(idt_p:xxxxxxxx sub_code:xxxxxxxx module:qdabkenv100 line:xxx) u*

[環境]

以下のいずれかのOSである。

  • Oracle Solaris

  • Linux

  • Windows

[発生条件]

1)以下のいずれかのSQL文を実行し、作業用ソート領域を使用する。かつ、

  -問合せ指定にORDER BY句を指定する。または、

  -問合せ指定にGROUP BY句を指定する。または、

  -問合せ指定のFROM句に複数の表を指定する。または、

  -問合せ指定にDISTINCTを指定する。または、

  -UNIONを指定する。または、

  -集合関数にDISTINCTを指定する。

2)1)の作業用ソート領域のデータ量が動作環境ファイルの実行パラメタSORT_MEM_SIZEに指定した値を超え、二次記憶の作業用ソート領域を使用する。かつ、

3)2)の二次記憶の作業用ソート領域へのI/O時にエラーが発生する場合。

6

PH09125

[現象]

以下のいずれかの現象が発生します。

[現象1]

ResultSetオブジェクトのgetterメソッドを実行すると、誤ったデータを取得してしまう場合があります。

[現象2]

以下のメッセージが出力され、コネクションが切断される場合があります。

- Symfoware Server

  JYP1999E 内部矛盾を検出しました.code = “jypvsexe”,“XXX”,“XX”

- アプリケーション

  JYP1006E データ受信中にサーバとの通信が切断されました

[環境]

本障害は、以下のOSで発生します。

  • Oracle Solaris

  • Linux

  • Windows

[発生条件]

1)JDBCを使用したJavaアプリケーション。かつ、

2)ctuneparamオプションにCLI_RESULT_BUFFERパラメタを指定する。かつ、(以降、CLI_RESULT_BUFFERパラメタに指定したバッファの個数をNとする)

3)コネクションの接続を行い、Connectionオブジェクトを生成する。かつ、

4)以下のいずれかの方法で、ResultSetオブジェクトを合わせてN+1個取得する。かつ、

  4-1)Statementオブジェクトを使用する場合。または、

    4-1-1)3)で生成したConnectionオブジェクトに対して、以下を実行し、Statementオブジェクトを生成する。かつ、

      a) メソッドは以下のいずれかである。かつ、

        - createStatement(

            int resultSetType,

            int resultSetConcurrency) メソッド。または、

        - createStatement(

            int resultSetType,

            int resultSetConcurrency,

            int resultSetHoldability)メソッド。

      b) reultSetTypeに以下のいずれかを指定する。

        - TYPE_SCROLL_SENSITIVE 。または、

        - TYPE_SCROLL_INSENSITIVE。

    4-1-2)4-1-1)のStatementオブジェクトに対して、以下を実行し、ResutlSetオブジェクトを取得する。

      a) メソッドは以下のいずれかである。かつ、

        - executeQuery(String sql)メソッド。または、

        - getResultSet()メソッド。

      b) sqlにSELECT文を指定する。

  4-2)PreparedStatementオブジェクトを使用する場合。

    4-2-1)3)で生成したConnectionオブジェクトに対して、以下を実行し、PreaparedStatementオブジェクトを生成する。かつ、

      a) メソッドは以下のいずれかである。かつ、

        - prepareStatement(

            String sql,

            int resultSetType,

            int resultSetConcurrency)メソッド。または、

        - prepareStatement(

            String sql,

            int resultSetType,

            int resultSetConcurrency,

            int resultSetHoldability)メソッド。

      b) sqlにSELECT文を指定する。かつ、

      c) resultSetTypeに以下のいずれかを指定する。

        - TYPE_SCROLL_SENSITIVE 。または、

        - TYPE_SCROLL_INSENSITIVE。

    4-2-2)4-2-1)のPreparedStatementオブジェクトに対して、以下のいずれかのメソッドを実行し、ResutlSetオブジェクトを取得する。

      - executeQuery()メソッド。または、

      - getResultSet()メソッド。

5)4)で取得したN+1個目のResultSetオブジェクトに対して、以下のいずれかのメソッドを実行して、カーソルを先頭行に位置づける。かつ、

  - next()メソッド。または、

  - first()メソッド。

6)5)のResultSetオブジェクトに対して、next()メソッドを繰り返し実行し、最終行にカーソルを位置づける。かつ、

7)6)のResultSetオブジェクトに対して、next()メソッドを実行して、最終行の直後にカーソルを位置づける。かつ、

8)7)の戻り値でfalseを取得したにもかかわらず、さらにnext()メソッドを実行する。(*1) かつ、

9)8)のResultSetオブジェクトに対して、getterメソッドでデータを取得する。

*1

現象2の場合には、ここでコネクションが切断されます。切断されるか否かは、サーバの状態に依存します。コネクションが切断された場合には、9)のgetterメソッドでデータは取得されません。

7

PH09127

[現象]

条件によって以下のいずれかの現象が発生します。

[現象1]

以下のメッセージを出力して、Symfoware/RDBが異常終了します。

qdg12695u :System error occurred. Reference code = 16.5.69.769 Internal code = (idt_p:XXXXXXXXXXXXXXXX sub_code:10 module:jypdavct line:XXX)

[現象2]

本来はJYP2257Eのメッセージが出力するべきところ、誤ってJYP1011Eのメッセージを出力していました。

  JYP1011E 利用者の認証ができません.

  JYP2257E 利用者認可指定に誤りがあります.

[環境]

アプリケーションが動作する環境が以下のいずれかのOSの場合。

  • Oracle Solaris

  • Linux

[発生条件]

[共通の発生条件]

1)埋込みSQLを利用したC言語またはCOBOL言語のアプリケーションを使用する。かつ、

2)以下のいずれかの方法で、アプリケーションの文字コード系にUTF-8を設定する。

  2-1)環境変数LANGの値にコードセットUTF-8(*1)を設定する。または、

  2-2)以下の両方を満たす場合。

    2-2-1)環境変数LANGが以下のいずれかの設定である。かつ、

      -環境変数LANGに値を設定しない、または、

      -環境変数LANGの変数を設定しない、または、

      -環境変数LANGにCを設定する。

    2-2-2)以下のいずれかの場合に、インストール時に指定する文字コード系にUTF-8を指定する。

      -アプリケーションがSymfoware Serverと同一サーバで動作し、Symfoware Serverをインストール時にデータベースの文字コード系にUTF-8を指定する。または、

      -アプリケーションがSymfoware Serverと別サーバで動作し、Symfoware Server クライアント機能をインストール時に指定するアプリケーションの文字コード系にUTF-8を指定する。

      -Connection Managerを利用し、Connection Managerをインストール時に指定するアプリケーションの文字コード系にUTF-8を指定する。

[現象1の発生条件]

1)[共通の発生条件]を満たす。かつ、

2)以下のいずれかのSQL文にホスト変数を指定する。かつ、

  2-1)SET CATALOG文のデータベース名にホスト変数を指定する。または、

  2-2)SET SCHEMA文のスキーマ名にホスト変数を指定する。または、

  2-3)SET ROLE文のロール名にホスト変数を指定する。

3)2)のホスト変数が以下のいずれかである。かつ、

  3-1)CHAR型である。または、

  3-2)VARCHAR型である。

4)3)のホスト変数が以下のいずれかの設定である。かつ、

  4-1)CHAR型のホスト変数の文字列にデータベース名、ロール名またはスキーマ名(*2)の値を設定しない。または、

  4-2)VARCHAR型のホスト変数の文字列にデータベース名、ロール名またはスキーマ名(*2)の値を設定しない。かつ、ホスト変数の長さに1以上の値を指定する。

5)2)のSQL文を実行する。かつ

6)2-1)または2-2)に該当し、データベース名またはスキーマ名を省略したPREPARE文またはEXECUTE IMMEDIATE文を実行する。

[現象2の発生条件]

1)[共通の発生条件]を満たす。かつ、

2)SET SESSION AUTHORIZATION文のユーザ指定にホスト変数を指定する。かつ、

3)2)のホスト変数が以下のいずれかに該当する。かつ、

  3-1)CHAR型である。または、

  3-2)VARCHAR型である。

4)3)のホスト変数が以下のいずれかの設定である。かつ、

  4-1)CHAR型のホスト変数の文字列にユーザ指定の値を設定しない。または、

  4-2)VARCHAR型のホスト変数の文字列にユーザ指定の値を設定しない。かつ、ホスト変数の長さに1以上の値を指定する。

5)2)のSET SESSION AUTHORIZATION文を実行する。

*1

国または地域は任意、ドット以降のコードセットにUTF-8を指定する場合です。

ja_JP.UTF-8

en_US.UTF-8

*2

スキーマ名をデータベース名で修飾する場合は、「データベース名.」だけをホスト変数に設定した場合も該当します。

8

PH09404

[現象]

デッドロック発生時に以下のメッセージを出力してSymfoware/RDBがダウンする場合があります。

  qdg02842u:シグナル11を受信したため RDBIIシステム空間が異常終了しました

[環境]

以下の環境で発生します。

  • Linux

  • Oracle Solaris

  • Windows

[発生条件]

1) 以下のいずれかである。かつ、

  1-1) rdblkinf コマンドを -d オプションで実行している。または、

  1-2) パフォーマンスモニタをセットアップしている。

2) デッドロックが発生する。かつ、

3) 2)のデッドロックを構成するアプリケーションのいずれかで以下の原因によりコネクションが切断される。

  3-1) rdbstop -mc コマンドにより、実行中アプリケーションが強制終了される。または、

  3-2) rdbterm コマンドにより、コネクションが強制切断される。または、

  3-3) kill コマンドでアプリケーションプロセスを強制終了する。または、

  3-4) トランザクションの実行時間が、利用者制御機能のMAX_TRAN_TIMEを超える。または、

  3-5) アプリケーションからの応答時間が、利用者制御機能のMAX_WAIT_TIMEを超える。または、

  3-6) アプリケーションからの応答時間が、以下のパラメタ値を超える。または、

  [埋め込みSQLを利用したアプリケーションの場合]

    クライアント用の動作環境ファイルに指定した WAIT_TIME の値。

  [ODBCドライバを利用したアプリケーションの場合]

    ODOSのオプションに指定した CLI_WAIT_TIME の値。

  [JDBCドライバを利用したアプリケーションの場合]

    クライアント用の動作環境ファイルに指定した WAIT_TIME の値。または、ctuneparamオプションに指定した CLI_WAIT_TIME の値。

  [Symfoware .NET Data Providerを使用したアプリケーションの場合]

    tuneparamキーワードで指定した WAIT_TIME の値。

3-7) トランザクションの実行時間が、以下の値を超える。または、

  [埋め込みSQLを利用したアプリケーションの場合]

    システム用の動作環境ファイルまたはサーバ用の動作環境ファイルまたはクライアント用の動作環境ファイルに指定した TRAN_TIME_LIMIT の値。

  [ODBCドライバを利用したアプリケーションの場合]

    システム用の動作環境ファイルまたはサーバ用の動作環境ファイルに指定したTRAN_TIME_LIMIT の値。または、ODOSのオプションに指定した CLI_TRAN_TIME_LIMIT の値。

  [JDBCドライバを利用したアプリケーションの場合]

    システム用の動作環境ファイルまたはサーバ用の動作環境ファイルまたはクライアント用の動作環境ファイルに指定した TRAN_TIME_LIMIT の値。または、ctuneparamオプションに指定した CLI_TRAN_TIME_LIMIT の値。

  [Symfoware .NET Data Providerを使用したアプリケーションの場合]

    システム用の動作環境ファイルまたはサーバ用の動作環境ファイルに指定したTRAN_TIME_LIMIT の値。または、tuneparamキーワードで指定した TRAN_TIME_LIMIT の値。

  3-8) Windows クライアント端末で以下のいずれかを実行する。

    3-8-1) CM連携以外でシステム時刻を業務中に変更する。または、

    3-8-2) クライアント端末を再起動する。

9

PH09604

[現象]

NOT LIKEを指定したSQL文を実行すると探索条件に該当するレコードが、アプリケーションに返却されない場合があります。

[環境]

以下のいずれかのOSである。

  • Oracle Solaris

  • Linux

  • Windows

[発生条件]

1) SQL文中にLIKE述語を指定している。かつ、

2) 1)のLIKE述語にNOTを指定している。かつ、

3) 1)のLIKE述語にESCAPEを指定していない。かつ、

4) 1)のLIKE述語に指定した照合値がインデックス構成列である。かつ、

5) 4)の列が可変長文字列、もしくは可変長各国語文字列である。かつ、

6) 以下のいずれかに該当し、4)のインデックスを使用するアクセスプランである。

  6-1) 4)のインデックス構成列の先頭列に対して、以下のいずれかに該当する条件を指定する。または、

    6-1-1)比較演算子に「<>」以外を指定する比較述語。または、

    6-1-2)BETWEEN述語。または、

    6-1-3)IN述語。または、

    6-1-4)LIKE述語。または、

    6-1-5)NULL述語。

  6-2) ASSISTのUSE_INDEXに4)のインデックスを指定する。

例:

インデックスIX1の構成列:C1 VARCHAR(3)

SQL文:

SELECT /* ASSIST USE_INDEX(T1(IX1)) */ C1 FROM T1 WHERE C1 NOT LIKE 'A_'

10

PH10027

[現象]

・現象1

監査ログを取得する利用者ではないにもかかわらず監査ログが取得される。

・現象2

監査ログを取得すべき利用者であるにもかかわらず監査ログが取得されない。

[環境]

以下のOSを利用している場合に発生します。

  • Linux

  • Windows

  • Oracle Solaris

[発生条件]

・[現象1]に対する発生条件

(1) 監査ログデータベースを作成している。かつ、

(2) SET SYSTEM PARAMETER AUDITを使用して、監査ログを取得する利用者を限定している。

・[現象2]に対する発生条件

(1) 監査ログデータベースを作成している。

内部条件:

現象1および現象2は、内部条件としてメモリ状況に依存しており、ほとんど処理が動作していないようなシステムでのみ極めて稀に発生します。

11

PH10395

[現象]

qdg02842uのメッセージを出力し、Symfoware/RDBがダウンする場合があります。

qdg02842u:シグナル*を受信したため RDBIIシステム空間が異常終了しました

[環境]

以下のいずれかのOSである。

  • Oracle Solaris

  • Linux

  • Windows

[発生条件]

[発生条件1]

1) 埋め込みCアプリケーションまたは埋め込みCOBOLアプリケーションでPREPARE文を実行する。かつ、

2) 1)のSQL文識別子を用いてEXECUTE文を実行する。かつ、

3) 2)が何らかの原因(*)でエラー終了する。かつ、

4) 3)のエラー後に、1)のSQL文識別子を用いて再度EXECUTE文を実行する。

[発生条件2]

1) 埋め込みCアプリケーションまたは埋め込みCOBOLアプリケーションで準備可能文に動的パラメタ指定を指定したPREPARE文を実行する。かつ、

2) 1)の被準備文をEXECUTE文またはOPEN文にて実行する。かつ、

3) 2)がJYP5007EまたはJYP2608E(codeは2または6)のエラーとなる。かつ、

4) 1)、2)とは異なるSQL文識別子を用いて、準備可能文に動的パラメタ指定を指定したPREPARE文を実行する。かつ、

5) 4)の被準備文をEXECUTE文またはOPEN文にて実行する。かつ、

6) 1)と4)のSQL文識別子に対して、DEALLOCATE PREPARE文を実行する。かつ、

7) 4)、5)のSQL文を再度実行する。

[発生条件3]

1) SQL文にXMLQUERY関数またはXMLEXISTS述語を指定する。かつ、

2) 1)のSQL文の実行時にJYP5007EまたはJYP2608E(codeは2または6)のエラーとなる場合。

[発生条件4]

1) javaアプリケーションでStatementオブジェクトまたはPrepareStatementオブジェクトを生成する。かつ、

2) 1)のオブジェクトを用いてexecute、executeQuery、executeUpdateまたはexecuteBatchメソッドを実行する。かつ、

3) 2)が何らかの原因(*)でエラー終了する。かつ、

4) 3)のエラー後に、1)のオブジェクトを用いて再度2)のメソッドを実行する。

[発生条件5]

1) javaアプリケーションでPrepareStatementオブジェクトを生成する。かつ、

2) 1)のPrepareStatementオブジェクトのSQL文に"?"(動的パラメタ)を指定する。かつ、

3) 1)のオブジェクトを用いてexecute、executeQueryまたはexecuteUpdateメソッドを実行する。かつ、

4) 3)がJYP5007EまたはJYP2608E(codeは2または6)のエラーとなる。かつ、

5) 1)~3)とは異なるPrepareStatementオブジェクトを生成する。かつ、

6) 5)のオブジェクトを用いてパラメタマーカを使用したexecute、executeQueryまたはexecuteUpdateメソッドを実行する。かつ、

7) 1)、5)のオブジェクトをクローズする。かつ、

8) 5)、6)のオブジェクトを実行する。

[発生条件6]

1) ODBCアプリケーションでSQLPrepare関数を実行する。かつ、

2) 1)のステートメントハンドルを用いてSQLExecute関数を実行する。かつ、

3) 2)が何らかの原因(*)でエラー終了する。かつ、

4) 3)のエラー後に、1)のステートメントを用いて再度2)の関数を実行する。

[発生条件7]

1) ODBCアプリケーションで、SQLステートメントにパラメターマーカーを指定したSQLPrepare関数を実行する。かつ、

2) 1)のステートメントハンドルを用いてSQLExecute関数またはSQLExecuteReader関数を実行する。かつ、

3) 2)がJYP5007EまたはJYP2608E(codeは2または6)のエラーとなる。かつ、

4) 1)とは異なる、SQLステートメントにパラメターマーカーを指定したSQLステートメントを指定したSQLPrepare関数を実行し、1)、2)とは異なるステートメントハンドルを生成する。かつ、

5) 4)のステートメントハンドルを用いてSQLExecute関数またはSQLExecuteReader関数を実行する。かつ、

6) 1)、4)のステートメントをSQLFreeStmt関数にてクローズする。かつ、7) 4)と同一のSQLステートメントを指定したSQLPrepare関数を実行し、そのステートメントハンドルを用いてSQLExecute関数またはSQLExecuteReader関数を実行する。

[発生条件8]

1) Symfoware .NET Data ProviderのアプリケーションでSymfowareCommandオブジェクトを生成する。かつ、

2) 1)のオブジェクトを用いてExecuteReader、ExecuteNonQueryまたはExecuteScalarメソッドを実行する。かつ、

3) 2)が何らかの原因(*)でエラー終了する。かつ、

4) 3)のエラー後に、1)のオブジェクトを用いて、再度2)のメソッドを実行する。

[発生条件9]

1) Symfoware .NET Data ProviderのアプリケーションでSymfowareCommandオブジェクトを生成する。かつ、

2) 1)オブジェクトのCommandTextプロパティに設定した問合せ式に疑問符プレースホルダを指定する。かつ、

3) 1)のオブジェクトを用いてExecuteReader、ExecuteNonQueryまたはExecuteScalarメソッドを実行する。かつ、

4) 3)がJYP5007EまたはJYP2608E(codeは2または6)のエラーとなる。かつ、

5) 1)~3)とは異なるSymfowareCommand オブジェクトを生成する。かつ、

6) 5)のオブジェクトCommandTextプロパティに設定した問合せ式に疑問符プレースホルダを指定する。かつ、

7) 5)のオブジェクトを用いてExecuteReader、ExecuteNonQueryまたはExecuteScalarメソッドを実行する。かつ、

8) 1)、5)のオブジェクトを破棄する。かつ、

9) 5)のオブジェクトを再度生成し、7)のメソッドを実行する。

*:以下のいずれかのメッセージが出力される場合に該当します。

JYP1083E、JYP1092E、JYP2092E、JYP2093E、JYP2094E、JYP2095E、

JYP2096E、JYP2097E、JYP2100E、JYP2119E、JYP2221E、JYP2265E、

JYP2266E、JYP2288E、JYP2289E、JYP2290E、JYP2291E、JYP2300E、

JYP2301E、JYP2302E、JYP2400U、JYP2600U、JYP2601U、JYP2604U、

JYP2608E、JYP2701E、JYP2702E、JYP2703E、JYP2704E、JYP2710E、

JYP2711E、JYP3669E、JYP4075E、JYP4570E、JYP4571E、JYP5006E、

JYP5007E、JYP5029E、JYP5056E、JYP5057E、JYP5058E、JYP6073E、

JYP7179E、JYP7196E、JYP7198E、JYP7458E、JYP7506E、JYP7701E、

JYP7902E、JYP8719E、JYP8809E、JYP8819E、JYP8913E、JYP8916E

12

PH10993

[現象]

Symfoware ServerをV10.1以前からV11.0以降へ移行を行なうとアクセスプランが異なり、性能遅延が起きる場合があります。

[環境]

以下のOSで発生します。

  • Linux

  • Oracle Solaris

  • Windows

[発生条件]

1) Symfoware ServerをV10.1以前からV11.0以降へ移行を行なう。かつ、

2) 動作環境ファイルのCHOOSE_TID_UNIONパラメタにYESを指定する。かつ、

3) SQL文中にマルチカラムインデックスの先頭列を指定した探索条件を指定する。かつ、

4) 探索条件にORブール演算子を指定した探索条件を指定する。かつ、

5) 4)のORブール演算子で結合した一方の探索条件の範囲が、3)のマルチカラムインデックスの先頭列以外の構成列を指定した複数の探索条件を含む。かつ、

6) ORブール演算子で結合した5)以外の範囲が、3)のマルチカラムインデックスの先頭列以外の構成列を指定した探索条件を含む。

例:

インデックスIX1の構成列:C1,C2,C3
SELECT *
 FROM S1.T1
 WHERE C1=1 AND ((C2=1 AND C3=1) OR (C2=2))
       ^^^^      ^^^^^^^^^^^^^^^    ^^^^^^
      3)の条件      5)の条件       6)の条件

※:最適化情報の内容により、V10.1とV11.0で同じアクセスプランを選択する場合があるため、発生条件に該当した場合に必ずアクセスプランが異なるとは限りません。

13

PH11306

[現象]

コネクション接続が遅延する場合があります。

[環境]

以下のいずれかのOSである場合。

  • Oracle Solaris

  • Linux

  • Windows

[発生条件]

1)Symfoware/RDBを起動後に、以下を複数回実行する。かつ、

  1-1)rdbddlexコマンドの-lオプションで準備した定義情報をrdbddlfixコマンドで確定する。または、

  1-2)rdbalidxコマンドの-sオプションでインデックスの状態を非活性状態に変更する。

2)コネクション接続を行う場合。

発生条件1)の実行回数が多いほど、またクライアント用の動作環境ファイルのMAX_SQLに指定した値が大きいほど、遅延するようになります。

また、同一DSIに対して、発生条件1)のコマンドを繰り返し実行した場合も、発生条件1)に該当します。

Symfoware/RDB起動後に実行したrdbalidxコマンドの実行回数と、MAX_SQLに指定する値を変更し、コネクション接続を行うと、以下の性能差が発生することを確認しています。

MAX_SQL\rdbalidx実行回数 : 1024(デフォルト値)
0回 : 0.004秒
10000回 : 0.149秒

MAX_SQL\rdbalidx実行回数 : 30000
0回 : 0.063秒
10000回 : 31.988秒

14

PH11400

[現象]

[現象1]

COMMITされていない行の列データを返却する場合があります。

[現象2]

SQL文を繰り返し実行すると、メモリ使用量が増加し、性能劣化が発生する場合があります。

[現象3]

参照トランザクションが終了するまで、排他単位が行以外の更新SQL文が待ちになります。

[環境]

以下のOSで発生します。

  • Linux

  • Oracle Solaris

  • Windows

[発生条件]

[発生条件1]

以下の条件のとき、現象1が発生する場合があります。

1) 表のDSO定義にPRECEDENCE(1)を指定している。かつ、

2) 1)の表に対して行単位の排他を使用したアプリケーションを実行している。かつ、

3) 2)のアプリケーションで、以下のいずれかに該当するカーソルを使用する。かつ、

  3-1) 独立性水準にREAD COMMITTEDを指定したトランザクションを実行し、更新可能性句にFOR READ ONLYを指定したカーソルを使用する。または、

  3-2) カーソル宣言でカーソルモードを指定した、以下のいずれかに該当するカーソルを使用する。

    3-2-1) 占有モードにFREE LOCKを指定する。または、

    3-2-2) トランザクションアクセスモードに読込み専用モードを指定し、独立性水準にREAD COMMITTEDを指定したトランザクションを実行する。または、

    3-2-3) 独立性水準にREAD COMMITTEDを指定したトランザクションを実行し、更新可能性句の指定を省略したカーソルを使用する。

4) 3)のカーソルが以下のいずれかの条件に該当する場合。かつ、

  4-1) FROM句に以下の条件を満たす導出表と実表を指定する。または、

    4-1-1) 4-1)のFROM句の導出表が条件Aのいずれかの条件に該当する。かつ、

    4-1-2) 4-1)のFROM句の導出表の親問合せが条件Bのいずれかの条件に該当する。

  4-2) 条件Cのいずれかに該当する副問合せを指定する。

5) 3)のカーソルがOPENしている状態でCOMMIT文を実行する。かつ、

6) 5)の後に、3)のカーソルに対するFETCH文を実行する。かつ、

7) 6)の後に3)と同一コネクションで、3)に該当する別のカーソルをオープンする。かつ、

8) 7)の後に、行単位以外の排他を使用した2)とは別のアプリケーションで、

    1)の表に対して、以下のいずれかのSQL文を実行する。かつ、

    8-1)UPDATE文。または、

    8-2)DELETE文。または、

    8-3)INSERT文。

9) 8)の後に、3)のカーソルに対するFETCH文を実行する。

[発生条件2]

以下の条件のとき、現象2が発生する場合があります。

1) 表のDSO定義にPRECEDENCE(1)を指定している。かつ、

2) 1)の表に対して行単位の排他を使用したアプリケーションを実行している。かつ、

3) 2)のアプリケーションで、以下のいずれかに該当するカーソルを使用する。かつ、

  3-1) 占有モードにFREE LOCKを指定する。または、

  3-2) トランザクションアクセスモードに読込み専用モードを指定し、独立性水準にREAD COMMITTEDを指定したトランザクションを実行する。または、

  3-3) 独立性水準にREAD COMMITTEDを指定したトランザクションを実行し、更新可能性句にFOR READ ONLYを指定したカーソルを使用する。または、

  3-4) 独立性水準にREAD COMMITTEDを指定したトランザクションを実行し、更新可能性句の指定を省略したカーソルを使用する。

4) 3)のカーソルが以下のいずれかの条件に該当する場合。かつ、

  4-1) FROM句に以下の条件を満たす導出表と実表を指定する。または、

    4-1-1) 4-1)のFROM句の導出表が条件Aのいずれかの条件に該当する。かつ、

    4-1-2) 4-1)のFROM句の導出表の親問合せが条件Bのいずれかの条件に該当する。

  4-2) 条件Cのいずれかに該当する副問合せを指定する。

5) COMMIT文、またはROLLBACK文を実行していない。かつ、

6) 5)のトランザクション内で、3)のカーソルを繰り返し実行する場合。

[発生条件3]

以下の条件のとき、現象3が発生する場合があります。

1) 表のDSO定義にPRECEDENCE(1)を指定している。かつ、

2) 1)の表に対して行単位の排他を使用したアプリケーションを実行している。かつ、

3) 2)のアプリケーションで、以下のいずれかに該当するカーソルを使用する。かつ、

    3-1) 占有モードにFREE LOCKを指定する。または、

  3-2) トランザクションアクセスモードに読込み専用モードを指定し、独立性水準にREAD COMMITTEDを指定したトランザクションを実行する。または、

  3-3) 独立性水準にREAD COMMITTEDを指定したトランザクションを実行し、更新可能性句にFOR READ ONLYを指定したカーソルを使用する。または、

  3-4) 独立性水準にREAD COMMITTEDを指定したトランザクションを実行し、更新可能性句の指定を省略したカーソルを使用する。

4) 3)のカーソルが以下のいずれかの条件に該当する場合。かつ、

  4-1) FROM句に以下の条件を満たす導出表と実表を指定する。または、

    4-1-1) 4-1)のFROM句の導出表が条件Aのいずれかの条件に該当する。かつ、

    4-1-2) 4-1)のFROM句の導出表の親問合せが条件Bのいずれかの条件に該当する。

  4-2) 条件Cのいずれかに該当する副問合せを指定する。

5) COMMIT文、またはROLLBACK文を実行していない。かつ、

6) 5)と別のトランザクションでDSI単位の排他を使用したアプリケーションを実行している。かつ、

7) 6)のアプリケーションで、以下のいずれかのSQL文を実行する。

  7-1)INSERT文。または、

  7-2)UPDATE文。または、

  7-3)DELETE文。または、

  7-4)占有モードにEXCLUSIVE LOCKを指定したSQL文

条件A:

a)導出表にROWNUMが含まれる。または、

b)導出表にDISTINCTを指定する。または、

c)導出表の選択リストに集合関数、またはCASE式を指定する。または、

d)導出表の親問合せの選択リスト以外で導出表の選択リストの列指定、CAST(列指定)以外の値式が参照されている。または、

e)導出表の親問合せのGROUP BY句、HAVING句で導出表の選択リストのCAST(列指定)が参照されている。または、

f)導出表の親問合せが結合表の場合、導出表のFROM句に複数の表を指定する。または、

g)導出表にGROUP BY句を指定する。または、

h)導出表にHAVING句を指定する。または、

i)導出表にUNIONを指定する。

条件B:

a)導出表の親問合せにROWNUMを指定する。または、

b)導出表の親問合せにDISTINCTを指定する。または、

c)導出表の親問合せの選択リストに列指定以外を指定する。または、

d)導出表の親問合せの選択リストに同一の列指定を2回以上指定する。または、

e)導出表の親問合せにGROUP BY句を指定する。または、

f)導出表の親問合せにHAVING句を指定する。または、

g)導出表の親問合せに副問合せを指定する。または、

h)導出表の親問合せのFROM句に複数の表を指定する。

条件C:

a)副問合せを指定する述語がIN述語ではない。または、

b)副問合せの選択リストに指定した列がUNIQUEを指定した列ではない。または、

c)副問合せにGROUP BYを指定する。または、

d)副問合せにHAVING句を指定する。または、

e)副問合せに集合関数を指定しない。

例)

SELECT * 
FROM (SELECT DISTINCT DT1.DC1
             ^^^^^^^^^^^^^^^^ 
                   条件B
      FROM (SELECT C1 FROM S1.T1 WHERE C1>0 GROUP BY C1) AS DT1(DC1) 
                                            ^^^^^^^^^^^
                                               条件A 
     ) AS DT2(DC1)
    ,S1.T2
     ^^^^^^^^^^^^^
      4-1)の条件
WHERE DT2.DC1=T2.C1
WITH OPTION LOCK_MODE(FL)

15

PH11539

[現象1]

発生条件1の場合に、Symfoware Serverが以下のメッセージを出力し、トランザクションログファイルのデータ部が閉塞(※1)する場合があります。

  qdg12718u トランザクションログファイルのデータ部において入出力障害が発生しました パス名='RAWデバイス名' errno=22

※1:トランザクションログファイルはLinkexpress Replication optionの資源です。

  Linkexpress Replication optionの機能であるlxreplogコマンド(-V)でトランザクションログファイルの状態を確認できます。

  StatusがDATA_INHIBITEDと表示されている場合、トランザクションログファイルのデータ部が閉塞しています。

[現象2]

発生条件2の場合に、Symfoware Serverが以下のいずれかのメッセージを出力し、トランザクションログファイルのデータ部またはインダウト部が閉塞(※2)する場合があります。

  qdg12718u トランザクションログファイルのデータ部において入出力障害が発生しました パス名='RAWデバイス名' errno=22

  qdg13047u トランザクションログファイルのインダウト部において入出力障害が発生しました パス名='RAWデバイス名' errno=22

※2:トランザクションログファイルの状態を確認する方法は※1と同じです。

  StatusがDATA_INHIBITEDと表示されている場合、トランザクションログファイルのデータ部が閉塞しています。

  Indoubt StatusがINHIBITEDと表示されている場合、トランザクションログファイルのインダウト部が閉塞しています。

[環境]

Linux

[発生条件1]

1) 複写元データベースがSymfoware Server(V11以前およびNativeインタフェース)である。かつ、

2) Linkexpress Replication optionによるレプリケーション運用を行っている。かつ、

3) トランザクションログファイルのデータ部をRAWデバイスに作成している。かつ、

4) 差分ログの取得を開始している(※3)。かつ、

5) トランザクションログファイルのデータ部において容量不足が発生する(※4)。

※3:Linkexpress Replication optionの機能であるlxrepprtコマンド(オプション指定なし、および、-lオプション指定)で抽出定義やレプリケーショングループの状態を確認できます。

  ENA/DISの欄にENAと表示されている場合、差分ログの取得を開始しています。

※4:容量不足の発生は、RDBREPORTに出力された以下のメッセージによって確認できます。

  qdg12720u トランザクションログファイルのデータ部において領域不足が発生しました

[発生条件2]

1) 複写元データベースがSymfoware Server(V11以前およびNativeインタフェース)である。かつ、

2) V9.1以前のロードシェア運用を行っている(※5)。かつ、

3) Linkexpress Replication optionによるレプリケーション運用を行っている。かつ、

4) トランザクションログファイルのデータ部またはインダウト部をRAWデバイスに作成している。かつ、

5) 複数のRDBシステムに偏在する資源を更新するトランザクションを実行する。かつ、

6) 5)の資源の一部またはすべてをレプリケーション対象とし、差分ログの取得を開始している(※6)する。かつ、

7) 5)のトランザクションをコミットする。かつ、

8) 5)のRDBシステムの一部がダウンする。

※5:RDB構成パラメタファイルにRDBLOADSHAREパラメタを指定されている場合、V9.1以前のロードシェア運用です。

※6:抽出定義とレプリケーショングループの状態を確認する方法は※3と同じです。

  レプリケーション運用を行っているRDBシステムすべてで確認してください。

16

PH11849

[現象]

TJNL連携かつ監査ログ運用時にCOMMIT文を実行すると、

qdg02842uのメッセージを出力し、Symfoware/RDBが異常終了する場合があります。

qdg02842u:シグナル11を受信したため RDBIIシステム空間が異常終了しました

[環境]

以下のいずれかのOSである場合。

  • Oracle Solaris

  • Linux

  • Windows

[発生条件]

1) TJNLを起動している。かつ、

2) 監査ログ運用を行っている。かつ、

3) セキュリティ形態パラメタAUDIT_SQLにYESを指定している。かつ、

4) セキュリティ形態パラメタAUDIT_SQLBINDにYESを指定している。かつ、

5) 入力ホスト変数を指定した以下のいずれかのSQL文を実行する。かつ、

  5-1) INSERT文。または、

  5-2) UPDATE文。または、

  5-3) DELETE文。

6) 5)のトランザクションでCOMMIT文を実行する。

17

PH11861

[現象]

rdbuptコマンドに-marオプションを指定して実行すると、条件によって以下のいずれかの現象が発生します。

[現象1]

以下のエラーを出力してrdbuptコマンドが異常終了します。

qdg13876u:d*件目: データ操作処理においてSQLエラーが発生しました SQLSTATE=22704 SQLMSG=JYP2076E 各国語文字列型に文字と各国語文字が混在しています.

[現象2]

以下のエラーを出力してrdbuptコマンドが異常終了します。

qdg13876u:d*件目: データ操作処理においてSQLエラーが発生しました SQLSTATE=23000 SQLMSG=JYP2079E 一意性制約に違反しました.

[現象3]

rdbuptコマンドが正常終了するが、置き換え対象以外の行が削除されます。

[環境]

以下のいずれかのOSを使用している。

  • Oracle Solaris

  • Linux

  • Windows

[発生条件]

1) rdbuptコマンドに-marオプションを指定する。かつ、

2) 以下のいずれかの列の型がNATIONAL CHARACTER VARYINGである。かつ、

  - -marオプションに指定した列

  - -marオプションに列を指定してない場合は対象の表のPRIMARY KEYの列

3) -bオプションに指定した表に32キロバイト以上のBLOB型の列が定義されていない。かつ、

4) rdbuptコマンドに指定した入力ファイル内のデータが以下のいずれかの場合。 (現象毎に異なります)

[現象1の場合]

入力ファイル内の該当文字列(*)の文字数が奇数となる文字列が存在する場合。

[現象2の場合]

4-1) 入力ファイル内の該当文字列の文字数が全て偶数である。かつ、

4-2) 4-1)の文字列と一致するデータが対象の表に存在する場合。

[現象3の場合]

4-1) 入力ファイル内の該当文字列の文字数が全て偶数である。かつ

4-2) 4-1)の文字列の半分の長さの文字列と一致するデータが対象の表に存在する。 かつ、

4-3) 4-1)の文字列と一致するデータが対象の表に1件も存在しない場合。

(*)rdbuptコマンドに指定した入力ファイル内の発生条件2)の列に該当するデータの事を「入力ファイル内の該当文字列」と記載します。

18

PH11917

[現象]

JYP2711Eのメッセージを出力して、SQL文がエラーとなる場合があります。

JYP2711E システム障害が発生したためSQL文の実行ができませんでした.

エラー識別子=sp140205

[環境]

以下のいずれかのOSの場合。

  • Oracle Solaris

  • Linux

  • Windows

[発生条件]

1)動作環境ファイルのCHOOSE_TID_UNIONパラメタを指定しない、またはNOを指定する。かつ、

2)以下のいずれかを指定する。かつ、

  2-1)ASSIST指定のLEADING_TABLEを指定する。または、

  2-2)動作環境ファイルのJOIN_ORDERにAUTOまたはOUTSIDEを指定する。

3)問合せ指定のFROM句に入れ子の結合表を指定している。かつ、

4)3)のジョインのアクセスモデルがマージジョインである。かつ、

5)結合表のインデックス構成列の先頭列を指定した探索条件をORまたはIN述語で複数指定する。かつ、

6)結合表のインデックス構成列の2番目以降の列とインデックス構成列以外の列を指定した探索条件をORで複数指定する。かつ、

7)5)のインデックス構成列の先頭列の指定数と6)のインデックス構成列の2番目以降の列の指定数の乗算結果が1000(*1)または動作環境ファイルのMAX_SCAN_RANGE(*2)の指定値を超える。かつ、

8)3)の結合表に、以下のいずれかに該当する結合表が含まれる。

  8-1)結合表の従属表(*3)の列をWHERE句の探索条件に指定する。または、

  8-2)INNER JOINを指定する。

*1:V11.0.1以前の製品を利用時に該当します。

*2:V11.1.0以降の製品を利用時に該当します。

*3:従属表とは外結合型がLEFT JOINなら右表、RIGHT JOINなら左表になります。

顕在化する内部条件として、5)の結合表を結合する順番が2)の機能により変更された場合に発生します。このため、発生条件に該当した場合に必ず発生するとは限りません。

例)

・インデックスIX1の構成列:C1,C2

・SQL文

SELECT /* ASSIST JOIN_RULE(MERGE) LEADING_TABLE(T2,T3,T1) */ T1.C1
   FROM    S1.T1 
           LEFT JOIN 
           S1.T2 
           ON T2.C1=T1.C1
           LEFT JOIN 
           S1.T3
           ON T3.C2=T2.C2 
 WHERE         T2.C3 = 1
               ^^^^^^^^^
               8)の条件
           AND T3.C3 = 1
               ^^^^^^^^^
               8)の条件
             AND T2.C1 IN( 1,2,3,~,332,333,334)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                 5)の条件
             AND ((T2.C2=1 AND T2.C3=1) OR
                  (T2.C2=2 AND T2.C3=2) OR
                  (T2.C2=3 AND T2.C3=3))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^
                 6)の条件

   7)の条件:(T2.C1の指定数:334)×(T2.C2の指定数:3)=1002

19

PH12053

[現象]

以下の発生条件の場合にレプリケーション対象の表をUPDATE文で更新すると、qdg02842uメッセージを出力してSymfoware/RDBがダウンする場合があります。

  qdg02842u:シグナル11を受信したため RDBIIシステム空間が異常終了しました

[環境]

以下のいずれかのOSを使用している。

  • Oracle Solaris

  • Linux

  • Windows

[発生条件]

1)Linkexpress Replication optionを使用したレプリケーション運用を行っている。かつ、

2)レプリケーション対象の表にアクセスした利用者プログラムが、Symfoware Serverに対するコネクションを保持している状態になっている。かつ、

3)2)の表をレプリケーション対象とする抽出定義または抽出グループ(※1)の差分ログの取得が終了している(※2)。かつ、

4)lxrepcreコマンドで2)の表または表のDSIを指定した3)とは別の抽出定義または抽出グループを新たに定義した後、lxrepenaコマンドを実行する。かつ、

5)2)の表に対して2)の利用者プログラムがUPDATE文を実行する。

※1:抽出定義または抽出グループは、Linkexpress Replication optionの定義です。

  この定義にレプリケーションしたい表を指定することで、その表はレプリケーション対象となります。

※2:差分ログの取得が終了している状態は、lxrepprtコマンドで確認できます。

  なお、作成直後の抽出定義および抽出グループは、差分ログの取得は終了状態です。

※3:lxrepprtコマンド、lxrepcreコマンドおよびlxrepenaコマンドは、Linkexpress Replication optionのコマンドです。

20

PH12093

[現象]

[現象1]

INSERT文を実行すると、qdg02842uのメッセージを出力し、Symfoware/RDBがダウンする場合があります。

qdg02842u シグナル11を受信したため RDBIIシステム空間が異常終了しました

[現象2]

INSERT文を実行すると、JYP2079Eのメッセージを出力し、エラーになる場合があります。

JYP2079E 一意性制約に違反しました.

[現象3]

INSERT文を実行すると、以下のいずれかのメッセージを出力してエラーとなるまで、INSERT文が終了しない場合があります。

JYP1006E データ受信中にサーバとの通信が切断されました.

JYP2608E 利用者制御機能における実行資源の制限を超えました.code = “x”

JYP5004E テンポラリログ域の領域が不足しました.

JYP5007E RDBIIサーバ空間内のメモリ不足が発生しました.

JYP5019E スキーマ"xxx"の表"@2@"内に定義されているDSI"xxx"に割り付けたデータベーススペースの容量が不足しました.

JYP5071E アーカイブログファイルの不足が発生しました.

[環境]

以下のいずれかのOSである場合。

  • Oracle Solaris

  • Linux

  • Windows

[発生条件]

1)CREATE PROCEDURE文を実行し、プロシジャルーチンを作成する。かつ、

2)以下を満たすCREATE TRIGGER文を実行する。かつ、

  2-1)トリガ事象にINSERTを指定する。かつ、

  2-2)被トリガSQL文に1)のプロシジャルーチンを呼び出すCALL文を指定している。

3)2)のトリガを作成した表に対し、INSERT文を実行する。かつ、

4)3)のINSERT文の問合せ指定に複数の表を指定する場合。

発生条件4)の問合せ指定部分の処理でマージジョインのアクセスプランが選択された場合は現象1、フェッチジョインが選択された場合は現象2または現象3が発生します。

21

PH12165

[現象]

導出表の列を親問合せの関数に指定すると、qdg02842uのメッセージを出力し、Symfoware/RDBがダウンする場合があります。

qdg02842u:シグナル11を受信したため RDBIIシステム空間が異常終了しました

[環境]

以下のいずれかのOSの場合。

  • Oracle Solaris

  • Linux

  • Windows

[発生条件]

1)SELECT文(以降、親問合せと呼ぶ)を実行している。かつ、

2)1)の親問合せのFROM句にビュー表または導出表(以降、ビュー表と導出表をまとめて導出表と呼ぶ)が指定されている。かつ、

3)2)の導出表の選択リストに以下のいずれかを指定している。かつ、

  3-1)関数。または、

  3-2)CAST指定。または、

  3-3)文字列連結。または、

  3-4)演算。

4)1)の親問合せの選択リストに、3)の導出表の列を対象とした以下のいずれかが指定されている。かつ、

  4-1)関数。または、

  4-2)CAST指定。または、

  4-3)文字列連結。または、

  4-4)演算。

5)以下を満たす。かつ、

  5-1)親問合せのFROM句に導出表を1個のみ指定している。かつ、

  5-2)親問合せのWHERE句に制約条件を指定していない。かつ、

  5-3)親問合せのWHERE句に定数と定数を比較するような条件がない。かつ、

  5-4)親問合せの選択リストにROWNUMを指定していない。かつ、

  5-5)親問合せのWHERE句にROWNUMを指定し、条件Aまたは条件Bを満たす。

6)条件C、条件Dのいずれも満たさない場合。

条件A

1)ROWNUMを以下のいずれかの述語に指定している。かつ、

・比較述語

・BETWEEN述語

・IN述語

・NULL述語

2)1)の述語に指定した値式が以下のいずれかである。かつ、

・値指定

・CURRENT_DATE、CURRENT_TIME、CURRENT_TIMESTAMP

・NULL

・上記のいずれかのみを含む値式

3)述語をORで連結する場合、全ての述語が1)と2)の条件を満たす。

条件B

1)以下のいずれかである。かつ、

  1-1)導出表にROWNUMを指定していない。または、

  1-2)導出表にROWNUMを指定しているが、副問合せ、GROUP BY句、HAVING句、ORDER BY句、DISTINCT、集合関数は指定していない。

2)親問合せのWHERE句にROWNUMのみを指定し、条件Aを満たす。

条件C

1)導出表にDISTINCTが指定されていない。かつ、

2)導出表の選択リストに以下のいずれかが指定されている。かつ、

  2-1)列指定。または、

  2-2)演算。または、

  2-3)定数。

3)2-2)または2-3)が親問合せのWHERE句、GROUP BY句、HAVING句に指定されていない。かつ、

4)導出表にGROUP BY句を含まない。かつ、

5)導出表にHAVING句を含まない。

条件D

1)親問合せにDISTINCTが指定されていない。かつ、

2)親問合せの選択リストには単項の列のみが記述され、かつ同一の列が2回以上出現しない。かつ、

3)親問合せのFROM句には、単一の表のみが記述されている。かつ、

4)親問合せにGROUP BY句を含まない。かつ、

5)親問合せにHAVING句を含まない。かつ、

6)親問合せのWHERE句には副問合せを含まない。

22

PH12951

[現象]

コネクション接続中に通信異常となると、リモートアクセスのアプリケーションが無応答になる場合があります。

[環境]

以下のいずれかのOSの場合。

  • Oracle Solaris

  • Linux

  • Windows

[発生条件]

1)システム用の動作環境ファイルのSSL_USEパラメタにONを指定する。かつ、

2)クライアント用の動作環境ファイルのSERVER_SPECパラメタの通信方法にRDB2_TCPSを指定する。かつ、

3)コネクション接続を行う。かつ、

4)3)の処理中に以下のいずれかが発生する場合。

  4-1)クライアントOSのカーネルパニック、ブルーバックなどのOSの異常終了。または、

  4-2)LANケーブル抜け、断線によるネットワーク異常。または、

  4-3)iptablesなどのファイアウォールなどによるパケットの破棄。

内部条件として、3)のコネクション接続処理中で行うSSLハンドシェイクと呼ばれるメッセージ交換中に4)が発生し、かつRSTパケットをSymfoware/RDBが受信できなかった場合に本障害が発生します。そのため、発生条件に該当した場合に必ず発生するとは限りません。

23

PH13015

[現象]

通信時の待ち時間として指定した値が有効にならず待ち時間を超えてもアプリケーションが終了しません。

[環境]

以下のOSを利用している場合に発生します。

  • Linux (RHEL3.0以降)

  • Oracle Solaris (Solaris 9以降)

[発生条件]

1) 以下のいずれかのアプリケーションである。かつ、

  - 埋め込みSQLを使用したアプリケーション

  - JDBCを使用したJavaアプリケーション

2) ローカル接続を使用している。かつ

3) 以下の通信時の待ち時間に1以上の値を設定している。かつ、

  - 埋め込みSQLを使用したアプリケーションの場合は、WAIT_TIME

  - JDBCを使用したJavaアプリケーションの場合は、CLI_WAIT_TIME

4) マルチスレッドアプリケーションである。かつ、

5) SQL文をメインスレッド以外のスレッドで実行する。かつ、

6) 3)で指定した時間を超過する。

24

PH13070

[現象]

ホットスタンバイ機能を利用した運用において、メッセージqdg02842uを出力してSymfoware/RDBがダウンする場合があります。

qdg02842u:シグナルd*を受信したため RDBIIシステム空間が異常終了しました

[環境]

以下のいずれかのOSを使用している場合。

  • Oracle Solaris

  • Linux

  • Windows

[発生条件]

1)ホットスタンバイ機能を利用した運用を行っている。かつ、

2)以下のいずれかを行う。かつ、

  - ホットスタンバイの再宣言

  - 運用ノードでSymfoware/RDBの起動

  - クラスタ切替え

3)2)の後、以下のいずれかを合計8800回以上行う。

  - CREATE DATABASE文

  - CREATE DBSPACE文

  - CREATE TABLE文(格納領域指定)

  - CREATE DSI文

  - CREATE INDEX文

  - 作業用ファイルの作成/拡張(※1)

(※1)以下のいずれかを記述したSQL文で、作業ファイルを使用する場合が該当します。

  - ORDER BY句

  - GROUP BY句

  - HAVING句

  - UNION

  - 集合関数

  - DISTINCT(集合関数に指定、または、選択リストに指定)

  - 副問合せ

  - 導出表

  - FROM句に複数の表を指定(ジョイン)

  - SCROLLを指定したカーソル

  - トランザクションを超越するカーソル

25

PH13271

[現象]

PRIMECLUSTER環境において、Symfowareの無応答監視機能を利用した場合、Symfoware/RDBのコアファイル出力先のファイルシステムの使用量が増加し続けます。

[環境]

本障害は以下のOSで発生します。

  • Linux (REHL6以降)

[発生条件]

1) PRIMECLUSTER環境を利用している。 かつ、

2) Symfoware/RDBの無応答監視機能(*)を利用している。 かつ、

3) 無応答監視機能でタイムアウトを検出する。

(*) rdbhsrscコマンドでRDBシステムのリソース登録時にタイムアウト時間を0以外で指定した場合が該当します。

26

PH14079

[現象]

以下のいずれかの事象が発生します。

(現象1)

メッセージqdg12695uを出力してSymfoware/RDBがダウンする場合があります。

qdg12695u:System error occurred. Reference code = xx.xx.xx.xx Internal code = (idt_p:xxxxxxxx sub_code:xxxxxxxx module:qdcwuppg line:xxx)

または

qdg12695u:System error occurred. Reference code = xx.xx.xx.xx Internal code = (idt_p:xxxxxxxx sub_code:250 module:qdcsesrt140 line:xxx)

注:Reference code,Internal codeのx部分は不定です。

(現象2)

メッセージqdg02548uを出力して異常終了する場合があります。

qdg02548u:一意性制約違反のデータが存在します DSO名=xxxx

xxxxの部分は対象のインデックスのDSO名が表示されます。

[環境]

1) 以下のいずれかのOSを使用している。かつ、

  - Oracle Solaris

  - Linux

  - Windows

2)以下の製品を使用している。

  - Symfoware Server Enterprise Extended Edition V11.0.0~V11.1.2

  - Symfoware Server Enterprise Edition V11.0.0~V12.3.0

  - Symfoware Server Standard Edition V11.0.0~V12.3.0

  - Symfoware Server Lite Edition V11.0.0~V12.3.0

[発生条件]

以下のいずれかの操作を実行している。

  - rdbsloaderコマンド

  - rdbsaloaderコマンド

  - rdbsuloaderコマンド

  - rdbgcdsiコマンド

  - rdbgcdicコマンド

  - rdbupsコマンド

  - rdbrcvコマンド(表のデータからインデックスを復旧する場合)

  - CREATE INDEX文(表にデータが格納されており、インデックス定義時に創成する場合)

  - データベース異常時に、WebAdminの[対処を行う]をクリック(*1)

  - WebAdminの[データ復旧]をクリック(*1)

(*1)Symfoware Server Lite Editionを利用している場合。

[内部条件]

各コマンド等が内部で実行するソート処理において、ソート作業域に対する入出力が、依頼したサイズで入出力できなかった場合(*)に本現象が発生します。

(*)ソート作業域に対する入出力は、read、writeシステムコールを使用することで実現しています。read、writeシステムコールの仕様は入出力できたサイズを復帰値として返却する仕様です。

27

PH15038

[現象]

コネクションを接続すると、qdg02842uのメッセージを出力してSymfoware/RDBが異常終了します。

qdg02842u:シグナル11を受信したため RDBIIシステム空間が異常終了しました

[環境]

OSがRHEL7の場合。

[発生条件]

1)以下のいずれかの接続方法でコネクションを接続している。かつ、

  1-1)リモートアクセス。または、

  1-2)以下のいずれかの設定によるローカルアクセス。

    1-2-1)CONNECT文にUSERを指定している。または、

    1-2-2)クライアント用の動作環境ファイルのDEFAULT_CONNECTIONにユーザ名を指定している。または、

    1-2-3)rdbexecsqlコマンドの-uオプションにユーザ名を指定している。

2)認証方式にOSのログイン名で接続する方法を用いている。かつ、

3)Symfoware/RDBが動作するサーバで、2)で使用しているユーザがOSのユーザ認証に失敗する場合。

28

PH15360

[現象]

独立性水準またはトランザクションのアクセスモードを変更できません。

そのため、以下のいずれかの事象が発生する場合があります。

  - 複数のSQL文を同時に実行した場合、SQL文の実行が遅延する場合があります。または、

  - 複数のSQL文を同時に実行した場合、期待した結果とは異なる結果が得られる場合があります。または、

  - 更新系のSQL文の実行が、JYP2087Eのエラーになる場合があります。

    JYP2087E トランザクション状態は読込み専用です.更新系SQL文は実行できません.

[環境]

1)Oracle Solarisを利用している場合。かつ、

2)製品および修正適用状況の組み合わせが以下のいずれかに該当する場合

  2-1)Symfoware Server V12.0.0~V12.2.0を使用し、以下のいずれかの修正を適用している。または、

    - T009290SP-12

    - T009292SP-12

  2-2)Symfoware Server Client V12.0.0~V12.3.0を使用し、以下の修正を適用している。

- T009289SP-07

[発生条件]

1)JDBCアプリケーションを使用している。かつ、

2)64bitのJavaを使用している。かつ、

3)ConnectionインタフェースのsetTransactionIsolationメソッドまたはsetReadOnlyメソッドを呼び出している。