alexanderan
I'm new here

ACL-Datenbank bei mehreren Generierungsaufträgen

Wir verwenden diverse Generierungsaufträge (Voll- und Teildeployments) innerhalb unseres Projektes. Die Problematik ist nun, dass für jeden Generierungsauftrag ein eigenes ACL-File erzeugt wird, wenn man das Feature "ACL-DB nutzen" verwendet (siehe auch https://community.e-spirit.com/thread/1615)

Die erzeugten ACL-Files müssen für die Verwendung des Security-Moduls auf die ausliefernden Webserver übertragen werden. Dafür steht von Seiten e-Spirit das CRC-Servlet zur Verfügung. Nach meinem derzeitigen Kenntnisstand sorgt dieses Servlet auch dafür, dass die ACL-Files der diversen Generierungsaufträge in ein File auf dem Webserver zusammengeführt werden.

Nun meine Fragen:

Wie verhält es sich mit der ACL-DB, wenn man für all seine Generierungsaufträge das gleiche Verzeichnis angibt?

Verwenden alle Generierungsaufträge dann die gleiche Datenbasis?

Bekomme ich dann nur ein ACL-File, dass dann noch auf die Webserver übertragen werden muss?

Kopiert das CRC-Servlet das komplette ACL-File auf die Webserver oder nur einen Teil?

Natürlich ist mir bewusst, dass man hier verhindern muss, dass keine zwei Generierungsaufträge gleichzeitig laufen. Sonst läuft man Gefahr fälschlicherweise neuere Dateien mit äteren zu überschreiben.

0 Kudos
4 Replies
feddersen
Community Manager

Ich fange mal unten an, dann sollten sich die oberen Fragen erledigen:

Das CRC-Servlet überträgt nicht die ACL-DB, sondern es gibt einen Mechanismus, der die Inhalte der ACL-DB auf dem FirstSpirit-Server in die ACL-DB auf dem Webserver überträgt/synchronisiert. Bei einer Vollgenerierung wird ein Komplettabgleich (mit Löschen) vollzogen. Bei einer Teilgenerierung werden nur die neuen Informationen übertragen.

Sofern sie eine Teilgenerierung durchführen, können Sie also nie einfach nur die ACL-DB übertragen, sondern müssen (über die dokumentierten Methoden im Security-Modul) einen Abgleich durchführen.

Da wir ja bereits über ihr Szenario gesprochen haben, hier noch ein Vorschlag:

Sie legen ja sowieso erst auf dem FirstSpirit-Server eine kompletten Webauftritts an, bevor Sie diesen deployen. Hierzu können Sie auch ein Deployment nutzen, was auch ein CRC-Deployment sein könnte. Somit bräuchten Sie sich nicht selbst um den Abgleich der ACL-Datenbank kümmern und könnten dann ganz einfach rsync zur Übertragung der Kopie auf das Livesystem.

0 Kudos

Ok, soweit bin ich bei Ihnen.

Das mit dem "lokalen Deployment" zur Zusammenführung der ACL-Datenbank hatten wir auch schon ins Auge gefasst.

Was mich nun noch interessiert:

Sind die von Ihnen angesprochenen "dokumentierten Methoden im Security-Modul" auch noch unter FS 5 verwendbar?

Wie sind die Erfahrungen bei Verwendung eines einzigen projektweiten Generierungsverzeichnisses?

Man hat in der Auftragsverwaltung die Möglichkeit ein Verzeichnis für den Auftrag anzugeben. Wird innerhalb des Auftrages ein Generierungstask ausgeführt, so landen die generierten Dateien im Staging-Verzeichnis des Projektes in einem Ordner mit dem angegebenen Namen (und nicht unter der Auftrags-ID)

Mit dem Verzeichnis für die ACL (unter FS-Root/data/schedule/) verhält es sich genauso.

Gebe ich nun für alle Aufträge mit Generierungstask den gleichen Verzeichnisnamen an, so erhalte ich nur ein einziges Generierungsverzeichnis des Projektes und nur eine ACL-DB.

0 Kudos

Andreas Alexander schrieb:

Was mich nun noch interessiert:

Sind die von Ihnen angesprochenen "dokumentierten Methoden im Security-Modul" auch noch unter FS 5 verwendbar?

Die dort dokumentierten Methoden sind momentan nicht Teil der Access- bzw. Developer-API und unterliegen somit auch nicht deren Stabilitätskriterien. In der Praxis haben sich diese Methoden aber bisher nicht geändert, Änderungen sind auch in nächster Zeit nicht zu erwarten.

Andreas Alexander schrieb:

Wie sind die Erfahrungen bei Verwendung eines einzigen projektweiten Generierungsverzeichnisses?

Man hat in der Auftragsverwaltung die Möglichkeit ein Verzeichnis für den Auftrag anzugeben. Wird innerhalb des Auftrages ein Generierungstask ausgeführt, so landen die generierten Dateien im Staging-Verzeichnis des Projektes in einem Ordner mit dem angegebenen Namen (und nicht unter der Auftrags-ID)

Mit dem Verzeichnis für die ACL (unter FS-Root/data/schedule/) verhält es sich genauso.

Gebe ich nun für alle Aufträge mit Generierungstask den gleichen Verzeichnisnamen an, so erhalte ich nur ein einziges Generierungsverzeichnis des Projektes und nur eine ACL-DB.

Das ist soweit richtig, hilft ihnen aber bei Teilgenerierungen nur bedingt, denn dann müssen sie ja trotzdem die ACL-DB mit den Livesystem abgleichen.

0 Kudos

Hallo Herr Alexander,

Andreas Alexander schrieb:

Man hat in der Auftragsverwaltung die Möglichkeit ein Verzeichnis für den Auftrag anzugeben. Wird innerhalb des Auftrages ein Generierungstask ausgeführt, so landen die generierten Dateien im Staging-Verzeichnis des Projektes in einem Ordner mit dem angegebenen Namen (und nicht unter der Auftrags-ID)

Mit dem Verzeichnis für die ACL (unter FS-Root/data/schedule/) verhält es sich genauso.

Gebe ich nun für alle Aufträge mit Generierungstask den gleichen Verzeichnisnamen an, so erhalte ich nur ein einziges Generierungsverzeichnis des Projektes und nur eine ACL-DB.

Hier ist es wichtig zu wissen, dass die ACL Datenbank nur einen schreibenden Zugriff zulässt. Wenn mehrere Aufträge parallel generieren und dabei in die ACL Datenbank schreiben, wird diese mit sehr hoher Wahrscheinlichkeit einen inkonsistenten Stand bekommen und nicht mehr benutzbar sein.

Das äußert sich dann darin, dass die entsprechenden Generierungen aus allen betroffenen Aufträgen nicht mehr ausgeführt werden können.

Ich kann Ihnen insofern nur dringend davon abraten mehrere Aufträge [bei Benutzung der ACL Datenbank] in das selbe Verzeichnis generieren zu lassen!

Viele Grüsse aus Dortmund,

  Holger Höbbel

0 Kudos