- PR -

javax.mail.Service#isConnected()を呼ぶほど遅く

1
投稿者投稿内容
やじゅう
常連さん
会議室デビュー日: 2005/08/10
投稿数: 34
お住まい・勤務地: 野獣の住処
投稿日時: 2005-09-06 17:10
JavaMail 1.3.3を用いてメールを連続送信(connect, 複数送信, disconnectの順)しようとしたところ、20件を超える辺りで急に遅くなる現象に見舞われました。各メールを送信するメソッド内で、既にSMTP接続済みかjavax.mail.Service#isConnected()を用いて判定していたのですが、これのターンアラウンドタイムがコールされる都度遅くなっていたことが判明しました。
webを検索してもそれらしき情報を見つけられなかったのですが、実は私が鈍くさいだけで、利用に当たって何か注意する点に気付いていないだけでしょうか?
raystar
ぬし
会議室デビュー日: 2003/01/16
投稿数: 251
お住まい・勤務地: Tokyo/Japan
投稿日時: 2005-09-12 02:06
こんばんわ。
これはプログラムだけでは判断できないですね。

20件超える辺りでのメールサーバの状態はどんなかんじでしょうか。
メールサーバがまってくれーーー!!って感じな状態かもしれません。

1通送るごとに 300ミリ秒くらい、まってあげたりするとどうでしょうか。

テクといえるものではないですが、
私はメールを大量送信するときは、スレッドにして、 1通ごとに 100〜300ミリ秒くらい
sleepさせています。

助言になるかわかりませんが、ご参考まで。
1

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