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

B.1 プロセス異常の対処について

Symfoware/RDBが何らかの異常または内部矛盾を検出した場合に、プロセスを異常終了し、コアファイルを出力することがあります。以下のことを確認してください。

SolarisLinuxシングルスレッドアプリケーション/マルチスレッドアプリケーションの環境が正しく作成されているか(Solaris/Linuxの場合)

アプリケーションは、シングルスレッド用あるいはマルチスレッド用の環境で、正しく作成(記述/コンパイル/リンク)されていなければなりません。シングルスレッド用とマルチスレッド用のアプリケーションを混在動作させると、以下のような事象がおきます。

  • 以下のエラーメッセージが出力されることがあります。
    「JYP1079E マルチスレッドの実行環境に誤りがあります.」

  • アプリケーションが異常終了することがあります。
    確認方法は、アプリケーションの実行モジュールに対してlddコマンドを実行し、リンクされているライブラリを確認します。

    SQL埋込みアプリケーションを32ビットで作成している場合

    libsqldrv.so :シングルスレッド用

    libsqldrvm.so:マルチスレッド用

    SQL埋込みアプリケーションを64ビットで作成している場合

    libsql64drv.so :シングルスレッド用

    libsql64drvm.so:マルチスレッド用

上記の事象が発生した場合、以下のことを確認してください。

  • コンパイル/リンク時にオプションを正しく指定しているか
    マルチスレッドアプリケーションの場合、コンパイル/リンク時に、“sqlcc、sqlfcc、sqlcobolのオプション”、または“環境変数SQLPC、SQLPCOB”にTオプション(マルチスレッドのオプション)を指定する必要があります。

    参照

    詳細は、“アプリケーション開発ガイド(埋込みSQL編)”の“コンパイル・リンクの方法”を参照してください。

  • アプリケーション内でマルチスレッド用関数(SQLThr~)を使用してスレッド管理しているか
    マルチスレッドアプリケーションの場合、アプリケーション内でSymfoware/RDBのマルチスレッド用関数(SQLThr~)を使用してスレッド管理する必要があります。

    参照

    詳細は、“アプリケーション開発ガイド(埋込みSQL編)”の“マルチスレッド環境におけるデータ操作”を参照してください。

注意

シングルスレッドアプリケーションの場合は上記の作業は実行しないでください。


Windowsシングルスレッドアプリケーション/マルチスレッドアプリケーションの環境が正しく作成されているか(Windowsの場合)

アプリケーションは、シングルスレッド用あるいはマルチスレッド用の環境で、正しく作成(記述/コンパイル/リンク)されていなければなりません。シングルスレッド用とマルチスレッド用のアプリケーションを混在動作させると、以下のような事象がおきます。

  • 以下のエラーメッセージが出力されることがあります。
    「JYP1079E マルチスレッドの実行環境に誤りがあります.」

上記の事象が発生した場合、以下のことを確認してください。

  • コンパイル/リンク時にオプションを正しく指定しているか
    マルチスレッドアプリケーションの場合、コンパイル/リンク時に、“sqlcc、sqlfcc、sqlcobolのオプション”、または“環境変数SQLPC、SQLPCOB”にTオプション(マルチスレッドのオプション)を指定する必要があります。

    参照

    詳細は、“アプリケーション開発ガイド(埋込みSQL編)”の“コンパイル・リンクの方法”を参照してください。

  • アプリケーション内でマルチスレッド用関数(SQLThr~)を使用してスレッド管理しているか
    マルチスレッドアプリケーションの場合、アプリケーション内でSymfoware/RDBのマルチスレッド用関数(SQLThr~)を使用してスレッド管理する必要があります。

    参照

    詳細は、“アプリケーション開発ガイド(埋込みSQL編)”の“マルチスレッド環境におけるデータ操作”を参照してください。

注意

シングルスレッドアプリケーションの場合は上記の作業は実行しないでください。


アプリケーション側の問題で異常終了していないか

アプリケーションの記述に誤りがある可能性があります。アプリケーションを見直してください。
アプリケーションの見直し後も問題が解決しない場合は、アプリケーションの実行トレースを採取し、アプリケーションの入出力パラメタを確認、調査してください。アプリケーションの実行トレースの詳細は、“付録G アプリケーションの実行トレース”を参照してください。
上記の作業を実施しても、原因が特定できない場合には、以降の対処を行ってください。