Solved

com.ibm.wsspi.webcontainer.ClosedConnectionException

Posted on 2008-06-25
19
12,806 Views
Last Modified: 2013-12-10
Hi,
  In our server logs, this exception getting log.
com.ibm.wsspi.webcontainer.ClosedConnectionException:OutputStream encountered error during write.
What would be possible reason for this? any solution or check we need to make in our application.
IDE-RAD 6.0.1
WAS 6 server.
0
Comment
Question by:Manish
  • 9
  • 4
  • 4
  • +2
19 Comments
 
LVL 24

Expert Comment

by:sciuriware
Comment Utility
ClosedConnectionException is not a standard exception, so it is not a low-level channel fault.

Seems to me it means that an attempt was made to use a channel that's already closed
by another operation. Did you re-use resources?

;JOOP!
0
 
LVL 11

Author Comment

by:Manish
Comment Utility
I didnt get this line
>>Seems to me it means that an attempt was made to use a channel that's already closed by another operation. Did you re-use resources?

what is channel? how channel is closed by another operation? what kind of resources?
0
 
LVL 24

Expert Comment

by:sciuriware
Comment Utility
You made a connection to another application; I call that a (virtual) channel.
Did you use such a connection (object) a second time?

;JOOP!
0
 
LVL 7

Expert Comment

by:humanonomics
Comment Utility
Do you have the complete stack trace?

I feel, there should be another error on the lower half of the stack trace.

There might be a statement "Caused By ...(another Error)".

giving the stack trace of error might help.
0
 
LVL 11

Author Comment

by:Manish
Comment Utility
We user oracle 9i database. There we use Connection object.
Here is caused by Stack Trace.
 Caused by: java.io.IOException: Broken pipe]

 	at sun.nio.ch.FileDispatcher.writev0(Native Method)]

 	at sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:33)]

 	at sun.nio.ch.IOUtil.write(IOUtil.java:164)]

 	at sun.nio.ch.SocketChannelImpl.write0(SocketChannelImpl.java:329)]

 	at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:350)]

 	at java.nio.channels.SocketChannel.write(SocketChannel.java:360)]

 	at com.ibm.ws.tcp.channel.impl.SocketIOChannel.write(SocketIOChannel.java:122)]

 	at com.ibm.ws.tcp.channel.impl.SocketIOChannel.attemptWriteToSocket(SocketIOChannel.java:880)]

 	at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:629)]

 	... 3 more]

161.136.66.24][Id : FrontControllerServlet/FrontControllerServlet:remoteAddr=172.25.81.1:sessionId=DlWuOAjrL17at-CUtr2DU40][Loc : com.hi.ehouse.services.exceptionhandling.safetynet.ContextCapableSafetyNet.handle(Throwable cause, String identifier)][Desc : 	at sun.nio.ch.IOUtil.write(IOUtil.java:164)]

2008-06-20 00:32:03,514 [WebContainer : 319] FATAL safetynet.ContextCapableSafetyNet - [HostName : inpphapp06 161.136.66.24][Id : FrontControllerServlet/FrontControllerServlet:remoteAddr=172.25.81.1:sessionId=DlWuOAjrL17at-CUtr2DU40][Loc : com.hi.ehouse.services.exceptionhandling.safetynet.ContextCapableSafetyNet.handle(Throwable cause, String identifier)][Desc : 	at sun.nio.ch.SocketChannelImpl.write0(SocketChannelImpl.java:329)]

2008-06-20 00:32:03,515 [WebContainer : 319] FATAL safetynet.ContextCapableSafetyNet - [HostName : inpphapp06 161.136.66.24][Id : FrontControllerServlet/FrontControllerServlet:remoteAddr=172.25.81.1:sessionId=DlWuOAjrL17at-CUtr2DU40][Loc : com.hi.ehouse.services.exceptionhandling.safetynet.ContextCapableSafetyNet.handle(Throwable cause, String identifier)][Desc : 	at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:350)]

2008-06-20 00:32:03,515 [WebContainer : 319] FATAL safetynet.ContextCapableSafetyNet - [HostName : inpphapp06 161.136.66.24][Id : FrontControllerServlet/FrontControllerServlet:remoteAddr=172.25.81.1:sessionId=DlWuOAjrL17at-CUtr2DU40][Loc : com.hi.ehouse.services.exceptionhandling.safetynet.ContextCapableSafetyNet.handle(Throwable cause, String identifier)][Desc : 	at java.nio.channels.SocketChannel.write(SocketChannel.java:360)]

2008-06-20 00:32:03,515 [WebContainer : 319] FATAL safetynet.ContextCapableSafetyNet - [HostName : inpphapp06 161.136.66.24][Id : FrontControllerServlet/FrontControllerServlet:remoteAddr=172.25.81.1:sessionId=DlWuOAjrL17at-CUtr2DU40][Loc : com.hi.ehouse.services.exceptionhandling.safetynet.ContextCapableSafetyNet.handle(Throwable cause, String identifier)][Desc : 	at com.ibm.ws.tcp.channel.impl.SocketIOChannel.write(SocketIOChannel.java:122)]

