ご担当者様
お世話になります。
コネクションが確立されている状態で、一定時間通信をしない場合に
以下の引数がセットされてコールバック関数がコールされることがあります。
第二引数(イベント):EV_SOC_RCV
第三引数(エラーコード):-50
当該事象は、最後に通信をしてからおよそ64秒後に当該事象が発生します。
(毎回64秒後ですが、必ず発生するというわけではない)
現在原因を追っておりますが解決に至っておりません。
なお、当方はノンブロッキングモードを使用しており
当該回線はサーバー側として使用しています。
ノンブロッキングモードで使用している場合に、EV_SOC_RCVと-50が
同時にセットされることはありますでしょうか?
またある場合はどのようなケースでしょうか?
よろしくお願いいたします。
コールバック関数のエラーコードが-50
- eForce技術担当
- 記事: 193
- 登録日時: 2014年4月24日(木) 14:18
Re: コールバック関数のエラーコードが-50
お問い合わせありがとうございます。
> ノンブロッキングモードで使用している場合に、EV_SOC_RCVと-50が
> 同時にセットされることはありますでしょうか?
ノンブロッキングモードで E_TMOUT を返却するのは次の場合です。
① TCPソケット利用で snd_soc() をコール後、送信タイムアウト時間
(CFG_TCP_SND_TMO==既定64秒) 経過後も対向相手から送信確認(ACK)が無かった場合。
② TCP KeepAlive機能が有効な際、KeepAlive通知回数経過しても応答がない場合。
③ cls_soc()がタイムアウトした場合。
> 当該事象は、最後に通信をしてからおよそ64秒後に当該事象が発生します。
今回は64秒後とあるため、①が該当していないでしょうか。ご確認下さい。
保守契約期間中ですと、弊社サポートまで症状再現する最小構成のプロジェクト
を送付して頂ければ弊社での障害調査も可能です。ご検討下さい。
> ノンブロッキングモードで使用している場合に、EV_SOC_RCVと-50が
> 同時にセットされることはありますでしょうか?
ノンブロッキングモードで E_TMOUT を返却するのは次の場合です。
① TCPソケット利用で snd_soc() をコール後、送信タイムアウト時間
(CFG_TCP_SND_TMO==既定64秒) 経過後も対向相手から送信確認(ACK)が無かった場合。
② TCP KeepAlive機能が有効な際、KeepAlive通知回数経過しても応答がない場合。
③ cls_soc()がタイムアウトした場合。
> 当該事象は、最後に通信をしてからおよそ64秒後に当該事象が発生します。
今回は64秒後とあるため、①が該当していないでしょうか。ご確認下さい。
保守契約期間中ですと、弊社サポートまで症状再現する最小構成のプロジェクト
を送付して頂ければ弊社での障害調査も可能です。ご検討下さい。