2017-06-21 1 views
-1

J'ai un code Java pour vérifier les caractères double bit dans tous les documents Lotus.Il fonctionne parfaitement bien jusqu'à 2000 documents et puis il dit Out of memory.Lotus Notes Java - Mémoire insuffisante

Nous avons donc ajouté du code pour stocker le dernier UNID, puis l'avons utilisé comme entrée pour lancer la prochaine exécution. Mais nous obtenons une erreur UNID invalide. Peut être qu'il n'est pas en mesure de localiser notre UNID dans cette collection.

Aidez-nous s'il vous plaît.

+2

Recherchez ** pourquoi ** votre code s'exécute rapidement. Ça ne devrait pas. Toute récursion infinie? S'il vous plaît, ajoutez votre code à votre question. –

+0

I BET, il s'agit d'une approche développeur LotusScript avec GetFirstDocument et GetNextDocument (ou des méthodes similaires) sans connaître le recyclage nécessaire des objets dans les classes java/Domino –

Répondre

1

Connaissez-vous la méthode recycle() à partir de tous les objets java de notes? Chaque objet de notes doit être correctement recyclé. Dans Xpages vous avez l'ODA OpenNTF qui pourrait vous aider ..

+0

Habituellement, la meilleure façon d'implémenter recycle() est dans le bloc finally après un essai ... catch qui entoure le code de travail. Vérifiez chaque objet pour vous assurer qu'il n'est pas nul et appelez recycle(). Si vous réattribuez une variable avec de nouveaux objets à l'intérieur du try ... catch, (par exemple, si vous parcourez des objets Item), faites le recyclage de l'objet courant (si ce n'est pas null!) Avant d'affecter l'objet suivant - et assurez-vous que cela arrive dans n'importe quelle branche que le code pourrait prendre. –