Domino 9 und frühere Versionen > ND8: Entwicklung
Domino und die COM-Schnittstelle
schroederk:
Hallo,
ich bin ein wenig ratlos, da alle bisherigen Scripte, die über die COM-Schnittstelle Daten aus Domino herausziehen und an sich auch tadellos funktionieren,
verstärkt den Apache-Webserver zum Absturz bringen.
Das einzige was sich geändert hat, dass die Anzahl der Zugriffe über diese Schnittstelle sich signifikant erhöht hat.
Meine Vermutung geht momentan dahin, dass ich eventuell die geöffneten Verbindungen nicht sauber schließe.
Daher würde ich mich freuen, wenn jemand seine Erfahrungen mit mir teilen könnte.
So sieht ein beispielhaftes Script aus:
--- Code: ---// Öffnen der Schnittstelle
$session = new COM( "Lotus.NotesSession" );
$session->Initialize($notespassword);
$db = $session->getDatabase( $notesserver, $notesdb, false );
$view = $db->getView( $databaseview );
$entry = $view->GetFirstDocument();
while (is_object($entry)) {
$field = $entry->GetFirstItem( $feldname );
$entry = $view->getNextDocument($entry);
echo $field."<br/>";
}
// Schließen der Verbindung
$session = null;
unset($session);
--- Ende Code ---
umi:
Schon mal daran gedacht, das ganze als Webservice zu implementieren?
bzw. per AJAX?
gruss
umi
schroederk:
Bedeutet Webservice nicht, dass Views der Datenbank erst "webfähig" gemacht werden müssen, also Anpassungen an der Schablone vorgenommen werden müssen?
Wir haben keinen Domino-Entwickler im Hause, daher vermeiden wir jegliche Anpassung der Standard-Schablonen.
Der Vorteil der COM-Schnittstelle ist gerade, dass Notes-seitig keine Änderung notwendig ist.
Laut IBM wird die Schnittstelle auch durchaus empfohlen und wird auch weiterhin in zukünftigen Versionen voll unterstützt.
spookycoder:
Bezogen auf Dein Beispiel oben, gibts es noch den Ansatz auch die beiden Variablen $entry, $view nach der Benutzung explizit freizugeben. Vielleicht ist einfach die Garbage Collection zu langsam und du hast eine art "leak" durch die vielen Aufrufe.
schroederk:
Das kann ich gerne mal versuchen... sicherlich dann auch noch $db....
In welcher Reihenfolge sollte ich die Variablen freigeben? Bei $session angefangen, dann $db etc... oder besser umgekehrt. Oder spielt es keine Rolle?
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln