"Datenbank beschädigt - Platz kann nicht zugeteilt werden"

  • Hallo alle zusammen,


    ich habe hier eine selbst gestrickte Datenbank für das Verwalten von Gesprächsprotokollen. Damit man aus dem jeweiligen Protokoll auch eine PDF Datei genieren kann, habe ich einen Agenten in Java geschrieben, der dies für mich erledigt. Nun bekomme ich aber bei einem Benutzer (der Benutzer, der die Datenbank am öftesten benutzt) - und nur bei diesem - sporadisch folgende Java Fehlermeldung:


    Code
    NotesException: Notes error: Datenbank beschädigt - Platz kann nicht zugeteilt werden	at lotus.domino.local.RichTextItem.NembedObject(Native Method)	at lotus.domino.local.RichTextItem.embedObject(Unknown Source)	at GSPPrintAgent.NotesMain(GSPPrintAgent.java:99)	at lotus.domino.AgentBase.runNotes(Unknown Source)	at lotus.domino.NotesThread.run(Unknown Source)


    Der Fehler tritt in dem Teil meines Codes auf, in dem ich die erzeugte PDF Datei in ein RichtText Feld an das Dokument anhänge.
    Hier noch die entsprechenden Zeilen, die mit dem Fehler unmittelbar in Zusammenhang stehen:

    Code
    49:		RichTextItem printPage, actualPrintPage;
    
    
    98:				// Gespraechsprotokoll anhaengen
    99:				actualPrintPage.embedObject(EmbeddedObject.EMBED_ATTACHMENT, "",
    100:					pdfFilename, null);
    101:				printPage.embedObject(EmbeddedObject.EMBED_ATTACHMENT, "",
    102:					pdfFilename, null);


    Bis vor kurzem hatte ich noch den Verdacht, dass es am Rechner oder am Server liegen könnte, das diese vielleicht zu schwach seien und es zu einer Art Timeout kommt. Notes + Java ist ja nicht gerade die Ressourcen schonenste Variante. Zwischenzeitlich hat der Benutzer aber einen aktuellen Rechner und der Domino Server läuft virtualisiert auf einer funkelnagelneuen VMware Farm.

  • Na die Meldung sagt doch klar wo das Problem ist. Die Datenbank hat einen Fehler und kann nicht vergrößert werden.
    Schon mal Fixup und so drüberlaufen lassen.


    Daß es nicht immer auftritt hat einen ganz einfachen Grund: nur dann wenn die Datenbank tatsächlich physisch vergrößert werden muss muß auch eine gewisse Restrukturierung vorgenommen werden. Wenn noch genug Whitespaces vorhanden sind,dann nicht.


    Wie du da auf Timeout als Ursache kommst kann ich nicht wirklich nachvollziehen.

  • Auf die Vermutung mit dem Timeout komme ich deswegen, weil es ziemlich lange dauert. Mit dem alten Server und dem alten Rechner hat es ewig gedauert.


    Jepp, fixup lief schon drüber. Das war das Erste, was ich gemacht habe. Wenn es damit zusammenhängt, dass es nur Auftritt, wenn die Datenbank tatsächlich physisch vergrößert muss, hätte ich gleich die nächste Frage: Warum tritt es dann nur sporadisch und nur bei dem Benutzer auf? Wenn der Server die Datenbankdatei nicht vergrößern kann, müsste das ja für alle Benutzer gelten und permanent. Sprich bei anderen müsste es auch vorkommen (was es nicht tut) und bei dem Benutzer dürfte es bei nächsten Mal wieder fehlschlagen. Oder habe ich da etwas falsch verstanden?