Autor Thema: [gelöst] DB für User auf anderen Server öffnen  (Gelesen 3413 mal)

Offline LordKiri

  • Senior Mitglied
  • ****
  • Beiträge: 252
  • aka Andreas
Hallo zusammen,

ja ich komm schon wieder mit etwas, dass es im FOrum schon öfters gibt, ich komme trotzdem nicht weiter.
Folgendes Szenario, ich habe eine DB mit Repliken auf mehreren Servern und eventuell auch noch eine lokal.
Wenn der User nun die DB nicht auf seinem Mailserver öffnet, dann wird die DB geschlossen und die auf dem Mailserver geöffnet (zumindest theoretisch).

Gelöst über den Code im DB-Script\PostOpen:
Code
Set db = Source.Database

a_objRoles = Evaluate(|@UserRoles|)
objRet = ArrayGetIndex(a_objRoles, "[Admin]", 1)
	
If IsNull(objRet) Then
	a_objMailSrv = Evaluate(|@MailDbName|)
	strDBSrv = db.Server
		
	If UCase(a_objMailSrv(0)) <> UCase(strDBSrv) Then
		Set dbTmp = New NotesDatabase("","")
			
		Call dbTmp.Openbyreplicaid(a_objMailSrv(0), db.Replicaid)
			
		If dbTmp.isopen Then

			Set db = Nothing
				
			Call Source.Close
			Print "Database closing"
				
			Call ws.Opendatabase(a_objMailSrv(0), dbTmp.Filepath, , , True)
			Print "Database server changed!!!"
				
			Exit Sub
		End If
	End If
End If

Nur öffnet er die DB auf dem Mailserver ohne Rahmengruppe im Hintergrund, mit der Meldung in der Statusleiste(?) unten : "Der Inhalt der Rahmengruppe konnte nicht geladen werden. Datenbank wird ohne Rahmengruppe geöffnet."
Und noch schlimmer die "Falsche" bleibt offen.

Ist jetzt irgendwie nicht so hübsch, was mache ich falsch?

Warum wir das so machen (möchten), in erster Linie, dass die Leute keine lokale Repliken öffnen, wenn sie online sind.

Danke im Voraus...
« Letzte Änderung: 09.10.18 - 13:31:14 von LordKiri »

Offline CarstenH

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 672
  • Geschlecht: Männlich
Re: DB für User auf anderen Server öffnen
« Antwort #1 am: 19.09.18 - 17:42:34 »
Code
	Dim ws As New NotesUIWorkspace
	Dim db As New NotesDatabase( "", "" )
	Call db.OpenMail
	Call ws.OpenDatabase(db.Server,db.FilePath,,,True)

Öffnet die Mail-DB immer so, wie sie in der aktuell aktiven Arbeitsumgebung angegeben ist.
OpenMail ist übrigens das Script Pendant zu @MailDbName ohne das hässliche Evaluate ;)

Offline LordKiri

  • Senior Mitglied
  • ****
  • Beiträge: 252
  • aka Andreas
Re: DB für User auf anderen Server öffnen
« Antwort #2 am: 20.09.18 - 07:57:33 »
Hallo,

danke für die schnelle Antwort, aber ich glaube ich habe mich nicht eindeutig ausgedrückt.
Es geht nicht um die Maildatenbank, ich benutze nur die Maildatenbank, um mir den "richtigen" Server zu besorgen....


Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: DB für User auf anderen Server öffnen
« Antwort #3 am: 20.09.18 - 09:07:54 »
Vermutlich ist es ein Reihenfolgeproblem. Ich würde das Schließen der Datenbank im  PostOpen vornehmen, dort globale Variablen für die neu zu öffnende Datenbank setzen, und so spät wie möglich (vielleicht im Terminate) bei gesetzten globalen Variablen die Datenbank öffnen. Wenn das immer noch zu früh ist, würde ich dort mit Formelsprache einen Agenten starten, der das Neu-Öffnen vornimmt, der läuft m.W. noch später

Offline LordKiri

  • Senior Mitglied
  • ****
  • Beiträge: 252
  • aka Andreas
Re: DB für User auf anderen Server öffnen
« Antwort #4 am: 20.09.18 - 10:15:36 »
Hallo,

