Database ..... has not been opened yet!!!!

  • hallo alle zusammen


    ich habe ine problem und ich krieg es nicht gelöst


    ich habe einen agenten geschrieben, welcher in einer datenbank dokumente liest und in einer anderen datenbank, anhand dieser dokumente erzeugen soll.


    das script läuft, da ich es in einen button eingbaut habe um es zu testen, doch solbad es im agenten läuft bringt er die oben angeführte Fehlermeldung.


    der benutzer, unter dem der agent läuft, hat in beiden datenbanken manager-rechte so wie der server auch


    der benutzer hat auch zugriff auf beide server


    hat jemand eine idee


    mfg stefan



    hier ein der Teil des Scripts an dem Probleme gibt :


    Set Database = New NotesDatabase("Server","Database.nsf")


    If Database Is Nothing Then
    Print "Die Datenbank konnte nicht gefunden werden"
    Exit Sub
    End If

    Call doc.ComputeWithForm(True, False)
    Call doc.Save(True, True)
    Call doc.CopyToDatabase(Database)

  • ja


    die server sind auch auf jeweils dem anderen eingetragen


    sind beide in der selben Domäne


    ich hab den agenten auch schon auf nen anderen server gelegt
    genau das selbe.


    aber wie schon gehabt...als Button Script läufts

  • Ja, ganz einfach:


    Läuft es in einem Button bzw wird vom Benutzer manuell gestattet läuft das Script mit seinen Rechten, d.h. wenn er Zugriffsrechte auf beide Server und Datenbanken hat wird es gehen.


    Läuft es dagegen in einem Agenten auf dem Server dann greifen hier mehrere Sicherheitseinstellungen:


    1. Wer darf die entsprechenden Agenten ausführen ? Serverdokument unter Security
    2. Zugriff auf die Datenbank in der der Agent ausgeführt wird des Signers (ACL)
    3. Beim Zugriff auf einen anderen Server:
    Zugriff des Signers auf die Zieldatenbank
    Eintrag des Servers auf dem der Agent läuft unter dem Punkt Trusted Servers im Bereich Security des Zielservers


    Wichtig beim Punkt 3 ist:
    Das hat nichts damit zu tun ob der Quellserver überhaupt auf den Zielserver zugreifen kann, sondern mit dem ab 6 neu eingeführten Eintrag Trusted Servers welcher definiert, ob Agenten die auf den dort angegebenen Servern auf den aktuellen Server per Agenten zugreifen dürfen

  • ok...


    -also wie als Trusted Server ist er eingetragen
    -Server und Benutzer haben manager auf beiud Datenbanken
    -der benutzer unter dem der Agent läuft ist im Serverdokument bei unrestricted methods und folgende eingetragen



    Wie meinst du das???


    [quote]
    taurec schrieb:


    2. Zugriff auf die Datenbank in der der Agent ausgeführt wird des Signers (ACL)

  • Na dass der Unterzeichner des Agenten auch Zugriff auf die Datenbank haben muss in der er läuft.


    Sicher daß der Quellserver auf dem Zielserver als Trusted Server eingetragen ist ?


    Was sagt das Log des Zielservers ?

  • Ich fürchte, es wird hier grad ein wenig ins Blaue geraten...


    Du prüfst ab, ob das zurück gelieferte NotesDatabase-Objekt Nothing ist. Sollte die die Meldung nicht erscheinen, ist das Objekt zwar verfügbar, die DB aber halt noch nicht geöffnet. In der Hilfe ist zwar zu lesen "In most cases, the class library automatically opens a database for you.", allerdings gilt Obacht bei dem Zusatz "in most cases". Das heißt nichts anderes, als: "kann, muss aber nicht" und das wiederum heißt nichts anderes, als: "schön blöd, wer sich drauf verlässt".


    Ich schlage daher vor, dass du anstatt ausschließlich auf Nothing zu prüfen, anschließend auf IsOpen prüfst und notfalls ein Open nachschiebst. Ich bin mir grad nicht sicher, ob man beides prüfen muss, oder ob IsOpen nicht auch ein False zurück gibt, sollte das Objekt Nothing sein, aber um wirklich sicher zu sein, wäre das der sauberere Weg.


    Wie IsOpen und Open zu verwenden sind, sollte sich eigentlich erschließen, aber auch dazu gibt die Hilfe Auskunft.


    Schönen Abend noch.

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • RockWilder


    Das in most cases bezieht sich auf die in der Designer Hilfe genannten Ausnahmen.
    Und wenn Pfad und Server Name korrekt sind und die Zugriffsrechte bzw Vertrauensstellungen stimmen dann liefert das niemals Nothing zurück und ist geöffnet.


    /EDIT


    Die meldung has not been opened yet taucht übrigens nur auf wenn die Datenbank existiert aber aus irgendeinem Grund nicht geöffnet werden konnte.
    Und da bleiben dann nur die genannten Punkte.
    Ein Open wird daran nichts ändern weil die Basis für das Öffnen fehlt

  • Erst einmal schönen guten Morgen


    RockWilder..


    habe schon jegliche möglichkeiten ausprobiert.
    Open, New Notesdatabase, Notesession.GetDatabase und Prüfungen IsOpen und Nothing


    taurec..


    habe auf alle drei Datenbanken, die auf der er läuft, die Zieldatenbank und die in der er die Dokumente liest, Manager Rechte..


    habe einen anderen Agenten geschrieben, der das Directory des Servers durchgeht, die Namen der Datenbanken ausgibt, das macht er, doch wenn er die Datenbank, die mit dem Namen übereinstimmt die ich öffnen möchte kommt die Meldung...


    Wo genau find ich diesen Eintrag Trusted Server????


    Kriege aber über Trace(über Namen und IP) von dem einen Server zum anderen Zugriff ohne Problem


    Danke aber schon mal sehr für eure Hilfe

  • Trusted Servers findest du auf der Security Seite ganz unten.


    Vorher meintest du doch dort steht der richtige Server drin, ist es etwa doch nicht so ?


    Wie ich vorher schon mal gesagt habe hat die Trusted Server Einstellung nichts mit der normalen Zugriffseinstellung der Server untereinander zu tun.


    Wenn die beiden Server sich über ein Trace finden ist das schön, sagt aber noch lange nicht, daß ein Agent des einen Servers Datenbanken auf dem anderen Server öffnen kann

  • Alles klar...


    hab grad mit meinen OberAdmin gefragt...


    in Tursted Server steht ne Guppe drin...


    hatt nur aif Serverzugriff, wer darf au den Server zugreifen geschaut...da steht er drin.


    doch bei vertraunswürdige Server in der Gruppe steht er nicht...
    jetzt müssen wir bis zum nächten Server Neustart warten und den teste ichs nochmal...


    Ich danke dir sehr für deine Hilfe und entschuldige,
    dass ichs so spät gerafft hab!!!


    Wie heisst es dich so schön "Große Mühlen mahlen langsam!"


    P.S :
    Hast dich schon mal mit Zugriff auf AS400 Datenbanken auseinandergesetzt??

  • Anmerkung: Wenn du nur Server einer Gruppe hinzufügst aber nicht im Serverdokument selbst etwas änderst brauchst du nicht bis zum Serverneustart zu warten. Es sollte ausreichen die Ansichtsindizies im Domino Directory zu aktualisieren, dann greifen die Änderungen bereits.

  • Gern geschene, deswegen hatte ich da auch so genau nachgefragt, wo denn die Server eingetragen sind.
    Weil unter einem 5er System gab es diesen Eintrag noch gar nicht, weswegen er bei vielen leer ist oder einfach pro forma ne Gruppe drinsteht


    Was genau in Bezug auf AS400 Datenbankzugriff interessiert dich denn ?


    Idealerweise mach dazu aber bitte einen neuen Thread auf