{"id":241,"date":"2015-05-12T08:05:05","date_gmt":"2015-05-12T07:05:05","guid":{"rendered":"http:\/\/localhost:8080\/php\/blog\/?p=241"},"modified":"2015-05-12T08:05:05","modified_gmt":"2015-05-12T07:05:05","slug":"java-probleme-mit-dem-ftp","status":"publish","type":"post","link":"https:\/\/lukas.kurth.rocks\/blog\/2015\/05\/12\/java-probleme-mit-dem-ftp\/","title":{"rendered":"Java: Probleme mit dem FTP"},"content":{"rendered":"<p>Guten Morgen meine Freunde der Nacht,<\/p>\n<p style=\"text-align: justify;\">ich arbeite ja bekanntlich noch an meiner kleinen Toolbox. Heute bin ich auf ein weiteres Problem gesto\u00dfen auf das ich erst einmal testen darf: Manche Dateien werden per storeFile() verschoben, manche nicht. Hat m\u00f6glicherweise mit der Aneinander-Reihung von Daten zu tun, aber das ist bis jetzt lediglich eine Vermutung. Ich lasse jetzt mal den Reply vom FTP-Server ausgeben und schaue mal, was hier falsch laufen k\u00f6nnte.<\/p>\n<p style=\"text-align: justify;\">Au\u00dferdem habe ich einen (kleinen, aber miesen) Fehler behoben; wenn ich nach dem Upload die Daten l\u00f6sche, sollte ich eventuell auch darauf pr\u00fcfen, ob der Upload funktioniert hat, ansonsten werden die Daten einfach gel\u00f6scht und niemand hat sie mehr \ud83d\ude00<\/p>\n<p style=\"text-align: justify;\"><strong>Update 20.05:<\/strong> Nachdem die Server ausgefallen sind, konnte ich erst einmal nicht an der Toolbox weiterarbeiten. Das Problem mit der storeFile()-Aneinanderreihung durch die Threads hat sich &#8222;gel\u00f6st&#8220;. Beim Upload wird jeweils gepr\u00fcft ob der Nutzer angemeldet ist, was auch n\u00f6tig ist, wenn lange Zeit nichts hoch-geladen wurde. Wenn allerdings mehrere Threads in der \u00dcberpr\u00fcfung landen und einer sich schon angemeldet hat, k\u00f6nnen es die anderen Threads nicht mehr, da nur ein Nutzer vorhanden, und landen in einem &#8222;Socket write error&#8220;; zumindest meistens.<\/p>\n<p style=\"text-align: justify;\">Ich habe hier einfach den Pool auf eins gesetzt. Dann gibt es nur einen Thread der einen Stack abarbeitet. Dadurch werden alle Dateien nach einander verschoben. Eine andere M\u00f6glichkeit kenne ich nicht und werde ich wohl erst einmal nicht ben\u00f6tigen. Bei Verschiebungen in einem normalen Dateisystem werden keine Anmeldungen ben\u00f6tigt und daher kann ich dort so viele Threads aufmachen wie ich Lust habe (zumindest in der Theorie).<\/p>\n<p style=\"text-align: justify;\">Mal schauen welche Probleme mich noch erwarten \ud83d\ude09<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Guten Morgen meine Freunde der Nacht, ich arbeite ja bekanntlich noch an meiner kleinen Toolbox. Heute bin ich auf ein weiteres Problem gesto\u00dfen auf das ich erst einmal testen darf: Manche Dateien werden per storeFile() verschoben, manche nicht. Hat m\u00f6glicherweise mit der Aneinander-Reihung von Daten zu tun, aber das ist bis jetzt lediglich eine Vermutung. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17,8,9],"tags":[30,81,104,116,145,154,156,159,171,186,196,198,207,208,212,220,222,235],"class_list":["post-241","post","type-post","status-publish","format-standard","hentry","category-java","category-probleme","category-programmierung","tag-anmeldung","tag-ftp","tag-hochladen","tag-java","tag-nutzer","tag-pool","tag-probleme","tag-programmierung","tag-reply","tag-serverreply","tag-stack","tag-storefile","tag-threadpool","tag-threads","tag-toolbox","tag-upload","tag-verschieben","tag-write-error"],"_links":{"self":[{"href":"https:\/\/lukas.kurth.rocks\/blog\/wp-json\/wp\/v2\/posts\/241","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lukas.kurth.rocks\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lukas.kurth.rocks\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lukas.kurth.rocks\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lukas.kurth.rocks\/blog\/wp-json\/wp\/v2\/comments?post=241"}],"version-history":[{"count":0,"href":"https:\/\/lukas.kurth.rocks\/blog\/wp-json\/wp\/v2\/posts\/241\/revisions"}],"wp:attachment":[{"href":"https:\/\/lukas.kurth.rocks\/blog\/wp-json\/wp\/v2\/media?parent=241"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lukas.kurth.rocks\/blog\/wp-json\/wp\/v2\/categories?post=241"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lukas.kurth.rocks\/blog\/wp-json\/wp\/v2\/tags?post=241"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}