Autor Thema: Field is too large (32K) or View's column & selection formulas are too large  (Gelesen 3826 mal)

Offline du2008

  • Frischling
  • *
  • Beiträge: 28
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?

botschi

  • Gast
Entferne in dem Dok doch mal alle Feldwerte und/oder Feldformeln.

Matthias

Offline du2008

  • Frischling
  • *
  • Beiträge: 28
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.

Offline WernerMo

  • @Notes Preisträger
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.050
  • Geschlecht: Männlich
Hallo,

schon mal einen compact auf die DB versucht?

Gruß Werner
Gruß Werner
  o                                                  o   
 /@\  Nächster @Notes-Stammtisch  /@\  online Sept. 2020?
_/_\__________________________/_\_ Details folgen.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
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

Offline du2008

  • Frischling
  • *
  • Beiträge: 28
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

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
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

Offline du2008

  • Frischling
  • *
  • Beiträge: 28
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

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
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

Offline du2008

  • Frischling
  • *
  • Beiträge: 28
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.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Und was passiert, wenn Du statt Remove ein RemovePermanently (insofern die DB SoftDeletions ermöglicht) verwendest?

Bernhard

Offline du2008

  • Frischling
  • *
  • Beiträge: 28
Schönes Ding,
jetzt sind die Dinger weg.

Danke und Gruß Dirk

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz