java.net.SocketException: Connection reset
ログに断続的なエラーが頻繁に表示 されます。Connection reset
エラーが実際にどこから発生しているか、およびデバッグをどのように行うかについては不明です。
この問題は、送信しようとしているメッセージとは無関係のようです。メッセージは ではない connection reset by peer
ことに注意してください。
この例外の典型的な原因と、どのように進めればよいかについて何か提案はありますか?
代表的なスタック トレースを次に示します (com.companyname.mtix.sms
はコンポーネントです)。
java.net.SocketException: 接続のリセット java.net.SocketInputStream.read(SocketInputStream.java:168) で java.io.BufferedInputStream.fill(BufferedInputStream.java:218) で java.io.BufferedInputStream.read(BufferedInputStream.java:235) で org.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:77) で org.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:105) で org.apache.commons.httpclient.HttpConnection.readLine(HttpConnection.java:1115) で org.apache.commons.httpclient.HttpMethodBase.readStatusLine (HttpMethodBase.java:1832) で org.apache.commons.httpclient.HttpMethodBase.readResponse (HttpMethodBase.java:1590) で org.apache.commons.httpclient.HttpMethodBase.execute (HttpMethodBase.java:995) で org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry (HttpMethodDirector.java:397) で org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:170) で org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396) で org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:324) で com.companyname.mtix.sms.services.impl.message.SendTextMessage.sendTextMessage (SendTextMessage.java:127) で com.companyname.mtix.sms.services.MessageServiceImpl.sendTextMessage (MessageServiceImpl.java:125) で com.companyname.mtix.sms.services.remote.MessageServiceRemoteImpl.sendTextMessage (MessageServiceRemoteImpl.java:43) で sun.reflect.GeneratedMethodAccessor203.invoke (不明なソース) で sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) で java.lang.reflect.Method.invoke(Method.java:585) で org.apache.axis.providers.java.RPCProvider.invokeMethod (RPCProvider.java:397) で org.apache.axis.providers.java.RPCProvider.processMessage (RPCProvider.java:186) で org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323) で org.apache.axis.strategies.InvocationStrategy.visit (InvocationStrategy.java:32) で org.apache.axis.SimpleChain.doVisiting (SimpleChain.java:118) で org.apache.axis.SimpleChain.invoke (SimpleChain.java:83) で org.apache.axis.handlers.soap.SOAPService.invoke (SOAPService.java:453) で org.apache.axis.server.AxisServer.invoke(AxisServer.java:281) で org.apache.axis.transport.http.AxisServlet.doPost (AxisServlet.java:699) で javax.servlet.http.HttpServlet.service(HttpServlet.java:709) で org.apache.axis.transport.http.AxisServletBase.service (AxisServletBase.java:327) で javax.servlet.http.HttpServlet.service(HttpServlet.java:802) で org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:252) で org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:173) で com.companyname.mtix.sms.http.filters.NoCacheFilter.doFilter (NoCacheFilter.java:63) で org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:202) で org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:173) で com.companyname.mtix.sms.http.filters.MessageFilter.doFilter(MessageFilter.java:53) で org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:202) で org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:173) で org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:61) で org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77) で org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:202) で org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:173) で org.ajaxanywhere.AAFilter.doFilter(AAFilter.java:46) で org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:202) で org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:173) で org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:213) で org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:178) で org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:126) で org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) で org.apache.catalina.valves.AccessLogValve.invoke (AccessLogValve.java:541) で org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:107) で org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:148) で org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) で org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) で org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket (PoolTcpEndpoint.java:527) で org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt (LeaderFollowerWorkerThread.java:80) で org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) で java.lang.Thread.run(Thread.java:595) で
このコンポーネントは、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 );