2016-07-13 12 views
2

Ich stehe vor einem sehr ernsten Problem, wenn ich eine Reihe von Abfragen ausführe. Ich erhalte den folgenden Fehler: Time limit exceeded. Ich habe versucht, sie alle auf einmal zu führen und sie kamen zurück. Ich habe zwar die default time limit, max time limit, session timeout ... geändert, aber die Fehlermeldung erscheint nach etwa 1 Minute. Hinweis: Ich führe meine Abfrage mit Query Console. Der Fehler erscheint nach Sekunden Das angehängte Foto ist ein Screenshot meiner Servereinstellungen. time settingsMarklogic: XDMP-EXTIME-Fehler (Zeitlimit überschritten)

Wie löst man dieses Problem?

+0

Keine Ihrer Beschreibung orts- Marklogic sagt ** **, wie Sie Ihren Code ausgeführt werden. Das macht einen großen Unterschied. Beispiel: Wenn Sie etwas verwenden, was mit dem Spawn zu tun hat, dann sind Sie an der falschen Stelle. Mehr Details werden helfen. –

+0

Ich führe meine Abfrage mit ** Query Console ** –

+1

** Eine extrem lange Abfrage ist in der Regel ein Hinweis darauf, dass etwas "falsch" (nicht effizient) ist. ** Es wäre hilfreich, wenn Sie ein Beispiel gepostet Ihrer Anfrage Wenn es so lange dauert, gehen Sie wahrscheinlich für eine große Anzahl von Dokumenten auf die Festplatte. Wenn es sich um eine Abfrage handelt, insbesondere dann, wenn eine Vanilla-XPath-Anweisung nicht 'search:' oder 'cts:' verwendet, kann es möglicherweise keine effektiven Indizes und/oder Filterungen verwenden. Wenn Sie für eine große Anzahl von Dokumenten auf die Festplatte gehen müssen, sollten Sie in Betracht ziehen, CoRB2 zu nutzen, das die Anzahl der einzelnen Abfragen aufteilt und die Ergebnisse für Sie kombiniert. –

Antwort

1

Es kann von Bedeutung sein, wie genau Sie Ihre Abfragen ausführen (z. B. HTTP, XDBC, QConsole). Versuchen Sie, bevor Sie Ihre Abfrage, entweder:

xdmp:set-request-time-limit(3600) 

oder:

xdmp:set-transaction-time-limit(3600) 
+0

Ich führe meine Abfrage mit ** Query Console ** –

+0

Ich habe diesen Fehler XDMP-TIMELIMIT: xdmp: set-request-time-limit (8000) - Anfrage Zeitlimit überschreitet die maximal zulässige –

+0

@ Sie können das Anforderungszeitlimit nicht auf einen Wert einstellen, der über dem Wert liegt, den Sie für das maximale Zeitlimit auf dem Server festgelegt haben. – wst

2

Es ist wie ein besserer Ansatz klingt, um das Problem zu lösen ist Ihre Abfragen zu verbessern, anstatt Time-out Grenzen zu erhöhen. Wenn es keine andere Möglichkeit gibt, die Abfragen zu schreiben, die Daten zu indizieren oder Ihre Daten so zu strukturieren, dass sie effizienter durchsucht werden, sollten Sie in der Lage sein, Ihre Abfragen so zu optimieren, dass eine akzeptable Leistung erzielt wird.

Weitere Informationen hierzu finden Sie in der Query-Performance und Tuning auf der http://docs.marklogic.com/guide/performance