Je fais un appel de repos à IBM Cloud BPM. Parfois, les appels fonctionnent correctement, mais parfois, ils donnent l'erreur suivante.
Java.io.IOException: An existing connection was forcibly closed by the remote Host.
Java.io.IOException: An existing connection was forcibly closed by the remote Host
at Sun.nio.ch.SocketDispatcher.read0(Native Method)
at Sun.nio.ch.SocketDispatcher.read(SocketDispatcher.Java:43)
at Sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.Java:223)
Quelqu'un peut-il m'aider à résoudre ce problème?.
Toute aide est grandement appréciée.
Un tel comportement pourrait être expliqué si le client HTTP que vous utilisez ouvre connexions persistantes au serveur et que le serveur les arrête occasionnellement.
Normalement, la connexion à un serveur HTTP est fermée après chaque réponse. Avec HTTP " keep-alive " vous gardez la connexion sous-jacente TCP ouverte) jusqu'à ce que certains critères soient remplis. Quelles sont ces conditions? are dépend du serveur, qui est libre de fermer la connexion après un timeout ou un nombre de requêtes arbitraires (tant qu'il renvoie la réponse à la requête en cours).
Lorsque le serveur ferme une telle connexion, le client la rouvre généralement à nouveau et, selon l'implémentation, peut lever une exception ou afficher un avertissement.
Par exemple, Vert.x HttpClient (qui ouvre les connexions persistantes par défaut) lance également ...
Java.io.IOException: An existing connection was forcibly closed by the remote Host
... lorsque le serveur les résilie.