Lotus Notes / Domino Sonstiges > Java und .NET mit Notes/Domino
Error cleaning up agent threads und WeakReference...
Ralf_M_Petter:
@Axel!
Soll dein Attachment wirklich ein Txt sein. Wenn ich es aufmache sehe ich zwar teilweise Java Code aber auch ziemlichen Mist. Sieht irgendwie nicht nach einem Textfile aus.
Grüße
Ralf
@Mark Liefert die Session einen Fehler, wenn du auf Sie zugreifst und sie bereits abgelaufen ist?
Grüße
Ralf
Mark³:
ja sie liefert einen Fehler ;D Der Inhalt ist in etwa so:
--- Zitat ---Your session has timed out. Please click OK to continue
--- Ende Zitat ---
Das entspricht auch dem Verhalten im normalen Client von Openview Servicedesk. Dort erscheint dann auch ein Popup, wo man OK klickt und danach erneut Username und PW angeben kann.
Ich hatte probiert im Falle eines Fehlers eine neue Session zu erstellen, dies klappte aber nicht vernünftig:
--- Code: ---try {
// check if session is usable
@SuppressWarnings("unused")
IBrandHome dummy = OV.session.getBrandHome();
return OV.session;
} catch (Exception e) {
// dummy not available that means no valid session
try {
System.out
.println("OVSD session not available, maybe timed out..."); //$NON-NLS-1$
OV.session.finalize();
OV.session = ApiSDSession.openSession(OV.SRV, OV.USR, OV.PWD);
System.out.println("Created new session " //$NON-NLS-1$
+ OV.session.getWorkflowSession());
return OV.session;
} catch (Exception ex) {
e.printStackTrace();
return null;
} catch (Throwable ex) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
--- Ende Code ---
Laut Log wurde hierdurch auch 1-2 Mal eine neue Session aufgebaut. Wenn ich aber einen Tag warte bekomme ich keine neue Session mehr hin mit diesem Code.
Ich habe mir das mal mit JAD angeschaut, die ganze Session-Verwaltuing ist recht komplex, mit zur Laufzeit kompilierten Proxies etc.
Ralf_M_Petter:
Du hast meiner Meinung nach einen Fehler in deinem Code:
Du schreibst zweimals irrtümlich e.printStackTrace() wo es meiner Meinung nach aber ex.printStackTrace() heissen sollte. Eventuell verstehst du deshalb den Fehler nicht.
Grüße
Ralf
flaite:
@Ralf: Ich hab oben geschrieben->
3. Was tun?
a) das attachte File in clientObjects.jar umbenennen und in ein Verzeichnis tun (z.B. C:\temp)
Geht das nicht?
Mark: Imho solltest du erstmal die Session einfach nach JEDEM GEBRAUCH SOFORT SCHLIESSEN.
Das ist aber nur möglich, wenn du ein stateless Protokoll benutzt (wie in meinem Beispiel).
Dort gibt es einen Request und darauf direkt einen Response. Vor dem Absenden des Responses kann der Server die Connection auf Openview SCHLIESSEN (GOOD THING).
Alles andere sollte man vernünftig in einem eigens dafür programmierten ConnectionPool implementieren und nicht mit dem Anwendungscode verkoppeln! SERIOUS.
Das mit dem ConnectionPool würd ich erstmal lassen. Man kann sowas aber später bei Bedarf dazuprogrammieren und zwar genau dann wenn die Performance nicht das Gelbe ist, weil z.B. der Aufbau der Connection eine Menge Ressourcen beansprucht.
Ralf_M_Petter:
@Axel Sorry habe ich überlesen!
Grüße
Ralf
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln