Server FAQ

Aus Wiki-applejuice.NET
Wechseln zu: Navigation, Suche
Server wiki.png

Hauptseite | Server FAQ | Installation unter Linux | Installation unter Windows | FAQ | Allgemeine FAQ | Grundlagen FAQ | Core | GUI



FAQ Serverwissen - Informationen

Um einen Server für appleJuice bereit zu stellen müsst ihr Euch anmelden bei Theo_Box. Hilfe findet ihr dann hier: [Server FAQ]

Welche Java-Version benötige ich und wo bekomme ich diese her?

Für Server v.0.77 und v.0.78 wird die Java-Version 1.7.xx (Java 7.0) empfohlen. Zu finden unter http://www.java.com/de/download/manual.jsp. Für Leute, die nicht selbst mit Java programmieren wollen, ist die JRE (JRE 7.0 Update x includes the JVM technology) ausreichend. Unter Linux funktioniert auch die aktuelle 64bit OpenJDK-Version. Man kann aber auch manuell die JRE 7 für 32bit installieren.

Welche Ports braucht der Server

Der Server nutzt insgesamt 3 Ports - 2 für den Serverbetrieb und 1 für den Serverwatcher. Alle 3 können durch Ändern der server.xml frei gewählt werden

<port value="EIN PORT"/> - ist der 1. tcp-port. Der 2. Port wird durch 1. Port +1 errechnet. z.B. <port value="9855"/> port 9855 und 9856. Für beide muss tcp freigeben werden (Router/Firewall). Der erste Port ist für Client<>Server, der zweite für Server<>Server Kommunikation zuständig.

<webport>8001</webport> - ist der Port für den Serverwatcher, der in dem Fall mit http://127.0.0.1:8001 aufgerufen werden kann (Server läuft hier lokal auf dem Rechner). Der Port muss nur freigegeben werden, wenn von außen auf den Serverwatcher zugegriffen werden soll.

Was bedeuten die Farben im Serverwatcher

  • Dunkelblau - Zu diesem Server besteht momentan eine direkte Verbindung
  • Hellblau - Im Moment kein direkter Kontakt
  • Gelb - Dein eigener Server
  • Grün - Online
  • Rot - Offline oder kein Kontakt mit dem Server nötig. Der Server wird dann nach spätestens 30 Minuten aus dem Serverwatcher entfernt

H-Time I-Time lastseen References Points Task

H-Time 
HashtableTime (Zeit der Erstellung der Hashtable)
I-Time 
ClientinformationTime (wer gesperrt ist usw.)
lastseen 
lastseen (vor stunde:minute:sekunde zuletzt aktiv gesehen)
References 
References (Anzahl der auf diesem Server bekannten Files)
Points 
Points (Config/Überlastungspunkte, siehe unten)
  • maximal 10 Punkte
  • > 0 gute Server
  • < 0 Port nicht gemappt, Server aus oder Server überlastet
  • < 0 verwalten nicht die hashtable
Tasks 
zu erledigende Aufgaben
  • Hashtablecontent
  • Quellenanfrage
  • Ping
  • Gesamtuserzahl ermitteln
  • gesperrte Versioneninfo holen
  • Hashtableinfo holen

Wie kann ich die Meldungen mitloggen?

Indem du die Startanweisung erweiterst.

java -Xmx128m -jar ajserver.jar >>aj_server.txt

Dies schreibt die Ausgaben des Servers in die Datei aj.txt. Die Datei liegt dann im Serververzeichnis.

Wie kann ich meinen eigenen Time-Server starten?

Indem du die Startanweisung erweiterst.

java -Xmx128m -jar ajserver.jar --usemyNTP >>aj_server.txt

Dies startet deinen zuvor in die Datei "server.xml" eingetragenen Timeserver. Die Datei liegt in deinem Serververzeichnis. Die Zeile sieht so aus: "<timeserver>dein Timeserver</timeserver>"

Wie kann ich noch Informationen vom Server abrufen?

Einen "direkt auslesbaren" HTTP-Port wie beim Delphiserver gibt es nicht mehr, stattdessen nun eine über das HTTP-Protokoll erreichbare xml Datei:

http://localhost:8001/info.xml

Port und Zugangsdaten sind die des Serverwatchers.

Wer sich ein wenig mit Programmiersprachen wie z.B. PHP oder Java auskennt, kann auch die html-Dateien, die den Serverwatcher bilden, parsen. Zu finden im Unterverzeichnis wwwpath. Tipp: Die wichtigsten Infos werden mit den Zeilen <?serverlist?>, <?hashtable?> und <?status?> abgerufen, html-files sind entsprechend anpassbar ;)

