2012-04-12 9 views
1

まず、私は.NETの人です。私はここから少し離れています。TomCatの設定ロックされたコール/スレッド - ベンダーは再起動を指示します

クライアントのベンダーは、Tomcatでホストされている製品用のAPIを持っています。このサービスは、数日前のリクエストに対して「保持」しているようです。

私の考えは、APIのコード内で適切なエラー処理が行われておらず、何度も何度もリクエストをやり直す無限ループに苦しんでいるということです。彼らは問題が何であるかは言いませんが、クライアントにTomcatを再起動するよう伝えます。

この問題は、ベンダーがTomcatを毎日再起動するタスクのスケジューリングを提案するような問題になっています。しかし、オンデマンド(小売消費者から)の夜間にAPIを呼び出すサービスがあります。

エキスパートがこれについて私を後退させることはできますか?私は、この再起動が必要なTomcatに本質的に間違っていることは何もないとは思わない。この欠陥を許容することのできない "深刻な"アプリケーションがあまりにも多くあります。 にはが含まれています(ベンダー)。あるいは、これらの「デッドスレッド」につながる可能性のある設定/プラットフォームの既知の問題がありますか?

洞察力があれば幸いです。

答えて

1

スタックドスレッドを分析するには、スレッドダンプを取得してベンダー(またはコードを書いた人)に分析のために渡す必要があります。あなたがスレッドダンプを取る方法を知らないなら、あなたはあなたの環境のための手順を見つけるためにgoogleすることができます。
スタックされたスレッドは、ネットワークリソースを保持していて、実行しないスレッドによって引き起こされる可能性があります。不正なコーディングも問題になる可能性があります。
定期的に再起動するのは最善の方法ではありませんが、恒久的な解決策が見つかるまで一時的に回避することができます。

+0

私はかなり悪いコーディングがこの根本にあると確信しています。私は個人的には、それがデッドロックか「無限の再試行」のエラー処理手法だと考えています。スレッドダンプは少なくとも疑わしいメソッドを指すのに役立つはずです。 ヒントをありがとう! –