Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Skorpi am 25.03.08 - 08:44:05

Titel: AllocHandle: OUT OF PRIVATE HANDLES!
Beitrag von: Skorpi am 25.03.08 - 08:44:05
Hallo Leutz,

bekomme den folgenden Fehler:

AllocHandle: OUT OF PRIVATE HANDLES! -- pid 000008D8 Handles used so far 6399, Maximum handles = 18171, error = 0x107 Why is Domino out of handles at 6399 when the console reports that the maximum is 18171?


Im Netz habe ich u.a. den folgenden Hinweis gefunden:

Each document opened in an agent allocates a private handle. When the document is closed by the agent, the handle is freed. If the document isn't closed after processing, a handle will be allocated for every document processed in the loop. This isn't a concern in small databases with few documents processed, but in larger databases, it can become an issue. (http://www.lotusfans.com/forum/archive/index.php/t-33575.html)

Was meinen die genau mit "closed the document"? Ein Delete doc am Ende der Schleife?
Titel: Re: AllocHandle: OUT OF PRIVATE HANDLES!
Beitrag von: m3 am 25.03.08 - 08:59:31
1) Original Fehlermeldungen posten, nicht den halben Text der Technotes (http://www-1.ibm.com/support/docview.wss?uid=swg21108940). ;)

2) Wer oder was ist Leutz?

3) Nachdem die gegebenen Infos recht dürftig sind, kann ich nicht viel dazu sagen. Aber eine schnelle Google Suche ergibt, dass ein Recycle() in den Java Agenten helfen sollte.

4) Update auf Domino 7 wäre auch nicht schlecht:
Zitat
Domino 6 allows 6399 private handles.
Domino 7 allows 10495 private handles.

5) Ein Update auf 6.5.4. könnte das Problem aber auch lösen, wie man in den Release Notes (http://www-1.ibm.com/support/docview.wss?rs=3025&context=SSPQ69&dc=DA400&uid=swg27005918&loc=en_US&cs=UTF-8&lang=en&rss=ct3025lotus) nachlesen kann:
Zitat
SPR# MIAS65JLGF - Fixed an Agent leak after requesting an ICON flag from a database. After a day or two the process runs out of private handles and crashes. This problem has been fixed in 6.0.5, 6.5.4, 6.5.3 FP1, and 6.5.2 FP1.

Titel: Re: AllocHandle: OUT OF PRIVATE HANDLES!
Beitrag von: Skorpi am 25.03.08 - 09:17:38
1) Fehlermeldung:
Code
AllocHandle: OUT OF PRIVATE HANDLES! -- pid 000016CC Handles used so far 6399, Maximum handles = 16515, error = 0x107
AllocHandle: OUT OF PRIVATE HANDLES! -- pid 000016CC Handles used so far 6399, Maximum handles = 16515, error = 0x107
25.03.2008 08:25:44   Agent message: Unbekannter Fehler ( (Script-Bibliothek: 'VCAuswertungsLib' Funktion: 'getGeschaefte2') )! 
In der Zeile: 25 Fehler Nummer: 4000 Fehler Nachricht: Notes error: Maximum number of memory segments that Notes can support h
as been exceeded
25.03.2008 08:25:44   Agent message: Unbekannter Fehler ( (Script-Bibliothek: 'VCAuswertungsLib' Funktion: 'getGeschaefte2') )! 
In der Zeile: 25 Fehler Nummer: 4000 Fehler Nachricht: Notes error: Maximum number of memory segments that Notes can support h

2) Leutz = Leute

3) Kein Java, sondern LotusScript

4) Nicht möglich

5) Version 6.5.5 im Einsatz

Kann man die privaten Handles irgendwie auslesen? LSI_INFO?



*** edit bei ata ***
Zeilenumbruch eingefügt für besseres Handling des Threads

*** edit bei skorpi***
Sorry, beim nächsten mal versuche ich es gleich ordentlich

Titel: Re: AllocHandle: OUT OF PRIVATE HANDLES!
Beitrag von: Skorpi am 25.03.08 - 10:25:41
Hmm, Lsi_info(6) sagt, dass die Version '5.0.0.06' verwendet wird.
Titel: Re: AllocHandle: OUT OF PRIVATE HANDLES!
Beitrag von: m3 am 25.03.08 - 10:28:47
Das ist die LotusScript Version, nicht die Domino Version.

Zeig mal den Code der Schleife her, in der es ihn aufstellt.

http://hostit1.connectria.com/twduff/home.nsf/d6plinks/TDUF-5U5MFL
Titel: Re: AllocHandle: OUT OF PRIVATE HANDLES!
Beitrag von: Skorpi am 25.03.08 - 11:10:19
Code
                Set docEmpfaenger = getDocByUNID(dbPov, udidEmpfaenger)
	If Not docEmpfaenger Is Nothing Then
		
		If docEmpfaenger.GetItemValue("Form")(0) = "Organisationseinheiten" Then
			Set oe = New VCOrganisationseinheit(docEmpfaenger)		
			Set doccolEmpfaenger = oe.getUnterOes(True)
			
		Else
			Set doccolEmpfaenger = dbPov.Search("", Nothing, 0)
		End If
		
		Call doccolEmpfaenger.AddDocument(docEmpfaenger) '<-- hier hats dann geknallt
		Set docEmpfaenger = doccolEmpfaenger.GetFirstDocument
		
		While Not docEmpfaenger Is Nothing
			
			Set geschaefteProProduktTmp = Nothing
			Set doccolTmp = Nothing
			
			udidEmpfaenger = docEmpfaenger.UniversalID						
			If Iselement(empfaenger(udidEmpfaenger))Then		
				geschaefteProProduktTmp = empfaenger(udidEmpfaenger)					
				If Iselement(geschaefteProProduktTmp(udidProdukt))Then				
					Set doccolTmp = geschaefteProProduktTmp(udidProdukt)							
					Set doccol = appendDoccol(doccol, doccolTmp)			
				End If
			End If
			
			Set docEmpfaenger = doccolEmpfaenger.GetNextDocument(docEmpfaenger)			
		Wend
	End If

Allerdings glaube ich nicht, dass es speziell an dieser Zeile liegt. Viel mehr scheint es ein Speicherproblem zu sein. Ich habe mir mal den Link zur Brust genommen und den Agenten entsprechend getestet.

Code
-->Nach dem Starten des Agenten

Total LotusScript Memory Allocated:  807416
Total LotusScript Memory Allocated from OS::  807608
Total LotusScript Blocks Used:  807808

--> Nachdem bestimmte Dokumente in einer NotesDocumentCollection geladen wurden

Total LotusScript Memory Allocated:  1864808
Total LotusScript Memory Allocated from OS::  1865016
Total LotusScript Blocks Used:  1865208

--> Erste Durchlauf

Total LotusScript Memory Allocated:  1859256
Total LotusScript Memory Allocated from OS::  1859464
Total LotusScript Blocks Used:  1859656

--> Zweiter Durchlauf

Total LotusScript Memory Allocated:  1959416
Total LotusScript Memory Allocated from OS::  1959624
Total LotusScript Blocks Used:  1959816

--> Dritter Durchlauf

Total LotusScript Memory Allocated:  2070344
Total LotusScript Memory Allocated from OS::  2070544
Total LotusScript Blocks Used:  2070728

--> Kurz bevor der Server abstürtzt

Total LotusScript Memory Allocated:  6373208
Total LotusScript Memory Allocated from OS::  6373392
Total LotusScript Blocks Used:  6373584

Wie man gut erkennen kann wächst der Speicher von Durchlauf zu Durchlauf... Ich werde mich jetzt mal auf Suche begeben und versuchen die Ursache weiter einzugrenzen
Titel: Re: AllocHandle: OUT OF PRIVATE HANDLES!
Beitrag von: m3 am 25.03.08 - 11:13:09
Wenn es in
Code
Call doccolEmpfaenger.AddDocument(docEmpfaenger) '<-- hier hats dann geknallt
"knallt", wäre es natürlich interessant zu sehen, wie Du die Collection aufbaust, also die Schleife rundherum oder wie auch immer die Docs in die Collection (ich vermute mal, es ist eine Collection) kommen.
Titel: Re: AllocHandle: OUT OF PRIVATE HANDLES!
Beitrag von: ata am 25.03.08 - 12:17:40
@All

... der Thread liest sich immer schwerer - wäre es möglich in den Zitaten Umbrüche einzubauen, damit die Formatierung wieder in den normalen Seitenrahmen passt?

... vor allem => hier bei Skorpi (http://atnotes.de/index.php?topic=40520.msg258204#msg258204) und  hier bei m3 (http://atnotes.de/index.php?topic=40520.msg258201#msg258201)

Danke

Toni
Titel: Re: AllocHandle: OUT OF PRIVATE HANDLES!
Beitrag von: m3 am 25.03.08 - 12:19:50
"Schuld" ist das Posting: http://atnotes.de/index.php?topic=40520.msg258204#msg258204

Ich hab hier leider keine Mod-Rechte, sonst hätte ich das schon "repariert". Das hin- und hergescrolle geht mir auch schon wohin ...
Titel: Re: AllocHandle: OUT OF PRIVATE HANDLES!
Beitrag von: ata am 25.03.08 - 12:21:45
Sorry Martin,

... du bist es nicht sondern nur Skorpi in seinem Code-Part...

Toni
Titel: Re: AllocHandle: OUT OF PRIVATE HANDLES!
Beitrag von: ata am 25.03.08 - 12:24:57
... ich habe den Thread korrigiert und zwei Umbrüche eingefügt - so sollte sich der Beitrag wieder besser lesen lassen...

Toni