X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=doc%2Fhtml%2Fch04s02.html;h=54993901a7daa38049b25b0f7045d16e6e4b74a2;hb=60727b511c462893759c148dc0058ba90f4905ea;hp=e8b7b7b854abf576f1a6c076b926f800abc6f146;hpb=15f021a67aa7e26458a3fbac8efe89ef9c0b0657;p=kivitendo-erp.git diff --git a/doc/html/ch04s02.html b/doc/html/ch04s02.html index e8b7b7b85..54993901a 100644 --- a/doc/html/ch04s02.html +++ b/doc/html/ch04s02.html @@ -1,42 +1,37 @@ - - 4.2. Entwicklung unter FastCGI

4.2. Entwicklung unter FastCGI

4.2.1. Allgemeines

Wenn Änderungen in der Konfiguration von Lx-Office gemacht - werden, muss der Webserver neu gestartet werden.

Bei der Entwicklung für FastCGI ist auf ein paar Fallstricke zu - achten. Dadurch, dass das Programm in einer Endlosschleife läuft, - müssen folgende Aspekte beachtet werden.

4.2.2. Programmende und Ausnahmen

Betrifft die Funktionen warn, + + 4.2. Entwicklung unter FastCGI

4.2. Entwicklung unter FastCGI

4.2.1. Allgemeines

Wenn Änderungen in der Konfiguration von kivitendo gemacht + werden, muss der Webserver neu gestartet werden.

Bei der Entwicklung für FastCGI ist auf ein paar Fallstricke zu + achten. Dadurch, dass das Programm in einer Endlosschleife läuft, + müssen folgende Aspekte beachtet werden.

4.2.2. Programmende und Ausnahmen

Betrifft die Funktionen warn, die, exit, carp und confess.

Fehler, die dass Programm normalerweise sofort beenden (fatale Fehler), werden mit dem FastCGI Dispatcher abgefangen, um das Programm am Laufen zu halten. Man kann mit die, confess oder carp Fehler - ausgeben, die dann vom Dispatcher angezeigt werden. Die Lx-Office + ausgeben, die dann vom Dispatcher angezeigt werden. Die kivitendo eigene $::form-error()> tut im Prinzip das Gleiche, mit ein paar Extraoptionen. warn und exit hingegen werden nicht abgefangen. warn wird direkt nach STDERR, also in Server Log eine Nachricht schreiben (sofern in der Konfiguration nicht die - Warnungen in das Lx-Office Log umgeleitet wurden), und - exit wird die Ausführung beenden.

Prinzipiell ist es kein Beinbruch, wenn sich der Prozess + Warnungen in das kivitendo Log umgeleitet wurden), und + exit wird die Ausführung beenden.

Prinzipiell ist es kein Beinbruch, wenn sich der Prozess beendet, fcgi wird ihn sofort neu starten. Allerdings sollte das die Ausnahme sein. Quintessenz: Bitte kein exit benutzen, alle anderen Exceptionmechanismen sind ok.

4.2.3. Globale Variablen

Um zu vermeiden, dass Informationen von einem Request in einen - anderen gelangen, müssen alle globalen Variablen vor einem Request + anderen gelangen, müssen alle globalen Variablen vor einem Request sauber initialisiert werden. Das ist besonders wichtig im $::cgi und $::auth Objekt, weil - diese nicht gelöscht werden pro Instanz, sondern persistent gehalten + diese nicht gelöscht werden pro Instanz, sondern persistent gehalten werden.

In SL::Dispatcher gibt es einen sauber abgetrennten Block, der alle kanonischen globalen Variablen listet und - erklärt. Bitte keine anderen einführen ohne das sauber zu + erklärt. Bitte keine anderen einführen ohne das sauber zu dokumentieren.

Datenbankverbindungen wird noch ein Guide verfasst werden, wie man sicher geht, dass man die richtige erwischt.

4.2.4. Performance und Statistiken

Die kritischen Pfade des Programms sind die Belegmasken, und unter diesen ganz besonders die Verkaufsrechnungsmaske. Ein Aufruf der - Rechnungsmaske in Lx-Office 2.4.3 stable dauert auf einem Core2duo mit + Rechnungsmaske in kivitendo 2.4.3 stable dauert auf einem Core2duo mit 4GB Arbeitsspeicher und Ubuntu 9.10 eine halbe Sekunde. In der 2.6.0 sind es je nach Menge der definierten Variablen 1-2s. Ab der Moose/Rose::DB Version sind es 5-6s.

Mit FastCGI ist die neuste Version auf 0,26 Sekunden selbst in - den kritischen Pfaden, unter 0,15 sonst.

4.2.5. Bekannte Probleme

4.2.5.1. Encoding Awareness

UTF-8 kodierte Installationen sind sehr anfällig gegen - fehlerhfate Encodings unter FCGI. latin9 Installationen behandeln - falsch kodierte Zeichen eher unwissend, und geben sie einfach - weiter. UTF-8 verweigert bei fehlerhaften Programmpfaden kurzerhand - das Ausliefern. Es wird noch daran gearbeitet, alle Fehler da zu - beseitigen.

\ No newline at end of file + den kritischen Pfaden, unter 0,15 sonst.

\ No newline at end of file