Link to home
Start Free TrialLog in
Avatar of Manish
ManishFlag for India

asked on

com.ibm.wsspi.webcontainer.ClosedConnectionException

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.
Avatar of sciuriware
sciuriware

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!
Avatar of Manish

ASKER

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?
You made a connection to another application; I call that a (virtual) channel.
Did you use such a connection (object) a second time?

;JOOP!
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.
Avatar of Manish

ASKER

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

Avatar of Manish

ASKER

plz ignore after line 12. It was duplicated.
ASKER CERTIFIED SOLUTION
Avatar of sciuriware
sciuriware

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of Manish

ASKER

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.
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!
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of Manish

ASKER

ya I am using response.sendRedirect in some of jsps.
Avatar of Manish

ASKER

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");
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.
Avatar of Manish

ASKER

so what kind action should I can take?
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of Manish

ASKER

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.
Avatar of Manish

ASKER

As actual solution was not provided, I am awarding points just for information.
I'm sorry that no definitive solution was provided.  Thanks for the assist.

Good luck & have a great day
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