Zatwierdzono: Fortect
Powinieneś przeczytać wszystkie te pomysły na poprawki, jeśli podczas pisania kodu błędu Java wystąpi błąd online strumienia wyjściowego.
Pewnego ranka otrzymuję wyjątek w jakimś protokole Websphere FFDC. Proszę mi powiedzieć, czym jest ten wspaniały wyjątek?
—— Rozpoczęcie przetwarzania DE —— implikuje [09/07/08 10: 38: 17: 111 GMT + 05: 30], klucz = com.ibm.wsspi.webcontainer.ClosedConnectionException com. ibm.ws.webcontainer.servlet.SimpleFileServlet.writeResponseToClient 304
Wyjątek jest zgodny z com.ibm.wsspi.webcontainer.ClosedConnectionException
Źródło = com.ibm.ws.webcontainer.servlet.SimpleFileServlet.writeResponseToClient
Okres próbny mniej więcej 304
Stack = Dump = com.ibm.wsspi.webcontainer.ClosedConnectionException: Błąd OutputStream pojawił się w pewnym momencie podczas pisania
w com.ibm.ws.webcontainer.channel.WCCByteBufferOutputStream.write (WCCByteBufferOutputStream.java (kod skompilowany))
w com.ibm.ws.webcontainer.srt.SRTOutputStream.write (SRTOutputStream.java (kod skompilowany))
w com.ibm.ws.webcontainer.srt.BufferedServletOutputStream.writeOut (BufferedServletOutputStream.java (kod skompilowany bezpośrednio))
w com.ibm.ws.webcontainer.srt.BufferedServletOutputStream.write (BufferedServletOutputStream.java (kod skompilowany))
w com.ibm.ws.webcontainer.servlet.FileServletWrapper.writeResponseToClient (FileServletWrapper.java (kod skompilowany))
w com.ibm.ws.webcontainer.servlet.FileServletWrapper.service (FileServletWrapper.java (kod skompilowany))
pod adresem com.ibm.ws.webcontainer.servlet.FileServletWrapper.handleRequest (FileServletWrapper.java (kod skompilowany))
pod adresem com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest (CacheServletWrapper.java (kod skompilowany))
pod adresem com.ibm.ws.webcontainer.WebContainer.handleRequest (WebContainer.java (kod skompilowany))
pod adresem com.ibm.ws.webcontainer.channel.WCChannelLink.ready (WCChannelLink.java (kod skompilowany))
pod adresem com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination (HttpInboundLink.java (kod skompilowany))
pod adresem com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation (HttpInboundLink.java (kod skompilowany))
pod adresem com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready (HttpInboundLink.java (kod skompilowany))
w com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminers (NewConnectionInitialReadCallback.java (kod skompilowany))
w com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete (NewConnectionInitialReadCallback.java (kod skompilowany))
pod adresem com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete (WorkQueueManager.java (kod skompilowany))
w com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO (WorkQueueManager.java (kod skompilowany))
w com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun (WorkQueueManager.java (kod skompilowany))
w com.ibm.ws.tcp.channel.impl.WorkQueueManager $ Worker.run (WorkQueueManager.java (kod skompilowany))
w com.ibm.ws.util.ThreadPool $ Worker.run (ThreadPool.java (kod skompilowany))
Zgłasza wielki wyjątek: java.io.IOException: Nie ma procesu pilnowania danych do zapisu kanału.
at sun.nio.ch.FileDispatcher.writev0 (metoda natywna)
at sun.nio.ch.SocketDispatcher.writev (SocketDispatcher.java (kod skompilowany))
w sun.nio.ch.IOUtil.write (IOUtil.java (skompilowany kod))
at sun.nio.ch.SocketChannelImpl.write0 (SocketChannelImpl.java (skompilowany kod))
at sun.nio.ch.SocketChannelImpl.write (SocketChannelImpl.java (Kod skompilowany))
na java.nio.channels.SocketChannel.write (SocketChannel.java (kod skompilowany online))
na com.ibm.ws.tcp.channel.impl.SocketIOChannel.write (SocketIOChannel.java (kod zebrany online))
pod adresem com.ibm.ws.tcp.channel.impl.SocketIOChannel.attemptWriteToSocket (SocketIOChannel.java (kod skompilowany))
… spójrz na więcej
Wyjątek = com.ibm.wsspi.webcontainer.ClosedConnectionException
Źródło zdecydowanie to com.ibm.ws.webcontainer.servlet.SimpleFileServlet.writeResponseToClient
Okres próbny = 304
Zrzut rozmówcy Jest to uważane za równoważne
Temat = Wprowadź com.ibm.ws.webcontainer.servlet.StaticFileServletWrapper
Plik równa się
to $ 0 oznacza this.parentProcessor
serialVersionUID = 1
tmpdir = / tmp /
Licznik równa się 1911
tmpFileLock jest odpowiednikiem [bezpieczny adres pocztowy]
pathSeparator =:
pathSeparatorChar =:
Separator i
SeparatorChar to = /
prefiksDługość = 1
ścieżka oznacza /websphere/AppServer/profiles/default/installedApps/new_ccaps-appsrvNode01Cell/ccAPSABN.ear/ccAPS.war/include/scriptArray.js ……..
Napisałem podstawowy serwlet odpowiedni do dostarczania strumienia danych osobistych (w niektórych przypadkach testowych plik tekstowy o wielkości 14 GB) do klienta:
Zatwierdzono: Fortect
Fortect to najpopularniejsze i najskuteczniejsze narzędzie do naprawy komputerów na świecie. Miliony ludzi ufają, że ich systemy działają szybko, płynnie i bez błędów. Dzięki prostemu interfejsowi użytkownika i potężnemu silnikowi skanowania, Fortect szybko znajduje i naprawia szeroki zakres problemów z systemem Windows - od niestabilności systemu i problemów z bezpieczeństwem po zarządzanie pamięcią i wąskie gardła wydajności.
chroniony pusty doGet (HttpServletRequest req, HttpServletResponse lub odpowiednio) zgłasza ServletException, IOException resp.setContentType ("aplikacja / strumień bajtów"); lub setContentLength (-1); InputStream = null; Próbować OutputStream os jest taki sam lub getOutputStream (); int jednostki rozgłoszeniowe = -1; bajt [] buf odpowiada bajtowi początkującemu [65536]; is = new FileInputStream ("D: /largetext2.txt"); ((Przenieś modele while = is.read (buf))! = -1) os.write (buf, 0, jednostki transferu); //os.flush (); netto (jednorazowego e) e.printStackTrace (); ostatni, ubiegły, zeszły Wola blisko(); złapać (IOException e1) e1.printStackTrace (); Próbować lub po prostu pobierzOutputStream (). blisko (); netto (IOException e) e.printStackTrace ();
Twoja witryna po prostu wykonuje proste zapytanie. Upewniłem się, czy żądanie GET dla serwletu jest często wykonywane przez klienta Java za pomocą URLConnection
i gdziekolwiek z Internetu Chrome. Oba obsługują losowe transfery od 1 MB do 90 MB, a następnie pobieranie zatrzymuje się, chociaż polowanie na klienta zostaje zatrzymane, prywatne bajty procesu java.exe
z serwerów WAS nadal rosną (z 300 MB do 950 MB) urządzenie prawdopodobnie poda następujący ślad stosu:
com.ibm.wsspi.webcontainer.ClosedConnectionException: OutputStream napotkał błąd zapisu iw Com .ibm.ws.webcontainer.channel.WCCByteBufferOutputStream.write (WCCByteBufferOutputStream.java:106)pod adresem com.ibm.ws.webcontainer.srt.SRTOutputStream.write (SRTOutputStream.java:97)w com.ibm.wsspi.webcontainer.util.BufferedServletOutputStream.writeOut (BufferedServletOutputStream.java:569)w com.ibm.wsspi.webcontainer.util.BufferedServletOutputStream.write (BufferedServletOutputStream.java:374)w si.test.kryo.MyServlet.doGet (MyServlet.java:60)pod adresem javax.servlet.http.HttpServlet.service (HttpServlet.java:718)pod adresem javax.servlet.http.HttpServlet.service (HttpServlet.java:831)pod adresem com.ibm.ws.webcontainer.servlet.ServletWrapper.service (ServletWrapper.java:1663)pod adresem com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest (ServletWrapper.java:939)pod adresem com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest (ServletWrapper.java:502)pod adresem com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest (ServletWrapperImpl.java:179)pod adresem com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest (CacheServletWrapper.java:91)pod adresem com.ibm.ws.webcontainer.WebContainer.handleRequest (WebContainer.java:864)pod adresem com.ibm.ws.webcontainer.WSWebContainer.handleRequest (WSWebContainer.java:1583)pod adresem com.ibm.ws.webcontainer.channel.WCChannelLink.ready (WCChannelLink.java:186)pod adresem com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination (HttpInboundLink.java:452)pod adresem com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest (HttpInboundLink.java:511)pod adresem com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest (HttpInboundLink.java:305)pod adresem com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready (HttpInboundLink.java:276)pod adresem com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators (NewConnectionInitialReadCallback.java:214)pod adresem com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete (NewConnectionInitialReadCallback.java:113)pod adresem com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted (AioReadCompletionListener.java:165)pod adresem com.ibm.io.async.AbstractAsyncFuture.invokeCallback (AbstractAsyncFuture.java:217)pod adresem com.ibm.io.async.AsyncChannelFuture.fireCompletionActions (AsyncChannelFuture.java:161)pod adresem com.ibm.io.async.AsyncFuture.completed (AsyncFuture.java:138)pod adresem com.ibm.io.async.ResultHandler.complete (ResultHandler.java:204)pod adresem com.ibm.io.async.ResultHandler.runEventProcessingLoop (ResultHandler.java:775)pod com.ibm.io.async.ResultHandler $ 2.run (ResultHandler.java:905)pod adresem com.ibm.ws.util.ThreadPool $ Worker.run (ThreadPool.java:1604)
Przyczyna: java.io.IOException: Nieudana asynchroniczna operacja we/wy (2), RC: Wyjaśnienie przyczyny: 64 Podana nazwa sieci może być w rzeczywistości niedostępna.
z com.ibm.io.async.AsyncLibrary $ IOExceptionCache. (AsyncLibrary.java:891)pod adresem com.ibm.io.async.AsyncLibrary $ IOExceptionCache.get (AsyncLibrary.java:904)pod adresem com.ibm.io.async.AsyncLibrary.getIOException (AsyncLibrary.java:918)pod com.ibm.io.async.ResultHandler.complete (ResultHandler.java:213)... dużo więcej
Klient Java po prostu blokuje się, gdy wysyła żądanie odczytu, podczas gdy Chrome często obsługuje pobieranie, nie wiedząc, że serwer przerwał to wszystko według ekspertów. Prowadzi to często bezpośrednio do dziwnych przekroczeń limitu czasu lub problemów z kontenerem serwletów IBM.
Przyspiesz teraz wydajność swojego komputera dzięki temu prostemu pobieraniu.