kzen.dev
  • 質問
  • タグ
  • ユーザー
通知:
報酬:
登録
登録すると、質問に対する返答やコメントが通知されます。
ログイン
すでにアカウントをお持ちの方は、ログインして新しい通知を確認してください。
追加された質問、回答、コメントには報酬があります。
さらに
ソース
編集
Richard Everett
Richard Everett
質問

java.net.SocketExceptionの原因は何でしょうか?接続のリセット?

頻繁に、しかし断続的に「java.net.SocketException.Connection reset」エラーが発生します。Connection reset`のエラーがログに頻繁に現れます。この「Connection reset」エラーが実際にどこから来ているのか、どのようにデバッグすればよいのかがわかりません。

この問題は、送信しようとしているメッセージとは無関係のようです。 なお、このメッセージは 相手による接続リセット ではありません。

この例外の典型的な原因は何か、またどのように進めていけばよいか、ご意見をお聞かせください。

以下に代表的なスタックトレースを示します(com.companyname.mtix.smsが我々のコンポーネントです)。

以下は代表的なスタックトレースです。

java.net.SocketException: Connection reset
    at java.net.SocketInputStream.read(SocketInputStream.java:168)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:235)
    at org.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:77)
    at org.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:105)
    at org.apache.commons.httpclient.HttpConnection.readLine(HttpConnection.java:1115)
    at org.apache.commons.httpclient.HttpMethodBase.readStatusLine(HttpMethodBase.java:1832)
    at org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1590)
    at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:995)
    at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:397)
    at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:170)
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396)
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:324)
    at com.companyname.mtix.sms.services.impl.message.SendTextMessage.sendTextMessage(SendTextMessage.java:127)
    at com.companyname.mtix.sms.services.MessageServiceImpl.sendTextMessage(MessageServiceImpl.java:125)
    at com.companyname.mtix.sms.services.remote.MessageServiceRemoteImpl.sendTextMessage(MessageServiceRemoteImpl.java:43)
    at sun.reflect.GeneratedMethodAccessor203.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)
    at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)
    at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)
    at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
    at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
    at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
    at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:453)
    at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
    at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at com.companyname.mtix.sms.http.filters.NoCacheFilter.doFilter(NoCacheFilter.java:63)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at com.companyname.mtix.sms.http.filters.MessageFilter.doFilter(MessageFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:61)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.ajaxanywhere.AAFilter.doFilter(AAFilter.java:46)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:541)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    at java.lang.Thread.run(Thread.java:595)
</pre>

このコンポーネントはTomcatで動作するWebアプリケーションで、たまたまSMSメッセージを送信するサードパーティのWebサービスを呼び出しています。例外がスローされたコードの行は、以下のコードスニペットの最後の行です。

String aggregatorResponse = null;
HttpClient httpClient = prepareHttpClient( username, password );
PostMethod postMethod = preparePostMethod( textUrl );

try {
  SybaseTextMessageBuilder builder = new SybaseTextMessageBuilder();
  URL notifyUrl = buildNotificationUrl( textMessage, codeSetManager );
  String smsRequestDocument = builder.buildTextMessage( textMessage, notifyUrl );
  LOG.debug( "Sybase MT document created as: \n" + smsRequestDocument );

  postMethod.setRequestEntity( new StringRequestEntity( smsRequestDocument ) );
  LOG.debug( "commiting SMS to aggregator: " + textMessage.toString() );
  int httpStatus = httpClient.executeMethod( postMethod );
136 2009-02-25T11:07:06+00:00 14
 Raedwald
Raedwald
編集された質問 24日 1月 2019 в 12:39
プログラミング
java
sockets
socketexception
connection-reset
人気動画
Fix Minecraft Connection Lost - Internal Exception : java.net SocketException: Connection reset Fix
Fix Minecraft Connection Lost - Internal Exception : java.net SocketException: Connection reset Fix
1年前
Java.net.SocketException - Fixed in Under a Minute - No Downloads
Java.net.SocketException - Fixed in Under a Minute - No Downloads
9年前
Como resolver o Erro &quot;internal exception: java.net.socket...&quot;
Como resolver o Erro "internal exception: java.net.socket..."
1年前
HOW TO FIX Internal Exception: java.net.SocketException: Connection reset
HOW TO FIX Internal Exception: java.net.SocketException: Connection reset
1年前
HELP!!!! ME HOW TO FIX Internal Exception: java.net.SocketException: Connection reset
HELP!!!! ME HOW TO FIX Internal Exception: java.net.SocketException: Connection reset
2年前
How to fix java.net.ConnectException: Connection timed out: no further information:
How to fix java.net.ConnectException: Connection timed out: no further information:
3年前
HOW TO FIX Internal Exception: java.net.SocketException: Connection reset
HOW TO FIX Internal Exception: java.net.SocketException: Connection reset
1年前
Не могу зайти на сервер | internal exception java net socketexception | Фикс ошибки 2022
Не могу зайти на сервер | internal exception java net socketexception | Фикс ошибки 2022
1年前
Solution of Error java.net.SocketException: socket failed: EPERM (Operation not permitted) Android
Solution of Error java.net.SocketException: socket failed: EPERM (Operation not permitted) Android
3年前
Interbal Exeption java net SocketExeption Connection reset -POSIBLE SOLUCION
Interbal Exeption java net SocketExeption Connection reset -POSIBLE SOLUCION
2年前
ERROR WHILE SENDING OUTPUT (java.net.SocketPermission 164.100.128.143:8100 connect,resolve)
ERROR WHILE SENDING OUTPUT (java.net.SocketPermission 164.100.128.143:8100 connect,resolve)
4年前
Can You help me with  java.net.Socket.Exception: Connection reset !?
Can You help me with java.net.Socket.Exception: Connection reset !?
10年前
Help Minecraft: Internal exception:java.net.SocketException: Connection Reset
Help Minecraft: Internal exception:java.net.SocketException: Connection Reset
10年前
« 前へ
次へ »
解決策・回答
 Mark
Mark
25日 2月 2009 в 11:30
2009-02-25T11:30:57+00:00
さらに
ソース
編集
#8852030

SocketExceptionのjavadocには、以下のように書かれています。

TCPエラーなど、基礎となるプロトコルにエラーが発生したことを示すためにスローされます。

あなたのケースでは、接続のサーバー側で接続が閉じられたようです。これは、送信するリクエストに問題があるか、サーバー側に問題がある可能性があります。

デバッグのために、Wiresharkなどのツールを使って実際のネットワークパケットを確認してみてください。また、Webサービスをテストするために、Javaコードに代わるクライアントはありますか?これが成功した場合、Javaコードにバグがある可能性があります。

Commons HTTP Clientを使用している場合は、Common HTTP Client Logging Guideを参照してください。これは、HTTPレベルでリクエストをログに記録する方法を教えてくれます。

HttpClient - HttpClient Logging Practices
hc.apache.org
63
0
競合他社を解析する人工知能API
productapi.dev
ゲストユーザ
29日 7月 2009 в 1:39
2009-07-29T01:39:01+00:00
さらに
ソース
編集
#8852032

このエラーはあなたの側で発生しますそして反対側ではありません。 反対側が接続をリセットする場合、例外メッセージには次のようになります。

java.net.SocketException reset by peer

原因は、「HttpClient」内の接続が古くなっていることです。 SSLの古い接続を確認しても、このエラーは修正されません。 解決策:クライアントをダンプして再作成します。

 Nathan
Nathan
編集した答え 27日 11月 2017 в 5:22
40
0
競合他社を解析する人工知能API
productapi.dev
 P&#229;lOliver
PålOliver
21日 10月 2011 в 10:41
2011-10-21T10:41:23+00:00
さらに
ソース
編集
#8852035

Glassfish3サーバーにデプロイされているWebサービスにアクセスしようとするこの問題が発生した場合は、http-thread-pool設定を調整することをお勧めします。 これにより、多くの同時スレッドがWebサービスを呼び出していたときにSocketExceptionsが修正されました。

1。 管理コンソールに移動します。 2。 "Configurations"-> "Server config"-> "Thread pools"-> "http-thread-pool"に移動します。 3。 「最大スレッドプールサイズ」の設定を5から32に変更します。 4。 「ミンスレッドプールサイズ」の設定を2から16に変更。 5。 Glassfishを再起動します。

16
0
Jacob  van Lingen
Jacob van Lingen
28日 8月 2014 в 12:07
2014-08-28T12:07:58+00:00
さらに
ソース
編集
#8852037

私もこのエラーに遭遇しました。 私の場合、問題はTLS1.0をサポートしてJRE6を使用していたことでした。 サーバーはTLS1.2のみをサポートしていたため、このエラーがスローされました。

 Community
Community
編集した答え 23日 5月 2017 в 12:18
11
0
競合他社を解析する人工知能API
productapi.dev
 inanutshellus
inanutshellus
22日 1月 2013 в 7:17
2013-01-22T19:17:05+00:00
さらに
ソース
編集
#8852036

私の場合、これは、特に複雑なSOLRクエリに対して、Tomcatに不十分な「maxHttpHeaderSize」が設定されたためです。

これが誰かを助けることを願っています。!

7
0
 Gorge
Gorge
27日 6月 2010 в 10:36
2010-06-27T22:36:13+00:00
さらに
ソース
編集
#8852033

私はいつもこのエラーを発生させ、それを正常と見なします。

これは、一方の側がすでにハングアップしているときに、一方の側が読み取ろうとするときに発生します。 したがって、プロトコルによっては、問題を指定する場合と指定しない場合があります。 クライアントコードがサーバーにハングアップすることを明確に示している場合、クライアントとサーバーの両方が同時にハングアップする可能性があり、このメッセージは発生しません。

コードを実装する方法は、クライアントがさよならを言わずに電話を切ることです。 その後、サーバーはエラーをキャッチして無視できます。 HTTPのコンテキストでは、プロトコルの1つのレベルでは、接続ごとに1つ以上のリクエストが許可され、もう1つのレベルでは許可されないと思います。

したがって、一方の側がもう一方の側にぶら下がっている可能性があることがわかります。 あなたが受け取っているエラーが海賊的な懸念であるとは思えません、そしてあなたがそれをあなたのログファイルに記入しないようにするためにそれを単に捕まえることができます。

 Mark
Mark
編集した答え 19日 12月 2012 в 12:12
5
0
競合他社を解析する人工知能API
productapi.dev
 Paul
Paul
25日 2月 2009 в 11:35
2009-02-25T11:35:41+00:00
さらに
ソース
編集
#8852031

このエラーは、クライアントがソケット経由で応答を返す前にソケット接続を閉じた場合に、サーバー側で発生します。ウェブアプリのシナリオでは、このようなエラーは手動で作成することができるので、すべてが危険というわけではありません。例えば、レスポンスを取得する前にブラウザを終了した場合などです。

4
0
Michael Borgwardt
Michael Borgwardt
25日 2月 2009 в 11:23
2009-02-25T11:23:53+00:00
さらに
ソース
編集
#8852029

この例外は、相手側から予期せずソケットが閉じられたことを意味します。Webサービスを呼び出しているので、このようなことは起こるはずがありません。おそらく、Webサービスのバグを誘発するようなリクエストを送っているのでしょう。

このような場合は、リクエスト全体をログに記録してみて、何か変わったことがないか確認してみてください。そうでなければ、ウェブサービスのプロバイダに連絡を取り、問題のあるリクエストのログを送ってください。

3
0
競合他社を解析する人工知能API
productapi.dev
Nirmal Mangal
Nirmal Mangal
14日 9月 2016 в 12:19
2016-09-14T12:19:58+00:00
さらに
ソース
編集
#8852038

このスレッドは少し古いことは知っていますが、2セントを追加したいと思います。 リリースの直後に同じ「接続リセット」エラーが発生しました。

根本的な原因は、「apache」サーバーが展開のためにダウンしたことです。 サードパーティのトラフィックはすべて「apache」を通過し、ダウンしているため接続のリセットエラーが発生していました。

Richard Everett
Richard Everett
編集した答え 14日 9月 2016 в 2:26
1
0
Super Jade
Super Jade
5日 10月 2018 в 3:21
2018-10-05T03:21:13+00:00
さらに
ソース
編集
#8852040

これは古いスレッドですが、昨日「java.net.SocketException:Connection reset」に遭遇しました。

サーバー側のアプリケーションでは、スロットル設定が変更され、一度に1つの接続しか許可されませんでした。! したがって、通話が通過することもあれば、通過しないこともあります。 スロットル設定を変更して問題を解決しました。

1
0
競合他社を解析する人工知能API
productapi.dev
 Roquen
Roquen
28日 9月 2011 в 2:40
2011-09-28T14:40:41+00:00
さらに
ソース
編集
#8852034

私もそのエラーを正確に取得していました:「ピアごとの接続リセット」。 例外は、「postForObject()」メソッドを実行するときに、SpringのRESTテンプレートによって提起されていました。 私にとっての問題は、HTTP URLリクエストが長すぎることでした。 したがって、最初に生成されたURLが本来あるべきものかどうかを確認し、サーバーがその長さのリクエストを実際に処理できる場合は、サーバーの構成に移動して、デフォルトで許可されているURLリクエストの長さを上げます。

これで問題は解決しましたが、注意してください。アプリケーションは、URLリクエストの最大長が固定されているため、一部のインターネットブラウザ、特に古いブラウザでは実行されない場合があります。

それが役立つことを願っています。..

 bluish
bluish
編集した答え 8日 3月 2012 в 2:32
0
0
 Noumenon
Noumenon
5日 11月 2017 в 8:31
2017-11-05T20:31:07+00:00
さらに
ソース
編集
#8852039

私が読もうとしていたテキストファイルに、ファイアウォールのウイルス対策署名に一致する文字列が含まれているときに、このエラーが発生しました。

0
0
競合他社を解析する人工知能API
productapi.dev
 RTF
RTF
12日 10月 2018 в 9:04
2018-10-12T09:04:34+00:00
さらに
ソース
編集
#8852041

FWIW、POSTリクエストを期待していたエンドポイントに誤ってGETリクエストを行っていたときに、このエラーが発生していました。 おそらくそれは、問題を処理するための特定のサーバーの方法にすぎませんでした。

0
0
 Displee
Displee
28日 11月 2018 в 10:04
2018-11-28T22:04:34+00:00
さらに
ソース
編集
#8852042

接続しようとしたポートが閉じていたため、このエラーが発生していました。

0
0
競合他社を解析する人工知能API
productapi.dev
質問の追加
カテゴリ
すべて
技術情報
文化・レクリエーション
生活・芸術
科学
プロフェッショナル
事業内容
ユーザー
すべて
新しい
人気
1
Анна Литвиненко
登録済み 1日前
2
Inessa bu
登録済み 1ヶ月前
3
Denis Babushkin
登録済み 1ヶ月前
4
asakuno asakuno
登録済み 1ヶ月前
5
aldo salerno
登録済み 1ヶ月前
競合他社を解析する人工知能API
productapi.dev
DE
EL
ES
FR
ID
IT
JA
KO
NL
NO
PT
RO
RU
SK
SL
TR
ZH
© kzen.dev :年
ソース
stackoverflow.com
ライセンス cc by-sa 3.0 帰属