- PR -

SocketでFTPプログラムを作ったが、【Connection reset】が発生!

投稿者投稿内容
かつや
ベテラン
会議室デビュー日: 2004/01/19
投稿数: 70
投稿日時: 2004-07-29 12:54
ソケットを使って、FTPにてファイルをダウンロードする処理を作成しました。
モードは、サーバ側の設定によりパッシブ不可だったので、アクティブです。

もうリリースが済んでしまってる分なんですが、
運用仕様として、一日1000回くらいクーロンにて同プログラムを起動してます。

が、1件/一日くらいの割合で、【Connection reset】というエラーが発生しています。

運用上の支障がほとんどないので、プログラムの修正等は考えてないようですが、
1プログラマとしては、とても気になります。

原因もわからないです。
推測としては、パケット送受信の際に、衝突がおこってるのかな?と考えてますが
どうなんでしょうか?

通信分野に詳しい方がいらっしゃったら、考えられる要因を指摘していただけないでしょうか?
meltingpot
常連さん
会議室デビュー日: 2004/06/15
投稿数: 24
投稿日時: 2004-07-29 16:14
回答ではないのですが。
かつや氏はFTPの話題でいくつもスレッドを起こしていますがやめて頂きたいと思います。
他のスレッドが埋もれてしまい探しにくくなるし、一連の関連する内容は一つのスレッド
に纏まっていた方が便利だと思うからです。
かつや
ベテラン
会議室デビュー日: 2004/01/19
投稿数: 70
投稿日時: 2004-07-29 17:24
meltingpot氏はどうも分かってないようですね。

FTP関連ではあっても、タイトル(質問内容)が異なるわけですから、
別スレッドとして立てるのが分かりやすいはず。

そもそも、IT会議室は、
カテゴリ分けされているが、スレッドは現象(質問)単位です。

その点を十分ご理解いただきたいと思います。
おばけ
ぬし
会議室デビュー日: 2002/11/14
投稿数: 609
お住まい・勤務地: 東京都江東区
投稿日時: 2004-07-29 17:27
引用:

FTP関連ではあっても、タイトル(質問内容)が異なるわけですから、


かつやさんは全く同じタイトルのスレッドを2本立てられているので、
そのことを指摘されているのでは?
最近@ITのサーバが重たいようですが、そのせいで二重サブミットされて
しまったのでしょうか・・・??
かつや
ベテラン
会議室デビュー日: 2004/01/19
投稿数: 70
投稿日時: 2004-07-29 17:57
おばけ氏ご指摘の通り、2重サブミットしてしまいました。
正確には、投稿した後フリーズした感じだったので更新ボタンを押したら2重投稿になってました。
私も、そのことをmeltingpot氏は指摘しているのかなと直感的に思いましたが、
文章読む限りでは違うみたいですね。
私のFTPに関する一連の質問を、一つのスレッドでまとめるべきだと主張されてるみたいです。

私的には、タイトルだけで質問内容がある程度把握できた方が、
第三者的には把握しやすいと思ってますのでそのようにしてるだけです。

決して、無意味に乱雑なスレッドを立てまくってるわけではないということだけはご理解いただきたいところです。
meltingpot
常連さん
会議室デビュー日: 2004/06/15
投稿数: 24
投稿日時: 2004-07-29 18:07
なぜ私がこんなことを書いているかと申しますと、最初に
「JavaでFTPクライアントを作るにはどうしたらいいでしょう」
的なスレッドにしてくれていたら、
「業務で使うならJakarta Commons NetのFTPClientクラスを使ったらいかがでしょう」
とでも返答が付いて終わってるんです。

で、個々の問題に対してスレッドを立てることによってそれぞれのスレッドでは
すでにJavaの話題ではなく、FTPプロトコルの話が延々続いているという具合です。
かつやさんと回答できる人がやりとりしてるだけなので口を挟む筋合いではないのですが、他のスレッドを追っていて若干うっとうしいと思う人間もいることに気付いて
欲しいと思い投稿しました。

二重投稿は事故でしょう。

ちなみに Commons NETはこちらです。
http://jakarta.apache.org/commons/net/

もちろん、そういったルールがあるとか強い要請であるとかではありません。
NAO
ぬし
会議室デビュー日: 2001/10/24
投稿数: 1256
お住まい・勤務地: 神奈川のはずれから東京の下町
投稿日時: 2004-07-29 19:09
横槍で申し訳有りませんが…

引用:

原因もわからないです。



WinでもUnix系でもそうですけど。
FTPだろうが、Telnetだろうがネットワークでエラーが起きているならば、
まず切り分けする為にネットワーク系のコマンドを使って通信状況とかを把握したり、
パケットキャプチャを取ったりして原因を追いかけますよね?

また何時起きるのか解らないので有ればUNIX系であればsnoopを取ったりもしますよね?

原因もわからないです、どうしたら良いでしょう?では無くて、有る程度情報を取ったりしてみてはどうですか?

FTPでConnection resetと言う事はコネクションが切断されるって事ですよね?
考えられる原因としてはFTPの設定(無通信がどの程度続いたら切断する)とか
ネットワークの負荷が高かったとか開けるサーバーの同時に開けるポート数をオーバーしたとか
色々と考えられるわけです。(もちろんプログラムミスも有りますけどね)

有る程度切り分けをされる事をおすすめします。



_________________
Inspired Ambitious
ISMS Assistant Auditor
かつや
ベテラン
会議室デビュー日: 2004/01/19
投稿数: 70
投稿日時: 2004-07-29 20:14
NAO氏さんへ

通信系の開発でしたから、パケットキャプチャは当たり前のように使ってました。
ただ、24時間キャプチャしてるわけにもいかないですよね?

snoopというのは知らなかったです。
役に立つコマンドだったら、使ってみます。

>原因もわからないです、どうしたら良いでしょう?では無くて、有る程度情報を取ったりしてみてはどうですか?

当たり前の事を言わなければならないみたいですね。
ここで投稿してるってことは、自分で出来る限りのことをしても解決しなかったからですよ!
こーいった指摘は不愉快そのものです!

>ネットワークの負荷が高かったとか開けるサーバーの同時に開けるポート数をオーバーしたとか

上記の状況で、コネクションが切断されるのでしょうか?
本番機のFTPサーバですから、空けるポートがなかったなんてありえないと思うし、
ネットワークの負荷が高いから切断されたんでは、ネットワーク系のプログラムは全滅ですよね?

スキルアップ/キャリアアップ(JOB@IT)