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: der Core wurde während schreibens der
shareidx.xml
nicht richtig beendet - Lösung:
- beende den Core
- lösche die Datei
shareidx.xml
, siehe Punkt 15 - starte den Core erneut
shareidx.xml
kann mit einem Texteditor auch manuell korrigiert
werden.
2.2. Close connection cause of inactivity
- Meldung:
Close connection cause of inactivity
Error while read: Eine bestehende Verbindung wurde softwaregesteuert durch den Hostcomputer abgebrochen
- Problem: sehr wahrscheinlich keins
- mögliche Ursachen:
- Core auf der Gegenseite ist (plötzlich) offline
- Du oder der User auf der Gegenseite hat DS-Lite
- Probleme mit der Internetverbindung
- Zu hohe CPU-Auslastung
- zu viele gleichzeitige Downloads
- Zu hoch eingestellte Verbindungsanzahl
2.3. error starting tcpserver: Address already in use
- Meldung:
error starting tcpserver: Address already in use
- Problem: Core startet nicht
- Ursache: einer oder beide konfigurierte Ports des Core 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 15
- prüfe über einen
2.4. 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.5. 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.6. closing serverconnection: * - not enough in buffer
- Meldung:
closing serverconnection: * - not enough in buffer
- Ursache: zu wenig RAM für den Core
- Problem: Core hängt sich danach meist auf
- Wann: Oft passiert dies bei einem größeren share (mehrere TB) und dem gleichzeitigen Download mit voller Geschwindigkeit.
- Lösung:
- siehe Punkt 1
- installiere ggf. appleJuice mit dem aktuellen Setup neu
2.7. close download bzw. close upload
Die Übertragung eines Chunks wurde erfolgreich abgeschlossen.
2.8. you have to wait 30 minutes until reconnect
- Meldung:
you have to wait 30 minutes until reconnect
- Problem: Serverlogin nicht möglich
- Ursache: zu viele Serverwechsel in kurzer Zeit.
- Lösung: 30 Minuten warten oder den Core neustarter
2.9. error logging into server: not enough in buffer
- Meldung:
error logging into server: not enough in buffer
- Problem: Serverlogin nicht möglich
- Ursache: Der Server, mit dem sich verbunden werden soll, ist voll.
- Lösung: versuch einen anderen Server
2.10. 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.11. 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.12. 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 Ordner angegeben - Lösung: konfigurieren das
temp
Verzeichnis außerhalb desIncoming
Verzeichnis
2.13. 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 Ordner angegeben - Lösung: konfigurieren das
incoming
Verzeichnis außerhalb destemp
Verzeichnis
2.14. Please change your nickname
- Meldung:
Please change your nickname
- Ursache: Dein konfigurierter
Nickname
enthält oder beginnt mitnonick
- Lösung: Ändere deine
Nickname
2.15. serverlogin not available
- Meldung:
serverlogin not available
- Ursache: Die Ursache steht immer über dieser Fehlermeldung
2.16. failure: incorrect link
- Meldung:
failure: incorrect link
- Problem: der
ajfsp
Link wird nicht vom Core übernommen - Ursache: der Link Defekt
- Lösung: probier als Gegentest einen anderen Link
2.17. Incoming directory doesn't exist
- Meldung:
Incoming directory doesn't exist
- Ursache: Der eingestellte Incoming-Ordner konnte nicht angelegt werden
- Lösung: Ändere den
Incoming
Ordner oder erstelle ihne manuell
2.18. Temp directory doesn't exist
- Meldung:
Temp directory doesn't exist
- Ursache: Der eingestellte Temp-Ordner konnte nicht angelegt werden
- Lösung: Ändere den
Temp
Ordner oder erstelle ihne manuell
2.18. cannot create "Ordner"
- Meldung:
cannot create "Ordner"
- Ursache: fehlende Berechtigungen
- Lösung: erstelle den erwähnten Ordner manuell oder korrigiere die Berechtigungen
2.20. error copy file from temp to incoming directory
- Meldung:
error copy file from temp to incoming directory
- Problem: die eigentlich fertige Datei liegt nicht im
Incoming
Ordner - mögliche Ursachen:
- Festplatte voll
- Core beim fertigstellen beendet
- PC heruntergefahren, ohne den Core sauber zu beenden
- mögliche Lösungen:
- den
Incoming
Ordner auf einen anderen Datenträger verweisen - das beenden des Core abwarten
- vor dem Herunterfahren den Core über ein GUI oder
exit
beenden
- den
2.21. error renaming "1.data" to "filename.iso"
- Meldung:
error renaming "C:\XY\temp\1.data" to "C:\XY\incoming\filename.iso"
- Problem: Fehler beim Umbenennen des Files, z.B. beim Fertigstellen
- Ursache: können Sonderzeichen im Dateinamen sein oder Festplatte voll
- Lösung: das fertige File liegt als
*.ready
Datei imTemp
Ordner und kann manuell verschoben werden
2.22. java.lang.ArrayIndexOutOfBoundsException: Array index out of range
- Meldung:
java.lang.ArrayIndexOutOfBoundsException: Array index out of range
- Problem: kein Upload und kein Download
- Ursache: leider noch immer Unbekannt
- Lösung: Es hilft ausschließlich ein Core neustart
3. Was hat es mit dem 2GB Limit auf sich?
Limit
, sondern ein Bug
.
AJ wurde zu einer Zeit programmiert, wo 64Bit Betriebssysteme noch nicht weit verbreitet waren und auch die Dateigrößen noch relativ klein waren (meist unter 1GB).
Das Problem ist daher die Umsetzung, wie AJ intern mit Zahlen wie bspw. Größenangaben umgeht.
Diese werden an den meisten Stellen noch als Java Datentyp int
behandelt,
was einem Maximum von 2,147,483,647
Bytes entspricht (2GB).
Leider wird nur beim einlesen von Dateien (sharecheck
) der eigentlich benötigte Datentyp long
verwendet was einem Maximum von 9,223,372,036,854,775,807
Bytes
entspricht.
Es reicht jedoch nicht, nur im Core den Datentyp von int
auf long
zu korrigieren.
Die Größenangaben werden ebenfalls an die Server von AJ übermittelt, somit müss(t)en auch diese angepasst werden.
4. 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 |
exit |
selbsterklärend ;) mit diesem Befehl wird der Core beendet |
5. 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
|
6. Dateitypen im Temp Verzeichnis
Im Temp Ordner sollten nur 3 Dateiarten vorhanden sein:
-
*.data
→ Data File eines Files das gerade gesaugt wird, enthält die bereits geladenen Daten -
*.part
→ enthält Informationen für die *.data, wie Dateiname etc, braucht AJ um das File zu saugen -
*.ready
→ eine fertige Datei, bei der ein Fehler beim Umbenennen und Kopieren in den Incoming Ordner aufgetreten ist. Einfach manuell den Dateinamen ändern und in den Incoming Ordner schieben und das File ist fertig ;) -
*.*
→ Fertige Files .. liegen auch manchmal noch im Temp Ordner wenn es Probleme beim Kopieren in den Incoming Ordner gab. Einfach manuell in den Incoming Ordner kopieren.
7. Warum ist der Core nicht Open Source?
Der Core ist kein Open Source weil sich sonst das Credit-System zu einfach abschalten ließe.
8. Was hat es mit Core 0.32.101.02 auf sich?
Der Core 0.32.101.02
war der letzte Beta-Core von muhviehstar
,
welcher es aber nie an die Öffentlichkeit geschafft hat.
Welche Änderungen es gab oder ob dieser jemals wieder auftaucht ist ungewiss.
9. In welcher Sprache ist der Core geschrieben?
Der appleJuice Core ist in Java geschrieben.
10. Wer hat den appleJuice Core programmiert?
muhviehstarr
11. Wird am Core noch weiter entwickelt?
- Kurz: Nein
- Der originale Quellcode liegt leider nur veraltet als auch unvollständig vor
- Der vorliegende Quellcode vom Server ist noch älter, dieser müsste neu Entwickelt werden
12. Download wechselt selbstständig auf Pause
- Problem: Download wechselt selbstständig auf Pause
- mögliche Ursachen:
- automatischen Powerdowload im JavaGUI eingeschaltet.
- Credits sind deutlich unter 20 MB
- Festplatte ist voll
- defekter Datenträger
- mögliche Lösung:
- schalte den automatischen
Powerdownload
im JavaGUI ab - Downloads pausieren bis genug Credits angesammelt wurden
incoming
Verzeichnis auf Datenträger mit mehr Platz verschieben- vom Betriebssystem den betroffenen Datenträger überprüfen lassen
- schalte den automatischen
13. Datei wird immer wieder gehashed
- Problem: Datei oder Ordner wird immer und immer wieder neu eingelesen
- Mögliche Ursachen:
- versteckte Sonderzeichen wie z.B. Gedankenstrich
—
statt Bindestrich-
- Core wurde nicht richtig beendet
- fehlende Berechtigungen im Konfigurations-Ordner
- versteckte Sonderzeichen wie z.B. Gedankenstrich
- Mögliche Lösung:
- Benenne die Datei bzw. den Ordner um und entferne zum Testen etwaige Sonderzeichen
- beende den Core über ein GUI oder mit
exit
- der Benutzer, unter welchem der Core läuft, muss Schreibrechte für den Konfigurations-Ordner haben
14. 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.
15. Wo liegen die Konfigurationen?
Die Konfiguration (siehe Punkt 16) 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/ |
16. die Core Konfigurations-Dateien
folgende Core Konfigurations-Dateien befinden sich im Punkt 15 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 |