Domino 9 und frühere Versionen > ND8: Entwicklung
"Invalid file handle" bei Zugriff auf MIMEEntity
flaite:
@Ralf,
technisch und vom Projektmanagement bin ich ganz bei dir.
Laber-architektonisch fand ich das eine ganz interessante Debatte ;D
Ich kapier auch, dass man auf die falsche Spur kommen kann.
Praktisch alle von einem J2EE/EE5 Appserver gemanagten Objekte bekommt man aus vom AppServer bereitgestellten Pool.
Für NotesSessions gibts das aber einfach nicht. Also hat masseur - ohne sich vielleicht der Schwere der Aufgabe bewußt zu sein - versucht, seinen eigenen Pool in der Anwendung zu bauen.
Ohne Pool ist es einfacher und es sollte responsiv-mässig und last-aushalt-mässig auch ausreichen. Nur ist er auf diese Idee vermutlich gar nicht gekommen.
Gruß Axel
masseur81:
Aaaaaalso,
erstmal vielen Dank für die interessante Debatte. Aus der Geschichte hab ich wirklich viel gelernt. Axel hat durchaus recht - wenn man mit der Notes-API nicht so vertraut ist und eher den Zielen der Enterprise-Technologien nachgehen möchte, dann fällt man bei Notes auf die Nase. Seltsamerweise hat sich das hier nur bei den MIME Entities gezeigt. Zum Abschluss möchte ich hier noch ein paar Aussagen/Informationen/Antworten aufführen:
- Nicht: Code WILL ich nicht veröffentlichen - ich DARF es nicht ohne Rücksprache. Außerdem glaub ich kaum, dass ihr euch in meine 100 Klassen einfitzeln wollt, die gemeinsam als annotationsbasiertes Framework samt Entkopplung in Interfaces und Notes-Treiber-Implementierung dafür sorgen sollen, dass das Ganze läuft. Für das Verständnis bzgl. Notes/Sessions/Threads bräuchte es eher ein Sequenzdiagramm o.Ä.
- Ich habe nun verstanden und auch eingesehen, dass Session-recyceln eine notwendige Sache ist.
- Den Memory Leak vermute ich darin, dass ich die lotus.domino.*-Objekte gecacht habe. Das hat nix mit Sessions zu tun, dort werden sie nicht abgelegt. Aber in der Tat hätte man diese Objekte auch nicht im Cluster in der Session sinnvoll verwenden können. Deshalb speichere ich nun nur noch die wichtigen Infos in einfachen Datentypen, die Notes-Objekte schmeiß ich mit der Session weg und erzeuge sie bei Bedarf neu.
- Das Ganze ist thread-safe durch Verwendung von ThreadLocal umgesetzt.
- Es funktioniert nun, auch schnell, wobei ich (noch) keine Zeit gemessen habe.
Gut, Mitte September wird die Seite online gehen, bis dahin MUSS es funktionieren.
Danke und liebe Grüße!
Ralf_M_Petter:
Ich denke dass mit dem Code hast du falsch verstanden. Du solltest nicht Deinen Produktivcode posten, sondern den kleinsten möglichen Testcase mit dem sich das Problem nachstellen lässt. Der Sinn von Foren ist nämlich nicht, dass du billig zu support kommst, sondern dass alle beteiligten Lernen können und dabei ist es halt nicht ganz fair, wenn man selber nichts beitragen möchte. Nur meine Meinung dazu.
Grüße
Ralf
flaite:
Danke für die Rückmeldung masseur81 und ich hab die Debatte genossen,
1. weil du mir Recht gegeben hast (I am only human)
2. weil du wirklich mitgedacht hast
3. weil dies offenbar zu einer Lösung geführt hat
Leute and I am going to preach,
wir können aus meiner Sicht echt mit ein bischen offeneneren Erwartungen gegenüber Fragestellern auftreten, die nicht so viel Notes Erfahrung haben. Ich profitiere nämlich in anderen Bereichen auch sehr stark von Leuten, die eben ihre eigenen Experten-Gebiete besitzen. Es passiert mir nämlich in letzter Zeit ziemlich oft, dass ich in Gebieten bin, in denen ich kein Experte sondern eben auch Lernender bin. Namentlich war das in diesem Sommer MQSeries. Nun sehr wahrscheinlich bald in IBM Content Manager, IBM Common Store und Suse. Und es ist für mich mehr als beruhigend zu sehen, dass dies mit einer offenen Kommunikation, jahrelanger Erfahrung, gewissen nicht mal im Studium sondern selbsterlernten Grundlagenkenntnissen etc. funktioniert.
Geht auch nur, weil mir andere Leute aus meiner Sicht ausreichend sorgfältig gestellte Fragen beantworten. Mein Erwartungshorizont an Wissensvermittlungsprozesse wird zunehmend difuser und das ist gut so.
[noch_mehr_offtopic]
Vielleicht weil ich es mag und mir mein studiertes Entwicklungsökonomie-Hobby ein tiefes Vertrauen in selbstorganisierte Prozesse vermittelt hat. Etwas, das in gewissen US-Kreisen übrigens unter dem Begriff "Austrian Economics" läuft (for the record: in scharfer Abgrenzung zum Extrem-Libertarismus, vulgär-Hayekianismus und AynRandismus, die mich in ihrem Determinismus, unreflektierten Positivismus und Ahistorismus geradezu physisch anekeln).
[/noch_mehr_offtopic]
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln