Das Notes Forum
Domino 9 und frühere Versionen => ND7: Administration & Userprobleme => Thema gestartet von: du2008 am 26.08.09 - 13:18:44
-
Hallo zusammen,
bei mir hat sich in einer Datenbank ein Dokument verirrt (per Mail eingestellt) welches nicht gelöscht werden kann. Es kommt immer oben genannte Meldung. Selbst HintergrundAgents auf dem Server welche über die UniversalId das Dokument selektieren und löschen sollen (in Formelsprache und Script probiert )bringen die Fehlermeldung und brechen dann ab.
Hat jemand irgendwelche Ideen wie man sowas wieder löschen kann?
-
Entferne in dem Dok doch mal alle Feldwerte und/oder Feldformeln.
Matthias
-
das habe ich alles schon probiert, sobald ich im Client das Dokument markiere und Agents starten möchte kommt schon die Fehlermeldung. Dok-Eigenschaften mit Feldnamen können auch nicht angezeigt werden. Die Dokumente sind wohl echt zerschossen und müssen nur irgenwie aus der DB raus.
-
Hallo,
schon mal einen compact auf die DB versucht?
Gruß Werner
-
Ein compact bringt hier nichts, Werner, da das Dokument an sich ja in Ordnung ist - nur bei einem realem Zugriff kommt diese Fehlermeldung.
Der Namenlose sollte mal etwas Code posten, wie er versucht, das Dokument "im Backend" zu löschen - denn an einem Scheitern der Löschung im Backend glaube ich schlicht nicht. Der Namenlose sollte auch einen ansprechbaren Namen unter seine Posts setzen, zumindest mich interessieren sonst derartige Probleme plötzlich nicht mehr.
Bernhard
-
Hallo,
das mit dem Nickname habe ich so wie all im Forum gemacht. Habe ja vor dem Posten auch etwas gesucht ob es sowas schon gibt.
Mein Klarname ist Dirk, wenn das das Interesse am Problem steigern sollte.
nochmal zum löschen:
Im Client und im Backend in der Formelsprache mache ich einfach ein @deletedocument.
Icj Client selektieren ist klar, im Backend mache ich es über eine Ansicht welche die beiden Dokumente selektiert. (Vergleich über @text(@documentuniqueid)). Da siond die Dokumente auch drin und der Hintergrundagent selektiert nur diese Ansicht.
Im Client kommt dann noch folgender Kram:
Agent 'del' wurde am 27.08.2009 13:12:23 gestartet
Bearbeitet ausgewählte Dokumente: insgesamt 2
2 Dokumente gefunden, die die Suchkriterien erfüllen
Fehler beim Ausführen des Agenten auf Dok-ID 561 - Serverfehler: JVM: Versuch, den Java-Agent-Anhang %s abzurufen, ist fehlgeschlagen.. Operation wird fortgesetzt...
Fehler beim Ausführen des Agenten auf Dok-ID 561 - Serverfehler: JavaScript wird auf dieser Plattform nicht unterstützt. Operation wird fortgesetzt...
Agent 'del' wurde am 27.08.2009 13:12:23 beendet
Im Script selektiere ich die Dokumente auch über die universalid und mache dann ein einfaches doc.remove(true).
Mache 10 Jahre Notes und bin CLP7. Die Programmierung ist also nicht das Problem.
Ich habe mal die Mail beim Absender angesehen:
Normale Notesmail weitergeleitet an die Mail-In Datenbank, mit allerdings recht vielen Abschnitten (ohne Zugriffskontrolle) drin.
Gruß Dirk
-
Sehr, sehr merkwürdig, Dirk ... Was meckert ein Formelagent an der JVM bzw. an JavaScript herum?
Welche Meldung gibt es denn im LS-Agent? Hast Du mal einen Ordner erstellt, die betreffenden Dokumente dort hineingeschoben und dann mit sturem Durchloopen durch den Ordner das Löschen angefordert?
Im LS-Agent: Bei welchem Statement kommt dort das Gemecker?
Bernhard
-
Hallo,
den alten Löschagent mit docid-Vergleich hatte ich nicht mehr und jetzt mal die Nummer mit dem in den Ordner verschieben und loopen probiert.
Sub Initialize
On Error Goto ErrorHandler
Dim s As New NotesSession
Dim thisAgent As NotesAgent
Dim db As NotesDatabase
Dim view As notesview
Dim doc As NotesDocument, ndoc As NotesDocument
Set db = s.currentdatabase
Set thisAgent = s.CurrentAgent
Set view = db.getview("del")
Set doc = view.GetFirstDocument
While Not doc Is Nothing
Set ndoc = doc.getnextdocument(doc)
Call doc.Remove(True)
Set doc = ndoc
Wend
Done:
Exit Sub
ErrorHandler:
On Error Resume Next
Select Case Err
Case Else
Print "Error " & Cstr(Err) & " in " & thisAgent.Name & " on line " & Cstr(Erl) & ": " & Error
Resume Done
End Select
End Sub
27.08.2009 14:15:58 Database note open error: s:\Lotus\Domino\data\AuftragsManagement\auftrrk.nsf: Field is too large (32K) or View's column & selection formulas are too large
27.08.2009 14:15:58 AMgr: Agent ('del' in 'AuftragsManagement\auftrrk.nsf') printing: Error 13 in del on line 13: Type mismatch
Die erste Zeile von beiden kommt sowieso alle 5-10 min im Serverlog und auch im Replizierprotokoll des Serverlogs.
Ob die nur durch Zufall dort mit steht oder mit dem Agentlauf weiß ich nicht.
Die beiden Doc sind jedenfalls im Ordner und auch sichtbar.
Gruß Dirk
-
Zeile 13 ist ja auch falsch:
Set ndoc = doc.getnextdocument(doc)
muss heissen:
Set ndoc = view.getnextdocument(doc)
Interessant wäre auch (wenn auch nicht kriegsentscheidend in dieser Sache): Welcher Prozess greift alle 5 Minuten auf diese Dokumente zu, so dass die (andere) Fehlermeldung im Log erscheint.
Bernhard
-
ist ja komisch das der Scriptcompiler nicht gemeckert hat bei doc.getnextdocument(doc), so ne Methode gibts doch gar nicht aber egal:
jetzt mit richtiger Zeile kommt folgende Meldung:
AMgr: Agent ('del' in 'AuftragsManagement\auftrrk.nsf') printing: Error 4000 in del on line 14: Notes error: Field is too large (32K) or View's column & selection formulas are too large
Was da regelmäßig auf die DB zugreift ist denke ich mal Replikation der so. Im Servercluster ist das Dokument zwar in beiden Repliken drin aber normale Replikation zu anderen Servern scheint dort abzubrechen.
-
Und was passiert, wenn Du statt Remove ein RemovePermanently (insofern die DB SoftDeletions ermöglicht) verwendest?
Bernhard
-
Schönes Ding,
jetzt sind die Dinger weg.
Danke und Gruß Dirk