Autor Thema: Problem mit $UpdatedBy Feld - übergelaufen?  (Gelesen 6277 mal)

Offline chrisgruebl

  • Frischling
  • *
  • Beiträge: 22
  • Geschlecht: Männlich
    • Private WS
Problem mit $UpdatedBy Feld - übergelaufen?
« am: 27.12.04 - 09:18:17 »
Servus

Ich habe hier einen Domino 6.5.1IF1 Server und bei einer DB ist offenbar das $UpdatedBy Feld 'übergelaufen' und spielt jetzt verrückt (beim Replizieren werden offenbar unendlich viele 64kb Dateien beim 'Empfangenden' angelegt (*.DTF im Temp)), vermutlich weil das $UpdatedBy Feld 'verstümmelt' ist (sonderzeichen etc.) - Die defekten Einträge sind in der Empfangenden DB nicht enthalten - werden gesendet, können nicht eingetragen werden, werden gesendet... bis die Platte voll ist ;-(

Wie kann ich das wieder bereinigen? Ich hätte 'Einträge in $UpdatedBy Feldern begrenzen schon auf 2 beschränkt, hilft jedoch leider nichts.... Die alten vielen Einträge bleiben trotzdem drinnen...

Kann man das irgendwie manuell löschen (kann ruhig vorläufig alles weg sein in dem Feld)?

cu
Chris
cu
Chris
Domino 6.5.1IF1

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Problem mit $UpdatedBy Feld - übergelaufen?
« Antwort #1 am: 27.12.04 - 09:36:29 »
Kannst Du das Dokument denn sonst noch öffnen? Du kannst einen Agenten erstellen, der das Feld löscht: Formelagent mit folgendem Inhalt:

FIELD $UpdatedBy := @DeleteField

Könnte allerdings sein, dass er da - weils ein Systemfeld ist - das nicht so gerne hat. Dann würde wohl nur noch LotusScript helfen.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline chrisgruebl

  • Frischling
  • *
  • Beiträge: 22
  • Geschlecht: Männlich
    • Private WS
Re: Problem mit $UpdatedBy Feld - übergelaufen?
« Antwort #2 am: 27.12.04 - 10:18:21 »
Servus

>Kannst Du das Dokument denn sonst noch öffnen?

Ja, man kann offenbar ohne Probleme mit der DB und auch den betroffenen Dokumenten arbeiten, jedoch eben nicht mehr replizieren...

> Du kannst einen Agenten erstellen, der das Feld löscht: Formelagent mit folgendem Inhalt:

Danke für den Tipp, klappt jedoch leider nicht, die $* Felder stehen irgendwie nicht als Datenbankfelder zur Verfügung um damit was zu machen. Andere Felder löscht er brav...

cu
Chris
cu
Chris
Domino 6.5.1IF1

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Problem mit $UpdatedBy Feld - übergelaufen?
« Antwort #3 am: 27.12.04 - 10:27:35 »
Versuchs mit einem LS-Agenten, der auf die markierten Dokumente losgeht:

Option Declare

dim S as New NotesSession
dim dbThis As NotesDatabase
dim colThis As NotesDcoumentCollection
dim docThis As NotesDocument

set dbThis = s.CurrentDatabase
set colThis = dbThis.UnprocessedDocuments

if colThis.Count > 0 then
  set docThis = colThis.GetFirstDocument
  call docThis.RemoveItem ("$UpdatedBy")
  cal docThis.Save(True,True)
end if


Vorbehalt: hab das nicht ausprobiert.

Variante, wenn auch das nix nützt, versuchs mit

  call docThis.ReplaceItemValue("$UpdatedBy","")

anstatt von RemoveItem
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline chrisgruebl

  • Frischling
  • *
  • Beiträge: 22
  • Geschlecht: Männlich
    • Private WS
Re: Problem mit $UpdatedBy Feld - übergelaufen?
« Antwort #4 am: 27.12.04 - 11:18:28 »
Servus

> Variante, wenn auch das nix nützt, versuchs mit
>  call docThis.ReplaceItemValue("$UpdatedBy","")
> anstatt von RemoveItem

Tnx, hilft aber leider auch nicht :-(

Beides probiert, läuft fehlerfrei durch und ändert aber auch nichts...

Protokoll:
Agent 'test1' wurde am 27.12.2004 11:10:58 gestartet
Bearbeitet ausgewählte Dokumente: insgesamt 1
1 Dokumente gefunden, die die Suchkriterien erfüllen
LotusScript Code ausgeführt
Agent 'test1' wurde am 27.12.2004 11:10:58 beendet

Kopieren etc. hilft ja auch alles nichts da ja das Feld befüllt bleibt...

Oder kann man vielleicht irgendwie beim replizieren verbieten das er das Feld repliziert (vermutlich nicht) oder einen Zähler verwenden, sprich es darf nur 1 mal versucht werden das zu senden oder etwas ähnliches?

cu
Chris
cu
Chris
Domino 6.5.1IF1

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Problem mit $UpdatedBy Feld - übergelaufen?
« Antwort #5 am: 27.12.04 - 11:20:58 »
Warum hilft Kopieren nichts? Dabei wird ja ein neues Dokument angelegt, das sollte dann auch ein neues $UpdatedBy-Feld bekommen.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline chrisgruebl

  • Frischling
  • *
  • Beiträge: 22
  • Geschlecht: Männlich
    • Private WS
Re: Problem mit $UpdatedBy Feld - übergelaufen?
« Antwort #6 am: 27.12.04 - 11:49:28 »
Servus

>Warum hilft Kopieren nichts? Dabei wird ja ein neues Dokument >angelegt, das sollte dann auch ein neues $UpdatedBy-Feld bekommen.

Wenn ich das ganze Dokument kopiere leider nicht...
Das $Revisions Feld ist dann weg (Leer), $UpdatedBy ist 1:1 vorhanden (Einziger Unterschied: Seq.-Num: alt = 34, neu = 1), ach ja, die Verbindung zu den Childs ist natürlich auch weg, also würde es eh nicht viel helfen ;-(

cu
Chris
cu
Chris
Domino 6.5.1IF1

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Problem mit $UpdatedBy Feld - übergelaufen?
« Antwort #7 am: 27.12.04 - 11:52:02 »
Ok, da müsste man dann auch noch die Kinderchen umziehen. Das würde mit LS durchaus machbar sein, ist aber dann schon etwas mehr, als das oben ...... Vielleicht hat ja sonst noch jemand ne einfachere Idee ....
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline koehlerbv

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Problem mit $UpdatedBy Feld - übergelaufen?
« Antwort #8 am: 27.12.04 - 13:53:26 »
@Chris:
Wie kommst Du denn darauf, dass gerade das $UpdatedBy-Item das Problem verursachen sollte ? Kannst Du überhaupt das Dokument lokalisieren, das dieses Problem verursacht ?

@Jens:
Das $UpdatedBy-Item wird von Notes eifersüchtig bewacht - das kannst Du nicht manipulieren - auch nicht per API (das ist nämlich aus gutem Grunde nicht dokumentiert). Beim Kopieren eines Dokuments per LS bleibt das Item erhalten (was ja auch gut so ist). $UpdatedBy wird man nur los, wenn man alle Items in ein neues Dokument kopiert. Da sich $UpdatedBy nicht manipulieren lässt, wird dabei ergo auch ein neues Item angelegt.

Bernhard

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Problem mit $UpdatedBy Feld - übergelaufen?
« Antwort #9 am: 27.12.04 - 14:42:45 »
Bernhard, genau das hab ich eigentlich auch schon so befürchtet und deshalb auch nie ausprobiert.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline koehlerbv

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Problem mit $UpdatedBy Feld - übergelaufen?
« Antwort #10 am: 27.12.04 - 14:45:09 »
Na, "befürchten" würde ich das nicht nennen - es ist ja gut so. Wenn an dem Item jeder Depp rumschrauben könnte, würde ein Notes-Dokument einiges an Authentizität verlieren  ;)

Grüsse über die weissen Berge in die schöne Schweiz,
Bernhard

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Problem mit $UpdatedBy Feld - übergelaufen?
« Antwort #11 am: 27.12.04 - 14:50:10 »
Absolut richtig, ungeschickte Wortwahl von mir .... :)

Hier schneits gerade, deshalb grüsse zurück ins ebenfalls schöne Oberbayern
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline chrisgruebl

  • Frischling
  • *
  • Beiträge: 22
  • Geschlecht: Männlich
    • Private WS
Re: Problem mit $UpdatedBy Feld - übergelaufen?
« Antwort #12 am: 28.12.04 - 10:52:00 »
Servus Jens und Bernhard

Tnx für die Hilfe, Problem ist teilgelöst ;-)