habe es jetzt so probiert, mit dem "Terminate".
Die "falsche" Datenbank geht einfach nicht zu, er führt deswegen auch das "Terminate" gar nicht aus.

Schließe ich dann die Datenbank von Hand, bekomme ich die Fehlermeldung "Sie können kein Verzeichnis zu Ihrem Arbeitsbereich hinzufügen".

Offline ronka

  • Senior Mitglied
  • ****
  • Beiträge: 377
  • Was macht der hier denn, muß der überall sein ?
    • das nächste DominoCamp kommt in Juni 2023
Re: DB für User auf anderen Server öffnen
« Antwort #5 am: 20.09.18 - 13:40:00 »
das Event Terminate ist für den fall nicht sinnvoll. Es wird ausgeführt NACHDEM der DB geschlossen würde.

Du kkannst auch nur etwas schließen wenn es im Fokus ist, also zuerst schließen, dann das andere öffnen.
das neueste von Notes und Domino auf den DominoCamp vom 19 bis 21 Juni 2023 auf www.DominoCamp.de

Offline Ralf_B

  • Aktives Mitglied
  • ***
  • Beiträge: 144
  • Geschlecht: Männlich
Re: DB für User auf anderen Server öffnen
« Antwort #6 am: 20.09.18 - 17:43:00 »
Hallo LordKiri

Dieses Vorhaben hatte mal ein Kunde vor ein paar Jahren.
Fazit: Rein mit Notes Bordmitteln war immer entweder die eigentliche DB noch offen und ev. auch im Vordergrund oder es war unzuverlässig und ev auch as falsche gestapelte Icon oben ........    und vieles mehr.
Das Resultat war, den Support von lokalen Repliken nicht zu unterstüzen (PIRC ist ja zum Glück verfügbar).

Denkbar (für Mich) ist nur das ganze so zu gestalten, dass die DB ein (vb/Java...) Script auf dem PC (Netzlaufwerk) aufruft (ev. Konfig Datei erzeugt mit der aufgerufenenDB für das Script im eigenen Windows Task) und dieses Script dann die DB entsprechend öffnet nachdem die offene DB geschlossen wurde.
Aber , ob dies den Aufwand wert ist + die Scurity Restriktionen derart zu hintergehen, ist wirklich fraglich.
Das wäre ein grossees Sicherheitsrisiko.

Für Mail gibt es MMR und für DB's PIRC und halt keinen Support.

Gruß
Ralf


 

Offline LordKiri

  • Senior Mitglied
  • ****
  • Beiträge: 252
  • aka Andreas
Re: DB für User auf anderen Server öffnen
« Antwort #7 am: 28.09.18 - 10:42:30 »
Hallo nochmal alle zusammen,

nochmals danke für all die fleißigen Rückmeldungen.
Tatsächlich geht es mir nicht darum, dass alte (gelöschte) Dokumente wieder repliziert werden. Es geht einfach darum zu verhindern, dass solche Themen auftreten wie:

"ich habe die Änderung an dem Dokument in der Datenbank eingepflegt, Herr XYZ sieht die aber nicht" oder
"Warum kann Frau ZXY den Kontakt in dem allgemeinen Adressbuch nicht sehen, ich habe den doch schon vor 15 Minuten erstellt?"

Wir haben hier schon echt viel getan (Schulung der MA und so weiter) und auch rot, dick und fett "Lokale Datenbank" anzeigen lassen, wenn die Leute lokal unterwegs sind.
Aber das einzige das funktioniert ist die Leute einfach direkt auf die Server umzuleiten, wenn sie online arbeiten, die Replizierung dahinter (periodisch und beim öffnen und schließen des Clients) funktioniert eigenlich gut und zuverlässig.

Habe parallel von Bernhard (koehlerbv) eine Mail bekommen und die DB etwas umstrukturiert. Jetzt tut es auch das was es soll und das auch zumindest so zuverlässig, dass ich damit leben kann.

Der eigentliche Code für das schließen der Datenbank und das öffnen der Replik auf dem (anderen) Server habe ich in das Postopen der Navigation verfrachtet.
Vermutlich führt Notes weiteren Code noch aus und schließt deswegen die Datenbank nicht, im Postopen der Navigation ist das durch und die Datenbank wird korrekt geschlossen und (auch kaum für den User sichtbar) die andere geöffnet.

Gruß
Andreas

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz