Symfoware/RDBが何らかの異常または内部矛盾を検出した場合に、プロセスを異常終了し、コアファイルを出力することがあります。以下のことを確認してください。
シングルスレッド/マルチスレッドアプリケーションの環境が正しく作成されているか
アプリケーション側の問題で異常終了していないか
シングルスレッドアプリケーション/マルチスレッドアプリケーションの環境が正しく作成されているか(Solaris/Linuxの場合)
アプリケーションは、シングルスレッド用あるいはマルチスレッド用の環境で、正しく作成(記述/コンパイル/リンク)されていなければなりません。シングルスレッド用とマルチスレッド用のアプリケーションを混在動作させると、以下のような事象がおきます。
以下のエラーメッセージが出力されることがあります。
「JYP1079E マルチスレッドの実行環境に誤りがあります.」
アプリケーションが異常終了することがあります。
確認方法は、アプリケーションの実行モジュールに対してlddコマンドを実行し、リンクされているライブラリを確認します。
libsqldrv.so :シングルスレッド用
libsqldrvm.so:マルチスレッド用
libsql64drv.so :シングルスレッド用
libsql64drvm.so:マルチスレッド用
上記の事象が発生した場合、以下のことを確認してください。
コンパイル/リンク時にオプションを正しく指定しているか
マルチスレッドアプリケーションの場合、コンパイル/リンク時に、“sqlcc、sqlfcc、sqlcobolのオプション”、または“環境変数SQLPC、SQLPCOB”にTオプション(マルチスレッドのオプション)を指定する必要があります。
参照
詳細は、“アプリケーション開発ガイド(埋込みSQL編)”の“コンパイル・リンクの方法”を参照してください。
アプリケーション内でマルチスレッド用関数(SQLThr~)を使用してスレッド管理しているか
マルチスレッドアプリケーションの場合、アプリケーション内でSymfoware/RDBのマルチスレッド用関数(SQLThr~)を使用してスレッド管理する必要があります。
参照
詳細は、“アプリケーション開発ガイド(埋込みSQL編)”の“マルチスレッド環境におけるデータ操作”を参照してください。
注意
シングルスレッドアプリケーションの場合は上記の作業は実行しないでください。
シングルスレッドアプリケーション/マルチスレッドアプリケーションの環境が正しく作成されているか(Windowsの場合)
アプリケーションは、シングルスレッド用あるいはマルチスレッド用の環境で、正しく作成(記述/コンパイル/リンク)されていなければなりません。シングルスレッド用とマルチスレッド用のアプリケーションを混在動作させると、以下のような事象がおきます。
以下のエラーメッセージが出力されることがあります。
「JYP1079E マルチスレッドの実行環境に誤りがあります.」
上記の事象が発生した場合、以下のことを確認してください。
コンパイル/リンク時にオプションを正しく指定しているか
マルチスレッドアプリケーションの場合、コンパイル/リンク時に、“sqlcc、sqlfcc、sqlcobolのオプション”、または“環境変数SQLPC、SQLPCOB”にTオプション(マルチスレッドのオプション)を指定する必要があります。
参照
詳細は、“アプリケーション開発ガイド(埋込みSQL編)”の“コンパイル・リンクの方法”を参照してください。
アプリケーション内でマルチスレッド用関数(SQLThr~)を使用してスレッド管理しているか
マルチスレッドアプリケーションの場合、アプリケーション内でSymfoware/RDBのマルチスレッド用関数(SQLThr~)を使用してスレッド管理する必要があります。
参照
詳細は、“アプリケーション開発ガイド(埋込みSQL編)”の“マルチスレッド環境におけるデータ操作”を参照してください。
注意
シングルスレッドアプリケーションの場合は上記の作業は実行しないでください。
アプリケーション側の問題で異常終了していないか
アプリケーションの記述に誤りがある可能性があります。アプリケーションを見直してください。
アプリケーションの見直し後も問題が解決しない場合は、アプリケーションの実行トレースを採取し、アプリケーションの入出力パラメタを確認、調査してください。アプリケーションの実行トレースの詳細は、“付録G アプリケーションの実行トレース”を参照してください。
上記の作業を実施しても、原因が特定できない場合には、以降の対処を行ってください。