Que faire lorsqu'une exception java.io.IOException se produit dans GlassFish

--Environnement - Red Hat Enterprise Linux Server release 6.3 (Santiago) - java version "1.7.0_79" - GlassFish 4.1

Événement: java.io.IOException s'est produite lors du traitement d'une grande quantité de données avec GlassFish

[2020/05/21 17:41:07.805][656b5aef53f][][FATAL] - java.io.IOException: java.lang.InterruptedException
org.glassfish.grizzly.nio.transport.TCPNIOTransportFilter.handleRead(TCPNIOTransportFilter.java:92)
org.glassfish.grizzly.filterchain.TransportFilter.handleRead(TransportFilter.java:173)
org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284)
org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201)
org.glassfish.grizzly.filterchain.DefaultFilterChain.read(DefaultFilterChain.java:351)
org.glassfish.grizzly.filterchain.FilterChainContext.read(FilterChainContext.java:695)
org.glassfish.grizzly.http.io.InputBuffer.blockingRead(InputBuffer.java:1119)
org.glassfish.grizzly.http.server.io.ServerInputBuffer.blockingRead(ServerInputBuffer.java:95)
org.glassfish.grizzly.http.io.InputBuffer.fill(InputBuffer.java:1143)
org.glassfish.grizzly.http.io.InputBuffer.read(InputBuffer.java:353)
org.apache.catalina.connector.InputBuffer.read(InputBuffer.java:267)
org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:270)
sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283)
sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325)
sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177)
java.io.InputStreamReader.read(InputStreamReader.java:184)
java.io.BufferedReader.fill(BufferedReader.java:154)
java.io.BufferedReader.readLine(BufferedReader.java:317)
java.io.BufferedReader.readLine(BufferedReader.java:382)
...réduction...

Cause: le délai d'exécution de l'application a expiré

Le problème était que je n'avais pas spécifié le paramètre configs.config.network-config.protocols.protocol.http.request-timeout-seconds pour définir le temps d'exécution de l'application.

Le délai d'expiration par défaut pour Glassfish est de 15 minutes. Cela peut se produire dans diverses situations. Par exemple, si la requête déclenche une action de longue durée qui ne répond pas dans le délai d'expiration, la requête au serveur est effectuée via HTTPS et seul HTTP (ou vice versa) est pris en charge dans le pool de connexions HTTP. Par exemple, s'il n'y a plus de connexions disponibles. java - GRIZZLY0023 Glassfish warning - Stack Overflow

Action: définissez http.request-timeout-seconds dans domain.xml

Cette fois, le délai était de 15 minutes car il n'était pas défini, donc je l'ai réglé sur illimité "-1".

domain.xml


  <configs>
    <config name="server-config">
      <network-config>
        <protocols>
          <protocol name="http-listener-1">
            <http max-post-size-bytes="20971520" default-virtual-server="server" max-connections="250" request-timeout-seconds="-1">

Lors du paramétrage sur l'écran de gestion GlassFish (http: // localhost: 4848), server-config> Network Config> Network Listeners> {Target Listener}> Onglet [HTTP]>Request Timeout: image.png

Il semble que "-1" ne puisse pas être défini à partir de Glassfish 3.1.2, mais lorsqu'il est défini, java.io.IOException ne se produit plus ... Mais une fois visualisée sur l'écran de gestion, la valeur initiale est de 900 secondes (15 minutes). ···Étrange

Unfortunately you can't set it to -1 to have no limit since Glassfish 3.1.2. java - GRIZZLY0023 Glassfish warning - Stack Overflow

Payara peut-il le faire?

Recommended Posts

Que faire lorsqu'une exception java.io.IOException se produit dans GlassFish
Que faire si vous obtenez une erreur gcc dans Docker
Que faire si vous obtenez un avertissement groovy dans Thymeleaf Layout
Que faire si vous obtenez une erreur de nombre d'arguments erroné dans binding.pry
Que faire si vous obtenez une erreur «302» dans le code de test du contrôleur dans Rails
Que faire si vous recevez une alerte de vulnérabilité MiniMagick sur GitHub
Que faire si vous créez accidentellement un modèle
Que faire si vous obtenez une erreur de bibliothèque partagée JNI lorsque vous essayez de créer avec Eclipse
Que faire si vous ne pouvez pas obtenir le texte d'un élément dans Selenium
Que faire si vous obtenez une erreur NoClassDefFoundError lorsque vous essayez d'exécuter eclipse sur Java 9
Que faire si vous obtenez une exception javax.net.ssl.SSLHandshakeException: connexion de l'hôte distant fermée pendant l'établissement de liaison dans IBM JDK
Que faire si vous obtenez Impossible d'enregistrer la table principale dans un fichier après l'importation d'un projet dans Eclipse
Que faire si vous vous fâchez contre OpenSSL avec Pyenv Install
Que faire si vous oubliez votre mot de passe root sur CentOS7
[Rails] Que faire si vous ne pouvez pas obtenir de paramètres avec form_with
Que faire si vous obtenez une erreur avec l'authentification de base pendant le code de test Rails
Que faire si vous transmettez des informations incorrectes
Que faire si vous obtenez une [Une requête HTTP a pris trop de temps à se terminer.] Erreur dans Docker.
Comment faire un pot avec l'ancien Hadoop (hadoop-core-0.20.2-cdh3u6) dans Gradle: (Que faire si vous obtenez Impossible de développer ZIP ..)
Que faire si vous sélectionnez un JRE dans Eclipse et obtenez "Le JRE sélectionné ne prend pas en charge le niveau de conformité actuel 11"
Que faire si vous obtenez Impossible de localiser le répertoire Gemfile ou .bundle /
Que faire quand Pour installer la version manquante, exécutez `gem install bundler: 2.1.4`
Que faire si vous entrez gem'bcrypt 'dans votre Gemfile et obtenez une erreur avec l'installation du bundle
Que faire si l'application dont le nom est appName est déjà enregistrée. Lorsque vous essayez de démarrer GlassFish
Que faire si l'opération non autorisée s'affiche lors de l'exécution d'une commande dans le terminal
Que faire si le message "Un serveur est déjà en cours d'exécution" s'affiche. Erreur lors de la tentative de démarrage du serveur rails
Que faire si mysql2 obtient une erreur d'installation de bundle
Que faire si la commande rails devient inutilisable
[Java] Que faire si vous obtenez une erreur dans Eclipse disant "Non autorisé au niveau source inférieur à 1.X"
Que faire si vous obtenez une erreur d'argument: nombre incorrect d'arguments (donné 2, attendu 0) dans votre test RSpec
Que faire si vous obtenez une erreur indiquant "Veuillez saisir une valeur valide" lors de l'obtention avec Rails datetime_field
Que faire si le message d'erreur "Impossible de trouver un moteur d'exécution JavaScript" s'affiche lors du démarrage du serveur rails
[Solution] Que faire si vous obtenez une erreur Docker "ERREUR: Impossible de se connecter au démon Docker sous unix: ///var/run/docker.sock. Le démon docker est-il en cours d'exécution?"
Que faire si vous recevez l'avertissement «Le validateur d'unicité n'appliquera plus la comparaison sensible à la casse dans Rails 6.1.» Dans Rails 6.0
[Rails] Que faire si vous effectuez accidentellement une installation groupée dans un environnement de production de votre environnement local
[Tutoriel Rails Chapitre 2] Que faire lorsque vous faites une erreur dans le nom de la colonne
[Rails] Que faire si vous ne pouvez pas obtenir de message d'erreur avec la méthode des erreurs
[Rails] Que faire si les données ne sont pas enregistrées dans la base de données
Que faire si la page Rails n'est pas affichée dans le didacticiel Rails 1.3.2
Que faire lorsque Cloud 9 est plein dans le didacticiel Rails
Que faire en cas de problème pendant Content Assist
Que faire lorsque vous rencontrez le problème node_modules avec docker-compose
Que faire lorsqu'une exception javax.el.PropertyNotWritableException se produit