アプリケーションプロセスが異常終了した場合は、コアファイルの情報から、異常終了した原因を調査してください。Symfoware Serverのライブラリで異常が発生したかを確認するには、gdbやfdbなどのデバッガを用いて、以下のように関数トレースを出力してください。
(gdb) bt
#0 0x4004c1b1 in __kill () from /lib/libc.so.6
#1 0x4004be95 in raise (sig=6) at ../sysdeps/posix/raise.c:27
#2 0x4004d60a in abort () at ../sysdeps/generic/abort.c:88
#3 0x401eefe3 in internal_err () at jypeacom.c:3642
#4 0x401eef88 in Cgp_IpbGet (ipb_p=0xbffff3b0 "{\001\002w\017",
ipbexec_p=0xbffff248 "",
ipbexec_len_p=0xbffff230 "") at jypeacom.c:3608
#5 0x401ee609 in Cgp_CvValToChr (conv_p=0xbffff4a4) at jypeacom.c:3072
#6 0x40203543 in jypeconv (conv_p=0xbffff4a4) at jypeconv.c:440
#7 0x401ae728 in broat (rt0_p=0x805c5ec, work_p=0x400236c0,
var_p=0x806f3f0,
atr_p=0x8070ad4 "`", data_p=0x807c0ef "+", broat_inf_p=0xbffff53c,
readlen=0xbffff520)
at jypbroat.c:1412
#8 0x401c13d5 in ssqef (cvt=0x805c1d4) at jypbsqe4.c:1293
#9 0x401c0d81 in ssqe4 (cvt=0x805c1d4) at jypbsqe4.c:830
#10 0x401bf012 in ssqe0 (cvt=0x805c1d4) at jypbsqe0.c:420
#11 0x401b4bfa in sex00 (cvt=0x805c1d4) at jypbsex0.c:931
#12 0x401dac6e in sqldrv (sh_wk_p=0x400236c0, sh_tbl_ptr_ptr=0x40023a48) at
jypbusqd.c:666
#13 0x4001efcf in sqlexe (sql_cd=13, opt=0, sys_addr=0x804c200) at
jypbssqe.c:235
#14 0x80490ef in main ()
#15 0x40045c96 in __libc_start_main (main=0x8048840 <main>, argc=3,
argv=0xbffff824,
init=0x80485ec <_init>, fini=0x804affc <_fini>, rtld_fini=0x4000a4a0
<_dl_fini>,
stack_end=0xbffff81c) at ../sysdeps/generic/libc-start.c:92fdb* t
#0 0xff316dac (_kill + 0x8) (0x0,0x6,0xff332584,0x0,0xffffffff,0x0)
#1 0xff2b93c8 (abort + 0xfc) (0xff332584,0xff10f224,0x30ae8,0x2721c,0x27208,
0x21180)
#2 0xff05ac90 (bpisd + 0x73c) (0xffffd8f1,0x2edc8,0xff11aaa4,0xff10f224,
0xff11afc0,0x27268)
#3 0xff059dc8 (bpser + 0xac) (0x1,0x2edc8,0xff11afc0,0xff10f224,0x0,0x283c4)
#4 0xff04b2fc (bpdcn + 0x1f4) (0x27124,0x0,0x2edc8,0xffbee954,0xff10f224,
0xffbee9a5)
#5 0xff07f414 (scon1 + 0x414) (0x30a3c,0xffbeebe8,0xff10f224,0xffbeebe8,
0x26744,0xff30a1cc)
#6 0xff07eefc (sdcon + 0x230) (0x26744,0xffbeebe8,0xffffffff,0xffffffff,
0xff10f224,0x1)
#7 0xff07db5c (skcon + 0x1038) (0x26744,0x30ea4,0x0,0x0,0x1,0xff10f224)
#8 0xff07aad4 (sex00 + 0x1014) (0x26744,0xff1183a8,0x0,0xff10f224,0x0,0x0)
#9 0xff0a7a88 (sqldrv + 0x3a4) (0xff38220c,0x27268,0xff118498,0xff118452,
0xff11b044,0xff10f224)
#10 0xff36eab0 (sqlexe + 0x8c) (0xff383190,0xff38220c,0xff383174,0xff381550,
0x211a8,0x0)
#11 0x00010dd4 (bbb + 0x1ac) (0x211a8,0x21336,0xffbef36d,0xff332584,0xff332584,
0xff33a1a8)
#12 0x00010bec (main + 0x1c) (0x1,0xffbef7d4,0xffbef7dc,0x21000,0x0,0x0)
#13 0x00010b80 (_start + 0xb8) ()上記の関数トレースの“sqlexe * sqldrv → …”が、Symfoware Serverのライブラリのモジュールです。関数トレースに、この関数が出力されている場合は、Symfoware Serverのライブラリの中で異常終了しています。上記のトレースを基に、利用者が作成したライブラリのCプログラムを調査してください。
それ以外の場合は、ユーザアプリケーション側で異常終了しています。アプリケーションの記述に誤りがありますので、アプリケーションを見直してください。
Solarisの場合
利用者が作成したファンクションルーチンのライブラリ内で異常が発生した場合、一連のメッセージに示された原因の情報を基に、利用者が作成したファンクションルーチンのCプログラムから、異常終了した原因を調査してください。ファンクションルーチンのCプログラムで異常が発生したかを確認するには、adbなどのデバッガを用いて以下のように関数トレースを出力してください。
% adb /opt/FSUNrdb2b/sbin/rdbsfunc core_fnc_14275.020201.091819 core file = core_fnc_14275.020201.091819 -- program ``rdbsfunc'' on platform SUNW,Ultra-4 SIGSEGV: Segmentation Fault $c UserFunc001(27478,27528,27528,1,146d4,27478) + 78 Uprc_Module_Execute(25390,28730,27570,27528,24a88,7f940620) + 51c Jypvuprc(24a88,7f980010,7f980200,2377c,0,24cb0) + c4 CcrCadAdtMain(24a88,4,7fb3aec4,5,7f980188,7f9801f8) + 28c
備考.FSUNrdb2bパッケージが/opt配下にインストールされた場合の例です
上記の関数トレースの“CcrCadAdtMain”から“Uprc_Module_Execute”までの関数が、Symfoware/RDBのモジュールです。それより上位(例の場合は“UserFunc001”)が、利用者が作成したファンクションルーチンのC関数になります。上記のトレースを基に、利用者が作成したファンクションルーチンのCプログラムを調査してください。
それより下位の場合は、メモリ破壊や使用方法の誤りなどの原因により、Symfoware/RDBのモジュールやOSが正しく動作していないことを意味しています。
Linuxの場合
利用者が作成したファンクションルーチンのライブラリ内で異常が発生した場合、一連のメッセージに示された原因の情報を基に、利用者が作成したファンクションルーチンのCプログラムから、異常終了した原因を調査してください。ファンクションルーチンのCプログラムで異常が発生したかを確認するには、gdbなどのデバッガを用いて以下のように関数トレースを出力してください。
$ gdb /opt/FJSVrdb2b/sbin/rdbsfunc core_fnc_26257.060306.145243
:
(gdb) bt
#0 0x20000000010190a0 in UserFunc001 () from /work1/ryo/tset/ufunc/libufunc.so
#1 0x40000000000053e0 in UserFunc_Execute ()
#2 0x40000000000050a0 in Uprc_Module_Execute ()
#3 0x4000000000002a40 in jypvuprc ()
#4 0x2000000000142ac0 in CcrCadAdtMain () from /work1/ryo/src/BASE/lib/librdbcad.so
#5 0x200000000006d750 in start_thread () from /lib/tls/libpthread.so.0
#6 0x200000000031d930 in __clone2 () from /lib/tls/libc.so.6.1備考.FJSVrdb2bパッケージが/opt配下にインストールされた場合の例です。
上記の関数トレースの“CcrCadAdtMain”から“Uprc_Module_Execute”までの関数が、Symfoware/RDBのモジュールです。それより上位(例の場合は“UserFunc001”)が、利用者が作成したファンクションルーチンのC関数になります。上記のトレースを基に、利用者が作成したファンクションルーチンのCプログラムを調査してください。
それより下位の場合は、メモリ破壊や使用方法の誤りなどの原因により、Symfoware/RDBのモジュールやOSが正しく動作していないことを意味しています。