ページ 11

コールバック関数のエラーコードが-50

Posted: 2021年12月17日(金) 02:59
by OKJ
ご担当者様

お世話になります。

コネクションが確立されている状態で、一定時間通信をしない場合に
以下の引数がセットされてコールバック関数がコールされることがあります。
第二引数(イベント):EV_SOC_RCV
第三引数(エラーコード):-50

当該事象は、最後に通信をしてからおよそ64秒後に当該事象が発生します。
(毎回64秒後ですが、必ず発生するというわけではない)

現在原因を追っておりますが解決に至っておりません。
なお、当方はノンブロッキングモードを使用しており
当該回線はサーバー側として使用しています。

ノンブロッキングモードで使用している場合に、EV_SOC_RCVと-50が
同時にセットされることはありますでしょうか?
またある場合はどのようなケースでしょうか?
よろしくお願いいたします。

Re: コールバック関数のエラーコードが-50

Posted: 2021年12月21日(火) 11:20
by eForce技術担当
お問い合わせありがとうございます。

> ノンブロッキングモードで使用している場合に、EV_SOC_RCVと-50が
> 同時にセットされることはありますでしょうか?

ノンブロッキングモードで E_TMOUT を返却するのは次の場合です。

① TCPソケット利用で snd_soc() をコール後、送信タイムアウト時間
(CFG_TCP_SND_TMO==既定64秒) 経過後も対向相手から送信確認(ACK)が無かった場合。

② TCP KeepAlive機能が有効な際、KeepAlive通知回数経過しても応答がない場合。

③ cls_soc()がタイムアウトした場合。


> 当該事象は、最後に通信をしてからおよそ64秒後に当該事象が発生します。

今回は64秒後とあるため、①が該当していないでしょうか。ご確認下さい。


保守契約期間中ですと、弊社サポートまで症状再現する最小構成のプロジェクト
を送付して頂ければ弊社での障害調査も可能です。ご検討下さい。