• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ORACLE Pro*Cにおけるsignalについ)

ORACLE Pro*Cにおけるsignalについて

このQ&Aのポイント
  • ORACLE Pro*Cを使用してDBにアクセスする関数を作成しましたが、別のプロセスから呼び出すと期待しない挙動になります。
  • Pro*Cは、signalをユーザプロセスに投げるように設計されていますが、具体的な情報が見つかりません。
  • Pro*Cを利用する場合には、特定のお約束がある可能性があります。調査方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

> 上記で作成した関数を,別に作成したプロセスから呼び出しているのですが これが良く変わらないので何ともいえませんが Pro*Cでシグナルを扱ったことがありますが普通に処理できましたよ 書き方も特に変わったことはいていませんでした。 DB関数のライブラリの部分をスタブにして普通のCで書いてみたら ちゃんと動きますか? 以降の動作をしない というあたり割り込みが割り込みをよんでませんかね? ちなみに、扱ったことがあるのは SIGINT, SIGTERM, SIGCHLD, SIGUSER1 SIGUSER2です。

CENTOS2011
質問者

お礼

お礼が遅くなり申し訳ありません。 おっしゃる通り,割り込みがループしておりました。 ありがとうございました。

CENTOS2011
質問者

補足

>> 上記で作成した関数を,別に作成したプロセスから呼び出しているのですが >これが良く変わらないので何ともいえませんが mainを書いたのが私で,Pro*Cを書いたのが別の人という意味でした. #DBを扱うコードを書いたことが無いもので... >DB関数のライブラリの部分をスタブにして普通のCで書いてみたら >ちゃんと動きますか? おっしゃる通り,スタブ化すると正常に動作します. >以降の動作をしない というあたり割り込みが割り込みをよんでませんかね? あ!,そういうことですか. sigaction()で他のシグナルはマスクしていますが, ハンドラ内で,ログを取るためにPro*Cで作成した関数を呼び出しています. 確かにダメっぽいコードになってますね... ハンドラ内で呼び出すのをやめてみます. 明日朝一番で試してみます. ありがとうございます.

すると、全ての回答が全文表示されます。

関連するQ&A