Domino 9 und frühere Versionen > ND8: Entwicklung

Agents frieren ein, nachdem Daten via webservice (SAP) importiert wurden

(1/3) > >>

DaHias:
Hi zusammen,

Im Namen einer Kollegin poste ich hier ein Problem, auf das wir aktuell stoßen.

Situation
Wir nutzen immer mehr Webservices zur Kommunikation zwischen SAP und Lotus Notes. Wir haben bereits einige im Einsatz, die alle funktionieren, jedoch haben wir nun 2 neue eingeführt, die beide Probleme bereiten. Der Webservice entsteht durch den Import eines WSDL-Files aus SAP, so dass an diesem selbst nichts mehr geändert wurde. Der Webserive wird dann anschließend durch einen Agenten aufgerufen.

Problembeschreibung
Es gibt unterschiedliches Verhalten bei unseren beiden neuen Agenten:

1. Agent importAsset: Import von ca. 9000 Datensätzen aus SAP via webservice (hochsetzen der Parameter HTTPJVMMaxHeapSize=1024MB, JAVAMAXHEAPSIZE=512MB war nötig) benötigt nach der eigentlichen Verarbeitung (5 Minuten) noch über 20 Minuten zum Beenden. Im Taskmanager braucht die nlnotes.exe 50% CPU, wobei die Speicherauslastung schrittweise um 16 KB runtergezählt wird. Dauer: ca. 25 Minuten.

2. Agent importEmployeeData: ca. 1600 Dokumente werden aus einer view gelesen und für jedes Dokument ein webservice aufgerufen, der Daten aus SAP holt. Verarbeitungszeit: 7 Minuten, Wartezeit nach der Verarbeitung: 50 Minuten. Hier ist vollkommen unklar, womit er sich beschäftigt, da hier kein Speicherproblem besteht - es wird ja immer nur pro webservice-Aufruf ein Datensatz aus SAP geholt.

Es scheint also so zu sein, dass der Webservice nicht sauber geschlossen wird, jedoch gibt es auch keinerlei Möglichkeit dem Agenten zum Beenden zu zwingen. Beide Agenten laufen weit über die eigentliche Verarbeitung hinaus noch weiter und belasten das System, ohne dass man in den Logs etwas sehen könnte, was hier passiert.

Hatte schon jemand mal so ein Problem? Weiß jemand, wie man am Ende die Sitzung beenden kann oder den angsammelten Speicher wieder freigeben kann?

Umgebung

* Lotus Notes 8.5
* SAP ERP 6
Vielen Dank für Tipps!

Grüße,
Mathias

ghostmw:
Hast du schon mal das Logging deaktiviert oder auskommentiert ?

Ich denke, er wurschelt sich zu Tode bei den möglicherweise vielen logAgent.logAction(..) Einträgen bei der Anweisung "Call logAgent.close()"

DaHias:
Danke für das Feedback!

Das hatten wir schon einmal ausprobiert. Wir haben alle logAgent.logAction(..) entfernt, aber der Effekt blieb leider der gleiche.

ghostmw:
Ok, nächster Punkt wäre das verwendete Objekt doc.

Das wird x-Mal neu angelegt nach dem Speichern in der Schleife.

Recycle das bitte mal nach der Zeile "Call doc.Save(True, False)" mit "delete doc".

Vielleicht ist die Menge der neu erstellten NotesDocument-Objekte ein Problemchen, ich vermute hier einen möglichen Ansatzpunkt.

DaHias:
OK, wir haben nun am Ende des Save jedes mal "delete doc" ausgeführt, jedoch hängt der Agent nun trotzdem wieder fest, so dass auch das wohl leider keine Lösung zu sein scheint. Schade :(

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln