Skip to content

Commit 3c4903c

Browse files
committed
server: update arguments and testclient docs
1 parent 866dd01 commit 3c4903c

File tree

1 file changed

+45
-37
lines changed

1 file changed

+45
-37
lines changed

hyperbook/glossary/server.md

+45-37
Original file line numberDiff line numberDiff line change
@@ -182,35 +182,39 @@ Port 13051. So kannst du ihn nutzen:
182182
6. Um weitere Testspiele zu spielen, starte die :t[Computerspieler]{#player} erneut.
183183
Der Testserver muss dabei nicht neu gestartet werden.
184184

185-
Beachte, dass der Testserver keine Spielaufzeichnungen anlegt, wie es
186-
der Server mit grafischer Oberfläche tut. Die Auswertung der Spiele muss
187-
in einem der teilnehmenden :t[Computerspieler]{#player} geschehen (z.B. durch
188-
Log-Ausgaben).
189-
190-
Es ist ebenfalls möglich, statt eines zufällig generierten vollständigen
191-
Spielplanes eine Spielsituation zu laden und zu testen. Die
192-
Spielsituation muss vorher wie unter [Spielsituation
193-
nachstellen](#spielsituation-nachstellen) erzeugt werden. Dann kann die
194-
Datei mit dem Argument `--loadGameFile` geladen werden und optional mit
195-
`--turn` ein Zug spezifiziert werden.
185+
Beachte, dass der Testserver keine Spielaufzeichnungen anlegt,
186+
wie es der Server mit grafischer Oberfläche tut.
187+
Die Auswertung der Spiele muss in einem der teilnehmenden :t[Computerspieler]{#player} geschehen
188+
(z.B. durch Log-Ausgaben).
189+
190+
Es ist ebenfalls möglich, statt eines zufällig generierten vollständigen Spielplanes
191+
eine Spielsituation zu laden und zu testen.
192+
Die Spielsituation muss vorher wie unter [Spielsituation nachstellen](#spielsituation-nachstellen) erzeugt werden.
193+
Dann kann die Datei mit dem Argument `--loadGameFile` geladen werden
194+
und optional mit `--turn` ein Zug spezifiziert werden.
196195
```shell
197196
java -Dfile.encoding=UTF-8 -Dlogback.configurationFile=logback.xml -jar softwarechallenge-server.jar --port 13051 --loadGameFile ./replay.xml --turn 10
198197

199198
```
199+
200200
### Unerwartete Zugzeitüberschreitungen (Soft-Timeout)
201201

202-
Wenn Sie den Testserver einige Zeit laufen lassen, um eine größere
203-
Anzahl von Testspielen durchzuführen, kann es dazu kommen, dass
204-
:t[Computerspieler]{#player} wegen Zugzeitüberschreitungen vom Server disqualifiziert
205-
werden (Soft-Timeout). Dies passiert, obwohl der Zug innerhalb der
206-
erlaubten Zugzeit (abhängig vom Spiel, bisher aber immer zwei Sekunden)
207-
an den Server geschickt wurde. Der Garbage Collector der Java Virtual
208-
Machine löst dieses Verhalten aus. Er pausiert die Anwendung, um nicht
209-
mehr genutzten Speicher freizugeben. Wenn der Server dadurch zu einem
210-
ungünstigen Zeitpunkt angehalten wird, bemerkt er den Eingang des Zuges
211-
vom :t[Computerspieler]{#player} nicht rechtzeitig und disqualifiziert ihn daraufhin.
212-
Damit dieses Problem möglichst selten auftritt, haben sich die folgenden
213-
Parameter beim Starten des Servers bewährt:
202+
Mit der Option `--no-timeout` können Zeitüberschreitungen für alle Spieler deaktiviert werden.
203+
Alternativ können diese auch bei erstellten Reservierungen
204+
über das XML-Protokoll individuell für jeden Spieler gesetzt werden.
205+
206+
Wenn Sie den Testserver einige Zeit laufen lassen,
207+
um eine größere Anzahl von Testspielen durchzuführen, kann es dazu kommen,
208+
dass :t[Computerspieler]{#player} wegen Zugzeitüberschreitungen vom Server disqualifiziert werden (Soft-Timeout).
209+
Dies passiert, obwohl der Zug innerhalb der erlaubten Zugzeit
210+
(abhängig vom Spiel, bisher aber immer zwei Sekunden)
211+
an den Server geschickt wurde.
212+
Der Garbage Collector der Java Virtual Machine löst dieses Verhalten aus.
213+
Er pausiert die Anwendung, um nicht mehr genutzten Speicher freizugeben.
214+
Wenn der Server dadurch zu einem ungünstigen Zeitpunkt angehalten wird,
215+
bemerkt er den Eingang des Zuges vom :t[Computerspieler]{#player} nicht rechtzeitig und disqualifiziert ihn daraufhin.
216+
Damit dieses Problem möglichst selten auftritt,
217+
haben sich die folgenden Parameter beim Starten des Servers bewährt:
214218

215219
Unter Linux:
216220
```shell
@@ -253,18 +257,23 @@ Dazu gehören erhöhter Resourcenverbrauch und Instabilität der Anwendung.
253257
Eine Auflistung möglicher nützlicher Parameter für :t[Computerspieler]{#player} findet sich unter
254258
https://stackoverflow.com/questions/48989515/java-garbage-collector-time-limit.
255259

256-
### Massentests
260+
### Massentests mit dem TestClient
257261

258262
Massentests mit dem eigenen :t[Computerspieler]{#player} können sehr nützlich sein,
259-
beispeilsweise um die Stärke gegenüber einer früheren Version zu Testen.
260-
Dafür wird in jeder Saison ab Version XX.1.0 ein TestClient
261-
bereitgestellt.
263+
beispielsweise um die Stärke gegenüber einer früheren Version zu Testen.
264+
Dafür wird in jeder Saison ab Version XX.1.0 ein TestClient bereitgestellt.
265+
266+
Der TestClient lässt für eine Anzahl an Spielen zwei Computerspieler gegeneinander antreten,
267+
wobei die Startreihenfolge abwechselt,
268+
sodass eine gerade Anzahl an Spielen sinnvoll ist.
269+
Dabei informiert er über den Fortschritt
270+
und wertet am Ende die erreichten Punktzahlen aus.
262271

263-
Der TestClient muss vom Terminal mit den entsprechenden Argumenten
264-
aufgerufen werden. Diese werden unter den Beispielen näher erläutert.
272+
Der TestClient muss vom Terminal mit den entsprechenden Argumenten aufgerufen werden.
273+
Diese werden unter den Beispielen näher erläutert.
265274

266275
Unter Linux:
267-
```shell
276+
```sh
268277
java -jar -Dlogback.configurationFile=logback-tests.xml test-client.jar \
269278
--tests 4 \
270279
--name1 "displayName1" \
@@ -274,10 +283,10 @@ Unter Linux:
274283
--start-server \
275284
--port 13051
276285
```
277-
Unter Windows (unterscheidet sich nur durch die Art, den langen Befehl
278-
auf mehrere Zeilen zu verteilen):
286+
Unter Windows
287+
(unterscheidet sich nur durch die Art, den langen Befehl auf mehrere Zeilen zu verteilen):
279288

280-
```shell
289+
```cmd
281290
java -jar -Dlogback.configurationFile=logback-tests.xml test-client.jar ^
282291
--tests 4 ^
283292
--name1 "displayName1" ^
@@ -287,10 +296,9 @@ auf mehrere Zeilen zu verteilen):
287296
--start-server ^
288297
--port 13051
289298
```
290-
Der TestClient kann sich auch mit einem bereits laufenden Server
291-
verbinden, bei Angabe des Arguments `--start-server` startet er jedoch
292-
einfach selbst einen. Wichtig ist, dass nicht versucht wird, zwei Server
293-
auf dem selben Port zu starten.
299+
Der TestClient kann sich auch mit einem bereits laufenden Server verbinden,
300+
bei Angabe des Arguments `--start-server` startet er jedoch einfach selbst einen.
301+
Wichtig ist, dass nicht versucht wird, zwei Server auf dem selben Port zu starten.
294302

295303
#### Argumente des TestClients
296304

0 commit comments

Comments
 (0)