MServer
MServer copied to clipboard
FUNK: Ermittlung der SessionId scheitert in langen Lauf
Der Funk-Crawler liefert im langen Lauf öfters keine Ergebnisse. Im 3 Uhr-Lauf funktioniert es meist, im 7 Uhr-Lauf manchmal und im 20 Uhr-Lauf eigentlich nie.
Ursache ist eine SocketTimeoutException bei der Ermittlung der SessionId in NexxCloudSessionInitiationTask.java:46
Caused by: jakarta.ws.rs.ProcessingException: java.net.SocketTimeoutException: Read timed out at org.glassfish.jersey.client.internal.HttpUrlConnector.apply(HttpUrlConnector.java:269) at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:297) at org.glassfish.jersey.client.JerseyInvocation.lambda$invoke$0(JerseyInvocation.java:662) at org.glassfish.jersey.client.JerseyInvocation.call(JerseyInvocation.java:697) at org.glassfish.jersey.client.JerseyInvocation.lambda$runInScope$3(JerseyInvocation.java:691) at org.glassfish.jersey.internal.Errors.process(Errors.java:292) at org.glassfish.jersey.internal.Errors.process(Errors.java:274) at org.glassfish.jersey.internal.Errors.process(Errors.java:205) at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:390) at org.glassfish.jersey.client.JerseyInvocation.runInScope(JerseyInvocation.java:691) at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:661) at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:439) at org.glassfish.jersey.client.JerseyInvocation$Builder.post(JerseyInvocation.java:345) at mServer.crawler.sender.funk.tasks.NexxCloudSessionInitiationTask.call(NexxCloudSessionInitiationTask.java:46) at mServer.crawler.sender.funk.tasks.FunkVideosToFilmsTask.
(FunkVideosToFilmsTask.java:52) at mServer.crawler.sender.funk.tasks.FunkVideosToFilmsTask.createNewOwnInstance(FunkVideosToFilmsTask.java:178) at mServer.crawler.sender.funk.tasks.FunkVideosToFilmsTask.createNewOwnInstance(FunkVideosToFilmsTask.java:29) at mServer.crawler.sender.base.AbstractRecursivConverterTask.compute(AbstractRecursivConverterTask.java:69) at mServer.crawler.sender.base.AbstractRecursivConverterTask.compute(AbstractRecursivConverterTask.java:71) at mServer.crawler.sender.base.AbstractRecursivConverterTask.compute(AbstractRecursivConverterTask.java:23) at java.base/java.util.concurrent.RecursiveTask.exec(RecursiveTask.java:100) at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) at java.base/java.util.concurrent.ForkJoinTask.awaitDone(ForkJoinTask.java:436) at java.base/java.util.concurrent.ForkJoinTask.join(ForkJoinTask.java:670) at mServer.crawler.sender.base.AbstractRecursivConverterTask.compute(AbstractRecursivConverterTask.java:72) at mServer.crawler.sender.base.AbstractRecursivConverterTask.compute(AbstractRecursivConverterTask.java:23) at java.base/java.util.concurrent.RecursiveTask.exec(RecursiveTask.java:100) at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) at java.base/java.util.concurrent.ForkJoinTask.awaitDone(ForkJoinTask.java:436) at java.base/java.util.concurrent.ForkJoinTask.join(ForkJoinTask.java:670) ... 8 more Caused by: java.net.SocketTimeoutException: Read timed out at java.base/sun.nio.ch.NioSocketImpl.timedRead(NioSocketImpl.java:283) at java.base/sun.nio.ch.NioSocketImpl.implRead(NioSocketImpl.java:309) at java.base/sun.nio.ch.NioSocketImpl.read(NioSocketImpl.java:350) at java.base/sun.nio.ch.NioSocketImpl$1.read(NioSocketImpl.java:803) at java.base/java.net.Socket$SocketInputStream.read(Socket.java:966) at java.base/sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:478) at java.base/sun.security.ssl.SSLSocketInputRecord.readHeader(SSLSocketInputRecord.java:472) at java.base/sun.security.ssl.SSLSocketInputRecord.bytesInCompletePacket(SSLSocketInputRecord.java:70) at java.base/sun.security.ssl.SSLSocketImpl.readApplicationRecord(SSLSocketImpl.java:1460) at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:1064) at java.base/java.io.BufferedInputStream.fill(BufferedInputStream.java:244) at java.base/java.io.BufferedInputStream.read1(BufferedInputStream.java:284) at java.base/java.io.BufferedInputStream.read(BufferedInputStream.java:343) at java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:824) at java.base/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:759) at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1688) at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589) at java.base/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:529) at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:308) at org.glassfish.jersey.client.internal.HttpUrlConnector._apply(HttpUrlConnector.java:378) at org.glassfish.jersey.client.internal.HttpUrlConnector.apply(HttpUrlConnector.java:267) ... 37 more
Im langen Lauf werden ca. 15000 Einträge durchsucht. Durch die Parallelisierung der Requests werden viele neue SessionIds kurz hintereinander ermittelt. Vermutlich ist das das Problem.