Zuletzt bearbeitet vor 10 Jahren
von Andre Knieschewski

HSZ Mandanten SQL ENV

Vorwort

Um bei der Konfiguration etwas Zeit zu sparen und auch in Zukunft Änderungen zu erleichtern wäre es sinnvoll die SQL_ENV für Mandantensysteme auf zu splitten.

Aufteilung

Die SQL_ENV würde sich in 3 Bereiche aufteilen

Hauptbereich

In dem Hauptbereich bleibt der meiste Teil der Konfiguration. Die Mandantenspezifischen Variablen werden entfernt und selten geänderte Variablen wie die Modulpfade werden ausgelagert. Vorteil ist bei z.B. Änderung der Java Version muss nur die eine SQL_ENV geändert werden und nicht jede Mandanten ENV.

Mandanten ENV

In der Mandanten ENV kommen nur die Mandantenspezifischen Variablen rein. Das sind in der Regel nur 3-5 Variablen. Damit ist diese ENV sehr übersichtlich und kann auch schnell für einen weiteren Mandanten dupliziert werden. Aus der Mandanten ENV wird dann die SQL_ENV geladen.

Modulpfade

Die Modulpfade werden in den seltensten Fällen angepasst. Da dieser Bereich recht groß ist bekommt er eine eigene Datei. Der Vorteil ist, dass die häufiger zu bearbeitende SQL_ENV wesentlich übersichtlicher wird. Die zu erstellende Datei nennen wir SQL_ENV_MODULE. Diese ENV wird dann am Ende von der SQL_ENV geladen.



Beispiel Code

SQL_ENV.MANDANT

#!/bin/sh

umask 066
#In SuperX-FUll-Release:
export SUPERX_DIR=/home/superx
export WEBAPP=$SUPERX_DIR/webserver/tomcat/webapps/superx


# Mandantenspezifisch:
export MANDANTENID=MANDANT
export DB_PROPERTIES=$WEBAPP/WEB-INF/db_MANDANT.properties
export DBNAME=mandant

. $SUPERX_DIR/db/bin/SQL_ENV

SQL_ENV

#!/bin/sh


umask 066
#In SuperX-FUll-Release:
export SUPERX_DIR=/home/superx
export WEBAPP=$SUPERX_DIR/webserver/tomcat/webapps/superx

export JAVA_HOME=/usr/lib/java
export JRE_HOME=$JAVA_HOME

export SUPERX_VERSION=4.3

export CATALINA_OPTS="-Xms100M -Xmx1500M -Djava.awt.headless=true -Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false"


export DATABASE=POSTGRES

#export SX_CLIENT=jdbc
export SX_CLIENT=psql
#export SX_CLIENT=dbaccess

#export LANG=de_DE@euro
export LANG=de_DE.utf8


case $SX_CLIENT in

psql)
	export PGDATESTYLE=German
	export O_DESCR=$SUPERX_DIR/db/conf/unldescr_postgres_copy.xml
	export PGPORT=5432
	export PGHOST=dbserver
	PGPATH=/usr/local/pgsql
	export PGDATA=$PGPATH/data
	case $PATH in
	*"$PGPATH"/bin*)
		;;
	*)
		export PATH=$PATH:"$PGPATH"/bin
		#echo "PATH erweitert"
		;;
	esac
;;
dbaccess)

	INFORMIXDIR=/home/informix; export INFORMIXDIR
	INFORMIXSERVER=superx_host; export INFORMIXSERVER
	ONCONFIG=onconfig.superx; export ONCONFIG
	INF_BIN=$INFORMIXDIR/bin; export INF_BIN
	DBMONEY=.                       ; export DBMONEY
	DBDATE=DMY4.			; export DBDATE
	TERMCAP=${INFORMIXDIR}/etc/termcap; export TERMCAP
	#CLIENT_LOCALE=de_DE.8859-1; export CLIENT_LOCALE
	#SERVER_LOCALE=de_DE.8859-1; export SERVER_LOCALE
	#DB_LOCALE=de_DE.8859-1; export DB_LOCALE
#	GL_DATETIME='%X'; export GL_DATETIME
	GL_DATETIME='%d.%m.%Y %T'; export GL_DATETIME
	#Prüfen ob der PATH erweitert werden muss
	case $PATH in
	*$INF_BIN*)
		;;
	*)
		export PATH=$PATH:$INF_BIN
		#echo "PATH erweitert"
		;;
	esac
	#Für erweitertes Logging einschalten:
	#DBACCESS_PARAMS="-e"
	#export DBACCESS_PARAMS
;;

esac

#Mailprogramm angeben z.B. mail oder mutt
#MAILPROG=mutt
export MAILPROG=mail
export ERRORMAIL=mail@server.de
export LOGMAIL=$ERRORMAIL

#--------------------------------------------------------
#ab hier muss man normalerweise nichts mehr ändern
#Die Umgebungsvariablen ab hier müssen in den meisten Fällen nicht angepasst werden:
#--------------------------------------------------------

DATABASE_ABBR=""
case $DATABASE in
POSTGRES)
	DATABASE_ABBR="pg";export DATABASE_ABBR
	;;
INFORMIX)
 	DATABASE_ABBR="ids";export DATABASE_ABBR
	;;
HSQLDB)
DATABASE_ABBR="hsql";export DATABASE_ABBR
;;
esac
if [ "$DATABASE_ABBR" = "" ]
then
  echo "Nicht unterstützte Datenbank: $DATABASE"
fi



export LOGGER_PROPERTIES=$SUPERX_DIR/db/conf/logging.properties
LIB_PATH=$WEBAPP/WEB-INF/lib
export JDBC_CLASSPATH="$LIB_PATH/ant.jar" ; for i in `ls $LIB_PATH/*.jar` ; do JDBC_CLASSPATH=$JDBC_CLASSPATH:$i ; done ; XML_CLASSPATH=$JDBC_CLASSPATH
export DBFORMS_CLASSPATH=$XML_CLASSPATH:$LIB_PATH/dbforms2.5.jar

CYGWIN=false
case "`uname`" in
CYGWIN*) CYGWIN=true;;
esac
export CYGWIN

#The standard Desciptor for unload-Files is Informix Load:
#Details zur Arbeitsweise in dieser Datei:
I_DESCR=$SUPERX_DIR/db/conf/unldescr_informix_load.xml
export I_DESCR
# For Cygwin, switch paths to Windows format before running java
if $CYGWIN; then
  JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
  export JAVA_HOME
  DB_PROPERTIES=`cygpath --path --windows "$DB_PROPERTIES"`
  export B_PROPERTIES
  XML_CLASSPATH=`cygpath --path --windows "$XML_CLASSPATH"`
  export XML_CLASSPATH
  TOMCAT_LIB=`cygpath --path --windows "$TOMCAT_LIB"`
  export TOMCAT_LIB
  JDBC_CLASSPATH=`cygpath --path --windows "$JDBC_CLASSPATH"`
  export JDBC_CLASSPATH
  LOGGER_PROPERTIES=`cygpath --path --windows "$LOGGER_PROPERTIES"`
  export LOGGER_PROPERTIES
  O_DESCR=`cygpath --path --windows "$O_DESCR"`
  export LOGGER_PROPERTIES
  I_DESCR=`cygpath --path --windows "$I_DESCR"`
  export I_DESCR
fi

#Rechnername (DNS), beim Betrieb von SuperX auf 2 Rechnern
RECHNER=server; export RECHNER
#Bitte dies nicht ändern:
DBDELIMITER="^"					; export DBDELIMITER
#Der Datenbankname für die Shellscript in db/bin
#DBNAME=mandant; export DBNAME


if [ "$TERM" = "" ]
   then TERM=vt100				; export TERM
fi

SUPERX_MODULE=$SUPERX_DIR/db/module
SUPERX_ROHDATEN=rohdaten/$MANDANTENID
#Prüfen ob der PATH erweitert werden muss

case $PATH in
	*$SUPERX_DIR/db/bin:.*)
		;;
	*)
		export PATH=$PATH:$SUPERX_DIR/db/bin:.
		#echo "PATH erweitert"
		;;
	esac
PATH=$JAVA_HOME/bin:$PATH
export PATH
CLASSPATH=.
export CLASSPATH



#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 sos"

#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


TOMCAT=/home/superx/webserver/tomcat/bin
export TOMCAT

. $SUPERX_DIR/db/bin/SQL_ENV_MODULE


SQL_ENV_MODULE

#!/bin/sh
 SVA_PFAD=$SUPERX_MODULE/sva; export SVA_PFAD
 SVA_ERRORDAT=$SVA_PFAD/sva_load.err; export SVA_ERRORDAT
 SVA_LOAD_PFAD=$SVA_PFAD/$SUPERX_ROHDATEN; export SVA_LOAD_PFAD
 SVA_ERRORMAIL=$ERRORMAIL; export SVA_ERRORMAIL
 SVA_LOGMAIL=$LOGMAIL; export SVA_LOGMAIL
 SOS_PFAD=$SUPERX_MODULE/sos; export SOS_PFAD
 SOS_ERRORDAT=$SOS_PFAD/sos_update.err; export SOS_ERRORDAT
 SOS_LOAD_PFAD=$SOS_PFAD/$SUPERX_ROHDATEN; export SOS_LOAD_PFAD
 SOS_ERRORMAIL=$ERRORMAIL; export SOS_ERRORMAIL
 SOS_LOGMAIL=$LOGMAIL; export SOS_LOGMAIL
 FIN_PFAD=$SUPERX_MODULE/fin; export FIN_PFAD
 FIN_ERRORDAT=$FIN_PFAD/fin_update.err; export FIN_ERRORDAT
 FIN_LOAD_PFAD=$FIN_PFAD/$SUPERX_ROHDATEN; export FIN_LOAD_PFAD
 FIN_ERRORMAIL=$ERRORMAIL; export FIN_ERRORMAIL
 FIN_LOGMAIL=$LOGMAIL; export FIN_LOGMAIL
 BAU_PFAD=$SUPERX_MODULE/bau; export BAU_PFAD
 BAU_ERRORDAT=$BAU_PFAD/bau_load.err; export BAU_ERRORDAT
 BAU_LOAD_PFAD=$BAU_PFAD/$SUPERX_ROHDATEN; export BAU_LOAD_PFAD
 BAU_ERRORMAIL=$ERRORMAIL; export BAU_ERRORMAIL
 BAU_LOGMAIL=$LOGMAIL; export BAU_LOGMAIL
 COB_PFAD=$SUPERX_MODULE/cob; export COB_PFAD
 COB_ERRORDAT=$COB_PFAD/cob_update.err; export COB_ERRORDAT
 COB_LOAD_PFAD=$COB_PFAD/$SUPERX_ROHDATEN; export COB_LOAD_PFAD
 COB_ERRORMAIL=$ERRORMAIL; export COB_ERRORMAIL
 COB_LOGMAIL=$LOGMAIL; export COB_LOGMAIL
 GANG_PFAD=$SUPERX_MODULE/gang; export GANG_PFAD
 GANG_ERRORDAT=$GANG_PFAD/gang_update.err; export GANG_ERRORDAT
 #Hier stehen die Rohdaten (im Unterverzeichnis unl)
 GANG_LOAD_PFAD=$GANG_PFAD/$SUPERX_ROHDATEN; export GANG_LOAD_PFAD
 GANG_ERRORMAIL=$ERRORMAIL; export GANG_ERRORMAIL
 GANG_LOGMAIL=$LOGMAIL; export GANG_LOGMAIL
 KENN_PFAD=$SUPERX_MODULE/kenn; export KENN_PFAD
 KENN_ERRORDAT=$KENN_PFAD/kenn_update.err; export KENN_ERRORDAT
 KENN_LOAD_PFAD=$KENN_PFAD/$SUPERX_ROHDATEN; export KENN_LOAD_PFAD
 KENN_ERRORMAIL=$ERRORMAIL; export KENN_ERRORMAIL
 KENN_LOGMAIL=$LOGMAIL; export KENN_LOGMAIL
 ERFOLG_PFAD=$SUPERX_MODULE/erfolg; export ERFOLG_PFAD
 ERFOLG_ERRORDAT=$ERFOLG_PFAD/erfolg_update.err; export ERFOLG_ERRORDAT
 ERFOLG_LOAD_PFAD=$ERFOLG_PFAD/$SUPERX_ROHDATEN; export ERFOLG_LOAD_PFAD
 ERFOLG_ERRORMAIL=$ERRORMAIL; export ERFOLG_ERRORMAIL
 ERFOLG_LOGMAIL=$LOGMAIL; export ERFOLG_LOGMAIL
 ICE_PFAD=$SUPERX_MODULE/ice; export ICE_PFAD
 ICE_ERRORDAT=$ICE_PFAD/ice_update.err; export ICE_ERRORDAT
 ICE_LOAD_PFAD=$ICE_PFAD/$SUPERX_ROHDATEN; export ICE_LOAD_PFAD
 ICE_ERRORMAIL=$ERRORMAIL; export ICE_ERRORMAIL
 ICE_LOGMAIL=$LOGMAIL; export ICE_LOGMAIL
 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_ERRORMAIL=$SOS_ERRORMAIL #Standard-Mailadr.
 export JOOLAP_SOS_S_ERRORMAIL
 JOOLAP_SOS_S_LOGMAIL=$SOS_LOGMAIL #Standard-Mailadr.
 export JOOLAP_SOS_S_LOGMAIL
 JOOLAP_SOS_S_BACKUP="false"
 export JOOLAP_SOS_S_BACKUP
 JOOLAP_SVA_S_PFAD=$SUPERX_MODULE/joolap_sva_s; export JOOLAP_SVA_S_PFAD
 JOOLAP_SVA_S_ERRORDAT=$JOOLAP_SVA_S_PFAD/joolap_sva_s_update.err; export JOOLAP_SVA_S_ERRORDAT
 JOOLAP_SVA_S_ERRORMAIL=$SVA_ERRORMAIL #Standard-Mailadr.
 export JOOLAP_SVA_S_ERRORMAIL
 JOOLAP_SVA_S_LOGMAIL=$SVA_LOGMAIL #Standard-Mailadr.
 export JOOLAP_SVA_S_LOGMAIL
 JOOLAP_SVA_S_BACKUP="false"
 export JOOLAP_SVA_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_BAU_S_PFAD=$SUPERX_MODULE/joolap_bau_s; export JOOLAP_BAU_S_PFAD
 JOOLAP_BAU_S_ERRORDAT=$JOOLAP_BAU_S_PFAD/joolap_bau_s_update.err; export JOOLAP_BAU_S_ERRORDAT
 JOOLAP_BAU_S_ERRORMAIL=$BAU_ERRORMAIL #Standard-Mailadr.
 export JOOLAP_BAU_S_ERRORMAIL
 JOOLAP_BAU_S_LOGMAIL=$BAU_LOGMAIL #Standard-Mailadr.
 export JOOLAP_BAU_S_LOGMAIL
 JOOLAP_BAU_S_BACKUP="false"
 export JOOLAP_BAU_S_BACKUP
 ZUL_PFAD=$SUPERX_MODULE/zul; export ZUL_PFAD
 ZUL_ERRORDAT=$ZUL_PFAD/zul_update.err; export ZUL_ERRORDAT
 #Hier stehen die Rohdaten (im Unterverzeichnis unl)
 ZUL_LOAD_PFAD=$ZUL_PFAD/$SUPERX_ROHDATEN; export ZUL_LOAD_PFAD
 ZUL_ERRORMAIL=$ERRORMAIL; export ZUL_ERRORMAIL
 ZUL_LOGMAIL=$LOGMAIL; export ZUL_LOGMAIL
 IVS_PFAD=$SUPERX_MODULE/ivs; export IVS_PFAD
 IVS_ERRORDAT=$IVS_PFAD/ivs_update.err; export IVS_ERRORDAT
 #Hier stehen die Rohdaten (im Unterverzeichnis unl)
 IVS_LOAD_PFAD=$IVS_PFAD/$SUPERX_ROHDATEN; export IVS_LOAD_PFAD
 IVS_ERRORMAIL=$ERRORMAIL; export IVS_ERRORMAIL
 IVS_LOGMAIL=$LOGMAIL; export IVS_LOGMAIL