|  (Die Seite wurde neu angelegt: „==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 au…“) | 
| (kein Unterschied) | 
Aktuelle Version vom 22. Januar 2015, 10:01 Uhr
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