FAQ für den appleJuice Server

appleJuice Server

1. Was machen die Server?

  • vermitteln Download-, Upload- und Such-Anfragen der Clients untereinander
  • verwalten gemeinsam den Index des gesamten Netzwerkes (Hashtable)
  • verwalten eine whitelist der erlaubten Cores
Die Server stellen keine Dateien zur Verfügung.

2. Woher bekomme ich den Server?

Die Server Software steht nur einem kleinen ausgewählten Personenkreis zur Verfügung um die stabilität des Netzwerkes zu gewährleisten. Die jüngste Server-Version ist 0.82.0.

Ein einziger Server könnte auf aktueller Hardware ca. 1.000 User aufnehmen.

3. Informationen

3.1 Welche Java-Version benötige ich?

Seit Server 0.77.0 wird ein JRE ab Version 5 benötigt.
Empfohlen wird ein JRE ab Version 8 oder 11 (LTS), siehe auch hier.

3.2 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.

3.3 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 verschwindet nach 30 Minuten)

3.4 Glossar

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

3.5 Wie kann ich die Meldungen mitloggen?

Indem du die Startanweisung erweiterst.

java -Xmx512m -jar ajserver.jar >> aj.txt

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

3.6 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.

4. Probleme

4.1 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.

4.2 Unrecognized option - Could not create the java virtual machine

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

4.3 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 verwendet als ToD Timeserver time.applejuicenet.cc. Vermutlich ist der Timeserver selbst zur Zeit nicht erreichbar. Meistens ist der Timeserver nach kurzer Zeit aber wieder erreichbar. 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.

4.4 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.

4.5 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.

4.6 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., 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.

4.7 Ich sehe im Serverwatcher nur meinen Server

Dein Server ist isoliert und hat zu den anderen Servern im Netz keinen Kontakt!
Füge einen Server manuel von der Serverliste Über den Serverwatcher hinzu.

4.8 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.

4.10 Werte in server.xml OHNE Serverneustart ändern

Ab der Serverversion 0.77.0 is 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. 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 speichern. Anschließend im Serverfenster reload eintippen.

Ein Teil der FAQ wurde Dank der Hilfe von archive.org wiederhergestellt.