Hab hier noch was. In der Hashmap stehen serverName, serverPath, userPwd. Die vorher mit put da reintun.
Database und Session werden in der Klasse als Instanzvariablen über mehrere Aufrufe gehalten. Bei Aufruf von Methoden, die gegen die Datenbank gehen, immer neuen sinitThread und stermThread setzen.
Meine Exceptions einfach raustun.
Genauso die logger().
Poste einfach den code. Das Gemoser über "Das ist ja gar nicht Objektorientiert" kommt sowieso ;D
/** initialize (notes-)session and (notes-)database */
public void initDbConnection(HashMap appParameters) {
logger.debug("Entering()");
//System.out.println("appletParameters=" + appletParameters);
serverName = (String) appParameters.get("dbServerName");
serverPath = (String) appParameters.get("dbPathName");
String userPwd = (String) appParameters.get("userPwd");
this.appParameters = appParameters;
notesConnectionException = null;
try {
NotesThread.sinitThread();
if (userPwd.equals(null)) {
nSession = NotesFactory.createSessionWithFullAccess();
} else {
nSession = NotesFactory.createSessionWithFullAccess(userPwd);
}
nDbCurrent = nSession.getDatabase(serverName, serverPath);
} catch (Exception e) {
cleanNotesInstanceVariables();
notesConnectionException =
new NotesConnectionException(
TEXT_NOTES_CONNECTION_EXCEPTION,
e);
e.printStackTrace();
}
logger.debug("Exiting()");
}
cleanNotesInstanceVariables(). Kann quasi auch als Disconnect genommen werden. Besser aber eigene Methode die diese einfach aufruft. :
public void cleanNotesInstanceVariables() {
logger.debug("Entering()");
System.out.println("NotesConnection cleanNotesObjects()");
if (nDbCurrent != null) {
try {
nDbCurrent.recycle();
} catch (Exception e) {
e.printStackTrace();
}
nDbCurrent = null;
}
if (nSession != null) {
try {
nSession.recycle();
} catch (Exception e) {
e.printStackTrace();
}
nSession = null;
}
logger.debug("Exiting()");
}
Die eigentlichen Aufgaben bestehen dann darin, die Swing-Gui Aufrufe multiThread fähig zu machen etc. (hey. Das ist Standard !).
bom noite
Axel