Autor Thema: Domino und die COM-Schnittstelle  (Gelesen 3229 mal)

Offline schroederk

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.924
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Domino und die COM-Schnittstelle
« am: 19.05.10 - 13:34:38 »
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);

Ich wäre ja gerne weniger egoistisch, aber was hab ich davon?

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: Domino und die COM-Schnittstelle
« Antwort #1 am: 31.05.10 - 16:17:17 »
Schon mal daran gedacht, das ganze als Webservice zu implementieren?
bzw. per AJAX?

gruss
umi
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline schroederk

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.924
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: Domino und die COM-Schnittstelle
« Antwort #2 am: 01.06.10 - 09:01:18 »
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.
Ich wäre ja gerne weniger egoistisch, aber was hab ich davon?

Offline spookycoder

  • Frischling
  • *
  • Beiträge: 21
  • Geschlecht: Männlich
  • Harald
    • Harrys Blog
Re: Domino und die COM-Schnittstelle
« Antwort #3 am: 01.06.10 - 10:07:29 »
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.


Offline schroederk

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.924
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: Domino und die COM-Schnittstelle
« Antwort #4 am: 01.06.10 - 13:31:53 »
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?
Ich wäre ja gerne weniger egoistisch, aber was hab ich davon?

Offline spookycoder

  • Frischling
  • *
  • Beiträge: 21
  • Geschlecht: Männlich
  • Harald
    • Harrys Blog
Re: Domino und die COM-Schnittstelle
« Antwort #5 am: 02.06.10 - 13:04:36 »
Also in deinem Beispiel oben würd ich die Variablen in umgekehrter Reihenfolge auch wieder freigeben:

field, entry, view, db, session

Würd auch umgekehrt auch gar nicht gehen, wenn du den view wegwirfst wird entry ja im prinzip auch ungültig

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz