Das Notes Forum
Lotus Notes / Domino Sonstiges => Java und .NET mit Notes/Domino => Thema gestartet von: D. Roth. am 17.10.04 - 13:00:54
-
Hallo zusammen wie kann man überprüfen wie die mail.box auf dem Server heist ???
Zum Beispiel mit LoadBalancing gibt es zwei Mailboxen mail1.box mail2.box. Ich hab ein Funktion geschrieben aber das blöde getFirstDatabase gibt keine Dateien mit der Änderung .box aus.
Hat jemand eine Idee ??
thanks
neon
private boolean isMalboxBalancing() {
boolean isMailboxBalance = false;
try {
this.dbdir = ncon.s.getDbDirectory(null);
checkdb = dbdir.getFirstDatabase(dbdir.DATABASE);
}
catch (Exception e){
System.out.println("Es ist ein Fehler aufgetreten1");
e.printStackTrace();
}
while (checkdb != null){
try {
Filename = checkdb.getFileName();
System.out.println(Filename);
if (Filename.equals("mail.box")){
isMailboxBalance = false;
}
else if (Filename.equals("mail1.box") ) {
isMailboxBalance = true;
System.out.println(Filename);
}
checkdb = dbdir.getNextDatabase();
}
catch (Exception e){
System.out.println("Es ist ein Fehler aufgetreten2");
ncon.closeNotesThread();
}
}
System.out.println(isMailboxBalance);
return isMailboxBalance;
}
-
Aehm, das Feststellen der Anzahl Mailboxen ist nicht wirklich trivial, wie Du schon gemerkt hast, reagiert der Server nicht normal, wenn man eine Datenbank mit der Erweiterung .box versucht zu öffnen. Das wird intern umgebogen und sehr speziell gehandhabt und ist leider nicht dokumentiert
-
Hi hast du eine Idee wie man die Mailboxen überprüfen kann ?
-
Läuft der Code auf dem Server der geprüft werden soll, oder woanders?
Grüße
Ralf
-
Hi
der Code läuft auf einem anderen Rechner !!
-
Schade sonst hätte mal über das Filesystem die Abfrage machen können. Bin ich leider ratlos sorry
Grüße
Ralf
-
Ich hab ne Lösung ist zwar nicht schön aber funktioniert !!
private boolean isMailboxBalancing(){
Database maildb = null;
Database maildb1 = null;
View vw = null;
View vw1 = null;
if (thisdebuglevel == 99)
System.out.println("Running .... (function isMailboxBalancin)"); //This prints out
boolean isMailboxBalance = false;
try {
maildb = ncon.s.getDatabase("","mail.box");
vw1 = maildb.getView("Mail");
}
catch (Exception e){
if (vw1==null)
isMailboxBalance = true;
else{
if (thisdebuglevel == 99){
System.out.println("Error : function isMailboxBalancing() => Class: Check");
e.printStackTrace();
}
errorcode = 13;
ncon.closeNotesThread();
}
}
return isMailboxBalance;
}
-
Na ja, das fällt aber auf die Nase, wenn mal ein Server von einer auf mehrere Mailboxen umgestellt wurde. Dann liegt in der Regel eine nicht mehr gebrauchte mail.box einfach rum, und die bekommst Du mit Deinem Code geöffnet. Ist praktisch bei jedem neu aufgesetzten Server der Fall, weil das Erhöhen der Mehldosen in der Regel erst nach dem Aufsetzen erfolgt.
-
Jo , ich weiß aber ich bin gerade auf ein Anderes Problem gestossen. Ich will ja die Mailboxen Abfragen und die DEAD Mails auslesen. Aber so wie es aussieht kann ich die DB nicht öffnen weil ich keine Berechtigung habe. Obwohl ich mich mit meinem User anmelde wenn ich jedem rechte auf die DB gebe gehts .
Error : function checkmailbox() => Class: Check
lotus.domino.NotesException
at lotus.domino.NotesExceptionHelper.read(NotesExceptionHelper.java)
at lotus.domino.NotesExceptionHolder._read(NotesExceptionHolder.java)
at com.ibm.CORBA.iiop.RepImpl.invoke(RepImpl.java:325)
at com.ibm.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:36)
at lotus.domino.corba._ISessionStub.getDatabase(_ISessionStub.java)
at lotus.domino.cso.Session.getDatabase(Session.java:484)
at lotus.domino.cso.Session.getDatabase(Session.java:495)
at main.Check.getmaildb(Check.java:82)
at main.Check.checkmailbox(Check.java:39)
at main.nagios2notes.main(nagios2notes.java:50)