FAQ für den appleJuice Core

appleJuice Core

1. Wie teile ich dem Core mehr RAM zu?

2. Core Meldungen

Der Core gibt im laufenden Betrieb ständig Meldungen aus, die man fast immer ignorieren kann, solange alles läuft. Folgende Meldungen sind bekannt:

2.1. Error in shareidx.xml found. Hashing skipped.

  • Meldung: Error in shareidx.xml found. Hashing skipped.
  • Problem: Kein Upload und/oder kein Download
  • Ursache: Die shareidx.xml ist beschädigt und kann nicht gelesen werden
  • Lösung:
    • beende den Core
    • lösche die Datei shareidx.xml, siehe Punkt 11
    • starte den Core erneut
Die shareidx.xml kann mit einem Texteditor auch manuell korrigiert werden.

2.2. error starting tcpserver: Address already in use

  • Meldung: error starting tcpserver: Address already in use
  • Problem: Core startet nicht
  • Ursache: Einer oder beide konfigurierten Ports des Cores sind bereits in Verwendung
  • Lösung:
    • prüfe über einen TaskManager ob der Core (noch) läuft
    • starte deinen Computer neu
    • lösche die settings.xml Konfiguration, siehe Punkt 11

2.3. java.io.IOException: invalid data

  • Meldung: java.io.IOException: invalid data
  • Ursache: Fehler im Dateisystem (ggf auch im RAM)
  • Problem: Core hängt sich dabei im Regelfall auf und lädt nichts mehr.
  • Lösung:
    • Die Laufwerke auf welchem sich der Share befindet auf Fehler überprüfen lassen
    • Arbeitsspeicher überprüfen, z.B. mit Memtest86

2.4. temp seems to be temp. sharechecking skipped.

  • Meldung: temp seems to be temp. sharechecking skipped.
  • Problem: kein Upload und kein Download
  • Ursache: Das Temp-Verzeichnis wurde zusätzlich als Freigabe hinzugefügt
  • Lösung: Entferne das Temp-Verzeichnis aus den Freigaben

2.5. you have to wait 30 minutes until relogin

  • Meldung: you have to wait 30 minutes until relogin
  • Problem: Serverlogin nicht möglich
  • Ursache: zu viele Serverwechsel in kurzer Zeit.
  • Lösung: 30 Minuten warten oder den Core neustarten

2.6. found defect part in xx.data

  • Meldung: found defect part in xx.data
  • Problem: sehr wahrscheinlich keins
  • Ursache: Übertragungsproblem
  • Lösung: keine. Der Chunk wurde vom Core verworfen und wird neu geladen

2.7. error while reading file XY.xx

  • Meldung: error while reading file XY.xx
  • Problem: Die Datei wird nicht mehr geshared
  • Ursache: Die Datei wurde verschoben oder umbenannt während der Core noch lief
  • Lösung: Der Core muss mit aller Gewissheit neu gestartet werden

2.8. tempdir lies under incomingdir

  • Meldung: tempdir lies under incomingdir. please change
  • Problem: Kein Upload und kein Download
  • Ursache: Das Temp-Verzeichnis wurde unterhalb des Incoming-Ordners angegeben
  • Lösung: Konfiguriere das Temp-Verzeichnis außerhalb des Incoming-Verzeichnisses

2.9. incomingdir lies under tempdir

  • Meldung: incomingdir lies under tempdir. please change
  • Problem: Kein Upload und kein Download
  • Ursache: Das Incoming-Verzeichnis wurde unterhalb des Temp-Ordners angegeben
  • Lösung: Konfiguriere das Incoming-Verzeichnis außerhalb des Temp-Verzeichnisses

2.10. Please change your nickname

  • Meldung: Please change your nickname
  • Ursache: Dein konfigurierter Nickname enthält oder beginnt mit nonick
  • Lösung: Ändere deinen Nickname

2.11. serverlogin not available

  • Meldung: serverlogin not available
  • Ursache: Die Ursache steht immer über dieser Fehlermeldung, zum Beispiel:
Serverversion is too old. Der Server ist für deinen Core zu alt.
Version was blocked. Der Server hat deine Core-Version gesperrt. Aktualisiere den Core.
server is full. Der Server ist voll. Der Core versucht einen anderen Server.
unkown error (N) while serverlogin Unbekannter Fehlercode N beim Login.
  • Meldung: failure: incorrect link
  • Problem: Der ajfsp-Link wird nicht vom Core übernommen
  • Ursache: Der Link ist defekt
  • Lösung: Probiere als Gegentest einen anderen Link

