
開発環境
OS:CentOS
DB:Oracle Database 11g
上で,Pro*Cを使用して,DBにアクセスする関数を作成しました(正確には,してもらいました).
上記で作成した関数を,別に作成したプロセスから呼び出しているのですが
プロセスの挙動が,期待しないものになります(ゾンビにはならないが,以降の動作をしない).
OracleのHPを見ると,Pro*Cは,signalをユーザプロセスに投げるように
読めます(SIGCHLD,SIGPIPE??)が,それ以上の情報を見つけられていません.
おそらく,Pro*Cを利用する場合の「お約束」があるのかと思いますが
どの辺を調べればいいかお教えください.
No.1ベストアンサー
- 回答日時:
> 上記で作成した関数を,別に作成したプロセスから呼び出しているのですが
これが良く変わらないので何ともいえませんが
Pro*Cでシグナルを扱ったことがありますが普通に処理できましたよ
書き方も特に変わったことはいていませんでした。
DB関数のライブラリの部分をスタブにして普通のCで書いてみたら
ちゃんと動きますか?
以降の動作をしない というあたり割り込みが割り込みをよんでませんかね?
ちなみに、扱ったことがあるのは
SIGINT, SIGTERM, SIGCHLD, SIGUSER1 SIGUSER2です。
この回答への補足
>> 上記で作成した関数を,別に作成したプロセスから呼び出しているのですが
>これが良く変わらないので何ともいえませんが
mainを書いたのが私で,Pro*Cを書いたのが別の人という意味でした.
#DBを扱うコードを書いたことが無いもので...
>DB関数のライブラリの部分をスタブにして普通のCで書いてみたら
>ちゃんと動きますか?
おっしゃる通り,スタブ化すると正常に動作します.
>以降の動作をしない というあたり割り込みが割り込みをよんでませんかね?
あ!,そういうことですか.
sigaction()で他のシグナルはマスクしていますが,
ハンドラ内で,ログを取るためにPro*Cで作成した関数を呼び出しています.
確かにダメっぽいコードになってますね...
ハンドラ内で呼び出すのをやめてみます.
明日朝一番で試してみます.
ありがとうございます.
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バックグラウンドのプロセスの...
-
VB6.0 SHELLで起動...
-
ADOでアクセスのレコードに...
-
services.exeが延々と。
-
VBでエクセルを起動し、プロ...
-
怪しいプロセス教えてください。
-
C#でのbatファイル実行結果取得
-
exeファイルを終了させない。
-
ストール監視の監視方法
-
CPUの使用率について
-
Windowsで環境変数を設定できま...
-
explorer.exeが異様にメモリを食う
-
IISがフリーズ
-
起動しているプロセスの確認
-
タスクマネージャーのプロセス...
-
sleep関数の精度について
-
プロセスIDからウィンドウハ...
-
vb.netでEXCEL起動がうまくでき...
-
WebBrowserでPDF表示でのトラブル
-
ShellExecuteが起動したプロセ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バックグラウンドのプロセスの...
-
プロセスのアタッチ・デタッチ...
-
非表示になったエクセルは?
-
C#でのbatファイル実行結果取得
-
Process.Startの戻り値を後で取得
-
タスクマネージャーのプロセス...
-
SendMessageが失敗するときがある
-
VB6.0 SHELLで起動...
-
Linuxでのスレッド間メッセージ...
-
vb.netでEXCEL起動がうまくでき...
-
explorer.exeが異様にメモリを食う
-
プロセスIDの取得方法について
-
IISがフリーズ
-
jdbcのプロセスの処理について
-
c言語でプロセスIDを調べたい
-
セマフォとmutexの違いは?
-
警告『 別のプロセスで使用され...
-
ADOでアクセスのレコードに...
-
OSPFでプロセスを分ける意義に...
-
Windowsでのfork方法
おすすめ情報