Konsolen-Informationen vom Server abrufen?

Da ja der Server genau wie der Core eine Konsolenanwendung ist, lassen sich auch Informationen über das CMD-Fenster (Konsolen-Fenster) abrufen. Es ist also nicht zwingend notwendig immer das Browser-Fenster geöffnet zu haben.

Über den Befehl "help" erhaltet ihr folgende Anzeige:
available functions:


help - shows this screen
gc - shows ram usage and executes garbage collector
ram - shows ram usage
status - get serverstatus
xmllist - get server from webpage
reload - reload settings
exit - shutdown the server


Probleme

Beim Serverstart öffnet sich kein Fenster

Wahrscheinlich hast du versucht, den Server mit einem Doppelklick auf die ajserver.jar zu starten. Der Server ist dann nicht mehr sichtbar. Im Taskmanager erscheint der Server als javaw.exe.

Starte den Server bitte so, wie es in der Anleitung steht: Über die Eingabeaufforderung und mit dem dort angegebenen Befehl. Nur so siehst du auch die Meldungen des Servers. Diese sind zur Fehlersuche wichtig, zudem kann nur so der Server mit dem Befehl "exit" auf die richtige Weise beendet werden. Wenn der Server nicht ordnungsgemäß beendet wird, speichert er die Serverliste nicht und ist beim nächsten Start evtl. wieder isoliert. Probleme sind also vorprogrammiert.

Unrecognized option - Could not create the java virtual machine

Fehlerursache ist hier möglicherweise, dass das Serververzeichnis versteckt ist.

Gleich nach dem Start erscheint eine Fehlermeldung und dann "shutdown server"

Der Server hat sich selbst beendet. Die Ursache steht in der Fehlermeldung darüber.

Hier einige Meldungen und ihre Ursachen:

Exception in thread "main" java.util.zip.ZipException: Das System kann die angegebene Datei nicht finden 
Die Datei ajserver.jar wurde nicht gefunden. Entweder bist du im falschen Verzeichnis oder du hast den Dateinamen falsch geschrieben.
java.io.FileNotFoundException: [...]\server.xml (Das System kann die angegebene Datei nicht finden) 
Datei server.xml wurde nicht gefunden. Laut Anleitung muss sie beim ersten Start aus der Beispieldatei umbenannt und angepasst werden. Kann es evtl. sein, dass du die Datei in server.xml.xml umbenannt hast?
java.net.BindException: Address already in use 
Ein eingestellter Port ist bereits in Belegt. Entweder läuft schon ein Server oder die Serverports sind schon durch eine andere Anwendung belegt. Evtl. hast du versucht, den Server per Doppelklick zu starten - in dem Fall im Taskmanager nach javaw.exe suchen und den Prozess beenden.
org.xml.sax.SAXParseException: Zeichenumwandlungsfehler: "Unconvertible UTF-8 chacter beginning with 0xb4" (Zeilenzahl m÷glicherweise zu niedrig) 
Wahrscheinlich sind Sonderzeichen in der xml-Datei. Auch das ß und das ´ sind Auslöser der Meldung. Rufe die Datei einmal im Browser auf. Der Internet-Explorer z.B. markiert die falschen Zeichen.
de.applejuicenet.server.S: error in settings: invalid timeserver 
Der Server holt sich einen Timeserver von time.applejuicenet.de. Vermutlich ist der Timeserver selbst zur Zeit nicht erreichbar. Meistens ist der Timeserver nach kurzer Zeit wieder erreichbar. time.applejuicenet.de gibt auch unterschiedliche Timeserver bei den Abrufen zurück. Einer von diesen sollte erreichbar sein. Wenn es absolut nicht funktionieren will, kann der Server auch mit dem Parameter --usemyNTP gestartet werden, um den Timerserver aus der server.xml zu verwenden.

OutOfMemory

Nach einer Weile stürzt mein Server mit der Meldung "OutOfMemory" ab.

Beim Start wird dann meistens beim Parameter -Xmx128m das letzte "m" vergessen ;)

Der Server startet dann nicht mit 128, sondern mit 12,8 mb ram. Eindeutig zu wenig ... Im Serverwatcher unter status kann man den zugewiesenen ram sehen.

Verbindungslimits vom Betriebssystem