2.13. incoming directory does not exists

  • Meldung: incoming directory does not exists
  • Ursache: Der eingestellte Incoming-Ordner konnte nicht angelegt werden
  • Lösung: Ändere den Incoming-Ordner oder erstelle ihn manuell

2.14. temporary directory does not exists

  • Meldung: temporary directory does not exists
  • Ursache: Der eingestellte Temp-Ordner konnte nicht angelegt werden
  • Lösung: Ändere den Temp-Ordner oder erstelle ihn manuell

2.15. cannot create "Ordner"

  • Meldung: cannot create "Ordner"
  • Ursache: fehlende Berechtigungen
  • Lösung: erstelle den erwähnten Ordner manuell oder korrigiere die Berechtigungen

2.16. error logging into server

  • Meldung: error logging into server: … (Stage)
  • Problem: Der Login bei diesem Server ist fehlgeschlagen
  • Ursache: Die Verbindung zum Server wurde während des Logins unterbrochen. Der Text in Klammern nennt den Schritt, bei dem es passiert ist.
  • Lösung: Meist keine nötig. Erscheint danach logged in, ist der Core mit einem Server verbunden.

2.17. error starting httpserver

  • Meldung: error starting httpserver: …
  • Problem: Die GUI kann sich nicht mit dem Core verbinden
  • Ursache: Der konfigurierte XML-Port des Cores ist bereits in Verwendung
  • Lösung:
    • prüfe, ob der Core bereits läuft
    • wähle einen anderen XML-Port (settings.xml, siehe Punkt 11)
Für den TCP-Port gilt 2.2.

2.18. error creating file / error while writing

  • Meldung:
    • error creating file …
    • error while writing …
  • Problem: Die Datei im Temp-Ordner kann nicht angelegt oder beschrieben werden, der Download kommt nicht voran
  • mögliche Ursachen:
    • Festplatte voll
    • fehlende Schreibrechte im Temp-Ordner
    • defekter Datenträger
  • Lösung: Schaffe freien Speicherplatz, korrigiere die Berechtigungen oder verschiebe den Temp-Ordner auf einen anderen Datenträger

2.19. error completing download

  • Meldung: error completing download: …
  • Problem: Der Download kann nicht fertiggestellt werden und wird pausiert
  • mögliche Ursachen:
    • No space left on device: Im Incoming-Ordner fehlt freier Speicherplatz. Beim Fertigstellen wird die Datei kopiert, bevor die Temp-Datei gelöscht wird. Ein Download mit 120 GB braucht daher zusätzlich etwa 120 GB freien Platz im Ziel, auch auf demselben Datenträger.
    • AccessDeniedException: fehlende Zugriffsrechte
    • download data size mismatch: Die Größe der Temp-Datei stimmt nicht mit der erwarteten Downloadgröße überein.
    • cannot save completion record: Die Informationen zum Fertigstellen können nicht im Temp-Ordner gespeichert werden.
  • Lösung: Prüfe die vollständige Fehlermeldung hinter dem Doppelpunkt. Schaffe ausreichend freien Speicherplatz oder korrigiere die Zugriffsrechte und setze den Download anschließend fort.
Lösche keine Temp-Dateien des Downloads. Sie werden für einen erneuten Versuch benötigt.

2.20. error while replacing … .xml

  • Meldung: error while replacing settings.xml, the new settings stay in settings.xml.new (ebenso für shareinfo.xml, server.xml und shareidx.xml)
  • Problem: Änderungen konnten nicht in die eigentliche Datei gespeichert werden, sie liegen in der Datei mit der Endung .new
  • mögliche Ursache: fehlende Schreibrechte im Konfigurationsordner, siehe Punkt 11
  • Lösung: Der Benutzer, unter dem der Core läuft, braucht Schreibrechte für den Konfigurationsordner. Korrigiere sie und starte den Core neu.

3. Core Befehle

Die Steuerung von AJ findet hauptsächlich über das GUI statt. Hier nun die (wenigen) Befehle, die man im Core eingeben kann:

help listet die möglichen Corebefehle auf
chpw mit dieser Funktion kann man das Passwort ändern
ram Anzeige des benutzten/freien RAM
gc Garbagecollector ... entmüllt den RAM ein wenig
sharecheck Startet die Shareüberprüfung
stopsharecheck Bricht eine laufende Shareüberprüfung ab
exit selbsterklärend ;) mit diesem Befehl wird der Core beendet

4. Core pausieren

Der Core kann nicht ohne weiteres pausiert werden, es gibt jedoch andere Möglichkeiten:

Allgemein alle Downloads pausieren und Upload auf ein Minimum reduzieren
Windows mit dem Process Explorer die javaw.exe des Core auf suspend setzen
Linux Pausieren: pkill -STOP -f ajcore ∣ Fortsetzen: pkill -CONT -f ajcore
macOS Pausieren: pkill -STOP -f AJCore ∣ Fortsetzen: pkill -CONT -f AJCore
Docker Pausieren: docker pause ajcore ∣ Fortsetzen: docker unpause ajcore

5. Warum ist der Core nicht Open Source?

Der Core ist nicht Open Source, weil sich sonst das Credit-System zu einfach abschalten ließe.

6. In welcher Sprache ist der Core geschrieben?

Der appleJuice Core ist in Java geschrieben.

7. Wer hat das appleJuice P2P mal programmiert?

Der Urheber war 2002 eine Person mit dem Pseudonym muhviehstar

8. Download wechselt selbstständig auf Pause

  • Problem: Download wechselt selbstständig auf Pause
  • mögliche Ursachen:
    1. automatischen Powerdownload im JavaGUI eingeschaltet.
    2. Credits sind deutlich unter 20 MB
    3. Festplatte ist voll
    4. defekter Datenträger
  • mögliche Lösung:
    1. schalte den automatischen Powerdownload im JavaGUI ab
    2. Downloads pausieren bis genug Credits angesammelt wurden
    3. incoming Verzeichnis auf Datenträger mit mehr Platz verschieben
    4. vom Betriebssystem den betroffenen Datenträger überprüfen lassen

9. Datei wird immer wieder gehashed

  • Problem: Datei oder Ordner wird immer und immer wieder neu eingelesen
  • Mögliche Ursachen:
    1. versteckte Sonderzeichen wie z. B. Gedankenstrich — statt Bindestrich -
    2. Core wurde nicht richtig beendet
    3. fehlende Berechtigungen im Konfigurationsordner
  • Mögliche Lösung:
    1. Benenne die Datei bzw. den Ordner um und entferne zum Testen etwaige Sonderzeichen
    2. beende den Core über ein GUI oder mit exit
    3. der Benutzer, unter dem der Core läuft, muss Schreibrechte für den Konfigurationsordner haben

10. Kann ich den Core beim Hashen beenden?

Ja, sofern der Core ordnungsgemäß mit exit bzw über ein GUI beendet wird.

Das Beenden des Core dauert dann jedoch bis zu 15 Minuten.

Der Core macht beim nächsten Start einfach dort weiter, wo er aufgehört hat.

11. Wo liegen die Konfigurationen?

Die Konfiguration (siehe Punkt 12) besteht aus .xml Dateien und liegt an folgendem Ort:

Windows C:\Benutzer\%USERNAME%\appleJuice\
Linux ~/appleJuice/ bzw. /home/$USER/appleJuice/
macOS ~/appleJuice/ bzw. /Users/$USER/appleJuice/
Docker im Container Volume /config/ im Unterordner appleJuice/

12. Die Core-Konfigurationsdateien

Folgende Core-Konfigurationsdateien befinden sich in dem in Punkt 11 genannten Verzeichnis:

settings.xml Einstellungen wie TCP-Port, XML-Port, Up- und Download-Geschwindigkeit und mehr
shareinfo.xml Enthält die Pfade und konfigurierten Prioritäten der freigegebenen Dateien
shareidx.xml Enthält die Hashwerte (Prüfsummen) der Share-Dateien, welche in der shareinfo.xml referenziert sind (kann mehrere GB groß werden!)
server.xml Enthält die Liste der bekannten Server

13. Welchen Port muss ich im Router freigeben?

Der Core-Port muss vom Typ TCP in deinem Router freigegeben werden.

Danach solltest du auf canyouseeme.org prüfen, ob der Port auch wirklich offen ist.

14. Der Core ist abgestürzt, wo finde ich die hs_err_pid Datei?

Stürzt die Java Laufzeit (JVM) selbst ab, schreibt sie eine Fehlerdatei mit dem Namen hs_err_pid<PID>.log. <PID> ist die Prozess-ID des abgestürzten Core. Diese Datei hilft bei der Fehlersuche und sollte jedem Fehlerbericht angehängt werden.

Windows C:\Benutzer\%USERNAME%\appleJuice\
Linux ~/appleJuice/ bzw. /home/$USER/appleJuice/
macOS ~/appleJuice/ bzw. /Users/$USER/appleJuice/
Docker im Container Volume /config/ im Unterordner appleJuice/
Windows (Portable) im Ordner appleJuice\ neben den Ordnern Core und GUI
Die Datei kann sensible Daten wie Pfade, Benutzernamen und Umgebungsvariablen enthalten. Sie liegt im selben Ordner wie die Konfiguration (siehe Punkt 11). Prüfe sie vor dem Veröffentlichen und entferne persönliche Angaben.