2008-06-20 00:32:03,515 [WebContainer : 319] FATAL safetynet.ContextCapableSafetyNet - [HostName : inpphapp06 161.136.66.24][Id : FrontControllerServlet/FrontControllerServlet:remoteAddr=172.25.81.1:sessionId=DlWuOAjrL17at-CUtr2DU40][Loc : com.hi.ehouse.services.exceptionhandling.safetynet.ContextCapableSafetyNet.handle(Throwable cause, String identifier)][Desc : 	at com.ibm.ws.tcp.channel.impl.SocketIOChannel.attemptWriteToSocket(SocketIOChannel.java:880)]

2008-06-20 00:32:03,515 [WebContainer : 319] FATAL safetynet.ContextCapableSafetyNet - [HostName : inpphapp06 161.136.66.24][Id : FrontControllerServlet/FrontControllerServlet:remoteAddr=172.25.81.1:sessionId=DlWuOAjrL17at-CUtr2DU40][Loc : com.hi.ehouse.services.exceptionhandling.safetynet.ContextCapableSafetyNet.handle(Throwable cause, String identifier)][Desc : 	at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:629)]

Open in new window

0
 
LVL 11

Author Comment

by:Manish
Comment Utility
plz ignore after line 12. It was duplicated.
0
 
LVL 24

Accepted Solution

by:
sciuriware earned 40 total points
Comment Utility
That's something else: the other side has gone away without sending an "over-and-out".
You might as well catch this exception, show a message and just continue the application.

;JOOP!
0
 
LVL 11

Author Comment

by:Manish
Comment Utility
Are you saying other application[which are possible application?] gone away
without giving us final message.
Basically in my application I am hitting to external urls to get the information, timeout is
3000 ms.
It is possible that it is happening in this case.
0
 
LVL 24

Expert Comment

by:sciuriware
Comment Utility
Well, there's all kinds of communication:

With a time server, without being asked for it, it gives you a timestamp and goes away instantly,
with a 'question server', it waits for your call, answers and then goes away instantly,
with dialogue servers, you open the 'rally' with a question and finally close when you're done.

So, what's the nature of this communication of yours?

;JOOP!
0
Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

 
LVL 41

Assisted Solution

by:HonorGod
HonorGod earned 60 total points
Comment Utility
IBM has a defect with a similar error.

http://www.IBM.com/support/docview.wss?rs=180&uid=swg1PK59375

The cause for which is listed as:

One of the JavaServer Pages (JSPs) was attempting to write
data to the output stream after performing a redirect.

Is your page doing, or using redirects?
0
 
LVL 11

Author Comment

by:Manish
Comment Utility
ya I am using response.sendRedirect in some of jsps.
0
 
LVL 11

Author Comment

by:Manish
Comment Utility
I am reading external URL which gives xml and parsing that xml
part of code is
socket = new Socket(url.getHost(), port);
                        socket.setSoTimeout(3000);

                        Writer writer =
                              new OutputStreamWriter(
                                    socket.getOutputStream(),
                                    "US-ASCII");
0
 
LVL 41

Expert Comment

by:HonorGod
Comment Utility
From the (sparse) comment in the APAR description, it sounds like the code that was seeing/causing the error was in the Administration Console where it tried to access the connection after the redirect was done.  Hence, they attempted to use a resource that was invalidated (connection was closed) because of the redirect.
0
 
LVL 11

Author Comment

by:Manish
Comment Utility
so what kind action should I can take?
0
 
LVL 41

Assisted Solution

by:HonorGod
HonorGod earned 60 total points
Comment Utility
Does your code do anything related to the connection after the redirect?

Might there be a timing condition where there could occur?

I would consider adding some logging information to your code so that you can understand if this kind of condition was occurring.  If the logging helps you understand how it might be happening, you would certainly have a better chance of changing the code so that it doesn't occur.

Does that make sense?
0
 
LVL 11

Author Comment

by:Manish
Comment Utility
After redirect there is always new request, new connection. I am not using same connection after redirect. In JSP we dont hit database...through service-daolayer we hit database.
0
 
LVL 11

Author Closing Comment

by:Manish
Comment Utility
As actual solution was not provided, I am awarding points just for information.
0
 
LVL 41

Expert Comment

by:HonorGod
Comment Utility
I'm sorry that no definitive solution was provided.  Thanks for the assist.

Good luck & have a great day
0
 

Expert Comment

by:y_nandakumar
Comment Utility
When accessing external resource, the data retrival purely depends on the volume of the data and the request IO Connection time out.

It is good to check the request time out value and see if the exception is occuring after the timeout period. If so, you need to increase the time out.

In Websphere environment the value set to 60 seconds by default.
http://www.ibm.com/developerworks/forums/thread.jspa?threadID=420840
0

Featured Post

Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

Join & Write a Comment

Suggested Solutions

Configure Web Service (server application) I. Configure security for Web Services methods First, we need to protect Session bean which implements the service: 1. Open EJB deployment descriptor (ejb-jar.xml) in the EJB project that contains you…
In this post we will learn how to connect and configure Android Device (Smartphone etc.) with Android Studio. After that we will run a simple Hello World Program.
Viewers will learn about arithmetic and Boolean expressions in Java and the logical operators used to create Boolean expressions. We will cover the symbols used for arithmetic expressions and define each logical operator and how to use them in Boole…
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …

763 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

9 Experts available now in Live!

Get 1:1 Help Now