Curl Fehler 18 bei AdresseList
Seit einiger Zeit, zumindest seit dem letzten MOConnect-Update, kommt es in unserer Host-Anwendung zu einem Fehler 18 (Daten unvollständig geladen) beim Versuch, AdresseList als synchronen Transfer aufzurufen. Gibt es eine Möglichkeit, den vermutlichen Server-Timeout zu vergrößern?
-
Hallo Herr Bogun, eine Timeouteinstellung gibt es in Connect nicht. Ausnahme ist der Sessiontimeout, der wirkt aber nur, wenn eine Session über einen gewissen Zeitraum (default 10min) nicht genutzt wird. Diesen können Sie in der Einstellpage, wenn notwendig, verändern.
Die Ausgabe "Response zu groß, abgeschnitten" wirkt nur im Testclient, bei Ergebnissen größer 100kByte. Das kann beim Testen der PDF-Ausgabe schnell passieren.
Ein Hinweis, eventuell können Sie die Ausgabe der Listen durch den Einsatz des Filters verkleinern?Mit freundlichen Grüßen
André Saischowa -
Danke, Herr Saischowa. Dann lässt sich hier offenbar kein vollständiger Download realisieren? Ich habe alles versucht, den Transfer zum Download der noch offenen Daten zu bewegen, aber keinen Erfolg gehabt. Es werden stets maximal um die 1030000 Bytes geliefert, mit dem Hinweis "transfer closed with 145816 bytes remaining to read".
Für eine Realisierung mit Filter, also ggf. einen Download in Häppchen, müsste es eine Möglichkeit geben, die Anzahl bzw. den Range der gelieferten Adressen im Filter anzugeben. Und idealerweise den Output der Adressliste zu limitieren – bei dieser Aktion benötige ich eigentlich nur die AdressNr.
(Hintergrund ist der ursprüngliche Kundenwunsch, bei Debitorenkonten eigene Adress-Nr-Kennungen zu verwenden, statt ADR-xxx also z.B. PAT-xxx für einen Patienten. Um bei der Neuanlage eines Kontos über die Datenbank-Hostanwendung, da mehrbenutzerfähig, zu garantieren, dass diese Kennung unique bleibt, wurde die komplette Adressliste durchforstet und die höchste gefundene Adress-Nr inkrementiert als neue Adress-Nr verwendet.
Keine Frage, dass das einen ganz schönen Overhead erzeugt und nun offenbar mit knapp 3000 Einträgen ans Limit gestoßen ist. Die Lösung scheint zu sein, auf die eigene Kennung zu verzichten und das MO-interne Autoinkrement in Anspruch zu nehmen, nun eben mit ADR- statt PAT-. Das wird gerade gemacht.)
Trotz allem wäre es schön, auch die vollständige Liste abrufen zu können, ggf. durch Vorhandensein einer Count-Property und der Ergänzung der Filter mit Range-Angaben. -
Hallo Herr Bogun, der von Herrn Kowalke aufgezeigt Weg ist auf jeden Fall empfehlenswert. Es ist zu beachten, das mehrere Aufrufe in Connect nicht atomar sind, d.h. das von Ihnen verwendete Verfahren kann nicht garantieren, das die erzeugte Adressnummer unique ist. Zwar wird beim Speichern der Adresse sichergestellt, das keine Adressnummer mehrfach vorkommt, jedoch könnten durchaus mehrere Aktionen ihrer Methode notwendig sein, um Erfolg zu haben.
Parallel habe ich heute mal das Abrufen großer Listen simuliert. Bei 50000 Adressen habe ich dann aufgehört. Sie können das auch selbst simulieren, indem sie den Testclient auf einen anderen Rechner installieren und Ihre Adressliste abrufen. Lassen sie sich nicht von der Ausgabe "Response zu gross, abgeschnitten" täuschen, der Datensatz wurde komplett übertragen, nur die Ausgabe in der Liste wurde abgeschnitten.
Ich hoffen das hilft Ihnen weiterMit freundlichen Grüßen
André Saischowa -
Vielen Dank, Herr Saischowa!
Die Problematik ist mir bewusst, es ist aber bei dieser Konfiguration mehr als unwahrscheinlich, dass das Durchforsten der Adressen in Kollision geraten kann.
Mit dem Testclient von Connect bekomme ich in der Tat die ganzen Daten. Egal was ich versuche, in den Header zu übernehmen:HTTP 1.0, assume close after body
HTTP/1.0 200 OK
Date: Tue, 12 Dec 2023 11:04:57 GMT
Expires: Tue, 12 Dec 2023 11:04:57 GMT
Content-Type: application/json
Host: 192.168.1.21
Content-Length: 1189703
Server: MO HTTP Server 0.9transfer closed with 157712 bytes remaining to read
Closing connection
TLSv1.3 (OUT), TLS alert, close notify (256):
Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.
Kommentare
5 Kommentare