CiAgICA8IS0tIExpbmtlZEluIC0tPgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogICAgICAgIF9saW5rZWRpbl9wYXJ0bmVyX2lkID0gIjEyMzUwNzMiOwogICAgICAgIHdpbmRvdy5fbGlua2VkaW5fZGF0YV9wYXJ0bmVyX2lkcyA9IHdpbmRvdy5fbGlua2VkaW5fZGF0YV9wYXJ0bmVyX2lkcyB8fCBbXTsKICAgICAgICB3aW5kb3cuX2xpbmtlZGluX2RhdGFfcGFydG5lcl9pZHMucHVzaChfbGlua2VkaW5fcGFydG5lcl9pZCk7CiAgICA8L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgICAgKGZ1bmN0aW9uKCl7dmFyIHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF07CiAgICAgICAgICAgIHZhciBiID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CiAgICAgICAgICAgIGIudHlwZSA9ICJ0ZXh0L2phdmFzY3JpcHQiO2IuYXN5bmMgPSB0cnVlOwogICAgICAgICAgICBiLnNyYyA9ICJodHRwczovL3NuYXAubGljZG4uY29tL2xpLmxtcy1hbmFseXRpY3MvaW5zaWdodC5taW4uanMiOwogICAgICAgICAgICBzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGIsIHMpO30pKCk7CiAgICA8L3NjcmlwdD4KICAgIDxub3NjcmlwdD4KICAgICAgICA8aW1nIGhlaWdodD0iMSIgd2lkdGg9IjEiIHN0eWxlPSJkaXNwbGF5Om5vbmU7IiBhbHQ9IiIgc3JjPSJodHRwczovL3B4LmFkcy5saW5rZWRpbi5jb20vY29sbGVjdC8/cGlkPTEyMzUwNzMmZm10PWdpZiIgLz4KICAgIDwvbm9zY3JpcHQ+CiAgICA8IS0tIEVuZCBMaW5rZWRJbiAtLT4KICAgIA==
Generic filters
Exact matches only
Search in title
Search in excerpt
Search in content

Lastverteilung DeltaMaster Weboption

Bei der Nutzung der DeltaMaster Weboption übernimmt der DeltaMaster Service eine tragende Rolle. Er ist einerseits dafür zuständig, das Repository zu verwalten und den Benutzern die Anwendungen zur Verfügung zu stellen, für die sie berechtigt sind. Andererseits nimmt er MDX- oder SQL-Abfragen vom Webclient entgegen, um diese an die Datenbank weiterzuleiten und die Antworten wieder an den Webclient zurückzugeben. In großen Systemumgebungen von mehreren hundert Benutzern kann es dabei zu Engpässen kommen, weil der DeltaMaster Service mit der Bearbeitung zu vieler gleichzeitiger Anfragen beschäftigt ist. Dies äußert sich vor allem in zu langen Abfragezeiten. Um dem entgegenzuwirken, kann eine Art Lastverteilung auf mehrere installierte DeltaMaster-Serviceinstanzen vorgenommen werden. Wie dabei vorzugehen und was dabei zu beachten ist, soll der folgende Blogbeitrag aufzeigen.

Vorgehen

Installation DeltaMaster Weboption

Als Erstes sollte eine Installation der DeltaMaster Weboption oder des DeltaMaster Repository Service über die von Bissantz zur Verfügung gestellte Installations-Datei erfolgen. Damit wird bereits der erste Service korrekt installiert und konfiguriert. Um einen weiteren DeltaMaster Service installieren zu können, sind mehrere Schritte notwendig. Zuerst muss ein neues Programmverzeichnis für den zusätzlichen Service erstellt werden. In dieses Verzeichnis wird der Inhalt aus dem Programmverzeichnis des bereits vorhandenen DeltaMaster Service kopiert. In der gezeigten Abbildung lautet der Name des neuen Verzeichnisses „DeltaMaster 6 Service2“.

Abbildung 1 Windows-Explorer

Abbildung 1: Windows-Explorer

Anpassung DeltaMaster.Service.exe.config

Als Nächstes muss der Netzwerk-Port, an dem der zusätzliche DeltaMaster Service auf eine Verbindung wartet, angepasst werden. Dieser Port muss pro Service eindeutig sein und darf von keinem anderen Programm oder Dienst verwendet werden. Der Standard-Port für den DeltaMaster Service liegt auf Port 8000. Dieser kann bereits in Benutzung sein, z. B. wenn schon eine vorhandene Service-Instanz von DeltaMaster 5 installiert wurde. Im gezeigten Beispiel „horcht“ der erste Service auf Port 8001, der zweite Service auf Port 8002. Die Zuweisung des Ports und weitere Einstellungen können in der Datei „DeltaMaster.Service.exe.config“ vorgenommen werden, welche sich in jedem Service-Programmverzeichnis befindet. Dazu kann die Datei in einem beliebigen Editor geöffnet und der Port im Attribut „address“ im Bereich „<service…</service>“ entsprechend angepasst werden.

Abbildung 2 DeltaMaster.Service.exe.config - Bereich <service>

Abbildung 2: DeltaMaster.Service.exe.config – Bereich <service>

Falls ein zentrales Verzeichnis für Log- und Tracedateien verwendet wird, sollte zusätzlich im Bereich „<listeners>…</listeners>“ der Name der Tracedatei geändert werden, damit auftretenden Meldun-gen besser vom bereits installieren DeltaMaster Service unterschieden werden können.

Abbildung 3 DeltaMaster.Service.exe.config - Bereich <listeners>

Abbildung 3: DeltaMaster.Service.exe.config – Bereich <listeners>

Zusätzlich kann in der Datei „DeltaMaster.Service.exe.config“ jedem Dienst eine eigene Repository-Datenbank zugewiesen werden. Dies ist aber nicht empfehlenswert, da somit jede Analysesitzung mehrfach gespeichert und jede Einstellung in der DeltaMaster Repository Rollenverwaltung mehrfach vorgenommen werden müsste.
Um den DeltaMaster-Service als Dienst installieren zu können, müssen zusätzlich die folgenden Einträge in die DeltaMaster.Service.exe.config im Bereich <appSettings>…</appSettings> angefügt werden:

Die Bezeichnung im value-Attribut des Keys ServiceName entspricht dem Dienstnamen unter dem der neue Dienst im Dienst-Manager angezeigt wird, die Bezeichnung im value-Attribut des Keys Dis-playName entspricht dem Anzeigenamen.

Installation eines zusätzlichen DeltaMaster-Service

Nach dem Speichern der vorgenommenen Änderungen in der Datei DeltaMaster.Service.exe.config kann die Installation über die Batchdatei _install.bat aus dem Programmverzeichnis des neuen Service gestartet werden. Die Ausführung sollte mit Administratorrechten erfolgen, damit sichergestellt ist, dass alle notwendigen Berechtigungen zum Installieren von Diensten vorhanden sind. Im gezeigten Screenshot wurde die Installation über die Eingabeaufforderung (mit Administratorrechten) ausgeführt.

Abbildung 4 Eingabeaufforderung – Installation Service

Abbildung 4: Eingabeaufforderung – Installation Service

Anschließend wird im Dienste-Manager der neue Dienst, wie in der Config-Datei angegeben, angezeigt.

Abbildung 5 Dienst-Manager vor Anpassung

Abbildung 5: Dienst-Manager vor Anpassung

Achtung: Der neu installierte Dienst wird zu diesem Zeitpunkt noch nicht ausgeführt. Vor dem Starten sollte durch einen Doppelklick auf den Dienst das Eigenschaften-Fenster geöffnet und sichergestellt werden, dass der Starttyp auf „Automatisch“ steht. Somit wird der Dienst bei einem Neustart des Servers automatisch neugestartet.

Abbildung 6 Diensteigenschaften - Allgemein

Abbildung 6: Diensteigenschaften – Allgemein

Außerdem muss auf der Registerkarte Anmelden, das Konto, unter dem der Dienst ausgeführt werden soll, angegeben werden. Dabei kann für alle DeltaMaster-Service-Dienste das gleiche Konto verwendet werden.

Abbildung 7 Diensteigenschaften – Anmelden

Abbildung 7: Diensteigenschaften – Anmelden

Nach dem Bestätigen der Änderungen mit Ok, kann durch Rechtsklick auf den relevanten Dienstein-trag und anschließendem Auswählen von „Starten“ im Kontextmenü, der neue DeltaMaster Service gestartet werden.

Abbildung 8 Dienst-Manager nach Anpassung

Abbildung 8: Dienst-Manager nach Anpassung

Anpassung Web.config

Als letzter Schritt muss dem Webclient mitgeteilt werden, dass es zwei oder mehrere DeltaMaster-Service-Instanzen gibt, welche von ihm genutzt werden können. Dazu müssen in der Konfigurationsdatei des Webservice, der Datei web.config, verschiedene Anpassungen und Erweiterungen vorgenommen werden. Die Datei ist im Installationsverzeichnis des Webservice zu finden und kann eben-falls mit einem beliebigen Editor bearbeitet werden. Es muss keine separate Kopie des Verzeichnisses erstellt werden.
Folgende Änderungen in der web.config sind wichtig:
Der komplette Bereich von <endpoint… bis </endpoint> sollte vom vorhandenen Service kopiert und als neuer Bereich unterhalb eingefügt werden. Anschließend muss im kopierten Bereich der Eintrag im name- und im address-Attribut angepasst werden, im gezeigten Beispiel wurde an den vorhandenen Namen einfach eine 2 angehängt -> „NetTcpBinding_DeltaMaster2“ und die Portnummer unter auf 8002 geändert (wie in der DeltaMaster.Service.exe.config).

Abbildung 9 web.config – Bereich <endpoint>

Abbildung 9: web.config – Bereich <endpoint>

Im Bereich <appSettings>, ganz am Anfang der Datei web.config, wird der oben eingetragene Name („NetTcpBinding_DeltaMaster2“) an den Wert des Attributs <add key=”BissantzServiceUrl” durch ein Pipe-Zeichen (|) getrennt angefügt.

Abbildung 10 web.config - Bereich <appSettings>

Abbildung 10 web.config – Bereich <appSettings>

Nach dem Speichern der Datei wird nun jede neue Anmeldung vom Webclient im Wechsel auf die zwei vorhandenen DeltaMaster-Dienste verteilt. Die erste Anmeldung wird an den ersten Dienst, die zweite Anmeldung an den zweiten Dienst, die dritte Anmeldung wieder an den ersten Dienst usw. weitergeleitet (Round-Robin-Verfahren). Es wird keine „echte“ Lastverteilung durchgeführt, bei der die Anmeldung an den Dienst weitergeleitet wird, der am wenigsten ausgelastet ist.

Um zu prüfen ob die vorgenommenen Änderungen aktiv sind, können im Webbrowser nacheinander zwei Registerkarten geöffnet werden, in denen jeweils die DeltaMaster-Weboption gestartet wird. Über den Info-Button in der oberen Menüleiste kann das Fenster „Über DeltaMaster“ aufgerufen werden. Hier wird unter Service Version der verbundene Service mit der entsprechenden Portnummer angezeigt.

Abbildung 11 DeltaMaster Weboption - Service 1

Abbildung 11: DeltaMaster Weboption – Service 1

Die angezeigte Portnummer sollte sich in den zwei Fenstern unterscheiden.

Abbildung 12 DeltaMaster Weboption - Service 2

Abbildung 12: DeltaMaster Weboption – Service 2

Lizenzierung

Wie viele parallele Dienste installiert und genutzt werden, ist vor allem von der Anzahl der aktiven Benutzer und der gleichzeitigen Zugriffe abhängig. Die aktuelle Empfehlung lautet, pro 50 gleichzeitigen Zugriffen einen separaten Dienst zur Verfügung zu stellen. Weiterhin ist zu beachten, dass bei der Nutzung der DeltaMaster 5 Weboption jeder installierte Dienst eine eigene DeltaMaster-Service-Lizenz benötigt. In DeltaMaster 6 ist bereits in jeder Reporting- oder Planungslizenz eine DeltaMaster-Service-Lizenz enthalten.