Revision 06cb6b12
Von Moritz Bunkus vor mehr als 12 Jahren hinzugefügt
doc/html/ch04s02.html | ||
---|---|---|
1 | 1 |
<html><head> |
2 |
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
|
3 |
<title>4.2. Entwicklung unter FastCGI</title><link rel="stylesheet" type="text/css" href="style.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1-RC2"><link rel="home" href="index.html" title="Lx-Office: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch04.html" title="Kapitel 4. Entwicklerdokumentation"><link rel="prev" href="ch04.html" title="Kapitel 4. Entwicklerdokumentation"><link rel="next" href="ch04s03.html" title="4.3. SQL-Upgradedateien"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">4.2. Entwicklung unter FastCGI</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch04.html">Zur?ck</a> </td><th width="60%" align="center">Kapitel 4. Entwicklerdokumentation</th><td width="20%" align="right"> <a accesskey="n" href="ch04s03.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="4.2. Entwicklung unter FastCGI"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="devel.fcgi"></a>4.2. Entwicklung unter FastCGI</h2></div></div></div><div class="sect2" title="4.2.1. Allgemeines"><div class="titlepage"><div><div><h3 class="title"><a name="devel.fcgi.general"></a>4.2.1. Allgemeines</h3></div></div></div><p>Wenn ?nderungen in der Konfiguration von Lx-Office gemacht
|
|
4 |
werden, muss der Webserver neu gestartet werden.</p><p>Bei der Entwicklung f?r FastCGI ist auf ein paar Fallstricke zu
|
|
5 |
achten. Dadurch, dass das Programm in einer Endlosschleife l?uft,
|
|
6 |
m?ssen folgende Aspekte beachtet werden.</p></div><div class="sect2" title="4.2.2. Programmende und Ausnahmen"><div class="titlepage"><div><div><h3 class="title"><a name="devel.fcgi.exiting"></a>4.2.2. Programmende und Ausnahmen</h3></div></div></div><p>Betrifft die Funktionen <code class="function">warn</code>,
|
|
2 |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
3 |
<title>4.2. Entwicklung unter FastCGI</title><link rel="stylesheet" type="text/css" href="style.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1-RC2"><link rel="home" href="index.html" title="Lx-Office: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch04.html" title="Kapitel 4. Entwicklerdokumentation"><link rel="prev" href="ch04.html" title="Kapitel 4. Entwicklerdokumentation"><link rel="next" href="ch04s03.html" title="4.3. SQL-Upgradedateien"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">4.2. Entwicklung unter FastCGI</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch04.html">Zurück</a> </td><th width="60%" align="center">Kapitel 4. Entwicklerdokumentation</th><td width="20%" align="right"> <a accesskey="n" href="ch04s03.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="4.2. Entwicklung unter FastCGI"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="devel.fcgi"></a>4.2. Entwicklung unter FastCGI</h2></div></div></div><div class="sect2" title="4.2.1. Allgemeines"><div class="titlepage"><div><div><h3 class="title"><a name="devel.fcgi.general"></a>4.2.1. Allgemeines</h3></div></div></div><p>Wenn Änderungen in der Konfiguration von Lx-Office gemacht
|
|
4 |
werden, muss der Webserver neu gestartet werden.</p><p>Bei der Entwicklung für FastCGI ist auf ein paar Fallstricke zu
|
|
5 |
achten. Dadurch, dass das Programm in einer Endlosschleife läuft,
|
|
6 |
müssen folgende Aspekte beachtet werden.</p></div><div class="sect2" title="4.2.2. Programmende und Ausnahmen"><div class="titlepage"><div><div><h3 class="title"><a name="devel.fcgi.exiting"></a>4.2.2. Programmende und Ausnahmen</h3></div></div></div><p>Betrifft die Funktionen <code class="function">warn</code>,
|
|
7 | 7 |
<code class="function">die</code>, <code class="function">exit</code>, |
8 | 8 |
<code class="function">carp</code> und <code class="function">confess</code>.</p><p>Fehler, die dass Programm normalerweise sofort beenden (fatale |
9 | 9 |
Fehler), werden mit dem FastCGI Dispatcher abgefangen, um das Programm |
... | ... | |
16 | 16 |
<code class="function">warn</code> wird direkt nach STDERR, also in Server Log |
17 | 17 |
eine Nachricht schreiben (sofern in der Konfiguration nicht die |
18 | 18 |
Warnungen in das Lx-Office Log umgeleitet wurden), und |
19 |
<code class="function">exit</code> wird die Ausf?hrung beenden.</p><p>Prinzipiell ist es kein Beinbruch, wenn sich der Prozess
|
|
19 |
<code class="function">exit</code> wird die Ausführung beenden.</p><p>Prinzipiell ist es kein Beinbruch, wenn sich der Prozess
|
|
20 | 20 |
beendet, fcgi wird ihn sofort neu starten. Allerdings sollte das die |
21 | 21 |
Ausnahme sein. Quintessenz: Bitte kein <code class="function">exit</code> |
22 | 22 |
benutzen, alle anderen Exceptionmechanismen sind ok.</p></div><div class="sect2" title="4.2.3. Globale Variablen"><div class="titlepage"><div><div><h3 class="title"><a name="devel.fcgi.globals"></a>4.2.3. Globale Variablen</h3></div></div></div><p>Um zu vermeiden, dass Informationen von einem Request in einen |
23 |
anderen gelangen, m?ssen alle globalen Variablen vor einem Request
|
|
23 |
anderen gelangen, müssen alle globalen Variablen vor einem Request
|
|
24 | 24 |
sauber initialisiert werden. Das ist besonders wichtig im |
25 | 25 |
<code class="varname">$::cgi</code> und <code class="varname">$::auth</code> Objekt, weil |
26 |
diese nicht gel?scht werden pro Instanz, sondern persistent gehalten
|
|
26 |
diese nicht gelöscht werden pro Instanz, sondern persistent gehalten
|
|
27 | 27 |
werden.</p><p>In <code class="classname">SL::Dispatcher</code> gibt es einen sauber |
28 | 28 |
abgetrennten Block, der alle kanonischen globalen Variablen listet und |
29 |
erkl?rt. Bitte keine anderen einf?hren ohne das sauber zu
|
|
29 |
erklärt. Bitte keine anderen einführen ohne das sauber zu
|
|
30 | 30 |
dokumentieren.</p><p>Datenbankverbindungen wird noch ein Guide verfasst werden, wie |
31 | 31 |
man sicher geht, dass man die richtige erwischt.</p></div><div class="sect2" title="4.2.4. Performance und Statistiken"><div class="titlepage"><div><div><h3 class="title"><a name="devel.fcgi.performance"></a>4.2.4. Performance und Statistiken</h3></div></div></div><p>Die kritischen Pfade des Programms sind die Belegmasken, und |
32 | 32 |
unter diesen ganz besonders die Verkaufsrechnungsmaske. Ein Aufruf der |
... | ... | |
34 | 34 |
4GB Arbeitsspeicher und Ubuntu 9.10 eine halbe Sekunde. In der 2.6.0 |
35 | 35 |
sind es je nach Menge der definierten Variablen 1-2s. Ab der |
36 | 36 |
Moose/Rose::DB Version sind es 5-6s.</p><p>Mit FastCGI ist die neuste Version auf 0,26 Sekunden selbst in |
37 |
den kritischen Pfaden, unter 0,15 sonst.</p></div><div class="sect2" title="4.2.5. Bekannte Probleme"><div class="titlepage"><div><div><h3 class="title"><a name="devel.fcgi.known-issues"></a>4.2.5. Bekannte Probleme</h3></div></div></div><div class="sect3" title="4.2.5.1. Encoding Awareness"><div class="titlepage"><div><div><h4 class="title"><a name="devel.fcgi.known-issues.encoding"></a>4.2.5.1. Encoding Awareness</h4></div></div></div><p>UTF-8 kodierte Installationen sind sehr anf?llig gegen
|
|
37 |
den kritischen Pfaden, unter 0,15 sonst.</p></div><div class="sect2" title="4.2.5. Bekannte Probleme"><div class="titlepage"><div><div><h3 class="title"><a name="devel.fcgi.known-issues"></a>4.2.5. Bekannte Probleme</h3></div></div></div><div class="sect3" title="4.2.5.1. Encoding Awareness"><div class="titlepage"><div><div><h4 class="title"><a name="devel.fcgi.known-issues.encoding"></a>4.2.5.1. Encoding Awareness</h4></div></div></div><p>UTF-8 kodierte Installationen sind sehr anfällig gegen
|
|
38 | 38 |
fehlerhfate Encodings unter FCGI. latin9 Installationen behandeln |
39 | 39 |
falsch kodierte Zeichen eher unwissend, und geben sie einfach |
40 | 40 |
weiter. UTF-8 verweigert bei fehlerhaften Programmpfaden kurzerhand |
41 | 41 |
das Ausliefern. Es wird noch daran gearbeitet, alle Fehler da zu |
42 |
beseitigen.</p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch04.html">Zur?ck</a> </td><td width="20%" align="center"><a accesskey="u" href="ch04.html">Nach oben</a></td><td width="40%" align="right"> <a accesskey="n" href="ch04s03.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">Kapitel 4. Entwicklerdokumentation </td><td width="20%" align="center"><a accesskey="h" href="index.html">Zum Anfang</a></td><td width="40%" align="right" valign="top"> 4.3. SQL-Upgradedateien</td></tr></table></div></body></html> |
|
42 |
beseitigen.</p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch04.html">Zurück</a> </td><td width="20%" align="center"><a accesskey="u" href="ch04.html">Nach oben</a></td><td width="40%" align="right"> <a accesskey="n" href="ch04s03.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">Kapitel 4. Entwicklerdokumentation </td><td width="20%" align="center"><a accesskey="h" href="index.html">Zum Anfang</a></td><td width="40%" align="right" valign="top"> 4.3. SQL-Upgradedateien</td></tr></table></div></body></html> |
Auch abrufbar als: Unified diff
HTML-Version der Dokumentation in UTF-8 encodieren