Sektionen
Benutzerspezifische Werkzeuge
Sie sind hier: Startseite Support Dokumentation docs Zope: Plone Ordner als ZODB/ZEO Mount Point

Zope: Plone Ordner als ZODB/ZEO Mount Point

Einen ATFolder innerhalb von Plone als ZODB Mount Point anlegen...

Eine ZODB für den ZODB Mount Point vorbereiten

Da man einen ZODB Mount Point nicht ohne weiteres als ATFolder in einem Plone anlegen kann, bedarf es hier eines kleinen Umweges.

Wir erstellen uns zunächst eine leere Zope Instanz und erweitern die zope.conf wie folgt:

<zodb_db emptyshare>
    <filestorage emptyshare>
        path ${buildout:directory}/var/filestorage/emptyshare.fs
    </filestorage>
    mount-point /emptyshare
</zodb_db>

Für Buildout ereichen wir dies über die folgenden Zeilen in der buildout.cfg im Abschnitt "instance":

zope-conf-additional =
<zodb_db emptyshare>
     <filestorage emptyshare>
         path ${buildout:directory}/var/filestorage/emptyshare.fs
    </filestorage>
    mount-point /emptyshare
</zodb_db>

Jetzt starten wir Zope und fügen im ZMI einen ZODB Mount Point hinzu:

Hier den Haken bei Create new folders if the mounted objects don't yet exist setzen!

Der Mountpoint wird uns als Zope Ordner im ZMI dargestellt und in diesem legen wir jetzt eine Plone site mit dem Namen plone an. Dann öffnen wir über den view-Tab die Plone Oberfläche, in der wir einen Ordner mit dem Namen share anlegen.

Die vorbereitete ZODB integrieren

Jetzt stoppen wir die Zope-Instanz und kopieren die Datei emptyshare.fs ins Verzeichnis unseres ZEO-Servers und bennen die Datei in share.fs um.

Nun konfigurieren wir den ZEO-Server wie folgt:

zeo-conf-additional =
    <filestorage share>
        path ${buildout:directory}/var/filestorage/share.fs
    </filestorage>

Und den Satelliten wie folgt:

zope-conf-additional =
  <zodb_db share>
      mount-point /site/share:/emptyshare/plone/share
      container-class Products.ATContentTypes.content.folder.ATFolder
      <zeoclient>
         server 127.0.0.1:8200
          storage share
          name share_client_satellite01
          var ${buildout:directory}/var
          cache-size 20MB
      </zeoclient>
  </zodb_db>

Der Satellit hat eine eigene ZODB (Data.fs) und bekommt den Share als Mount Point über den ZEO Server.

Nun starten wir den ZEO-Server und den ZEO-Client. Wir legen als erstes auf dem Satelliten eine Plone site mit dem Namen site an. In der Plone site fügen wir dann den ZODB Mount Point mit dem Namen share hinzu und lassen hier den Haken bei Create new folders if the mounted objects don't yet exist deaktiviert!

Nun haben wir im ZMI schon den Plone Ordner als ZEO Share und nach neu aufbauen des portal_cataloges sieht man diesen auch in Plone.

 

Nach diesem Muster lassen sich nun beliebig viele Satelliten mit dem geshareten Ordner ausstatten. Die Daten werden dann automatisch über den ZEO auf allen Portalen zur Verfügung gestellt.

Bemerkung:

Damit neue Objekte auf den anderen Portalen erscheinen, ist mindestens eine Aktualisierung des Kataloges erforderlich. Da dies nicht automatisch auf den anderen Satelliten geschieht, muss hierfür separat gesorgt werden!