Das Problem mit dem Replizieren ist behoben! Schuld war daran doch nicht das $UpdatedBy Feld sondern schlicht und einfach eine Tabelle mit zu vielen Zeilen, da kam er dann irgendwie in eine Endlosschleife...

Aber, er 'kürzt' mir das $UpdateBy Feld nach wie vor nicht, es war nun mal Zufall das die Tabelle bei genau den Dokumenten übergelaufen ist wo eben auch die $UpdateBy voller sind wie sie sein dürften. Daher der Verdacht....

Eingestellt wären max. 10 Einträge, in den betroffenen Dokumenten sind jedoch ein paar Hundert Einträge...

Ist zwar nicht so schlimm weil ja wieder alle arbeiten können, aber da stimmt ja was nicht....

Bei anderen Dokumenten bleiben max. 10 Einträge drinnen...

cu
Chris
cu
Chris
Domino 6.5.1IF1

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Problem mit $UpdatedBy Feld - übergelaufen?
« Antwort #13 am: 29.12.04 - 09:33:29 »
Bin mir da nicht sicher, ob die Anzahl der Einträge zurückgesetzt werden, wenn das Fläg später gesetzt wird. Aber ein Compact könnte da vielleicht Abhilfe schaffen, und in diesem Falle würde ich eigentlich auch einen Fixup über die DB laufen lassen.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline chrisgruebl

  • Frischling
  • *
  • Beiträge: 22
  • Geschlecht: Männlich
    • Private WS