Unter Linux darf ein "normaler User" meistens nur 1024 Dateien/Verbindungen gleichzeitig öffnen. Bei einem großen Server kann das schon mal zu wenig sein. Dieses Limit lässt sich für den root zeitweise mit ulimit -n 32000 erhöhen, oder dauerhaft für beliebige User durch bearbeiten der /etc/security/limits.conf . Für letztere Methode muss zusätzlich noch in der /etc/pam.d/login die Zeile
session required pam_limits.so
aktiviert werden.

Unter Windows XP/Vista/Win7 sollte, falls das SP2 oder höher unter XP installiert ist und bei Vista/Win7 mit SP1, auf jeden Fall das Limit für "halboffene" Verbindungen in der TCPIP.SYS gepatcht werden. Siehe WinXP SP2 Verbindungslimit. Stellt das neue Limit am besten so hoch, dass es auf keinen Fall behindert (z.B. auf 500). Zum Patchen gibt es diverse Programme im Internet.

Ich kann den Serverwatcher nicht öffnen

Im Browser wird der Watcher mit http://127.0.0.1:8001 aufgerufen, vorausgesetzt, dass der Server auf dem selben Rechner läuft und der Port nicht geändert wurde.

Wer beim Parameter bindip in der server.xml eine reale ip, also nicht 0.0.0.0, eingetragen hat, kann den Watcher nur über diese ip aufrufen. 127.0.0.1 funktioniert dann nicht.

Den Port 8001 kann man in der server.xml festlegen (webport). Dort kann man auch User (webuser) und Passwort (webpw) festlegen. Wenn also bei der nachfolgenden Eingabeaufforderung nur ein "access denied" als Antwort kommt, stimmt wahrscheinlich eine dieser Angaben nicht mit deiner Eingabe überein.

Ich sehe im Serverwatcher nur meinen Server

Dein Server ist isoliert, hat zu den anderen Servern im Netz keinen Kontakt. Füge einen Server aus der Serverliste unten unter den Tabellen hinzu oder kontaktiere mich.

Warum habe ich nur so wenige Server in der Serverliste?

Der Server hat nur zu den Servern Kontakt, die für ihn wichtig sind. Das spart Traffic, denn warum sollten sich 2 Server unterhalten, die sich doch eigentlich nichts zu sagen haben ;)

Wenn du keine User auf deinem Server hast, hast du evtl. auch nur einen grünen Server in der Liste. Das ist dann der erste Server in der Hashtable. Zu diesem hast du immer Kontakt.

Wenn User da sind, hast du zu allen Servern Kontakt, die einen Teil der Hashtable verwalten.

Und wenn du selbst ein Teil der Hashtable abbekommen hast, hast du höchstwahrscheinlich auch zu allen anderen Servern Kontakt. Ob dein Server für die anderen Server zu erreichen ist kannst du HIER überprüfen.

Ich kann keinen Server hinzufügen

Das Serverplugin hat wohl einen Fehler ;) Mit ihm lassen sich keine Server hinzufügen. Rufe den Serverwatcher bitte im Browser auf, dann sollte auch das funktionieren.

Werte in server.xml OHNE Serverneustart ändern

Ab der Serverversion 0.77 ist es auch möglich, die meisten Werte in der server.xml zu verändern, ohne den Server neu starten zu müssen. Port und bindip lassen sich so nicht wirksam ändern. Dazu ist nach wie vor Serverneustart erforderlich. Eine ip/dynip wird erst wirksam, wenn im Server die Meldung "check ip" (alle 10 Minuten) kommt. Ablauf: Die Werte in der server.xml ändern und die Datei speichern. Dann im Servercore reload eintippen. Fertig.

Probleme mit der Server-Tabelle

Es ist wichtig das keiner mit den Servern seine eigenen Experimente durchführt. Dadurch wird das ganze Servernetz instabil. Jeder Serverbetreiber sollte einige Grundregeln einhalten.
Der Server sollte nie über Tage ohne Aufsicht laufen.
Der Computer beziehungsweise das OS sollte immer das richtige Datum anzeigen.
Kontrolliert regelmäßig eure Serverliste, rote Server sollten nach einiger Zeit aus der Liste verschwinden.
Wenn es hier zu Unregelmäßigkeiten kommt, solltet ihr einen Administrator informieren. Nur dieser könnte wirklich Abhilfe schaffen. Ihr erhaltet dann auch notwendige Informationen über den aktuellen Stand der Dinge. Gleichzeitig stehen immer aktuelle Infos hier oder werden über den Server-Channel bekannt gegeben. Lasst euch hier öfter mal blicken.