Ich verwende eine Funktion, um auf ein Konfigurationsdokument zuzugreifen:
%Vor%In einer anderen Methode verwende ich diese Funktion, um das Dokument zu erhalten:
%Vor%Soll ich die Objekte "Datenbank" und "Objekte anzeigen" recyceln, wenn ich das Objekt "Dokument" recycle? Oder sollten diese recycelt werden, bevor die Funktion das Dokument zurückgibt?
Versuche, meinen Code aufzumischen ...
/ Newbs
Die beste Vorgehensweise besteht darin, alle Domino-Objekte während des Bereichs, in dem sie erstellt wurden, zu recyceln. Beim Recycling eines Objekts werden jedoch automatisch alle Objekte "darunter" recycelt. Daher können Sie in Ihrer Beispielmethode wDb nicht recyceln, da dies dazu führen würde, dass auch wDoc wiederverwendet wird, sodass Sie ein wiederverwendetes Dokument-Handle zurückgeben.
Wenn Sie also sicherstellen möchten, dass kein Speicher ausgelaufen ist, empfiehlt es sich, die Objekte in umgekehrter Reihenfolge wiederzuverwenden (z. B. erst das Dokument, dann die Ansicht und dann die Datenbank). Dies erfordert, dass Sie Ihre Methoden so strukturieren müssen, dass Sie alles tun, was Sie für ein Domino-Objekt innerhalb benötigen, unabhängig davon, welche Methode das Handle erhält.
Ich nehme zum Beispiel an, dass der Grund, warum Sie eine Methode zum Abrufen eines Konfigurationsdokuments definiert haben, darin besteht, dass Sie den Wert der Konfigurationseinstellungen daraus ableiten können. Anstatt eine Methode zum Zurückgeben des Dokuments zu verwenden, wäre es vielleicht besser, eine Methode zu definieren, um einen Elementwert zurückzugeben:
%Vor%Es gibt ein paar Dinge über die oben genannten, die eine Erklärung verdienen:
Hier ist der Code dieser Hilfsmethode:
%Vor%Es ist privat, da ich davon ausgehe, dass Sie es nur in der gleichen Bean definieren werden, aber in letzter Zeit tendiere ich dazu, dies als eine öffentliche statische Methode einer Util-Klasse zu definieren .
Eine letzte Anmerkung: Wenn Sie zahlreiche Elementwerte aus einem Konfigurationsdokument abrufen, wäre es natürlich teuer, eine neue Datenbank-, Ansichts- und Dokumentkennung für jeden Elementwert einzurichten, den Sie zurückgeben möchten. Daher würde ich empfehlen, diese Methode zu überschreiben, um eine List & lt; String & gt; (oder String []) von Elementnamen und gibt eine Map & lt; String, Object & gt; der resultierenden Werte. Auf diese Weise können Sie ein einziges Handle für die Datenbank erstellen, anzeigen und dokumentieren, alle benötigten Werte abrufen und anschließend die Domino-Objekte wiederverwenden, bevor Sie die zurückgegebenen Elementwerte tatsächlich verwenden.
Hier ist eine Idee, mit der ich experimentiere. Tims Antwort ist ausgezeichnet, aber für mich brauchte ich das Dokument wirklich für andere Zwecke, also habe ich das versucht ..
%Vor%Sie müssen dann sicherstellen, dass Sie das Doc-Objekt in jeder beliebigen Methode sicher zurückgeben, die diese Methode aufruft.
Tags und Links xpages