Hallo zusammen,
ich benutze derzeit die Notes API in .NET (C#) und durchsuche in einem Programm mit der Methode NotesDocumentCollection.FTSearch("query") eine Notes-Datenbank nach bestimmten Dokumenten, finde bestenfalls mit dem Suchbegriff ein Dokument und gebe bestimmte Daten des Dokuments zurück. Das klappt alles wunderbar.... so weit so gut!
Letztlich habe ich nun ein "Problem" (es ist eher eine Unschönheit), dass ich es nicht schaffe, die NotesSession zu killen. Ich habe etwas gegoogelt, doch keine wirklich brauchbaren Antworten bekommen. Mein Program läuft mittlerweile als Windows-Service und die API blockt deshalb den Notes-Client, sobald der Service läuft (und dieser soll immer laufen):
"Diese Datenbank wird von einer anderen Person bzw. einem anderen Prozess verwendet. Der Zugriff ist zur Zeit nicht möglich."
Klingt erstmal logisch, da die API ja mehr oder weniger auf dem Notes-Client basiert. Mein Windows-Service läuft zwar permanent, aber wenn ein Client zu diesem Service connected, dann dauert die Suche in der NotesSession nur ca. eine Sekunde, danach könnte man (wenn es denn irgendwie gehen würde) die Session wieder freigeben, damit ich auf dem Rechner, auf dem der Service läuft, auch gelegentlich den Notes-Client benutzen könnte. Es ist mir klar, dass dann in dieser Zeit der Service selbst auf die Nase fallen würde, aber ich brauche das eigentlich auch mehr für die Entwicklungs- und Testphase.
NotesSession session = new NotesSession();
session.Initialize(password);
//...
// hier die Programmlogik
//...
//Programmende
//hier fehlt eine Methode zum Beenden der Session (session.Close()?/session.flush()?)
session = null;
return;
Wie man im beispielhaften Code-Snippet sieht, habe ich bereits versucht, die Session am Ende einfach gleich null zu setzen, was das Problem aber nicht behebt.
Hat da jemand noch Ideen/Tipps/Tricks? Oder muss ich mich damit abfinden, dass man so eine NotesSession nicht mehr aus dem Speicher bekommt, ohne das Programm zu beenden?
Vielen Dank schon mal fürs Lesen.
Gruß,
Olaf