Das Notes Forum

Domino 9 und frühere Versionen => Administration & Userprobleme => Thema gestartet von: mahonri am 01.10.03 - 14:31:55

Titel: Database <Server>!!´<Path> has not been opened yet
Beitrag 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.
Titel: Re:Database <Server>!!´<Path> has not been opened yet
Beitrag von: Lossa am 02.10.03 - 16:39:04
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.

Titel: Re:Database <Server>!!´<Path> has not been opened yet
Beitrag von: mahonri am 02.10.03 - 17:14:39
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    
   
Titel: Re:Database <Server>!!´<Path> has not been opened yet
Beitrag von: Lossa am 02.10.03 - 21:01:01
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.

Titel: Re:Database <Server>!!´<Path> has not been opened yet
Beitrag von: Semeaphoros am 02.10.03 - 21:26:02
So? Bist Du da so sicher, dass der db.title in gar keinem Fall leer ist? Schau mal Deine Bookmark.nsf an (lokal)
Titel: Re:Database <Server>!!´<Path> has not been opened yet
Beitrag von: mahonri am 06.10.03 - 08:09:56
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?
Titel: Re:Database <Server>!!´<Path> has not been opened yet
Beitrag von: eknori am 06.10.03 - 08:19:59
Zitat
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
Titel: Re:Database <Server>!!´<Path> has not been opened yet
Beitrag von: mahonri am 06.10.03 - 08:24:29
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.
Titel: Re:Database <Server>!!´<Path> has not been opened yet
Beitrag von: mahonri am 09.10.03 - 16:40:59
Das Problem scheint sich auf einige Eckdaten reduzieren zu lassen

Partitionierte Server unter AIX
Transaktionslogging aktiviert

Hat jemand in diesem Bereich Erfahrungen?
Titel: Re:Database <Server>!!´<Path> has not been opened yet
Beitrag von: sophiasw am 09.10.03 - 17:08:45
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
Titel: Re:Database <Server>!!´<Path> has not been opened yet
Beitrag von: Semeaphoros am 09.10.03 - 17:54:42
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
Titel: Re:Database <Server>!!´<Path> has not been opened yet
Beitrag von: sophiasw am 10.10.03 - 18:31:21
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
Titel: Re:Database <Server>!!´<Path> has not been opened yet
Beitrag von: Semeaphoros am 10.10.03 - 19:34:44
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
Titel: Re:Database <Server>!!´<Path> has not been opened yet
Beitrag von: mahonri am 15.10.03 - 11:53:04
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.
Titel: Re:Database <Server>!!´<Path> has not been opened yet
Beitrag von: Semeaphoros am 16.10.03 - 20:17:05
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.
Titel: Re:Database <Server>!!´<Path> has not been opened yet
Beitrag von: mahonri am 05.12.03 - 16:25:06
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
Titel: Re:Database <Server>!!´<Path> has not been opened yet
Beitrag von: Semeaphoros am 05.12.03 - 16:28:54
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.