Domino 9 und frühere Versionen > Administration & Userprobleme

Database <Server>!!´<Path> has not been opened yet

(1/4) > >>

mahonri:
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.

Lossa:
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.

mahonri:
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    
   

Lossa:
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.

Semeaphoros:
So? Bist Du da so sicher, dass der db.title in gar keinem Fall leer ist? Schau mal Deine Bookmark.nsf an (lokal)

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln