getMyConfig

Um serverunabhägig entwickeln zu können ist logischer Weise eine komplette Unabhängigkeit in der Programmierung notwendig.

Soweit für den einen oder anderen ja auch kein Problem, auch wenn die meisten Entwickler in der Regel von Dingen ausgehen die nicht immer so sind. Freelancer haben da Murphy schon oft getroffen und daher in der Regel wesentlich mehr Erfahrung.

Oft wird aber auch eine bedingte Abhängigkeit gefordert. Das heisst bestimmte Funktionen sollen nur dann ausgeführt werden, wenn sie sich auf einem bestimmten Server befinden, nur auf einem bestimmten Port laufen dürften oder einfach keine Funktionen im Netz aufrufen dürfen, weil sie gar nicht online sind. Beispiel: Auf einem Notebokk ohne Internetzugang bzw. aus Kostengründen und/oder Performancegründen nicht immer online gehen sollen.

Am besten legt man das dann in einer Config-Datei „server.xml“ fest, die einmalig bei jedem Start einer Application aufgerufen wird.

Datei: server.xml



      

      
            mySampleApp,c:WebSpacemySampleAppcfMapping>
            mySampleAppodbc>
            falseonline>
      server>

      
            mySampleApp,o:onlinemySampleAppcfMapping>
            mySampleAppodbc>
            trueonline>

      server>

 

Es wird daraufhin neue folgende Struktur im ServerScope erstellt, wobei der Elementbaum ab Server natürlich beliebig erweitert werden kann und dann auch automatisch im Server-Scope erweitert wird:
getMyConfig

Die notwendige Funktion „getMyConfig“ wird dann wie folgt aufgerufen:
component=“controller.system.functions“ method=“getMyConfig“ returnvariable=“myAppName“ configPath=“c:WebSpacemySampleAppconfigserver.xml“ serverScope=“apps“ serverName=“#myServerName#“>

und kann anschliessen wie folgt genutzt werden:
xxxx name=“#myAppName#“>

Natürlich macht diese Funktion nur Sinn wenn der Servername der Maschine auch automatisch ermittelt wird. Am einfachsten und am besten nimmt man meine SystemInfo()-Funktion, oder man aerbeitet mit IP-Addresse als Servername. Kann aber unter Umständen Probleme geben wenn die IP-Addressen die gleichen sind; auf verschienenen Notebooks, welche in der Regel andere Namen haben (sollten). Im gleichen Netzwerk warscheinlich nicht das Problem. Und „#cgi.SERVER_NAME#“ löst auch nicht immer das Problem.

Da die Daten ja im Server-Scope abgelegt werden, kann man darüber auch ermittlen welche Applikationen seit wann online sind.

0 Antworten

Hinterlassen Sie einen Kommentar

Wollen Sie an der Diskussion teilnehmen?
Feel free to contribute!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.