Re: Problem mit $UpdatedBy Feld - übergelaufen?
« Antwort #14 am: 30.12.04 - 18:58:09 »
Servus

Compact habe ich schon x-mal drübergelassen (läuft sowiso jede Nacht), aber der FixUp war's, jetzt sind die auch bei allen so kurz wie sie sein sollen :-)

tnx und cu
Chris
cu
Chris
Domino 6.5.1IF1

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Problem mit $UpdatedBy Feld - übergelaufen?
« Antwort #15 am: 30.12.04 - 19:46:05 »
@Jens:
Das $UpdatedBy-Item wird von Notes eifersüchtig bewacht - das kannst Du nicht manipulieren - auch nicht per API (das ist nämlich aus gutem Grunde nicht dokumentiert). Beim Kopieren eines Dokuments per LS bleibt das Item erhalten (was ja auch gut so ist). $UpdatedBy wird man nur los, wenn man alle Items in ein neues Dokument kopiert. Da sich $UpdatedBy nicht manipulieren lässt, wird dabei ergo auch ein neues Item angelegt.

Du sprichst wohl von "normalen" Dokumenten, Bernhard.

Denn via NotesNoteCollection kann ich beliebig das $UpdatedBy-Feld ändern, z.B. via
Code
Dim noteColl As NotesNoteCollection
Set noteColl = db.CreateNoteCollection(False)
Call noteColl.SelectAllDesignElements(True)
Call noteColl.BuildCollection
(...)
Call ndoc.ReplaceItemValue("$UpdatedBy", session.UserName)

Ich habe das jetzt aber nicht ausprobiert, ob das bei normalen Doks nicht geht.
Meines Erachtens sollte es aber auch so bei normalen Doks klappen, denn Notes-Intern sollte das egal sein, ob es sich um Design-Notes handelt oder nicht.
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Problem mit $UpdatedBy Feld - übergelaufen?
« Antwort #16 am: 30.12.04 - 20:02:56 »
Ich revidiere mein letztes Posting:

Habe die NotesNoteCollection - Klasse gerade mit "normalen" Doks getestet, dort werden via ReplaceItemValue bestehende Einträge nicht entfernt.
Klappt also nur mit Design-Dokumenten. Da muss also Iris in der Tat noch was zwischengeschaltet haben, damit diese nicht angefasst werden.
Dieser Test bestätigt also Bernhard's Aussage  :)
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline koehlerbv

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Problem mit $UpdatedBy Feld - übergelaufen?
« Antwort #17 am: 30.12.04 - 21:18:04 »
Hier kannst Du Dich auf meine Aussage absolut verlassen, Matthias.  ;)

By the way: Design-Elemente verwalten (aus sicherlich bekanntem Grund) nur einen $UpdatedBy-Eintrag. Wer also ein Design-Element "anfasst", steht immer im $UpdatedBy-Item. Bis der nächste kommt ...  ;D

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz