Was tun mit der Geoserver WPS-Warnung "" ServiceInfo konnte nicht abgerufen werden "?

8

Dies ist die Warnung, die ich erhalte, wenn ich versuche, diesen WPS-Dienst von QGIS zu verwenden, und die Verarbeitungszeit zu lange dauert, aber nicht beendet wird.

Was könnte das Problem sein?

17 Oct 12:33:25 INFO [geoserver.wps] -
Request: getCapabilities   
    service = WPS   
    baseUrl = http:// localhost:8080/geoserver/   
17 Oct 12:33:31 WARN [geoserver.ows] - Could not get a ServiceInfo for service wps
                                       thus could not check if the service is enabled   
17 Oct 12:33:31 INFO [geoserver.wps] -
Request: describeProcess   
    service = WPS   
    version = 1.0.0   
    baseUrl = http:// localhost:8080/geoserver/   
    identifier[0]:  
        value = gt:VectorToRaster  
Nikhil
quelle
Was passiert, wenn Sie eine Getcapabilities-Anfrage über einen Browser stellen?
Ian Turton
Ich erhalte die XML-Beschreibung, wenn ich vom Browser getcapabilities anfordere. http: // localhost: 8080 / geoserver / ows? service = WPS & version = 1.0.0 & request = GetCapabilities
Nikhil
Ich habe das gleiche Problem. Diese Zeilen werden in den GeoServer-Protokollen angezeigt. Die WARN-Meldung wird auch angezeigt, wenn eine Anfrage vom Browser oder einem WPS-Client gestellt wird. Ich vermute, dass eine Conf-Datei irgendwo Probleme verursacht, weil ihr die Informationen fehlen, die sie besitzen sollte, aber ich bin mir überhaupt nicht sicher.
Saryk

Antworten:

2

Wenn Sie sagen, dass die GetCapabilities-Antwort funktioniert, ist es unwahrscheinlich, dass bei der Konfiguration des WPS selbst in GeoServer ein Problem auftritt.

Der folgende Beitrag auf der Hivmr-Website , in dem ein Problem mit einem auf JBOSS ausgeführten GeoServer WPS-Dienst erläutert wird, besagt Folgendes:

Meine Vermutung ist ein Streit um den Thread-Pool, der zum Ausführen von Prozessen verwendet wird. Wenn ein Prozess ausgeführt wird, geschieht dies in einem Thread-Pool mit fester Größe. Wenn der Thread-Pool voll ist (alle Threads werden gerade ausgeführt), wartet die Prozessausführung und blockiert, ob es sich um eine synchrone Ausführung handelt.

Ich denke also, was passiert ist, ist ein Deadlock. Prozess "A" wartet auf Prozess "B", aber "B" wartet auf einen Platz im Thread-Pool, der erst verfügbar wird, wenn "A" beendet ist.

Standardmäßig beträgt die Größe des Thread-Pools das Zweifache der Anzahl der Kerne im Computer. Der schlimmste Fall ist also 2 Threads groß, was bedeutet, dass zwei parallele Aufrufe Ihres Prozesses zu einem Deadlock führen können. Die Größe des Thread-Pools ist konfigurierbar, sodass Sie sie erhöhen können. Dies ist jedoch eine echte Bandaid-Lösung. Es könnte jedoch in Verbindung mit dem Kontrollflussmodul funktionieren, das die Gesamtzahl der maximalen Anforderungen begrenzen kann, die ein Dienst verarbeiten kann. Sie müssen also nur sicherstellen, dass die Größe des Thread-Pools größer ist als die maximale Anzahl von WPS-Ausführungsanforderungen, die der Server verarbeiten kann.

server.log wo es stecken bleibt:

...

16: 43: 42,112 WARN [org.geoserver.ows] (http-executor-threads - 5) Es konnte keine ServiceInfo für Dienst- wps abgerufen werden, daher konnte nicht überprüft werden, ob der Dienst aktiviert ist

Es ist möglich, dass dies dasselbe Problem ist, auf das Sie gestoßen sind, und die Lösung lautet:

Stellen Sie sicher, dass die Größe des Thread-Pools größer ist als die maximale Anzahl von WPS-Ausführungsanforderungen, die der Server verarbeiten kann.

nmtoken
quelle