Das Notes Forum
Domino 9 und frühere Versionen => Administration & Userprobleme => Thema gestartet von: mahonri am 01.10.03 - 14:31:55
-
Erhalte obige Fehlermeldung mit großer Häufigkeit, beim Öffnen einer Datenbank.
Dies greift in ihrem DatenbankScript auf eine andere Datenbank zu, was den Fehler auslöst.
Die Datenbank erscheint im Script als not open.
Üblicherweise handelt es sich dabei um einen nicht aufgebauten Index in der Ziel-Datenbank, und das Problem hat sich erledigt, wenn die Zieldatenbank das erste mal geöffnet wurde.
Nicht so hier. Den ersten am morgen beißen die Hunde, und auch manchmal am Nachmittag den nächsten.
In meiner TEstumgebung tritt das Problem nicht auf, aber bei meinen Kunden auf dem Testsystem und dem Produktiv-System.
Updall Läuft nachts ohne Fehler
Update läuft und ist auch mal Idle, also nicht überlastet.
Die Ansichten verwerfen Ihre Indexe nicht und lassen sich automatisch aktualisieren.
Bin für Anregungen offen, was man noch prüfen kann.
-
Hi mahonri,
wird in deinem Script die db definitiv geöffnet?
Script-Code bla bla
.
.
.
If Not(db.IsOpen) Then Call db.open("","")
.
.
.
Script-Code bla bla
Mit dieser Zeile wird geprüft ob die Datenbank offen ist, und wenn nicht, dann wird sie geöffnet.
Dann sollte es immer klappen.
Ansonten schick mal dein Script.
-
Function SetExternalDBProfile (pdoc As Notesdocument, path As String, db As notesdatabase)
Dim session As New notessession
Dim view As notesview
Dim confdoc As notesdocument
Dim codesdb As notesdatabase
Dim nitem As notesitem
Dim cfgKeys As Variant
Dim cfgvalues As Variant
Dim i As Integer
Dim z As Integer
Dim onlypath As String
Dim dbname As String
Redim gconfig(0) As String
Redim keys (0) As String
Redim values (0) As String
onlypath=PathToDB(db) 'Use Function to get the Path of the DB without the Filename
'Get CodesDB-Path and Store keyname and path
Set view = db.getview("vwConfig")
Call view.refresh
Set confdoc = view.getdocumentbykey("General*Path")
If confdoc Is Nothing Then
Msgbox "Konfigurationsdokument läßt sich nicht öffnen: General*Path"
End If
keys(0)=confdoc.CfgKeys(0)
values(0)=confdoc.CfgValues(0)
'When the path is a relative Path (~) use path of current DB
If Left( values(0) , 1 ) ="~" Then
values(0)=onlypath+Right(values(0), Len(values(0))-2)
End If
'Open CodesDB to get the other ConfigurationDocuments for the paths
Set codesdb =session.getdatabase( db.server, values(0))
If codesdb.isopen = False Then
Call codesDB.open("","")
End If
Set view = codesdb.getview("vwConfig") ''<---Hier krachts manchmal
Call view.refresh
Set confdoc = view.getdocumentbykey("General*Path")
If confdoc Is Nothing Then
Msgbox "Konfigurationsdokument läßt sich nicht öffnen: General*PathC"
End If
-
Hi,
Wenn es kracht, dann wäre Intressant, ob die Datenbank die angezogen wird, auch wirklich angezogen wird. Gemeinerweise ist es so, das wenn man versucht eine Datenbank anzusprechen die nicht exisitert, dann kann man alles machen auch db.open("","") und erst wenn eine View angesprochen wird, oder irgendwas anderes, dann knallt es, weil Domino ein Leeres DB-Objekt in db erstellt hat. Dies kannst du einfach prüfen, indem du z.B db.Title abfragst und der ist dann leer. Das ist ja bei einer vorhandenen Datenbank auf garkeinen Fall so. Wenn also db.Title leer ist, dann hast du eben die Datenbank nicht erwischt. Dann liegt der Fehler wo anders und du must dann nach dem Grund an einer anderen Stelle suchen.
Du prüfst z.B. nicht ob values(0) leer ist, also das Problem in der anderen Datenbank liegt, wo du den inhalt von values(0) kriegst.
Wenn noch Fragen offen sind, dann melde dich.
-
So? Bist Du da so sicher, dass der db.title in gar keinem Fall leer ist? Schau mal Deine Bookmark.nsf an (lokal)
-
Mein Problem ist es, dass es mal funktioniert und mal nicht.
Mit dem Abfangen der Fehlermeldung ist es leider nicht getan, sondern ich müßte die Ursache der Fehlermeldung herausfinden.
Die Datenbank, auf die zugegriffen werden soll, ist definitiv da. Wenn der Anwender sie direkt öffnet, bekommt er sie auch sauber auf, und mein Fehler tritt auch nicht mehr auf, bis irgendwann später, meistens am Morgen.
Was kann diesen Fehler auslösen?
Vermutung war, dass die Tasks Updall und Update nicht sauber laufen, was aber nicht der Fehler zu sein scheint, weil sie laufen und keine Fehler melden.
Kann noch eine Servereinstellung dafür Verantwortlich sein?, und wenn ja, Welche?
-
irgendwann später, meistens am Morgen
was sagt denn das LOG File dazu ?? Läuft da über die DB evtl. gerade eine Konsistenzprüfung ??
eknori
-
Das Log scheint soweit sauber zu sein, keine Konsistenz-Prüfung.
Die Anwendung wurde auf einen neuen Server umgezogen, aber das Problem tauchte erneut auf. Wie gesagt, zumeist morgens, aber zuweilen auch mal am Nachmittag.
-
Das Problem scheint sich auf einige Eckdaten reduzieren zu lassen
Partitionierte Server unter AIX
Transaktionslogging aktiviert
Hat jemand in diesem Bereich Erfahrungen?
-
Hi mahonri,
ich hab partitionierte Server auf AIX allerdings ohne Transaction logging.
Diese Probleme habe ich allerdings nicht.
Was mir dazu spontan einfällt:
Hast Du bei den Dateinamen Groß/Kleinschreibung berücksichtigt? Das wird gerne übersehen und Domino reagiert in dem Punkt auf AIX sehr willkürlich. Eben: Manchmal geht's, manchmal nicht.
Auch wenn man sich die Dateinamen automatisch holt, kann es da Probleme geben. Am einfachsten ist es, man entscheidet sich bei allen Datenbanken für entweder Groß- oder Kleinschreibung und wandelt in der Programmierung alle Dateinamen, die einem das System liefert, entsprechend um (Uppercase, lowercase).
(Sorry ich bin keine Programmiererin, kann es also nicht genauer erklären)
Viele Grüße
Sophia
-
Stimmt, die Gross-Kleinschreibung ist unter allen unix-Varianten ab und zu ein Problem, selbst mit Notes Bordmitteln. Da kann es schon mal vorkommen, dass man eine Datenbank im Datenbanköffnen-Dialog anwählt und man bekommt die Fehlermeldung "... nicht gefunden ...." zurück.
Es gibt jemanden, der sich damit speziell intensiv beschäftigt hat: Daniel Nashed. Er hat auch ein Tool zur Verfügung, welches das Problem über die API löst. Für Linux hat er es bisher gratis abgegeben. Für AIX ist es wahrscheinlich kostenpflichtig. Auf seiner Website ist auch eine Erklärung zu dem Phänomen:
http://www.nashcom.de/nshweb/pages/nshextlo.htm
-
Hallo Semeaphoros,
Du scheinst eine unergründliche Quelle des Wissens zu sein :D
Ich habe den Link gleich an meine Programmierer geschickt. Vielleicht kann man das Tool einsetzen und spart sich damit viele Probleme.
Viele Grüße
Sophia
-
Sophia
Vielen Dank fürs Kompliment, gewisse Sachen bleiben einfach hängen ..... und wenn man auf Leute, die etwas können, so wie Daniel, dann merkt man sich die natürlich :-) Daniel ist für solch "merkwürdige" Probleme wirklich eine sehr interessante Quelle, es gibt europaweit meines Wissens nur 2 Leute, die so virtuos mit API, Sicherheitsproblemen und Konfigurationsproblemen umgehen können, einer ist Daniel, der andere ist George Chiesa (in England), den die alten Lotus-Partner hier vielleicht noch als Betreuer des Lotusnetzwerkes kennen (lang lang ists her).
Jens
-
Die Groß-Klein-Schreibung ist nicht die Ursache.
Haben mittlerweile unterschiedliche tem-Verzeichnisse für den Ansichtenaufbau angegeben, was aber leider auch nicht zur Löscung des Problemes geführt hat.
-
Also wenn Du wirklich nicht weiterkommst, würde ich Dir empfehlen, Daniel Nashed zu engagieren. Der Mann ist zwar teuer, aber normalerweise lohnt es sich bei derart merkwürdigen Problemen.
-
Wir haben die Anwendung nochmals neu auf den Server gebracht diesmal alles nin Kleinbuchstaben und es funktioniert.
Haben wohl eine Datenbank ausgelassen
Werde nächstes mal gründlicher sein müssen
Danke an alle
-
Dann installierrt doch mal so schnell wie möglich das Gratis-Tool von Daniel, das ich weiter oben erwähnt habe, dann wird das mit der GROSSklein Schreibung ja geregelt.