wir betreiben einen Webservice hinter dem enaio Gateway und führen über diesen einen lang laufenden POST-Request an einen externen REST-Service durch. Unser Webservice bietet hierfür eine Weboberfläche an über die man den Request nach Extern starten kann. Hierbei sieht man in den Dev-Tools des Browsers, dass der Request nach exakt 2 Minuten abbricht. Als Verursacher konnten wir das enaio Gateway ausmachen, da sich der Request sowie der Abbruch dort im Log nachvollziehen lassen.
Gibt es eine Möglichkeit, das Standard-Timeout von 120 Sekunden im enaio Gateway entsprechend zu erhöhen?
ist etwas schwierig zu sagen da ich nicht den Quellcode habe. An sich basiert der enaio Gateway auf Spring Boot und Tomcat. Aber der sollte eigentlich nur einen Isle Timeout haben. Es könnte aber auch in der HTTP Client Library liegen, also die Library welche die Aufrufe Richtung Service weiterleitet. Aber dazu hab ich keine genauen Informationen. Hast du vielleicht eine Beispiel Meldung aus dem enaio Gateway?
ich habe in unseren internen Tickets eine Zusammenfassung eines Support-Calls mit OPTIMAL SYSTEMS zu diesem Thema von vor 6 Jahren gefunden. Dort ging es noch um enaio Version 9.0, die folgenden Infos setzen also erst Tests voraus, ob das überhaupt noch so funktioniert:
In der Konfiguration des Gateways unter ..\gateway\apps\os_gateway\config\application-prod.yml kann folgender (Stand heute undokumentierter) Parameter gesetzt werden: proxy.services.session.socketTimeoutInMs: 120000. Wenn dieser nicht gesetzt ist, werden die von dir erlebten 120000 ms gewartet. Bei einer Erhöhung können allerdings negative Effekte wie zum Beispiel ein erhöhter Verbrauch an Sessions auftreten, weshalb nachfolgender Parameter ausweichend angepasst werden kann
In der Konfiguration des Gateways unter ..\gateway\apps\os_gateway\config\application-prod.yml kann außerdem folgender Parameter gesetzt werden: proxy.maxParallelConnections: 50. Wenn dieser nicht gesetzt ist, werden maximal 50 Sessions gleichzeitig zugelassen. Eine Erhöhung muss vorsichtig geschehen und dabei auf den RAM-Verbrauch des Services und das Windowshandling geachtet werden.
Du kannst ja mal testen, ob das noch so bei der aktuellen enaio-Version funktioniert. Falls nicht, könntest du den Request vielleicht stattdessen asynchron machen und den Job nur anstoßen?
vielen Dank für die Infos und sorry für die urlaubsbedingte, späte Rückmeldung. Die Schalter funktionieren tatsächlich noch. Getestet habe ich es aktuell auf einer enaio 11.10.