Joolap Adminhandbuch

Joolap-Administrationshandbuch

mit SuperX als Datengrundlage

 

 

w w w . M e m T e x t . d e

 


http://joolap.memtext.de

Version

1.4

Stand

20.3.2014


Film zur Installation des Joolap-Kern-S-Moduls
Film zur Installation des Joolap-Kernmoduls
Film zur Installation des Joolap-COB-S-Moduls
Film zur Installation des Joolap-COB-Moduls

Film zur Installation des Joolap-SOS-S-Moduls
Film zur Installation des Joolap-SOS-Moduls

 

Inhaltsverzeichnis

Inhaltsverzeichnis

1Grundlagen       

1.1Serverkombination Web- und Datenbankserver       

1.1.1Grundlegender Aufbau       

1.1.2Verschlüsselung       

2Modulstruktur       

3Installation einer Joolap-Serverkombination       

3.1Installation auf SuperX-Seite       

3.1.1Joolap-Kern-S       

3.1.2Joolap-COB-S       

3.1.3Joolap-SOS-S       

3.1.4Joolap-SVA-S       

3.1.5 Joolap-KENN-S       

3.1.5.1Installation       

3.1.5.2Hinweise zur Datenhaltung Joolap-KENN       

3.1.5.2.1Überblickswürfel Verteilbuchungen       

3.1.5.2.2Überblickswürfel Primärkosten kalk. Abschreibungen       

3.1.5.2.3Externe Kostenstelle       

3.1.6Joolap-FIN-S        

3.1.6.1Installation       

3.1.6.2Hinweise zur Datenhaltung        

3.2Installation des Joolap-Datenbankservers       

3.2.1Fall 1: Joolap auf dem gleichen Rechner wie SuperX-Datenbank       

3.2.2Fall 2: Joolap auf einem separaten Rechner       

3.2.3Anpassen der JOOLAP_ENV und Start des Joolap-Servers        

3.2.4Admin-Passwort ändern       

3.3Installation der Joolap-Module auf Joolap-Seite       

3.3.1Joolap-KERN       

3.3.2Joolap-COB       

3.3.3Joolap-SOS       

3.3.4Joolap-SVA       

3.3.5Joolap-KENN       

3.3.6Joolap-FIN       

3.3.7joolap.xml       

3.3.8Test des Client       

3.4Anpassungen auf dem Applikationsserver       

3.4.1JoolapDBServlet       

3.4.1.1Installation       

3.4.1.2JoolapExcelServlet       

3.4.1.3public/private key - Kontrolle       

3.4.2Konfiguration der Startseite       

3.4.3Erzeugung der Parameterdatei joolap.xml       

3.4.4Joolap in einem separatem Tomcat       

3.4.4.1Tomcat kopieren       

3.4.4.2server.xml       

3.4.4.3context.xml       

3.4.4.4TOMCAT_ENV       

3.4.4.5Sicherheit       

3.4.4.6Apache Anbindung       

3.4.4.6.1workers.properties       

3.4.4.6.2superx_mod_jk.conf       

3.5Mandantenfähigkeit       

3.5.1Installation in den SuperX-Datenbanken       

3.5.2Installation auf dem Applikationsserver       

3.5.3Installation auf Joolap-Seite       

3.5.3.1Einrichten der Umgebung       

3.5.3.2Erstellen von db.properties-Dateien       

3.5.3.3Anlegen der Joolap-Datenbanken       

3.5.3.4Installation der Joolap-Module        

4Upgrade       

5Serverbetrieb       

5.1Joolap-Datenbankserver       

5.1.1Start, Status, Stop       

5.1.2Probleme bei Start oder Stop       

5.1.3Falls die Datenbank nicht reagiert       

5.1.4Einrichten als Dienst       

5.1.5Migration auf neue HSQLDB-Version       

5.1.5.1Einrichtung des Joolap Servers       

5.1.5.2Konfiguration der Laderoutine       

5.2Update der SuperX-Datenbank       

5.2.1Variante 1: Gesamtupdate       

5.2.2Variante 2: Einzelupdate       

5.3Update der Joolap-Datenbank        

5.4Stand-Alone-Versionen       

5.5Sicherung des Joolap-Servers       

5.6Einrichten des Joolap-Servers als Dienst       

5.7Joolap-Parameterdatei erneuern        

5.8ETL-Test ausführen       

5.9Test im Client       

6Direktzugang zur Joolap-DB       

7Übersicht Modulupdate          

8Kontrolle des letzten Datenupdates       

9Rechte in Joolap       

9.1Allgemeines       

9.2Rechte für einzelne Würfel       

9.2.1User       

9.2.2Gruppen       

9.3Rechte für Joolap-Sachgebiete       

9.3.1Gruppen       

9.3.2User       

9.4Rechte auf Sichten       

10Troubleshooting       

10.1Probleme       

10.1.1Joolap startet nicht       

10.1.2Die Zahlen in Joolap stimmen nicht       

10.1.3Probleme mit Scripten       

10.1.4Standdatum falsch oder unbekannt       

10.1.5 Out of memory       

10.2Techniken       

10.2.1Zeilen/Spaltensummen kontrollieren       

10.2.2Wie kommen einzelne Zahlen zustande?       

10.2.3Fehleranalyse in Joolap Logdatei       

11 Joolap-Hintergründe       

11.1Faktentabellen, Dimensionen, Blueprints       

11.2Wie kommt joolap.xml zustande       

11.3Das Script runAndCheck.x       

12Versionshistorie       

13 Anhang       

13.1HSQLDB-DatabaseManager nutzen       

13.2SQLWorkbench Treiber manuell pflegen       

13.3Lizenzen       

 

1 Grundlagen

Joolap ist eine OLAP-Anwendung, die sich mit Daten aus dem Data Warehouse SuperX füllen läßt. Joolap benutzt keinen multidimensionalen Datenbankserver, sondern eine relationale Datenbank, HSQLDB. HSQLDB ist eine weit verbreitete OpenSource Datenbank, die in vielen Apache-Produkten und inzwischen auch in OpenOffice benutzt wird. Sie kann Datentabellen komplett in den Arbeitsspeicher laden, wodurch bei entsprechend schnellen Prozessoren eine gute Performance erreicht wird. Die Performance hängt also direkt von der verfügbaren Hardware ab. Wenn man sie bei sehr großen Datenbeständen weiter verbessern will, wäre es auch möglich zwei separate Server zu fahren, die jeweils nur einen Teil der Würfel bedienen.

Joolap ist im Auslieferungszustand eine "Hülle" mit nur wenigen Tabellen. Die Inhalte werden mit Hilfe der ETL-Mechanismen (Extraktion Transformation Laden)   von SuperX in den Server geladen. Die Funktionsweise ist vergleichbar mit der allgemeinen Arbeitsweise von SuperX: Rohdaten werden aus einem Basissystem entladen und über eine dateibasierte Schnittstelle in die Joolap-Datenbank übertragen. Anders als in SuperX greift Joolap dabei als Datenquelle nicht auf ein operatives System zu (z.B. HIS-COB), sondern auf die SuperX-Datenbank zu.

Es entsteht also ein hoch integriertes Paket, das auf die gleichen Scripte zugreift. Es ist daher für den Betrieb von Joolap nur wenig Know-How erforderlich, das über den allgemeinen SuperX-Betrieb hinausgeht.

Im Normalfall wird Joolap als Client-Serveranwendung mit Web- und Datenbankserver betrieben, Joolap kann aber auch lokal auf einem Rechner installiert werden und ohne Netzwerk laufen.

 

1.1 Serverkombination Web- und Datenbankserver

1.1.1 Grundlegender Aufbau

Eine Joolap-Serverkombination besteht aus

 

 

liefert die folgenden Dateien aus:

index.htm/joolapstart.htm

HTML-Seiten die den Aufruf von Joolap als Java-Applet enthält

joolap.jar

das eigentliche Programm

joolap.xml

Parameterdatei, die die Würfel beschreibt

 

Hierfür kann problemlos der Tomcat aus dem SuperX-Kernmodul benutzt werden.

Eine Joolap-Serverkombination kann auf dem gleichen Rechner wie eine SuperX-Datenbank installiert werden oder auf separaten Rechnern. In der Beschreibung der Installation wird auf beide Varianten eingegangen

 

Ein Client lädt sich die joolapstart.htm-Datei herunter, darin ist u.a. auch die   Adresse des Joolap-Datenbankservers angegeben (mit Portnummer). Joolap wird als Java Applet gestartet.

Falls Joolap nicht in einem geschützten Bereich läuft, ist es jetzt auch möglich, die Datenbankverbindung über das JoolapDBServlet herzustellen. Man hat eine 3-tier Architektur (Client, Applikationsserver, Datenbank) und braucht den Datenbankserver nicht nach außen freigeben.

 

1.1.2 Verschlüsselung

Verschlüsselung wird von Joolap 1.1 nicht direkt unterstützt. Zu Verschlüsselungsmöglichkeiten der HSQL-Datenbank wird auf die HSQLDB-Dokumentation verwiesen. Zur Verschlüsselung der Kommunikation kann man über das JoolapDBServlet auch eine HTTP-Verbindung nutzen, die dann per Apache- oder Tomcat-Verschlüsselung arbeitet.

2 Modulstruktur

Die Module für Joolap bauen auf den normalen Modulen für SuperX auf, d.h. zum SuperX-COB-Modul gibt es z.B. ein JOOLAP-COB-Modul, das nur die für Joolap benötigten Hilfstabellen und Schlüsseltabellen erzeugt.

Joolap-Module sind immer gesplittet in zwei Teile.

 

 

 

MODULNAME _s <<Versionsnr.>>.tar.gz

MODULNAME<<Versionsnr.>>.tar.gz

Beispiel joolap_cob _s 0.6.tar.gz

joolap_cob_s0.6.tar.gz 0.6.tar.gz_s0.6.tar.gz

Der Teil mit dem _s im Namen
(s wie SuperX oder source) wird auf dem SuperX-Rechner installiert und sorgt in der SuperX-Datenbank u.a. für die Vorbereitung von Dimensionen (wie Kostenart oder Geldgeber) und Würfel-Tabellen (auch cube-Tabelle oder Faktentabelle genannt, da darin die inhaltlichen Daten für den Würfelaufbau enthalten sind).

 

Der andere Teil ohne _s im Namen wird auf dem Rechner mit dem Joolap–Datenbankserver installiert, damit dieser sich die aktualisierten Daten aus der SuperX-Datenbank holen kann und ggfs. noch nötige Transformationen vornehmen kann.

 

 

Beispiele

Rechner mit SuperX-Datenbank

Rechner mit Joolap-Datenbankserver

joolap_kern_s

Grundlegende Tabellen für Joolap werden installiert.

(Dazu gehört die Tabelle joolap_blueprints , die später Vorlagen für alle Dimensionen enthält.

Views für grundlegende Dimensionen wie org_einheit,semester,jahr,monat, geschlecht werden angelegt.)

 

 

 

joolap_kern

Holt grundlegende

Systemtabellen für user,blueprints, Stand der Daten etc. aus superx und spielt sie in den Joolap-Datenbankserver ein.

 

 

joolap_cob_s

enthält Tabellen und Prozeduren zum Füllen von cob-Würfel-Tabellen, zusätzliche Vorlagen für die Dimensionen kostenart und geldgeber, etc.

joolap_cob

holt Würfeltabellen (busa_cube und vtbu_cube) aus SuperX und aktualisiert Dimensionen

joolap_sos_s

enthält Tabellen und Prozeduren zum Füllen von sos-würfel-Tabellen, Vorlagen für Dimensionen wie Hörerstatus, Hochschulzugangsberechtigung etc.

joolap_sos

holt Würfeltabellen aus SuperX und aktualisiert Dimensionen

joolap_sva_s

...

joolap_sva

...

joolap_bau_s

joolap_bau

 

Auf dem Joolap-Rechner befindet sich jeweils im Unterverzeichis rohdaten des Moduls ein Script MODULENAME_unload.x zum Entladen aus SuperX, darin sind die Tabellen angegeben, die aus SuperX entladen werden sollen.

3 Installation einer Joolap-Serverkombination

Im Folgenden installieren wir zunächst das Joolap-Kernmodul und das Joolap-COB-Modul auf SuperX-Seite; danach installieren wir die entsprechenden Module auf Joolap-Seite. Der Einfachheit halber empfehlen wir, die Installation zunächst auf einem Rechner zu machen, und Sie sollten unbedingt eine graphische Umgebung zur Verfügung haben (X-Server z.B. mit KDE oder Gnome).

  Wir gehen davon aus, dass das SuperX-Kernmodul 4.0rc1 oder höher sowie ein beliebiges weiteres Modul installiert ist, z.B. das COB-Modul 1.0rc10.

Die Module für Joolap bauen auf den normalen Modulen für SuperX auf, d.h. zum SuperX-COB-Modul gibt es z.B. ein JOOLAP-COB-Modul, das nur die für Joolap benötigten Hilfstabellen und Schlüsseltabellen erzeugt. Deshalb ist für jedes Joolap-Modul die Voraussetzung, dass bereits ein passendes SuperX-Modul vorhanden ist.

 

Zur Benutzung der Scripte:

Ein Hinweis für die Benutzung der Scripte: Bitte führen Sie die Scripte generell im Pfad des Scripts aus, d.h. wenn z.B. in der Anleitung steht: Führen Sie das Script $JOOLAP_DIR/db/server/joolap_backup.x

aus, dann geben Sie immer ein:
cd $JOOLAP_DIR/db/server
joolap_backup.x

 

 

Da die Installation recht komplex ist mit verschiedenen Installationsvarianten ist es unbedingt notwendig, dass Sie mit dem SuperX-Kernmodul vertraut sind.

 

3.1 Installation auf SuperX-Seite

3.1.1 Joolap-Kern-S

Film zur Installation des Joolap-Kern-S-Moduls

Installieren Sie das Modul joolap_kern_s unter SuperX wie ein normales Modul. Entpacken Sie auf dem SuperX-Rechner die Joolap-Archive in $SUPERX_DIR

tar -xzvf joolap_kern_s<<Versionsnr.>>.tar.gz

tar -xzvf joolap_cob_s<<Versionsnr.>>.tar.gz

Übertragen Sie die folgenden Parameter in Ihre SuperX-SQL_ENV (an das Ende der Datei) und geben bei der Variable JOOLAP_INSTALLED_MODULES_ITEMS die gewünschten Joolap Module an, welche installiert und verwendet werden sollen.

#Module Liste:

#Hier werden die zu verwendende Joolap Module aufgelistet.

#Nur den Modulnamen ohne joolap oder joolap_s eintragen.

#Alles in Kleinbuchstaben

export JOOLAP_INSTALLED_MODULES_ITEMS="kern cob sos sva kenn fin"

 

#Achtung, die nächsten 4 Zeilen dürfen nicht geändert werden

declare -a JOOLAP_INSTALLED_MODULES=(`echo ${JOOLAP_INSTALLED_MODULES_ITEMS[*]}`)

JOOLAP_INSTALLED_MODULES_LIST=""

for i in ${JOOLAP_INSTALLED_MODULES[@]} ; do JOOLAP_INSTALLED_MODULES_LIST="$JOOLAP_INSTALLED_MODULES_LIST"_$i ; done

export JOOLAP_INSTALLED_MODULES_LIST

 

JOOLAP_KERN_S_PFAD=$SUPERX_MODULE/joolap_kern_s; export JOOLAP_KERN_S_PFAD

JOOLAP_KERN_S_ERRORDAT=joolap_kern_s_update.err

export JOOLAP_KERN_S_ERRORDAT

JOOLAP_KERN_S_BACKUP="false"

export JOOLAP_KERN_S_BACKUP

 

JOOLAP_SOS_S_PFAD= $SUPERX_MODULE/joolap_sos_s; export JOOLAP_SOS_S_PFAD

JOOLAP_SOS_S_ERRORDAT=$JOOLAP_SOS_S_PFAD/joolap_sos_s_update.err;

export JOOLAP_SOS_S_ERRORDAT

JOOLAP_SOS_S_BACKUP="false"

export JOOLAP_SOS_S_BACKUP

 

JOOLAP_COB_S_PFAD=$SUPERX_MODULE/joolap_cob_s; export JOOLAP_COB_S_PFAD

JOOLAP_COB_S_ERRORDAT=joolap_cob_s_update.err

export JOOLAP_COB_S_ERRORDAT

JOOLAP_COB_S_BACKUP="false"

export JOOLAP_COB_S_BACKUP

JOOLAP_SVA_S_PFAD=$SUPERX_MODULE/joolap_sva_s; export JOOLAP_SVA_S_PFAD

JOOLAP_SVA_S_ERRORDAT=joolap_sva_s_update.err

export JOOLAP_SVA_S_ERRORDAT

JOOLAP_SVA_S_BACKUP="false"

export JOOLAP_SVA_S_BACKUP

JOOLAP_KENN_S_PFAD=$SUPERX_MODULE/joolap_kenn_s; export JOOLAP_KENN_S_PFAD

JOOLAP_KENN_S_ERRORDAT=joolap_kenn_s_update.err

export JOOLAP_KENN_S_ERRORDAT

JOOLAP_KENN_S_BACKUP="false"

export JOOLAP_KENN_S_BACKUP

JOOLAP_FIN_S_PFAD=$SUPERX_MODULE/joolap_fin_s; export JOOLAP_FIN_S_PFAD

JOOLAP_FIN_S_ERRORDAT=joolap_fin_s_update.err

export JOOLAP_FIN_S_ERRORDAT

JOOLAP_FIN_S_BACKUP="false"

export JOOLAP_FIN_S_BACKUP

 

Führen Sie einmal . /home/superx/db/bin/SQL_ENV aus.

Sie können nun die Module einzeln installieren und updaten oder mit den Scripten joolap_s_install.x und joolap_s_update.x in $SUPERX_DIR/db/module in einem Rutsch installieren bzw. updaten.

Achtung: Wenn eine Installation fehl schlägt können Sie das Modul nicht noch einmal drüber installieren. Deinstallieren Sie dazu das Modul zuerst. Auch wenn Fehlermeldungen bei der Deinstallation auftreten. Wenn nur ein Modul bei der Installation Fehler ausgegeben hat, können Sie es auch ohne das Script einzeln nachinstallieren.

Wenn Sie Module einzeln installieren möchten gehen Sie wie folgt vor:

Gehen Sie in das Verzeichnis

cd $JOOLAP_KERN_S_PFAD

joolap_kern_s_modul_erzeugen.x

Damit werden ein paar Tabellen bzw. Views erzeugt, die in allen Joolap-Modulen benötigt werden. Danach starten wir den Update dieses Moduls:

joolap_kern_s_update.x

Jetzt wechseln Sie das Verzeichnis:

cd /home/superx/webserver/tomcat/webapps/superx/joolap

Kopieren Sie joolapstart.htm.sam nach joolapstart.htm und ersetzen Sie in der Datei „localhost“ durch die DNS-Namen Ihres Applikationsservers für die joolap.xml und des Joolapdatenbankservers für die Datenbankverbindung.

3.1.2 Joolap-COB-S

Film zur Installation des Joolap-COB-S-Moduls

 

Wichtiger Hinweis:

In SuperX sehen eingeschränkte User nur die Kostenträger, die zu Kostenstellen gehören für die sie eine Berechtigung haben (Zuordnung über Tabelle proj_to_inst). Ein derartiger Rechtequerbezug ist derzeit in Joolap nicht möglich. In Joolap werden immer alle Kostenträger angezeigt.

Konstanten in Joolap-Cob-S

Melden Sie sich am SuperX-XML-Frontend mit Administrationsrechten an und wählen „Tabelle suchen“ aus. Geben hier als Stichwort „konstanten“ ein und schicken die Abfrage ab.

Jetzt können Sie die Tabelle Konstanten bearbeiten. Für den Primärbuchungswürfel tragen Sie in die Spalte „apnr“ das gewünschte Startjahr ein und speichern die Änderung ab. Die Beschreibung lautet „joolap_cob_busa_startjahr“.

Für den Verteilbuchungswürfel tragen Sie ebenfalls in die Spalte „apnr“ das gewünschte Startjahr ein und speichern die Änderung ab. Die Beschreibung lautet hier„joolap_cob_vtbu_startjahr“. Aus Performancegründen, empfehlen wir, nicht allzu viele Jahre in den Verteilbuchungswürfel zu übernehmen.

 

Technische Informationen

Die beiden Prozeduren sp_cob_busa_cube und sp_cob_vtbu_cube füllen die Würfeltabellen für den Primär- und den Verteilbuchungsswürfel auf SuperX-Seite.

Weitere technische Informationen finden sich in   $JOOLAP_DIR/db/module/joolap_cob/conf/joolap_cob.rtf.

3.1.3 Joolap-SOS-S

Film zur Installation des Joolap-SOS-S-Moduls

 

Konstanten in Joolap-SOS-S

    Melden Sie sich am SuperX-XML-Frontend mit Administrationsrechten an und wählen „Tabelle suchen“ aus. Geben hier als Stichwort „konstanten“ ein und schicken die Abfrage ab. Jetzt können Sie die Tabelle Konstanten bearbeiten.

Suchen Sie die Zeile „joolap_sos_startsemester“ und geben dort in die Spalte „apnr“ das gewünschte Startsemester ein. Die ersten vier Ziffern stehen für das Jahr und die 5. Ziffer für SS bzw WS (z.B. 20001 bedeutet also SS2000, 20032 bedeutet WS 2003/2004).

Mit Hilfe der Stichtagskonstanten joolap_sos_stichtag und joolap_sos_pruef_stichtag legen sie fest, welche Stichtage nach Joolap-Sos übernommen werden sollen.

0 bedeutet aktuelle Zahlen

1 bedeutet amtliche Zahlen

-1 bedeutet alle Zahlen

 

Technische Informationen

Die beiden Prozeduren sp_sos_stud_allg_cube und sp_sos_pruef_cube füllen die Würfeltabellen für den Studierenden- und den Prüfungswürfel auf SuperX-Seite.

Weitere technische Informationen finden sich in   $JOOLAP_DIR/db/module/joolap_sos/conf/joolap_sos.rtf.

3.1.4 Joolap-SVA-S

Die Installation von Joolap-SVA-S folgt analog zu der Installation von Joolap-COB-S und Joolap-SOS-S.

3.1.4.1 Stichtage in Joolap-SVA-S

Sie können für alle drei SVA-Würfel eigene Stichtage definieren. Bei Erstinstallation ist jeweils das aktuelle (heutige) Datum vordefiniert. Über ein Formular im SuperX-XML-Frontend werden die Stichtage editiert:

Administration -> Tabelle suchen -> joolap_sva_stich

 

In der Spalte „Bereich“ wird der Würfel angegeben ( p =Personal, s =Stellen, b =Besetzung). Ein konkreter Stichtag kann in der Spalte „Stichtag“ definiert werden. Alternitiv kann in "Formel" eine SQL-Formel eingetragen werden. Im Beispiel der Formel "today()" wird der Stichtag bei jedem Update auf das heutige Datum gesetzt. Eine Beschreibung des Stichtags ist optional.

 

Neue Stichtage werden über den Button „Neu“ eingefügt:

 

Mit Klick auf "Einfügen" wird der Datensatz angelegt. In diesem Beispiel wird ein neuer Stichtag für den Personal-Würfel eingerichtet.

Im Ergebnis sehen Sie im Joolap-Client die Stichtage als Dimension, die Sie z.B. in die Spaltenüberschriften legen können.

 

3.1.4.2 Konstanten

Hier wird die Konfiguration und Bedeutung der Konstanten für JOOLAP_SVA_S erläutert. Um Konstanten zu ändern gehen Sie wie folgt vor:

Administration → Tabelle suchen → Stichwort "Konstanten" → Listenformular aufrufen

und zu der entsprechende Konstante navigieren. Dort können Sie nun den Wert ändern und abspeichern.

 

SVA_PBV_CUBE_VORJAHRE

Hier kann gewählt werden, wie viele Vorjahre für die Tabelle sva_pbv_cube neu berechnet werden sollen. Nur die ausgewählten Jahre werden dann aus der sva_pbv_cube Tabelle gelöscht und neu eingefügt. Bei den Jahren handelt es sich um die Jahreszahl der Stichtage. Wenn die Jahreszahl von einem Stichtag in dem guewählten Bereich liegt wird der Stichtag neu berechnet.

Eingetragen wird die Anzahl der Vorjahre. Wenn nur das aktuelle Jahr neu berechnet werden soll, geben Sie 0 ein. Wenn das letzte Jahr auch neu berechnet werden soll, dann 1. usw.

 

 

3.1.5 Joolap-KENN-S

3.1.5.1 Installation

Wenn Sie nur den Überblickswürfel nutzen, editieren Sie die webserver/tomcat/webapps/supex/joolap.xml bzw webserver/tomcat/webapps/superx/MANDANT/joolap/joolap.xml und suchen nach

<cube

setzen Sie bei allen Würfeln active=“false“, die nicht zur Auswahl erscheinen sollen

<cube active="false" id="24130" categories="cat_kenn" use_extra_cache="true">

<name>Kenn-Übersicht</name>

Dieser Schritt muss wiederholt werden, wenn Sie mit createJoolapMasterXml.x eine neue joolap.xml erzeugen.

3.1.5.2 Hinweise zur Datenhaltung Joolap-KENN

3.1.5.2.1 Überblickswürfel Verteilbuchungen

Im Überblickswürfel gibt es ein Merkmal "Sekundärkosten". Damit dieses Merkmal korrekt berechnet wird, müssen Sie für den jew. Zeitraum einen Verteilschritt speziell für den Überblickswürfel in Joolap einrichten. Dazu gehen Sie in das Prüfprotokoll Grund daten, Kennzahlen im Menü "Grunddaten, Kennzahlen", und wählen dort unter "Weitere Einstellungen" den Menüpunkt "Verteilchschritte zuweisen". Bei "Art des Kostenträgers" wählen Sie "Joolap KENN Überblickswürfel". Hier ein Beispiel:

 

Nur Daten für den o.g. Zeitraum werden im Konnektor neu berechnet.

3.1.5.2.2 Überblickswürfel Primärkosten kalk. Abschreibungen

Für kalkulatorische Abschreibungen im Überblickswürfel werden alle Kosten summiert,d ie in der   regulären Sicht der Kostenarten unterhalb vom Knoten "900-   kalkulatorische Abschreibungen" liegen.Sie können das Ergebnis mit dem COB-Modul gegebprüfn (hier ein Beispiel ohne Ergebnisse, aber die Legende zeigt wie ausgewertet werden muss):

 
3.1.5.2.3 Externe Kostenstelle

Das Modul Joolap KENN enthält das   Merkmal externe Kostenstelle , das nur im SuperX-Projekt   Baden-Württemberg relevant is t . Im Rahmen der Berichterstattung an das MWK Baden-Württemberg sind die Hochschulen ver pflichtet, Daten der KLR nach externer Kostenstelle gruppiert zu liefern. Laut MWK-Erlaß sind folgende Berichtsebenen vorgesehen:

Für den Baum ergibt sich dadurch folgende Struktur:

    Ebene    

  Schlüssel

                      Name                      

1

       

  Hochschule

2

1

  Fakultäten Hochschule

2

2

  Gemeinsame Einrichtungen Hochschule

2

3

  Hochschulleitung/ZV Hochschule

2

4

  Zentrale Einrichtungen Hochschule

2

9

  Sonstige Einrichtungen Hochschule

2

8

  Gebäudekostenstellen Hochschule

2

S

  außerhalb Systematik Hochschule *

3

100

  Fak. 1

3

101

  Fak. 2

3

102 etc.

etc.

*Der Knoten "S"   wird nicht vom MWK gefordert, wurde aber aus statistischen Gründen mit aufgenommen, um nicht zugeordnete Buchungen bzw. Kostenstellen auch zu erfassen / separat auszuweisen.

 

Auf Ebene 3 werden also nur die einzelnen Fakultäten ausgewiesen. Hier das Beispiel Uni Freiburg in Joolap-KENN:

 

Die Pflege der externen Kostenstellen wird an den Hochschulen händisch über eine Zuordnungstabelle von interner Kostenstelle zu externer Kostenstelle realisiert (Tabelle inst_to_ext) . Weiter Hinweise im KENN Adminhandbuch.

3.1.6 Joolap-FIN-S

3.1.6.1 Installation

3.1.6.2 Hinweise zur Datenhaltung

Um das Joolap_fin_s modul nutzen zu können, muss mindestens das FIN Modul Version 0.2 installiert sein, da das Fin-Modul den Würfel liefert.

Die Konstante FIN_BUDGET_CUBE_START kann angepasst werden, um den Zeitraum (Startjahr) einzuschränken.   Gehen Sie über Administration / Tabelle suchen, „konstanten“, Bearbeiten

 

Geben Sie das Startjahr ein, hier im Beispiel 2012 und klicken auf Speichern.

Der Würfel wird dann ab 2012 gefüllt, wenn der fin_update.x läuft.

Hinweis zu kameralen Einheiten

Bei der Dimension kamerale Einheit wird   fb, ins,ins3 und ins4 dargestellt je nachdem wieviele Buchungsebenen die Hochschule benutzt.

In MBS kann für jedes Jahr eine Bezeichnung für die Einheit hinterlegt werden. Sollte es für eine Einheit verschiedene Bezeichnungen geben, wird dies in Joolap dargestellt, in dem hinter dem Schlüssel verschd. Bezeichnungen erscheint, also z.B. 201-verschd. Bezeichnungen.

Das passiert auch, wenn der Unterschied nur geringfügig ist, z.B. Groß- und Kleinschreibung FB Architektur und Fb Architektur. Wenn man „verschd. Bezeichnungen“ vermeiden möchte, gilt es bei der Kontenbezeichnung in MBS einheitlich zu arbeiten.

 

  Eine Rechtekontrolle für eingeschränkte Benutzer geschieht im Würfel nur über die kamerale Einheit, dabei können in SuperX-Fin mögliche Einträge wie z.B. 200* nicht berücksichtigt werden. Rechte mit Stern in SuperX, werden von Joolap ignoriert.

3.2 Installation des Joolap-Datenbankservers

Das Packet joolap_kern<<Versionsnr.>>.tar.gz enthält den kompletten Datenbankserver, nötige Bibliotheken und eine Reihe von Scripten und Verzeichnissen, die SuperX-Kennern vertraut vorkommen werden.

Für die Installation des Kernmoduls gibt es wie oben beschrieben zwei Installationsvarianten: Joolap auf dem gleichen Rechner wie SuperX oder auf einem separaten Rechner.

3.2.1 Fall 1: Joolap auf dem gleichen Rechner wie SuperX -Datenbank

Film zur Installation des Joolap-Kernmoduls

Falls Sie das noch nicht gemacht haben, entpacken Sie als Benutzer superx
tar -xzvf joolap_kern<<Versionsnr.>>.tar.gz einfach unter $SUPERX_DIR.

Gehen Sie ins Verzeichnis $SUPERX_DIR/joolap/db/bin

Erstellen Sie dort einen symbolischen Link zu Ihrer SQL_ENV

ln -s $SUPERX_DIR/db/bin/SQL_ENV SUPERX_ENV

Damit bekommt Joolap die Möglichkeit, SuperX-Parameter einzustellen, um Daten aus SuperX zu entladen.

Wenn SuperX unter Informix betreiben, kopieren Sie die Informix-jdbc-Treiberdatei von $SUPERX_DIR/webserver/tomcat/webapps/superx/WEB-INF/lib/ifxjdbc.jar auf den Joolap-Rechner in das Verzeichnis $SUPERX_DIR/joolap/lib .

 

3.2.2 Fall 2: Joolap auf einem separaten Rechner

Der Joolap-Datenbank- und -Applikationsserver kann auch auf einem anderen Rechner als die SuperX-Datenbank laufen.

Auf dem Joolap-Rechner muss die Java JRE von Oracle 1.6 oder höher installiert sein.

Da Joolap auch viele SuperX-Scripte benutzt müssen Sie auf dem Joolap-Rechner zunächst das SuperX-Kernmodul (V.3 oder höher) als Benutzer superx in /home/superx entpacken. Eine SuperX-Datenbank müssen Sie natürlich nicht installieren.

Danach entpacken Sie tar -xzvf joolap_kern<<Versionsnr.>>.tar.gz weiterhin als Benutzer superx in $SUPERX_DIR .

Kopieren Sie $JOOLAP_DIR/db/bin/SUPERX_ENV.sam nach SUPERX_ENV und bearbeiten Sie die angegebenen Parameter $SUPERX_DIR, JAVA_HOME, DATABASE; die Variable $SX_CLIENT muss den Wert "jdbc"   haben (nicht psql oder dbaccess).

Kopieren Sie vom Applikationsserver auf dem SuperX läuft, die Datei

$SUPERX_DIR/tomcat/webapps/superx/WEB-INF/db.properties auf den Joolap-Rechner nach

/$JOOLAP_DIR/superx_param/

Damit bekommt Joolap die Möglichkeit, SuperX-Parameter einzustellen, um Daten aus SuperX zu entladen.

Wenn SuperX unter Informix betreiben, kopieren Sie die Informix-jdbc-Treiberdatei von $SUPERX_DIR/webserver/tomcat/webapps/superx/WEB-INF/lib/ifxjdbc.jar auf den Joolap-Rechner in das Verzeichnis $SUPERX_DIR/joolap/lib .

 

Testen des Zugriffs auf SuperX-Datenbank

Testen ob der Zugriff auf die SuperX-Datenbank funktioniert können Sie, in dem Sie

. $SUPERX_DIR/joolap/db/bin/SUPERX_ENV

aufrufen und dann

sx_unload_table.x cif

Dann müsste die Tabelle cif entladen werden, die Datei cif.unl wird erzeugt.

 

Wenn das nicht funktioniert müssen Sie die db.properties kontrollieren (vielleicht steht darin noch localhost und nicht die echte Adresse der superx-Datenbank). Benutzen Sie den propadmin.

propadmin.x $SUPERX_DIR/joolap/db/server/db.properties

Wenn die Verbindung mit dem propadmin funktioniert, der Unload der Tabelle cif aber nicht, müssen Sie die SUPERX_ENV Parameter kontrollieren.

3.2.3 Anpassen der JOOLAP_ENV und Start des Joolap-Servers

Kopieren Sie die Datei $JOOLAP_DIR/db/bin/JOOLAP_ENV.sam nach JOOLAP_ENV und passen Sie die folgenden Parameter an:

#Module Liste:

#Hier werden die zu verwendende Joolap Module aufgelistet.

#Nur den Modulnamen ohne joolap oder joolap_s eintragen.

#Alles in Kleinbuchstaben

export JOOLAP_INSTALLED_MODULES_ITEMS="kern cob sos sva kenn fin"

 

#Achtung, die nächsten 4 Zeilen dürfen nicht geändert werden

declare -a JOOLAP_INSTALLED_MODULES=(`echo ${JOOLAP_INSTALLED_MODULES_ITEMS[*]}`)

JOOLAP_INSTALLED_MODULES_LIST=""

for i in ${JOOLAP_INSTALLED_MODULES[@]} ; do JOOLAP_INSTALLED_MODULES_LIST="$JOOLAP_INSTALLED_MODULES_LIST"_$i ; done

export JOOLAP_INSTALLED_MODULES_LIST

 

Falls Sie nicht den Standardport 9001 nehmen, müssen Sie den Port auch noch in $JOOLAP_DIR/db/server/db.properties eintragen.

Unter $SUPERX_DIR/ joolap/db/server gibt es bereits eine vorbereitete Datenbank namens joolap-empty.script. Wenn Sie diese benutzen wollen kopieren sie diese mit:

cp joolap-empty.script joolap.script

in den selben Ordner aber mit dem Namen joolap.script. Hier ist dann schon der Benutzer admin mit dem Passwort anfang12 eingerichtet.

Wenn Sie die joolap-empty.script verwenden empfehlen wir auch die joolap-empty.properties.sam nach   joolap.properties umzubenennen und zu verwenden.

Testen ob der Zugriff auf die Joolap-Datenbank funktioniert können Sie, in dem Sie

. $SUPERX_DIR/joolap/db/bin/JOOLAP_ENV

aufrufen und dann
den Joolap-Datenbankserver starten mit
$JOOLAP_DIR/db/server/joolapdbserver start

Details zum Start sind im Abschnitt Serverwartung beschrieben.

Dann geben Sie ein

DOQUERY „select * from SYSTEM_USERS;“

  Dann sollte die Tabelle ausgegeben werden.

3.2.4 Admin-Passwort ändern

Nach erfolgreicher Anmeldung sollten Sie mit dem propadmin das Passwort des Users admin ändern. Öffnen Sie dazu eine graphische Shell, führen Sie zuerst

. $JOOLAP_DIR/db/bin/SUPERX_ENV

  und dann

. $JOOLAP_DIR/db/bin/JOOLAP_ENV

aus   und setzen Sie folgendes Kommando ab, um z.B. das Passwort anfang12 zu setzen:
DOQUERY " set password 'anfang12 ' ;"

Starten Sie dann
propadmin.x

Es erscheint ein Anmeldedialog, in dem Sie dann als Kennung "admin" und das neue Passwort eingeben. Mit "Verbindung testen" können Sie prüfen, ob das Passwort korrekt ist. Danach speichern Sie die Einstellungen.

3.3 Installation der Joolap-Module auf Joolap-Seite

Sie können die Joolap Module einzeln Installieren/Upgrade/Updaten oder über ein von uns erstelltes Script für alle eingetragenen Module in einer Variable in der JOOLAP_ENV. Die Scripte finden Sie unter $JOOLAP_DIR/db/module. Hier liegen die Scripte joolap_update.x, joolap_upgrade.x und joolap_install.x. Diese Scripte vereinfachen das Managen mehrere Module.

3.3.1 Joolap-KERN

 

Als Letztes müssen wir die Parameterdatei joolap.xml aktualisieren (siehe ensprechender Abschnitt )und den ETL-Test ausführen .

3.3.2 Joolap-COB

Film zur Installation des Joolap-COB-Moduls

 

Als Letztes müssen wir die Parameterdatei joolap.xml aktualisieren (siehe ensprechender Abschnitt )und den ETL-Test ausführen .

3.3.3 Joolap-SOS

Film zur Installation des Joolap-SOS-Moduls

Beachten Sie auch Abschnitt zu Joolap auf separatem Rechner   für den Fall, dass Sie Joolap auf einem separaten Rechner installiert haben.

3.3.4 Joolap-SVA

Die Installation von Joolap-SVA erfolgt analog zu der Installation von Joolap-COB und Joolap-SOS.

3.3.5 Joolap-KENN

Die Installation von Joolap-KENN folgt analog zu der Installation von Joolap-COB und Joolap-SOS.

Als Letztes müssen wir die Parameterdatei joolap.xml aktualisieren (siehe ensprechender Abschnitt )und den ETL-Test ausführen .

 

3.3.6 Joolap-FIN

Die Installation von Joolap-fin folgt analog zu der Installation von Joolap-COB und Joolap-SOS.

3.3.7 joolap.xml

Als Letztes müssen wir die Parameterdatei joolap.xml aktualisieren (siehe ensprechender Abschnitt )und den ETL-Test ausführen .Testen des Moduls

Wenn Sie eine graphische Shell haben, rufen Sie im Verzeichnis $JOOLAP_DIR/db/module/<<Modulname>>

das Script createJoolapModuleXml.x und dann startJoolapClient.x auf.

Es wird dann ein Joolap-Client nur mit dem Modul gestartet.

 

Anschließend müssen Sie die Parameter-Datei joolap.xml erneuern und auf den Applikationsserver kopieren (siehe entsprechender Abschnitt ).

3.3.8 Test des Client

Um den Server zu testen, rufen wir den Joolap-Client auf (achten Sie darauf, dass Sie eine graphische X-Shell geöffnet haben):

 

cd $JOOLAP_DIR

startJoolapClient.x

Wenn sie noch nicht existiert, wird im gleichen Verzeichnis eine Parameter-Datei joolap.xml erzeugt, und ein Joolap-Client wird lokal gestartet. Sie können sich mit der Kennung und dem Passwort anmelden, das Sie auch in Superx haben ("superx" oder "admin").

Außerdem wird im Homeverzeichnis des Benutzers eine Logdatei joolap-start.log geschrieben, dies ist für die Fehlersuche ganz hilfreich.

3.4 Anpassungen auf dem A pplikationsserver

3.4.1 JoolapDBServlet

Das JoolapApplet kann eine Direktverbindung zur Joolapdatenbank aufnehmen, was die Lösung mit der besten Performance ist.

Für User, die nicht im lokalen Netz sind, kann aus Sicherheitsgründen ein Servlet zwischengeschaltet werden, was den Vorteil hat, dass nach außen kein zusätzlicher Port freigegeben werden muss und die Kommunikation zwischen Client und Servlet über https verschüsselt werden kann. Eine solche 3-tier Archtitektur bringt aber naturgemäß Performanceeinbußen.

3.4.1.1 Installation

Wenn Sie das JoolapDBServlet nutzen wollen, gehen Sie folgendermaßen vor:

 

<servlet>

<servlet-name>JoolapDBServlet</servlet-name>

<servlet-class>de.joolap.servlet.JoolapDBServlet

</servlet-class>

<load-on-startup>10</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>JoolapDBServlet</servlet-name>

<url-pattern>/servlet/JoolapDBServlet</url-pattern>

</servlet-mapping>

 

Troubleshooting

Wenn Probleme auftreten, werden diese in die Tomcat-Logdateien (normalerweise catalina.out) geloggt. Bei längeren Fehlertraces die mit java.lang.reflect.InvocationTargetException anfangen, muss man weiter runterscrollen bis zu z.B. „Caused by java.sql.SQLException:“

3.4.1.2 JoolapExcelServlet

Voraussetzung: auf WEB/lib muss poi-3.6.jar vorliegen, eine andere poi Version führt zu Fehlern

in web.xml ergänzen

<servlet>

<servlet-name>JoolapExcelServlet</servlet-name>

<servlet-class>de.joolap.servlet.JoolapExcelServlet

</servlet-class>

</servlet>

 

<servlet-mapping>

<servlet-name>JoolapExcelServlet</servlet-name>

<url-pattern>/servlet/JoolapExcelServlet</url-pattern>

</servlet-mapping>

 

Verzeichnis WEB-INF/joolapdbprops muss existieren mit db.properties wie bei anderem Servlet oben beschrieben.

 

cube-node muss enthalten:

  <detailpresenter active="true" type="de.joolap.ExcelDetailPresenter">

  <msg>Buchungen als Exceldatei laden</msg>

            </detailpresenter>

 

neuer Konstruktor für sql2excel angefordert, der folgendes als String bekommt

 

<sql2excel>

<datasource>

<driver>org.postgresql.Driver</driver>

<url>jdbc:postgresql://localhost:5432/superx</url>

<user>superx</user>

<password>anfang12</password>

  </datasource>

<report>

<query>select * from cob_busa WHERE</query>

</report>

</sql2excel>

 

TODO:

gucken ob URL per Applet klappt

 

3.4.1.3 public/private key - Kontrolle

Zur Erhöhung der Sicherheit ist es möglich, eine DSA-public/private-Key-Kontrolle zu installieren. Dabei wird jeder SQL-Befehl, der ans Servlet geschickt wird mit dem einen Key signiert und im Servlet wird mit Hilfe des anderen, nur dort bekannten Keys kontrolliert, ob der ankommende SQL eine gültige Signatur aufweist.

Zur Installation eines zufällig erzeugten Key-Paars brauchen Sie in der Shell nur die JOOLAP_ENV aufzurufen und anschließend im Verzeichnis joolap/db/bin das Kommando
joolap_keymanager.x install abzuschicken. Mit joolap_keymanager.x delete könnten Sie ggfs. das Schlüsselpaar wieder entfernen und mit joolap_keymanager.x check prüfen, ob ein Schlüsselpaar installiert ist.

Falls eine java.lang.SecurityException auftritt, müssen Sie Ihre JOOLAP_ENV bearbeiten:

Ändern Sie den Eintrag JDBC_CLASSPATH so, dass die joolap.jar vor der superx.jar steht, also

JDBC_CLASSPATH=$LIB_PATH/pgjdbc2.jar:$LIB_PATH/ifxjdbc.jar :$LIB_PATH/superx4.0.jar:$LIB_PATH/joolap.jar: $LIB_PATH/commons-lang-2.0.jar: $LIB_PATH/xalan.jar:$LIB_PATH/ant.jar:$LIB_PATH/jfor-0.7.2rc1.jar:$LIB_PATH/fop.jar

 

JDBC_CLASSPATH=$LIB_PATH/pgjdbc2.jar:$LIB_PATH/ifxjdbc.jar:$LIB_PATH/joolap.jar: :$LIB_PATH/superx4.0.jar:$LIB_PATH/commons-lang-2.0.jar:$LIB_PATH/xalan.jar:$LIB_PATH/ant.jar:$LIB_PATH/ jfor-0.7.2rc1.jar:$LIB_PATH/fop.jar

 

 

Wenn Sie Tomcat neu starten, können Sie in den Logdateien (normalerweise catalina.out) kontrollieren, ob die public/private key Kontrolle aktiv ist oder nicht.

Nach dem Meldung zum Aufbau des Datenbank-Connectionpools kommt ein einsprechender Hinweis.

Aufbau des ConnectionPool (....)   .. OK

            public/private key aktiv

 

Im JoolapApplet können Sie im Menü Hilfe auf den Punkt Über klicken, in der erscheinenden Infobox wird angegeben, ob public/private key Kontrolle aktiv ist oder nicht.

 

3.4.2 Konfiguration der Startseite

Am einfachsten ist es, wenn man den Tomcat benutzt, der sich in $SUPERX_DIR auf dem SuperX-Rechner befindet.

Wechseln Sie das Verzeichnis:

cd /home/superx/webserver/tomcat/webapps/superx/joolap

Kopieren Sie joolapstart.htm.sam nach joolapstart.htm und ersetzen Sie in der Datei „localhost“ durch die DNS-Namen Ihres Applikationsservers für die joolap.xml und des Joolapdatenbankservers für die Datenbankverbindung.

(Wenn Sie das JoolapDBServlet benutzen, muss die databaseURL bei einer Datenbank http://Applikationsservername:port/superx/servlet/JoolapDBServlet und bei Mandantenbetrieb http://Applikationsservername:port/superx/servlet/JoolapDBServlet/MANDANTENID sein)

3.4.3 Erzeugung der Parameterdatei joolap.xml

Die Parameterdatei joolap.xml enthält die Steuerungsinformation für das Joolap Applet und beschreibt die installierten Datenwürfel, Dimensionen, Labels, etc. Diese Datei wird vom Administrator nach der Installation einmalig erzeugt: Durch das Skript createJoolapMasterXml.x erzeugen Sie die Parameterdatei joolap.xml im Verzeichnis $JOOLAP_DIR .

Über die Variable JOOLAP_INSTALLED_MODULES_ITEMS in der Datei JOOLAP_ENV steuern Sie, welche Module in die joolap.xml aufgenommen werden (oder nicht). Die Module, die Sie nicht aufnehmen, sind im Client dann auch nicht sichtbar.

Dann müssen Sie die Datei $JOOLAP_DIR/joolap.xml auf den Applikationsserver kopieren. Ein vorgefertigtes Script copyJoolapXmlToWebserver.x in $ JOOLAP_DIR erledigt dies, wenn der Applikationsserver auf dem gleichen Rechner läuft .

 

Wenn der Datenbank- und der Applikationsserver laufen, kann Joolap dann unter der Adresse http://<<Name des SuperX-Applikationsservers>>:8080/superx/joolap

aufgerufen werden. (Falls ein anderer Applikationsserver läuft, können Sie auch den benutzen oder Sie könnten $SUPERX_DIR/webserver/tomcat/conf/server.xml anpassen, sodass Tomcat auf dem regulären Port 80 läuft).

Wenn Sie Joolap noch nicht mit Daten gefüllt haben, wird nach der Anmeldung eine Fehlermeldung auftauchen, weil keine Joolap-User existieren und kein Würfel installiert ist.

3.4.4 Joolap in einem separatem Tomcat

Um SuperX und das Joolap-Servlet unabhängig voneinander laufen zu lassen, kann Joolap in einem separatem Tomcat laufen. Das hat auch den Vorteil, dass wenn der Tomcat für Joolap neu gestartet werden muss das SuperX XML Frontend weiter benutzt werden kann.

 

 

3.4.4.1 Tomcat kopieren

Um Joolap einen eigenen Tomcat zuzuweisen, muss zunächst aus einem fertigen SuperX-Kernmodul   der Tomcat kopiert werden. Hier können Sie z.B. den Tomcat von $SUPERX_DIR/webserver/tomcat nach $SUPERX_DIR/webserver/tomcat_joolap kopieren.

Wenn das JoolapDBServlet schon eingerichtet war, können Sie den Ordner $SUPERX_DIR/webserver/tomcat/webapps/superx/WEB-INF/joolapdbprops löschen. Der Ordner joolapdbprops und die db.properties wird nur in dem JoolapTomcat benötigt.

3.4.4.2 server.xml

Als nächstes wird die server.xml aus $SUPERX_DIR/webserver/tomcat_joolap/conf bearbeitet.

Die Connectorports des Joolap Tomcats müssen für shutdown, http und ajp geändert werden. Diese Ports dürfen nicht die selben sein, wie die von dem SuperX Tomcat. In diesem Beispiel wurden diese folgendermaßen geändert:

<Server port="8006" shutdown="SHUTDOWN">

<Connector port="8090" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>

<Connector port="8008" protocol="AJP/1.3" redirectPort="8443" />

3.4.4.3 context.xml

In $SUPERX_DIR/webserver/tomcat_joolap/webapps/superx/META-INF/context.xml müssen die entsprechenden Parameter anpassen. Z.B:

<Context docBase="/home/superx/webserver/tomcat_joolap/webapps/superx/" debug="0" reloadable="true" crossContext="true">

<Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_joolap_log." suffix=".txt" timestamp="true"/>

<Environment name="maxExemptions" type="java.lang.Integer" value="15"/>

<Parameter name="context.param.name" value="context.param.value"override="false"/>

</Context>

 

Bei docBase geben Sie den Pfad zu dem Tomcat an, welchen Sie für Joolap einrichten wollen.

3.4.4.4 TOMCAT_ENV

Für den JoolapTomcat benötigen wir noch eine minimale ENV Datei welche die Umgebung für Tomcat festlegt, z.B.:

TOMCAT_ENV anlegen:

#!/bin/bash

 

JAVA_HOME=/usr/java/jdk1.6.0_31

export JAVA_HOME

 

CATALINA_OPTS="-Xmx100M -Djava.awt.headless=true"

export CATALINA_OPTS

 

Wenn Sie den Tomcat dann neu starten, und die Webanwendung /joolap/ erreichbar ist, können Sie die Aufruf-URL in der joolapstart.htm ändern und das Joolap Servlet testen. Im folgenden werden noch ein paar Sicherheitsmaßnahmen vorgestellt, und dann die Apache Anbindung.

 

3.4.4.5 Sicherheit

web.xml

In der $SUPERX_DIR/webserver/tomcat_joolap/webapps/superx/WEB-INF/web.xml sollten aus Sicherheitsgründen alle SuperX Servlets auskommentiert werden. Wenn noch nicht vorhanden, muss das JoolapServlet noch eingetragen werden.

 

db.properties

Die Datei $SUPERX_DIR/webserver/tomcat_joolap/webapps/superx/WEB-INF/db.properties sollten Sie umbenennen oder löschen. In dieser Datei ist die Verbindung zu der SuperX Datenbank angegeben und wird in dem Joolap Tomcat nicht benötigt.

 

context.xml

In der Datei $SUPERX_DIR/webserver/tomcat_joolap/webapps/superx/META-INF/context.xml sollten Sie die DBVerbindung zu SuperX löschen. Der Code sieht ungefähr folgendermaßen aus:

<Resource name="jdbc/superx" auth="Container"

          type="javax.sql.DataSource"

  factory="org.apache.commons.dbcp.BasicDataSourceFactory"

  driverClassName="org.postgresql.Driver"

  url="jdbc:postgresql://localhost/superx"

   

    username="superx"

password="anfang12"

maxActive="7"

maxIdle="5"

maxWait="1"

removeAbandoned="true"

removeAbandonedTimeout="10"

/>

Achtung: Nicht die Datei komplett löschen!

3.4.4.6 Apache Anbindung

Wenn die Apache Anbindung bereits eingerichtet ist, müssen an den beiden Dateien workers.properties und superx_mod_jk.conf nur noch Kleinigkeiten angepasst werden. Im Apache Server kann auch nur ein mod_jk eingerichtet werden. Sie brauchen daher die folgenden Änderungen nicht auf beiden Tomcats machen, sondern nur an der Datei, welche in dem Apache Server eingerichtet ist.

Sie machen in den Apache Konfigurationsdateien zwei Tomcat Server bekannt, und mounten einmal die normale SuperX-Webanwendung nach /superx/, und die Webanwendung speziell für Joolap nach /joolap/. Dies wird über die Worker gesteuert, wie im folgenden exemplarisch gezeigt wird:

3.4.4.6.1 workers.properties

In der workers.properties müssen jetzt beide Tomcats bekannt gemacht werden. Das folgende Beispiel geht davon aus, daß der normale SuperX-Tomcat "ajp13" heißt.

Dafür wird zunächst die workers.list erweitert:

worker.list=ajp13, joolap

 

Und dann noch die Parameter für den Joolap-Tomcat angegeben. Hier müssen Sie den Port angeben, welchen Sie in der server.xml als ajp Port für den Joolap Tomcat eingetragen haben, z.B:

worker.joolap.port=8008

worker.joolap.host=localhost

worker.joolap.type=ajp13

worker.joolap.lbfactor=1

 

3.4.4.6.2 superx_mod_jk.conf

In dieser Datei können Sie den Abschnitt für SuperX kopieren und für Joolap anpassen. Hier ein Beispiel wie es aussehen könnte:

Alias /joolap "/home/superx/webserver/tomcat_joolap/webapps/superx"

<Directory "/home/superx/webserver/tomcat_joolap/webapps/superx">

    Options Indexes FollowSymLinks

</Directory>

 

JkMount /joolap/servlet/* joolap

JkMount /joolap/* joolap

 

<Location "/joolap/WEB-INF/">

    AllowOverride None

    deny from all

</Location>

 

<Location "/joolap/META-INF/">

    AllowOverride None

    deny from all

</Location>

 

Am besten testen Sie nach Tomcat- und Apache Neustart, ob die Webanwendung /joolap/ erreichar ist. Wenn ja, können Sie die URL in der Datei joolapstart.htm ändern. Hier ein Ausschnitt als Beispiel:

  <object

    classid = "clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"

    codebase = "http://java.sun.com/update/1.5.0/jinstall-1_5-windows-i586.cab#Version=5,0,0,9" >

    <!-- ACHTUNG Passen Sie hier und unten noch einmal ggfs. die Parameter xml und databaseURL an -->

    <param name = "xml" value="http://localhost/superx/joolap/joolap.xml">

    <param name = "databaseURL" value="http://localhost/joolap/servlet/JoolapDBServlet">

    <param name = "type" value = "application/x-java-applet;version=1.4">

    <param NAME = CODE VALUE = "de.joolap.JoolapApplet" >

    <param name="cache_option" value="Plugin">

    <PARAM NAME = "cache_archive" VALUE="joolap.jar">

    <param NAME = "scriptable" VALUE = "false">

    <COMMENT>

      <!-- ACHTUNG Passen Sie hier ggfs. die Parameter xml und databaseURL an -->

        <embed align="center"

        xml = "http://localhost/superx/joolap/joolap.xml"

        databaseURL="http://localhost/joolap/servlet/JoolapDBServlet"

        type = "application/x-java-applet;version=1.4" \

        CODE = "de.joolap.JoolapApplet"

        cache_archive = "joolap.jar"

        cache_option = "Plugin"

        pluginspage = "http://java.sun.com/products/plugin/index.html#download"

        scriptable = false

        pluginspage = "install/"><noembed></noembed></embed>

    </COMMENT>

</object>

 

3.5 Mandantenfähigkeit

3.5.1 Installation in den SuperX-Datenbanken

Jeder Mandant, muss in seiner SuperX-Datenbank alle benötigten Joolap-S-Module ebenfalls erhalten. Dafür laden Sie die entsprechende Umgebung des jeweiligen Mandantens.

. $SUPERX_DIR/db/bin/SQL_ENV.<<MandantenID>>

Ist die Umgebung geladen, kann das Joolap-Kern-S-Modul wie gewohnt installiert werden ( joolap_kern_s_modul_erzeugen.x ) und anschließend das Daten-Update
( joolap_kern_s_update.x ) gestartet werden. Die Log-Dateien enden bei der mandantenfähigen Installation auf die jeweilige MandantenID. Dieser Vorgang wird für jeden Mandanten wiederholt.

Die Installation der anderen Joolap-S-Module läuft analog zur Installation des Joolap-Kern-S-Moduls. Der * steht für ein beliebiges Joolap-S-Modul.

 

Wiederholen Sie Schritt 2-4 für jeden Mandanten.

 

3.5.2 Installation auf dem Applikationsserver

Während der mandantenfähigen Installation von SuperX haben Sie bereits im Verzeichnis $SUPERX_DIR/webserver/tomcat/webapps/superx für jeden Mandanten einen Ordner angelegt. Kopieren Sie nun den Ordner „joolap“ einmal   in jeden „Mandanten-Ordner“ und passen Sie die joolapstart.htm -Datei an, wie im Abschnitt „ Anpassungen auf dem Applikationsserver “ beschrieben.

3.5.3 Installation auf Joolap-Seite

3.5.3.1 Einrichten der Umgebung

Nach dem Entpacken des Moduls gehen Sie in das Verzeichnis $JOOLAP_DIR/db/bin und kopieren die Vorlage JOOLAP_ENV.sam einmal nach JOOLAP_ENV , anschließend legen Sie eine weitere Kopie JOOLAP_ENV.<<MandantenID>> für jeden Mandanten an. Editieren Sie nun nur in der JOOLAP_ENV die Umgebungsvariable $JOOLAP_START_DBS.   Für jeden Mandanten muss eine Datenbank und ein Datenbankname angegeben werden. Hätten wir beispielsweise zwei Mandanten mit ID 1111 und 2222, würde die Variable folgendermaßen aussehen:

JOOLAP_START_DBS=“-database.0 joolap1111 –dbname.0 joolap1111 –database.1 joolap2222   -dbname.1 joolap2222”; export JOOLAP_START_DBS

Nun muss in jeder JOOLAP_ENV.<<MandantenID>> die Umgebungsvariable $DB_PROPERTIES angepasset werden.

DB_PROPERTIES=“$JOOLAP_DIR/db/server/db_<<MandantenID>>.properties; export DB_PROPERTIES

Also zum Beispiel db_1111.properties . Die Umgebungsvariablen JOOLAP_*_LOAD_PFAD müssen ebenfalls um die MandantenID ergänzt werden.

z.B.

JOOLAP_KERN_LOAD_PFAD=$JOOLAP_KERN_DIR/rohdaten/1111; export JOOLAP_KERN_LOAD_PFAD

JOOLAP_COB_LOAD_PFAD=$JOOLAP_COB_DIR/rohdaten/1111; export JOOLAP_COB_LOAD_PFAD

JOOLAP_SOS_LOAD_PFAD=$JOOLAP_SOS_DIR/rohdaten/1111; export JOOLAP_SOS_LOAD_PFAD

 

 

Befindet sich SuperX auf dem gleichen Rechner, kann zu jeder SQL_ENV.<<MandantenID>> ein symbolischer Link erstellt werden.

ln –s $SUPERX_DIR/db/bin/SQL_ENV.<<MandantenID>> SUPERX_ENV.<<MandantenID>>

z.B. ln –s $SUPERX_DIR/db/bin/SQL_ENV.1111 SUPERX_ENV.1111

 

Ansonsten muss eine entsprechende SUPERX_ENV nach Vorlage der SQL_ENV auf dem SuperX-Rechner manuell erstellt werden.

 

3.5.3.2 Erstellen von db.properties-Dateien

Wechseln Sie nun in das Verzeichnis $JOOLAP_DIR/db/server und erstellen für jeden Mandanten eine die DB-Properties-Datei, die in der JOOLAP_ENV.<<MandantenID>> angegeben ist. Kopieren Sie dafür jeweils die Datei db.properties.

cp db.properties db_<<MandantenID>>.properties

z.B. cp db.properties db_1111.properties

In allen neuen Properties-Dateien muss die Datenbank entsprechend des Mandanten angegeben werden. Ergänzen Sie dafür bei connectionURL hinter der Angabe des Ports mit /joolap<<MandantenID>> .

z.B. connectionURL=jdbc\:hsqldb\:hsql\://localhost\:9001/joolap1111

Die Umgebung ist nun bereit, jetzt müssen noch die Datenbanken erstellt werden.

3.5.3.3 Anlegen der Joolap-Datenbanken

Ein Joolap-DBServer kann bis zu zehn Joolap-Datenbanken betreiben.

Zum Anlegen der Joolap-Datenbanken kopieren Sie joolap-empty-kern.script und joolap-empty-kern.properties für jeden Mandanten.

cp joolap-empty.script joolap<<MandantenID>>.script

cp joolap-empty.properties joolap<<MandantenID>>.properties

z.B.

cp joolap-empty.script joolap1111.script

cp joolap-empty.properties joolap1111.properties

 

Starten Sie jetzt den Joolap-DB-Server mit joolapdbserver start

Sie haben nun für jeden Mandanten eine Datenbank erstellt und diese gestartet. Die nächsten Schritte bestehen jetzt darin, für jede Datenbank dass Passwort zu setzen und mit Hilfe des Propadmins zu verschlüsseln (analog zur Installation ohne Mandanten).

3.5.3.4 Installation der Joolap-Module

    Jetzt kann das Joolap-Kern-Modul installiert werden, zuvor muss die entsprechende Umgebung geladen werden:

z.B. . $JOOLAP_DIR/db/bin/JOOLAP_ENV.1111

joolap_kern_modul_erzeugen.x

Wiederholen Sie dies für jeden Mandanten.

    Wechseln Sie jetzt in das Verzeichnis $JOOLAP_DIR/db/module/joolap_kern/rohdaten und legen Sie dort für jeden Mandanten einen neuen Ordner mit MandantenID als Namen an.

z.B. mkdir 1111

Anschließend kopieren Sie den übrigen Inhalt des Ordners „rohdaten“ in die neu angelegten Mandanten-Ordner. In jedem Ordner befindet sich eine Umgebungsdatei (z.B. JOOLAP_KERN_ENV), öffnen Sie diese und geben den korrekten Pfad zur SUPERX_ENV.<<MandantenID>> an.

z.B. . $JOOLAP_DIR/db/bin/SUPERX_ENV.1111

Die Vorbereitungen sind damit abgeschlossen. Nun können Sie für jeden Mandanten Rohdaten entladen und das Update starten (Achtung: Aufruf der entsprechenen JOOLAP_ENV.<<MandantenID>> nicht vergessen!).

 

Die Installation der weiteren Joolap-Module läuft analog zur Installation des Joolap-Kern-Moduls.

Der * steht für ein beliebiges Joolap-Modul.

Wiederholen Sie Schritt 2-7 für jeden Mandanten.

4 Upgrade

Wenn Sie bereits Module von Joolap oder Joolap_s installiert haben, diese aber auf den neusten Stand bringen wollen, können Sie diese ganz einfach und auf SuperX-typische Weise upgraden.

Folgende Schritte sind dabei zu tun:

 

Wenn Sie das Script aus $SUPERX_DIR/db/module/joolap_s_upgrade.x bzw. $JOOLAP_DIR/db/module/joolap_upgrade.x verwenden, werden alle Module Welche in der JOOLAP_ENV bzw SQL_ENV eingetragen sind geupgradet. Ein Upgrade eines Moduls kann auch mehrfach hintereinander ausgeführt werden und schadet nicht.

Besonderheit für Joolap-KERN:

Vor dem Kernupgrade überprüfen Sie bitte, ob auch die JOOLAP_ENV auf dem aktuellen Stand ist. Speziell die Einträge für JDBC_CLASSPATH und XML_CLASSPATH (Hinweise dazu im Kapitel " Anpassen der JOOLAP_ENV und Start des Joolap-Servers ").

Sie finden in der JOOLAP_ENV.sam den aktuellen Auslieferungszustand und können anhand dessen die Variablen anpassen.

5 Serverbetrieb

5.1 Joolap-Datenbankserver

 

Die HSQL-Datenbank die Joolap als Datenbankserver benutzt, liegt im Verzeichnis

$JOOLAP_DIR/db/server und besteht aus den Dateien

joolap.script

joolap.properties

joolap.log

und in einigen Fällen

joolap.data

joolap.backup.

 

Diese Dateien können auch bei laufendem Serverbetrieb gesichert werden. Siehe dazu den Abschnitt backup .

 

5.1.1 Start, Status, Stop

Der Datenbankserver steht unter $JOOLAP_DIR/db/server

 

Der Datenbankserver kann als root oder superx mit dem Script

 

joolapdbserver start

 

gestartet werden. Das Skript geht davon aus, dass die JOOLAP_ENV in $SUPERX_DIR/joolap/db/bin zu finden ist. Falls $SUPERX_DIR nicht gesetzt ist, wird von /home/superx/joolap/db/bin ausgegangen.

(Beim Start als root wird im Script ein su superx vorgenommen, so dass superx später immer auch Zugriff auf die Dateien hat).

 

Wenn der Datenbankserver erfolgreich hochgefahren wurde, erscheint OK – ein Timeout von 10Minuten ist im Script eingestellt.

Die Process-Id des Datenbankservers wird automatisch in die Datei joolapdbserver.pid geschrieben.

Die Ausgaben des Servers werden in serverstdout.log und serverstderr.log geschrieben.

 

Man kann den Status des Datenbankservers mit

joolapdbserver status prüfen

(Da HSQLDB eine Java-Datenbank ist erscheint java als Command).

 

Wichtig ist es aber weiter auch die Ausgaben des Servers zu prüfen, die in die Dateien serverstdout.log und serverstderr.log geschrieben werden.

Das status Kommando ganz nur anzeigen, ob der Prozess läuft oder nicht. Serverfehler finden sich in serverstderr.log .

 

(Die Dateien serverstdout.log.1 und serverstdout.log.2 sind gesicherte Logdateien von vorherigen Starts bzw. Stops)

 

Bei Bedarf kann man den Datenbankserver mit

joolapdbserver stop herunterfahren oder

joolapdbserver kill   „töten“.

 

Nachdem die Testphase abgeschlossen ist, kann man das Script   fest in den init.d- Rhythmus aufnehmen, so dass der Datenbankserver beim Hochfahren automatisch gestart und beim Runterfahren automatisch gestoppt wird.

Dazu kopiert man das Script nach etc/init.d und ruft unter RedHat

als root /sbin/chkconfig --add joolapdbserver auf

und unter Suse

ebenfalls als root insserv joolapdbserver

 

5.1.2 Probleme bei Start oder Stop

Bei Problemen mit dem Start oder Stop, sind die Logdateien serverstdout.log und serverstderr.log hilfreich.

Die Ausgaben des Datenbankservers wirken teilweise etwas kryptisch, man muss etwas zwischen den Zeilen lesen.

 

z.B.

[Server@1dfafd1]: [Thread[HSQLDB Server @1dfafd1,5,main]]: Database [index=0db=file:joolap, alias=] did not open: org.hsqldb.HsqlException: File input/output error: joolap.script (Permission denied)

[Server@1dfafd1]: [Thread[HSQLDB Server @1dfafd1,5,main]]: run()/openDatabases():

Script Failure: startup

Script Failure: killing

 

Es wurde versucht, den Datenbankserver als user superx zu starten, der Eigentümer der Datei joolap.script war allerdings root .

5.1.3 Falls die Datenbank nicht reagiert

Man kann prüfen, ob die Datenbank reagiert, in dem man

. /$JOOLAP_DIR/db/bin/JOOLAP_ENV aufruft und   dann versucht eine Tabelle zu entladen

sx_unload_table.x userinfo

Wenn S ie die SqlWorkbench eingerichtet haben, können Sie auch damit prüfen, ob Sie eine Connection zur Datenbank aufbauen können.

Falls das nicht klappt, kann man prüfen ob der Prozess läuft

mit

/$JOOLAP_DIR/db/server/joolapdbserver status

 

Es wird ausgegeben, ob der Java-Prozess läuft, falls nicht, muss man den Datenbankserver starten.

Wenn der Prozess läuft, kann es trotzdem sein, dass ein interner Fehler aufgetreten ist.

Dazu schaut man sich

/$JOOLAP_DIR/db/server/serverstderr.log und serverstdout.log

Falls darin eine Fehlermeldung angegeben ist, kann man den Datenbankserver abschießen

/$JOOLAP_DIR/db/server/joolapdbserver kill

Der wahrscheinlichste Fehler ist java.lang.OutofMemoryError .

Dann muss man   in

/$JOOLAP_DIR/db/bin/JOOLAP_ENV

den Wert für MB Arbeitsspeicher für die Datenbank erhöhen

JOOLAP_DBSERVER_MEMORY=xxxM

anschließend

. /$JOOLAP_DIR/db/bin/JOOLAP_ENV

und

in /$JOOLAP_DIR/db/server

joolapdbserver start

5.1.4 Einrichten als Dienst

Zur Einrichtung des joolapdbservers als Dienst muss man das Skript nach /etc/init. d kopieren.

Unter Suse kann man als root den Befehl insserv joolapdbserver aufrufen, unter Redhat /sbin/chkconfig --add joolapdbserver.

 

Das Skript geht davon aus, dass die JOOLAP_ENV in $SUPERX_DIR/joolap/db/bin zu finden ist. Falls $SUPERX_DIR nicht gesetzt ist, wird von /home/superx/joolap/db/bin ausgegangen.

Bei Mandantenbetrieb mit mehren Datenbank in einem Server ist es wichtig, dass in der JOOLAP_ENV die Variable JOOLAP_START_DBS gepflegt ist.

5.1.5 Migration auf neue HSQLDB-Version

Wenn Sie die Joolap-Datenbank mit anderen Werkzeugen als dem Joolap Client abfragen wollen, kann es notwendig sein, auf eine neuere HSQLDB-Version zu wechseln. Im folgenden wir beschrieben, wie Sie die Joolap Datenbank auf eine neue Server-Version bringen. Vorab sei bemerkt:

Eine direkte Migration der Datenbanken ist nicht möglich bzw. zu aufwändig. Da die Joolap Datenbank ohnehin im Rahmen der Laderoutine komplett ausgetauscht wird, ist es einfacher, sie ganz neu aufzubauen.

5.1.5.1 Einrichtung des Joolap Servers

5.1.5.2 Konfiguration der Laderoutine

Um die Joolap Laderoutine auf den neuen Server zu richten, müssen Sie zunächst die Joolap-Environment-Datei JOOLAP_ENV ändern:

Kopieren Sie die Datei hsqldb.jar ins Verzeichnis $JOOLAP_DIR/lib.

Setzen Sie die Variable JDBC_CLASSPATH etwas anders: Entfernen Sie die Datei joolap.jar, und fügen Sie stattdessen die Datei hsqldb.jar hinzu.

Danach führen Sie den propadmin.x aus, und setzen das neue Passwort.

Wenn das funktioniert, können Sie die Module installieren und updaten:

cd $JOOLAP_DIR/db/module

joolap_install.x

joolap_update.x

  Achtung: Bei Verwendung einer neueren HSQLDB-Version wird der Joolap-Client vermutlich nicht funktionieren, weil der darin eingebettete JDBC Client nicht paßt. Wenden Sie sich an den Support , um einen passenden Build zu bekommen.

 

 

5.2 Update der SuperX-Datenbank

Die Module joolap_kern_s und ggfs. joolap_cob_s , joolap_sos_s etc müssen in den regulären Updatemechanismus aufgenommen werden.

 

5.2.1 Variante 1: Gesamtupdate

Film zum automatischen Update von Joolap (SuperX-Seite)

Am praktischsten ist es, wenn alle Joolap-Module zusammen aktualisiert werden.

 

Es gibt unter $SUPERX_DIR/db/module/

ein Script

joolap_s_update.x

Welche Module geupdatet werden sollen geben Sie in der SQL_ENV in der Variable JOOLAP_INSTALLED_MODULES_ITEMS an.

Sie können die Datei joolap_s_cron.x.sam nach joolap_s_cron.x kopieren und sie von cron aufrufen lassen, um eine kurze Ergebnismail zu bekommen (Achtung: Umgebungsvariablen müssen ggf. angepaßt werden).

Prüfen Sie, ob Sie in den Dateien noch Anpassungen machen müssen.

 

Eine Kurzfassung der Gesamt-Logdatei wird angelegt in joolap_update_kurz.log , ausführlicher ist L_Joolapmodulupdate.log , darin sind jeweils Verweise auf weitere Log-Dateien mit mehr Details.

 

Im Kopf des Scripts joolap_s_update.x kann man einige Einstellungen vornehmen.

 

ERRORMAIL=superx@localhost und

LOGMAIL=$ERRORMAIL

Email-Adresse an die Meldungen generell oder bei Fehler eine Mail geschickt werden soll. (Am besten wird dies schon in der $SUPERX_DIR/db/bin/SQL_ENV definiert).

Bei Bedarf kann die Variable an jeder Position im Script neu festgelegt werden.

MODULE_BACKUP="true" oder false

 

wenn true, werden die Datenbankinhalte der einzelnen Module vor dem Update in ein temporäres Verzeichnis entladen und bei Problemen während des Updates wieder eingespielt.

 

Die Module werden dann über das runAndCheck.x-Scriptgestartet.

Eine genauere Beschreibung des runAndCheck.x -Scripts findet sich in einem weiteren Abschnitt .

 

 

5.2.2 Variante 2: Einzelupdate

Die 2. Variante startet die Modul-Scripte einzeln:

in jedem joolap*-s Modul-Verzeichnis gibt es ein Script:

joolap_*_s_update.x

Dieses können Sie separat von cron aufrufen lassen.

 

5.3 Update der Joolap-Datenbank

Film zum automatischen Update von Joolap (Joolap-Seite)

Bevor Daten nach Joolap übernommen werden, muss der Datenupdate in der SuperX-Datenbank   gelaufen sein (s. vorheriger Abschnitt).

 

Für das Aktualisieren der Daten in Joolap sind folgende Schritte für jedes Modul notwendig:

 

 

Schritt

Script

1

Entladen der Joolap-Modul-Rohdaten aus der SuperX-Datenbank

$JOOLAP_DIR/db/module/<<Modulname>>/
rohdaten/
<<Modulname>>_unload.x

2

Übernahme der entladenen Daten in den Joolap-Datenbankserver
(was auch spezielle Tranformationen einschließen kann)

$JOOLAP_DIR/db/module/<<Modulname>>/
<<Modulname>>_update.x

Wenn alle Module geladen sind:

 

Schritt

Script

3

ETL-Test ausführen

$JOOLAP_DIR/ testJoolap.x

 

z.B.

$JOOLAP_DIR/db/module/joolap_kern/rohdaten/joolap_kern_unload.x

$JOOLAP_DIR/db/module/joolap_kern/joolap_kern_update.x

$JOOLAP_DIR/db/module/joolap_cob/rohdaten/joolap_cob_unload.x

$JOOLAP_DIR/db/module/joolap_cob/joolap_cob_update.x

$JOOLAP_DIR/testJoolap.x

 

Sie können die Scripte in dieser Reihenfolge in die Crontab übernehmen.

 

Wenn Sie alle Scripte in einem "Meta-Script" starten wollen (z.B. weil Sie nur eine Logdatei wünschen), dann müssen Sie das Script
$JOOLAP_DIR/db/module/joolap_update.x
Verwenden.

Im Kopf des Scripts kann man einige Einstellungen vornehmen:

 

ERRORMAIL=superx@localhost

Email-Adresse an die Meldungen über Fehler gehen sollen.

Bei Bedarf kann die Variable an jeder Position im Script neu festgelegt werden.

MODULE_BACKUP="true" oder " false"

 

wenn true, werden die Datenbankinhalte der einzelnen Module vor dem Update in ein temporäres Verzeichnis entladen und bei Problemen während des Updates wieder eingespielt

(diese Funktion ist noch in der Entwicklungsphase)

MASTERLOG="$JOOLAP_DIR/db/
module/joolap_update.log";

Der Gesamt Updatevorgang wird mit allen Details in die angegebene Datei geloggt.

Ansonsten werden nur Zusammenfassungen als Mail verschickt bzw. auf dem Bildschirm angezeigt und auf weitere Log-Dateien für Einzelheiten verwiesen

 

 

Welche Module geupdatet werden sollen geben Sie in der JOOLAP_ENV in der Variable JOOLAP_INSTALLED_MODULES_ITEMS an. Achtern Sie darauf, dass die angaben mit der SQL_ENV übereinstimmen.

Sie können die Datei joolap_cron.x.sam kopieren nach joolap_cron.x und von cron aufrufen lassen, um eine kurze Ergebnismail zu erhalten.

Prüfen Sie, ob Sie in der Datei noch Anpassungen machen müssen.

5.4 Stand-Alone-Versionen

Die aktualisierten Würfel lassen sich auch über einen Fileserver-Zugriff verteilen, z.B. um verschiedene Stände von Würfeln lokal auf Platte zu speichern. Das Script
$JOOLAP_DIR/copyJoolaptoDist.x
kopiert die für den Stand-Alone-Betrieb notwendigen Dateien nach $JOOLAP_DIR/db/dist . Das gesamte Verzeichnis kann via SCP / FTP oder Samba auf einen lokalen Rechner übertragen werden, und der Joolap-Client startet mit der Batchdatei startJoolap.bat (unter Windows) und startJoolap.sh (unter Unix). Bitte beachten Sie, dass die Würfel zwar binär komprimiert, vom Prinzip her aber nicht verschlüsselt gespeichert werden, der Fileserver-Zugriff sollte also nur bestimmten Personen zugänglich gemacht werden.

 

5.5 Sicherung des Joolap-Servers

Der einfachste Weg, den Joolap-Datenbankserver zu sichern, besteht darin, den Server zu beenden und die Dateien einer Stand-Alone-Version zu sichern .

Darüberhinaus gibt es auch die Möglichkeit zur Sicherung der wichtigsten Dateien. Wenn man, während der Joolap-Datenbankserver läuft (!) ,das Script

$JOOLAP_DIR/db/server/joolap_backup.x

ausführt, werden alle Datenbankinhalte zu einer tar-Datei mit aktuellem Datum im Dateinamen zusammengepackt und im Unterverzeichnis joolap/db/server/backup abgelegt.

Wenn man das Backup wiederherstellen will, löscht man

im Verzeichnis joolap/db/server alle Datenbankdateien mit

rm joolap.*

und entpackt das Backup.

5.6 Einrichten des Joolap-Servers als Dienst

Zum Einrichten des Joolap-Datenbankservers als Dienst kopieren Sie zunächst das Skript joolapdbserver nach /etc/init.d . Danach melden Sie sich als root an und wechseln in das Verzeichnis /etc/init.d . Jetzt kann der Dienst eingetragen werden.

Für RedHat: /sbin/chkconfig –add joolapdbserver

Für Suse: insserv joolapdbserver

5.7 Joolap-Parameterdatei erneuern

Immer, wenn Sie ein Modul installiert oder deinstalliert haben oder die joolap_<<MODULNAME>>.xml geändert haben, muss die Parameterdatei joolap.xml erneuert werden.

 

5.8 ETL-Test ausführen

Wenn Sie einen Update auf Joolap-Seite ausgeführt haben, müssen Sie die Datenintegrität herstellen. Joolap durchsucht alle Faktentabellen nach Schlüsseln und prüft, ob diese in den Dimensionstabellen vorhanden sind – wenn nein, dann werden automatisch Einträge "Unbekannter Eintrag xy" angelegt. Außerdem werden auch NULLs in den Faktentabellen abgefangen.

Der ETL-Test sollte sinnvollerweise am Ende eines Joolap-Gesamtupdate stattfinden. Er ist deshalb in der Musterdatei joolap/db/module/joolap_update.x.sam aufgeführt:

java $JAVA_OPTS -cp $XML_CLASSPATH:$JOOLAP_DIR/lib/joolap.jar de.joolap.Joolap --check --xml:$JOOLAP_DIR/joolap.xml -dbproperties:$JOOLAP_DIR/db/server/db"$MANDANTENID".properties --log

 

Unter Linux gibt es auch ein Shellscript, das im folgenden beschrieben wird:

Gehen Sie nach

$JOOLAP_DIR

und rufen Sie

testJoolap .x

auf, um den ETL-Test auszuführen.

5.9 Test im Client

Wenn Sie eine graphische Shell haben, können Sie Joolap testen mit

startJoolapClient.x

 

Anschließend rufen Sie

copyJoolapXmlToWebserver.x

auf bzw. kopieren die joolap.xml manuell auf Ihren Applikationsserver.

6 Direktzugang zur Joolap-DB

Um SQL direkt auf der Joolap-DB ausführen, ist die Benutzung der SQL-Workbench aus dem Download-Bereich (http://download.superx-projekt.de) am komfortabelsten.

Man kann auch andere JDBC-Clients nehmen (joolap.jar enthält den Datenbank-Treiber org.hsqldb.jdbcDriver).

 

Beim Verbindungsprofil statt localhost den Rechnernamen bzw. IP des Joolap-Rechners und ggfs. geänderten Port an.

Geben Sie als User admin und als Passwort das standardmäßig vorgegebene hatschi3000 ein. Dieses Passwort sollten Sie bei Gelegenheit ändern .

 

 

Die Benutzung der SQLWorkbench ist ziemlich selbsterklärend.

 

 

Alternativ kann man Scripte benutzen:

Einmal die Umgebung aufrufen:

. $JOOLAP_DIR/db/bin/JOOLAP_ENV und dann

DOQUERY "select .. from xzy" oder DOSQL test.sql

 

7 Übersicht Modulupdate

Hier eine Erläuterung des Update am Beispiel COB:

 

1. COB-Daten anpassen/updaten

2. Update von Modul joolap_cob_s (Superx)

  ( db/module/joolap_cob_s/joolap_cob_s_update.x )
  die Würfel (cob_busa_cube) und evtl. Dimensions-
    blueprints werden aktualisiert

3. Modul joolap_cob

    Daten aus SuperX   entladen:    

    $JOOLAP_DIR/ db/module/joolap_cob/rohdaten

    joolap_cob_unload.x

    entladene Daten kommen ins Unterverzeichnis unl

4. Einspielen der neuen Daten

    db/module/joolap_cob/joolap_cob_update.x

 

 

Die folgende Kurzanleitung zeigt alle wichtigen Pfade und Scripte beim Update von Joolap am Beispiel des Joolap-Kern- und Joolap-COB-Moduls:

Auf SuperX-Seite (vorher Umgebung laden mit . $SUPERX_DIR/db/bin/SQL_ENV ):

Aktion

Pfad (relativ zu $SUPERX_DIR)

Script

Logdatei

Update vom Joolap-Kern-S- modul (Benutzer, Organigramm)

db/module/joolap_kern_s

joolap_kern_s_update.x

joolap_kern_s_update.err

Update vom Joolap-COB-S- modul (Hilfstabellen *_cube)

db/module/joolap_cob_s

joolap_cob_s_update.x

joolap_cob_s_update.err

Auf Joolap-Seite (vorher Umgebung laden mit . $JOOLAP_DIR/db/bin/JOOLAP_ENV, wobei sich $JOOLAP_DIR in der Regel in $SUPERX_DIR/joolap befindet ):

Aktion

Pfad (relativ zu $JOOLAP_DIR)

Script

Logdatei

Entladen vom Joolap-Kern- Modul (Benutzer, Organigramm) aus SuperX

db/module/joolap_kern/rohdaten

joolap_kern_unload.x

joolap_kern_unload.err

Update vom Joolap-Kern-Modul (Benutzer, Organigramm) in Joolap

db/module/joolap_kern_s

joolap_kern_update.x

joolap_kern_update.err

Entladen vom Joolap-COB- Modul (Benutzer, Organigramm) aus SuperX

db/module/joolap_cob/rohdaten

joolap_cob_unload.x

joolap_cob_unload.err

Update vom Joolap-COB- Modul (Hilfstabellen *_cube) in Joolap

db/module/joolap_cob

joolap_cob_update.x

joolap_cob_update.err

 

Weitere Infos und Details, z.B. zur Frage, wie alle Modulupdates von cron aufgerufen werden können, finden Sie im Kapitel Serverbetrieb Abschnitt Update der SuperX-Datenbank und folgender.

8 Kontrolle des letzten Datenupdates

Die Tabelle systeminfo wird vom joolap-Kern-modul übernommen und enthält das Datum, wann der letzte Modulupdate (z.B. fin_update.x,sos_update.x) erfolgreich durchgelaufen ist.

Dazu gehören auch die Module auf superx-Seite wie joolap_cob_s,joolap_fin_s etc.

Die Tabelle systeminfo wird in der Joolap-Datenbank   ergänzt um Einträge (Beispiel für joolap-fin):

name=joolap_fin, Datum = Datum des letzten erfolgreichen joolap_fin_update.x (unabhängig davon, wann das letzte fin_update. x und joolap_fin_s_update. x in der SuperX-DB gelaufen ist).

Zum Prüfen, ob alle Module Nachts gelaufen sind, kann man als Beispiel das Script joolap/checkUpdates.x nehmen. Dieses Script wird jetzt auch in der joolap_update.x.sam verwendet. Bitte prüfen Sie hier, ob es bei Ihnen in der joolap_up d a t e.x vorhanden ist und ergänzen den Eintrag bei Bedarf.

 

9 Rechte in Joolap

Es gibt in Joolap folgende Rechte:

9.1 Allgemeines

Damit ein SuperX-Benutzer auch mit Joolap arbeiten darf, muss er die Berechtigung für mindestens einen der Joolap-Würfel oder für eines der Joolap-Sachgebiete (joolap-<<modulname>>) haben. Die Rechte können dabei auch aus der Mitgliedschaft in einer Grupper resultieren. Es gibt also mehrere Regeln:

 

Wenn ein Benutzer in SuperX nicht das ganze Organigramm sehen darf, sondern nur einen Bereich (wie Fakultät 4), so gilt dies ebenfalls in Joolap. Prinzipiell wäre es auch möglich die Rechte für andere Dimensionen wie Kostenart oder Geldgeber einzuschränken, dazu wäre aber noch Entwicklungsarbeit nötig.

 

Wichtiger Hinweis:

In SuperX sehen eingeschränkte User nur die Kostenträger, die zu Kostenstellen gehören für die sie eine Berechtigung haben (Zuordnung über Tabelle proj_to_inst). Ein derartiger Rechtequerbezug ist derzeit in Joolap nicht möglich. In Joolap werden immer alle Kostenträger angezeigt.

Im Bereich Finanzrechnung erfolgt die Rechtekontrolle ausschießlich über die kamerale Einheit.

 

Die Vergabe aller Joolap-Rechte erfolgt im SuperX-XML-Frontend, dafür melden Sie sich mit Administration-Rechten an.

9.2 Rechte für einzelne Würfel

9.2.1 User

Um einem User das Recht für einen einzelnen Würfel zu geben, wählen Sie im XML-Frontend „User suchen“. Nun klicken Sie bei dem gewünschten User auf das Icon „bearbeiten“. In der Rubrik Masken können Sie jetzt die Berechtigungen für die Würfel vergeben. Dafür wählen Sie den Würfel im Klappmenu „Neue Maske“ aus und klicken anschließend auf „Neue Maske einfügen“. In der Abbildung wird dem User joolaptest1 die Berechtigung für den Studierendenwürfel gegeben. Durch Speichern schließen Sie das Bearbeiten des Users ab.

 

 

Die Änderungen müssen jetzt noch in Joolap übernommen werden. Dafür muss zunächst auf SuperX-Seite das Skript joolap_kern_s_update.x ausgeführt werden. Danach starten Sie auf Joolap-Seite die Skipte joolap_kern_unload.x und joolap_kern_update.x . Alle Änderungen sind jetzt auch in der Joolap-Datenbank eingetragen.

9.2.2 Gruppen

Die Vergabe von Rechten auf einzelne Würfel für Gruppen erfolgt analog zu der für User. An Stelle eines Users müssen Sie hier nach der Gruppe suchen und diese bearbeiten.

9.3 Rechte für Joolap-Sachgebiete

9.3.1 Gruppen

Um einer Gruppe die Berechtigung auf ein ganzes Sachgebiet zugeben, bearbeiten Sie die entsprechende Gruppe wieder im XML-Frontend. Wählen Sie im Klappmenu das gewünschte Sachgebiet aus und klicken anschließend auf „Neues Sachgebiet einfügen“. Durch Speichern wird das Bearbeiten abgeschlossen. In der Abbildung wird beispielsweise der Gruppe Joolap-COB-User das Recht auf das Sachgebiet Joolap-COB gegeben.

 

 

Die Änderungen müssen jetzt noch in Joolap übernommen werden. Dafür muss zunächst auf SuperX-Seite das Skript joolap_kern_s_update.x ausgeführt werden. Danach starten Sie auf Joolap-Seite die Skipte joolap_kern_unload.x und joolap_kern_update.x . Alle Änderungen sind jetzt auch in der Joolap-Datenbank eingetragen.

9.3.2 User

Die Vergabe von Rechten auf Sachgebiete für User erfolgt analog zu der für Gruppen. An Stelle eines Users müssen Sie hier nach der Gruppe suchen und diese bearbeiten.

9.4 Rechte auf Sichten

Die Rechte auf Sichten, wie z.B. die Kostenträger-Sicht, werden aus SuperX übernommen. Eine Erläuterung zur Vergabe der Rechte finden Sie in Kapitel 2.7 des COB-Admin-Handbuches.

10 Troubleshooting

10.1 Probleme

10.1.1 Joolap startet nicht

Läuft der Joolap-Datenbankserver?
Mit Sqlworkbench/ DOQUERY "select * from userinfo" testen (vergl. Direktzugriff ) bei Problemen Logdateien des Servers prüfen. Wenn die Datei $JOOLAP_DIR/db/server/joolap.log sehr groß ist, dann beenden Sie den Joolap Prozeß, löschen die Datei, und starten Sie neu

Kann die Start-URL http://joolap-rechner/superx/joolap/joolapstart.htm aufgerufen werden?
Wenn nicht Applikationsserver prüfen (Apache/Tomcat). Wenn ja: stimmen die Verbindungsabgaben in dieser Datei?

Dieses Problem tritt nur im Servlet-Betrieb auf. Prüfen Sie die allgemeine Tomcat-Logdatei   (webserver/tomcat/logs/catalina.out): Dort wird die Verbindung geloggt. Es muss eine Passage geben, z.B. :

Aufbau Datenbank-ConnectionPool (jdbc:hsqldb:hsql://192.168.109.47:9001) .. OK

            public/private key   aktiv

Using xsl processor: net.sf.saxon.TransformerFactoryImpl

SuperXManager: maxRows: 20000 (wenn mehr geliefert wird, werden die zusaetzlichen Datenzeilen ignoriert)

Wenn die von Joolap ausgegeben Fehlermeldungen nicht aussagekräftig genug sind

Z.B. bei der Meldung:"no bookmarks found" liegt es selten an der joolap-bookmarks.xml.

Analysieren Sie dann die beim Start von Joolap angelegte Logdatei Joolap-start.log im Home-Verzeichnis des Benutzers..

10.1.2 Die Zahlen in Joolap stimmen nicht

Kleinere Rundungsunterschiede zu SuperX können sich aufgrund unterschiedlicher Datentypen ergeben.

 

Für die weiteren Schritte ist es gut, wenn man die Einzelschritte des Updateverfahrens kennt (siehe Übersicht Modulupdate ).

10.1.3 Probleme mit Scripten

Wenn eine Fehlermeldung beim Ausführen von scripten wie sx_unload_table.x oder DOQUERY kommt

wie

Exception in thread "main" java.lang.NoClassDefFoundError: de/superx/bin/Doquery

 

liegt, das daran, dass ein Java-Archiv (hier superx4.0.jar) nicht im CLASSPATH ist.

Als Erstes db/bin/SQL_ENV bzw. SUPERX_ENV oder JOOLAP_ENV aufrufen und es noch einmal probieren.

sx_unload_table.x benutzt die Umgebungsvariable JDBC_CLASSPATH, die wiederum in SQL_ENV, SUPERX_ENV bzw. JOOLAP_ENV gesetzt wird.

Man muss prüfen, ob die Pfadangaben richtig sind und die jars auch an den angegeben Pfaden liegen.

10.1.4 Standdatum falsch oder unbekannt

Jeder Würfel hat im Joolap-Client einen Stand. Wenn dieser Wert unbekannt oder falsch ist, liegt das vermutlich daran dass, das Modul joolap_kern nicht geupdated wurde, denn in diesem Modul werden die Ladestände der jew. Module (in Tabelle systeminfo) übertragen. Man kann das wie folgt nachvollziehen:

In der Datei joolap.xml ist für jedes Element <fact-table> das Attribut categories mit einem Wert belegt. Dieser Wert ist in der Datei joolap.xml im Element <categories> , Attribut id referenziert. Das Element <categories> besitzt ein Attribut systeminfotid , was die Nummer tid in der Tabelle systeminfo referenziert. In der Tabelle systeminfo wiederum ist das Datum für den Stand zu finden. Normalerweise wird es in der ETL-Routine von Joolap-KERN gefüllt.

10.1.5 Out of memory

Wenn in der serverstderr.log "Out of memory" steht, sollten Sie den Arbeitsspeicher für Joolap erhöhen. Diesen Wert finden Sie in der JOOLAP_ENV in der Variable JOOLAP_DBSERVER_MEMORY. Falls dies nicht hilft kann es auch an einem Wert in der joolap.properties liegen. Hier können Sie den Wert für die Variable hsqldb.cache_scale anpassen. Der Wert muss zwischen 8 und 16 liegen. Empfehlen würden wir hier 9 einzutragen.

Die Beschreibung der Variable lautet:

Indicates the size of memory cache used with cached tables, calculated

as 2^value.

10.2 Techniken

10.2.1 Zeilen/Spaltensummen kontrollieren

Wenn Sie Joolap als Admin-Benutzer oder (beim Start aus der Kommandozeile) mit dem Startparameter --xtest gestartet haben, können Sie Zeilen-/Spaltensummen kontrollieren.

Angenommen Sie sind sich nicht sicher, ob die Gesamtzahl von 4.833 Studierenden für die Fakultät 1, der Summe der einzelnen Lehreinheiten also (245,1011,3470 u. 107) bzw. der Fachsemesterzahlen (1201,1592,783,804,453) entspricht.

 

Anstatt das mit Excel oder dem Taschenrechner zu prüfen, können   Sie die Zahl anklicken (Umrandung!) und dann in Menü Test den Befehl Zellen Summen-Kontrolle anklicken.

 

Joolap meldet dann, ob die angeklickte Zahl der Summe der rechts folgenden Zahlen bzw. der Summe der untergeordneten Knoten entspricht.

Achtung:

Bei Kostendaten könnte es z.B. sein, dass Kosten nicht nur auf die untergeordneten Lehreinheiten gebucht wurden, sondern auch auf die Fakultät 1 selbst. Dann ist es natürlich richtig , dass die Zahl für die Fakultät höher ist als die Summe der einzelnen Lehreinheiten.

10.2.2 Wie kommen einzelne Zahlen zustande ?

Starten Sie Joolap als Admin-Benutzer oder (beim Start aus der Kommandozeile mit Start parameter –xtest).

Klicken Sie eine einzelne Zahl an, so dass die Zelle in der Tabelle markiert ist.

 

Anschließend wählen Sie aus dem Menü Test, den Befehl Zellen-Select kopieren

 

Sie haben anschließend einen kommentierten select Befehl für diese Zelle in der Zwischenablage und können z.B. in der SqlWorkbench Bearbeiten/Einfügen.

 

select sum(value) from cob_busa_cube where

--Zeilen dim fikr: Aufwendungen für bezogene Leistungen

(( fikr in ('61000','61700',… ,'61330') ) )   and

--Spalten dim monat: Ganzes Jahr

(( monat in (501,401,201,1,2,3,202,4,5,6,402,203,7,8,9,204,10,11,12) ) )   and

-- Einschränkung dim geldgeber:Alle

(( geldgeber in ('all','D','P','S','weitere','959',...)   or geldgeber=null ) )   and

-- Einschränkung dim jahr:2003

jahr='2003'   and

-- Einschränkung dim institution:10000000   Universität gesamt

(( institution in ('10000000','10001000',… ,'99999999') ) )   and

-- Einschränkung dim proj_kst:beides

(( proj_kst in ('beides','P','K','-999999','0') ) )

 

Mit diesem Select können Sie "arbeiten", in dem Sie z.B. die Zeile zu Geldgebern entfernen.

Erläuterung zu ungewöhnlichen Knoten:

501,401,201,402 bei Monat sind für Zwischenebenen wie Quartal oder Halbjahr

-999999 ist der Schlüssel für einen automatisch erzeugten "Unbekannt"-Knoten, unter dem Kinder hängen, für die es keinen Eintrag in den Dimensionsblueprinttabellen gab.

10.2.3 Fehler analyse in Joolap Logdatei

Bei Fehlern kann es sinnvoll sein, sich die Log-Ausgabe von Joolap anzuschauen; beim Aufbau der Würfel prüft Joolap nämlich z.B., ob zu allen Schlüsseln in den Faktentabellen auch die entsprechenden volltexte in den Dimensionstabellen vorliegen. Ist dies nicht der Fall, so gibt der Joolap-Client im Würfel in der Dimension den Text "Unbekannt (key: <<Nummer des Schlüssels>>)" aus. Diese und weitere Prüfungen kann man sich auch in der Logdatei anschauen.

Beim Start von Joolap wird eine Logdatei im Homeverzeichnis des Benutzers erzeugt: joolap-start.log. (Ggfs. können Sie den Joolap-Client lokal starten).

  Benennen Sie diese Datei um nach joolap-start.xml, und schauen Sie sich die Datei in einem XML-fähigen Browser an. Achtung: Beim Internet Explorer muss man die Zeile
<!DOCTYPE log SYSTEM "logger.dtd">
vorher entfernen.

 

 

Die obige Warnung besagt, dass in der Faktentabelle ein Schlüssel für einen Geldgeber existiert, der in der zugehörigen Dimensionstabelle nicht existiert.

11 Joolap-Hintergründe

11.1 Faktentabellen, Dimensionen, Blueprints

Eine Hilfstabelle aus SuperX wird in Joolap "Faktentabelle" genannt, darin sind die eigentlichen Daten oder Fakten, also z.B. wieviele Studierende es in einem bestimmten Semester, in einem bestimmten Studiengang gab. (Man spricht auch von Würfel- oder cube-Tabellen).

Eine Dimension ist entspricht einer Spalte in der Faktentabelle oder einem „Merkmal“ anhand derer man sich die Daten näher betrachten kann. Das können z.B. Kostenart, Organisatorische Einheit oder Semester sein.

In den Faktentabellen sind wie bei relationalen Datenbank üblich keine Langtexte hinterlegt, sondern numerische oder alphanumerische Schlüssel.

Die Schlüssel mit Ihren Bezeichnungen sind allerdings nicht in „Dimensionstabellen“ hinterlegt, sondern in von uns so genannten „blueprint“-Tabellen.

Der Name Blueprint (für Blaupause, Vorlage) wurde gewählt, weil eine Dimension in unterschiedlichen Modulen unterschiedlich gefüllt wird, bei gleicher zugrunde liegender Datenbasis. So ist z.B. der Blueprint "org_einheit" identisch mit dem Organigramm in SuperX. Im Joolap-SOS-Modul werden aber nur die Lehreinheiten gezeigt, deshalb wird in der speziellen Dimension "Lehreinheit" das gefilterte Organigramm angezeigt. In anderen Joolap-Modulen wiederum wird das gesamte Organigramm angezeigt. Um nun sicherzustellen, dass in Joolap Modulübergreifende "Kennzahlen"-Würfel angelegt werden können, haben wir die Blueprints als Datenbasis vorgesehen.

11.2 Wie kommt joolap.xml zustande

In jedem Modul gibt es je eine Konfigurations-Xml Datei

joolap_cob/conf/joolap_cob.xml

joolap_sos/conf/joolap_sos.xml

joolap_sva/conf/joolap_sva.xml

 

Darin sind Modultabellen und ETL-Datentransferschritte beschrieben und weiterhin auch die Faktentabellen (wie sos_stud_allg_cube ), blueprints und Würfelbeschreibungen.

Unter $JOOLAP_DIR gibt es ein script

createJoolapMasterXml.x

das baut aus allen einzelnen Modulen eine große joolap.xml mit allen Blueprints,Würfeln etc auf.

  Das hat den Vorteil, dass wenn sich ein Modul ändert, ein neues Modul hinzukommt oder eins wegfällt, wir nicht an verschiedenen Stellen der "Gesamt joolap.xml" einzelne Dinge rausnehmen müssen, wobei man schon mal was übersehen kann, sondern der aktuelle Stand automatisch neu erzeugt werden kann.

 

Als Module werden alle Verzeichnisse unter $JOOLAP_DIR/db/module genommen, die mit joolap_ beginnen. Falls Sie dort ein Modul hinterlegt haben, dass im Client (noch) nicht erscheinen soll, nennen Sie das Verzeichnis z.B. tmp_joolap_sva

 

Größere Änderungen sollten also immer unter module/conf/joolap_*.xml gemacht werden und dann mit createJoolapMasterXml übernommen und zum Applikationsserver kopiert werden.

 

Ein Würfel wird in der einzelnen joolap_<<MODULNAME>>.xml bzw. der Gesamt joolap.xml mit einem

<cube>-Tag beschrieben.

Falls ein Würfel beim Client nicht angezeigt werden soll, kann man das Attribut

<cube active=“false“> setzen.

(Anschließend muss ggfs. die Gesamt joolap.xml erneuert werden s. entsprechender Abschnitt )

11.3 Das Script runAndCheck.x

Ab SuperX Version 2.1 wird in vielen Zusammenhängen das Script runAndCheck.x (home/superx/db/bin) benutzt.

runAndCheck.x path command (EXIT_ON_ERROR|CONT_ON_ERROR) (SEND_ERRORMAIL|NO_ERRORMAIL) (SEND_LOGMAIL|NO_LOGMAIL) [description]

 

Das Script hat zwei Hauptparameter PATH und Command.

Es wechselt in den angegebenen Pfad und führt das Kommando aus.

Es wird im angegebenen Verzeichnis eine LogDatei erstellt und falls die Variable $MASTERLOG gesetzt ist, wird alles auch an die Master-Logdatei angehängt.

Nach Durchführung des Kommanos wird geprüft, ob die Stichwörter „error“, „exception“, „Fehler“ o.ä. in der LogDatei vorkommen.

Als dritten Parameter gibt man entweder

EXIT_ON_ERROR -> bei einem Fehler abbrechen

oder

CONT_ON_ERROR -> bei einem Fehler weitermachen

an

 

Parameter vier und fünf sind

SEND_ERRORMAIL bzw. NO_ERRORMAIL

und

SEND_LOGMAIL bzw. NO_LOGMAIL

 

Diese Parameter geben an, ob a) bei einem Fehler oder b) generell eine Email verschickt werden soll, dazu wird die Emailadresse in den Umgebungsvariablen ERRORMAIL und LOGMAIL benutzt.

 

Als letzten Parameter gibt man in Hochkommata eine Beschreibung der Aktion an

 

Beispiel

 

runAndCheck.x $JOOLAP_DIR/db/module/joolap_bau/rohdaten joolap_bau_superx_unload.x CONT_ON_ERROR SEND_ERRORMAIL NO_LOGMAIL "Joolap_bau_s Entladen aus SuperX"

12 Versionshistorie

1.4 (5.2.2013)

Entwickler

Meikel Bisping, Daniel Quathamer, Andre Knieschewski

 

1.3 (30.3.2011)

Entwickler

Meikel Bisping, Daniel Quathamer, Andre Knieschewski

13 Anhang

13.1 HSQLDB-DatabaseManager nutzen

Wenn keine SqlWorkbench zur Verfügung steht und man nicht mit DOQUERY/DOSQL arbeiten will.

Starten Sie ggfs. zunächst den Server mit

java -Xmx200M -cp ../lib/joolap.jar org.hsqldb.Server -database joolap -port 9001

Der eingebaute HSQLDB-DatabaseManager lässt sich starten mit

DatabaseManager (sqls ausführen)

$JOOLAP_DIR/db/bin/runManager.x

ob man Standalone oder Server auswählt ist egal, entscheidend ist die url:

jdbc:hsqldb:hsql://localhost:9001 -> Serverzugriff

jdbc:hsqldb:joolap -> Öffnen der Datenbank im aktuellen Verzeichnis

 

13.2 SQLWorkbench Treiber manuell pflegen

z.B. für Joolap

Wichtig ist, dass Sie beim Treiber die joolap.jar angeben, nicht die "normalen" hsqldb-Treiber. Bei dem rechten Beispiel ist die URL vom Joolapserver der aktuelle Rechner und der Port 9001.

 

 

13.3 Lizenzen

Dieses Produkt beinhaltet Software, die von der Apache Software Foundation ( http://www.apache.org/ ) entwickelt wurde.

SuperX wird unter der deutschen Variante der GPL-Lizenz von dem Land Nordrhein-Westfalen, vertreten durch die FernUniversität Hagen, diese wiederum vertreten durch die Geschäftsstelle der Initiative CampusSource bei der FernUniversität Hagen, Feithstraße 142, D-58084 Hagen vertrieben ( www.campussource.de ). Details zu den Lizenzbedingungen finden Sie im Kernmodul-Archiv (/lizenz.txt) oder unter http://www.campussource.de/lizenz/ . Ergänzende Hinweise finden Sie auf der Projekthomepage unter http://www.superx-projekt.de .

 

Die Nutzung der Software ist nur zulässig, wenn auch die Lizenzen der

Java Runtime Umgebung von Sun und der von Joolap benutzten frei

verfügbaren Software akzeptiert werden (z.Zt. Datenbank HSQL ,

Grafikroutinen JFreeChart und Itext-Bibliothek s.u.).

HSQL-Lizenz http://hsqldb.sourceforge.net/

Copyright (c) 2001-2005, The HSQL Development Group

All rights reserved.

 

Redistribution and use in source and binary forms, with or without

modification, are permitted provided that the following conditions

are met:

 

Redistributions of source code must retain the above copyright

notice, this list of conditions and the following disclaimer.

 

Redistributions in binary form must reproduce the above copyright

notice, this list of conditions and the following disclaimer in the

documentation   and/or other materials provided with the distribution.

 

Neither the name of the HSQL Development Group nor the names of its

contributors may be used to endorse or promote products derived

from this software without specific prior written permission.

 

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND

CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL HSQL DEVELOPMENT GROUP, HSQLDB.ORG, OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE

USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

 

----------------------------------------------------------------------

------------

  JFREECHART

(C)opyright 2000-2003, by Simba Management Limited and Contributors.

Written by David Gilbert ( david.gilbert@object-refinery.com ) and

others.

JFreeChart is a free Java class library for producing charts.

JFreeChart is licensed under the terms of the GNU Lesser General

Public Licence (LGPL) ( http://www.gnu.org/licenses )               

http://www.jfree.org/jfreechart/

----------------------------------------------------------------------

-------

IText

(c)opyright by Bruno Lowagie and Paulo Soares

 

This library contains classes that generate documents in the Portable

Document Format (PDF),RTF and/or HTML.

It is licensed under the terms of the GNU Lesser General

Public Licence (LGPL) http://www.gnu.org/licenses/  

 

1   das "HÜS" ist das Hochschulübergreifende SuperX im Landesprojekt Baden Württemberg