ActiveMQ, JMS und Datei übertragen

skizZ

Aktives Mitglied
Hallo zusammen,

hat schonmal jemand versucht mit JMS und ActiveMQ Dateien zu versenden und wieder zu empfangen?
Hat evtl. jemand ein Beispiel dazu?

Viele Grüße
skizZ
 

FArt

Top Contributor
Wo ist das Problem? Nimm eine BytesMessage oder StreamMessage und verschicke diese.
Annahme: dir ist klar, dass du nur den Inhalt der Dateien verschicken kannst.
 

FArt

Top Contributor
Hallo.

ist es also nicht möglich eine Datei test.txt von PC A über MQ auf PC B zu übertragen?

Nicht direkt. Du musst den Inhalt und die Metainformationen (z.B. Dateiname) extra übertragen und natürlich auch in die Message packen bzw. beim Empfang daraus extrahieren.

Annahme: du weißt, was ein File-Objekt wirklich bedeutet.
 

skizZ

Aktives Mitglied
Hallo,

meine Vorgehensweise so korrekt?

- Dateiname in property speichern
- Dateiinhalt in property speichern
- übertragen

- auf gegenseite neu zusammensetzen
- datei abspeichern

scheint mir allerdings nicht das performanteste zu sein, anderen lösungsvorschlag?

lg
skizZ
 

FArt

Top Contributor
Wo hakt es denn performancetechnisch?
Bei kleinen Dateien kann man sicher den Weg gehen, dass erst die Datei komplett gelesen wird, in der Message verpackt wird und dann verschickt wird.
Grundsätzlich würde ich bei so etwas aber Streaming bevorzugen.

Die Gesamtperformance hängt im Prinzip aber sonst lediglich von der Größe der Datei und der Bandbreite ab.
 

skizZ

Aktives Mitglied
Hi,

nunja, noch hakt es nicht an der Performance, aber wenn man dann mal 1000 kleine Dateien kopieren möchte, dann sollte es doch schon recht heikel werden, oder?

Ich habe Dateiname und Dateiinhalt jeweils in die Property einer Streammessage gespeichert und schicke es dann ab.

Somit wird es doch gestreamt oder sehe ich das falsch?
 

skizZ

Aktives Mitglied
Hallo,

also es funktioniert zwar ... aber eine 500kb textdatei braucht ca 1,5 minuten bis sie übertragen wurde ...

hast du einen tipp?
 

FArt

Top Contributor
Hallo,

also es funktioniert zwar ... aber eine 500kb textdatei braucht ca 1,5 minuten bis sie übertragen wurde ...

hast du einen tipp?

In dieser Reihenfolge:
- Sourcecode ansehen, Infrastruktur bewerten und nachdenken
- Logfiles analysieren (evtl. vorher Logging sinnvoll erweitertn und konfigurieren)
- Profiler, Netzwerkanalysetools usw. verwenden
 

skizZ

Aktives Mitglied
Hallo,

ich gehe davon aus, dass es hier noch daran liegt:

- Datei Zeilenweise einlesen
- Inhalt in Stringvariable speichern
- mit streammessage.writestring variable reinschreiben
- mit send(streammessage verschicken)

falsche vorgehensweise?
 

skizZ

Aktives Mitglied
Nunja, ActiveMQ stellt nunmal sowohl die BlobMessage, sowohl den zugehörigen Fileserver zur Verfügung. Von daher eine super Sache :)

Ich danke dir aber trotzdem für die Unterstützung.
 

Kr0e

Gesperrter Benutzer
Reines JMS ist sowieso viel zu abstrakt und bietet nicht genug Möglichkeiten.
Das interne ActiveMQ-API zu nutzen ist daher sinnvoll. HornetQ bietet ebenfalls ein
sehr gutes API und hat auch schon eine fertige Lösung für das stückweise Übertragen von großen Dateien.
Auch mit Statuslistenern etc., alles sehr schön gelöst.
 

skizZ

Aktives Mitglied
Hey,

danke für deine Antwort.

habe es mit ActiveMQ nun recht gut gelöst, bin gerade am Clustern.

Würdest du mir eher zu HornetQ raten?
 

Kr0e

Gesperrter Benutzer
Ja, ich habe mit beiden intensiv gearbeitet. HornetQ hat in erster Linie mehr Power.
Die Entwickler haben bei HornetQ halt besonders auf die Geschwindigkiet geachtet,
außerdem ist die Handhabung sehr gut. Aber! ActiveMQ ist jetzt nicht unbedingt viel langsamer...
Wenn du damit klar kommst, dann nimm es ruhig weiter! Aber du kannst ruhig auf den JMS Standard pfeiffen ;)
Nutz ruhig das interne API..
 

Kr0e

Gesperrter Benutzer
Eben! Vorallem... JMS hat scon ein paar Jährchen aufm Buckel und wirklich gepflegt wird JMS nicht mehr....
 

Kr0e

Gesperrter Benutzer
Nur mit HornetQ :p ActiveMQ hab ich mich nie sooo tief eingearbeitet, weil mir die Dateitransfermöglichkeit von HornetQ gut gefiel...
 

skizZ

Aktives Mitglied
Kannst du mir kurz sagen wie bei HornetQ der Datentransfer abläuft?
Weil will wie gesagt Dateien von a nach b senden ... bei activemq geht das nur mit dem fileserver performant, der funktioniert aber im cluster nicht ... -> fällt server a aus, sind die files auf server b nicht verfügbar, sondern nur die messages.
 

Kr0e

Gesperrter Benutzer
HornetQ kannst du Streams senden und HornetQ sorgt dafür im Hintergrund, dass diese Streams so oft wie möglich in vorgegebenen ByteBöcken gelesen und verschickt werden. (Ohne Clusterkram)

Pseudocode:

FileStream fs = Stream auf Datei;

hornetQ.send(fs);

Zurück bekam man glaub ich ein FutureObjekt, über das der Transfer gesteuert werden kann. =)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I ActiveMQ-Messages übers Netzwerk Netzwerkprogrammierung 13
L ActiveMq - wie kann ich eine Queue löschen? Netzwerkprogrammierung 2
M ActiveMQ Anfänger-Fehler Netzwerkprogrammierung 3
Kr0e Java JMS (ActiveMQ) Netzwerkprogrammierung 7
F JMS mit activemq Netzwerkprogrammierung 3
A Bei FTP Übertragung wird Datei nicht komplett übertragen Netzwerkprogrammierung 2
J Datei Download vom Server Netzwerkprogrammierung 8
H Datei mit Anhang via http "hochladen" Netzwerkprogrammierung 16
E JCIFS - Smb - Datei kann nur von einem Benutzer bearbeitet werden Netzwerkprogrammierung 1
Aruetiise Socket Datei Endung Netzwerkprogrammierung 6
A FTP wie kann ich von java auf datei in fpt://192.168.178.1 lesen/schreiben? Netzwerkprogrammierung 3
K HTTP Formulare füllen und Datei downloaden Netzwerkprogrammierung 23
B JSch Filetransfer ohne KnownHosts Datei? Netzwerkprogrammierung 0
A Datei erzeugen und auf der Weboberfläche downloaden (Tomcat) Netzwerkprogrammierung 4
Sogomn HTTP Datei herunterladen Netzwerkprogrammierung 13
C Inhalt einer .JPG Datei in einen OutputStream schreiben? Netzwerkprogrammierung 10
F FTP FTPClient Datei lässt sich nicht öffnen Netzwerkprogrammierung 4
F HTTP Serialisierte Objekte aus Datei von Server Netzwerkprogrammierung 1
T Anwendungseinstellungen ohne Datei übertragen? Netzwerkprogrammierung 8
F FTP Einzelne Datei von FTP-Server überprüfen Netzwerkprogrammierung 0
L FTP Lesen einer Datei vom Server - Aufgehangen Netzwerkprogrammierung 0
M jsf-seite beim hinzufügen einer csv-datei in einen ordner aktualiseren Netzwerkprogrammierung 0
D Einfache Verbindung zu Linux Server und Datei auslesen Netzwerkprogrammierung 13
S Datei(XML) per RMI an Server schicken Netzwerkprogrammierung 0
V Datei Download Fenster Netzwerkprogrammierung 9
S Datei schreiben über Applet Netzwerkprogrammierung 8
C Socket Datei Übertragung Netzwerkprogrammierung 5
D Datei hochladen zu PHP Server Netzwerkprogrammierung 8
C Datei über Socket schreiben und Ereignis lesen Netzwerkprogrammierung 9
K HTTP Eigener Http Response für Datei-Download Netzwerkprogrammierung 4
D Socket Datei nur stückweise über Socket verschicken Netzwerkprogrammierung 6
T Datei downloaden ohne den Dateinamen zu kennen Netzwerkprogrammierung 2
H Datei in DropBox schreiben Netzwerkprogrammierung 23
N über Java in eine Text-Datei auf einem Server schreiben Netzwerkprogrammierung 2
V Datei auf Server Schreiben Netzwerkprogrammierung 18
N Einen Server als ausführbare Datei exportieren Netzwerkprogrammierung 15
N Problem über http eine Datei zu senden Netzwerkprogrammierung 4
B FTP Datei auslesen ohne einloggen möglich? Netzwerkprogrammierung 19
C Datei auf server speichern Netzwerkprogrammierung 16
P FTP Nochmal wachsende Datei per FTP lesen Netzwerkprogrammierung 9
W Datei automatisiert kopieren! Netzwerkprogrammierung 5
P Wachsende Datei per FTP lesen Netzwerkprogrammierung 2
U Datei über das Netzwerk einlesen und speichern Netzwerkprogrammierung 8
S Servlet - Datei kann nicht gelöscht werden Netzwerkprogrammierung 12
G Txt datei von Website downloaden Netzwerkprogrammierung 8
R HTTP Apache HTTP Client: Request mit angehängter Datei Netzwerkprogrammierung 2
I HTTP Datei Uploaden mit http und Sprache anpassen Netzwerkprogrammierung 7
1 Datei senden/empfangen funzt nicht... Netzwerkprogrammierung 5
M Socket Datei über Socket versenden Netzwerkprogrammierung 5
U Web Datei downloaden und bei Änderungen wieder zurückspielen Netzwerkprogrammierung 5
M Class-Datei aus Eclipse mit Xampp Netzwerkprogrammierung 4
A HTTP Download einer Datei mit "Statistiken" Netzwerkprogrammierung 2
B Zugriff auf eine Text- und XML-Datei Netzwerkprogrammierung 4
Dit_ FTP, Datei Hochladen Netzwerkprogrammierung 4
Ollek Download einer Datei durch SFTP mit Java Netzwerkprogrammierung 12
J Datei übertragen ja String + datei übertragen nein Netzwerkprogrammierung 5
P Name der Download-Datei ermitteln Netzwerkprogrammierung 8
N Socket TCP Datei Transfer Netzwerkprogrammierung 2
L Java über php datei lesen? Netzwerkprogrammierung 18
P Socket Datei von Client zum Server übertragen --> Weiterleitung an Clients Netzwerkprogrammierung 16
Akrillo Datei per Netzwerk senden Netzwerkprogrammierung 10
P HTTP Problem beim Download von einer Datei Netzwerkprogrammierung 4
L Größe einer Datei auslesen die im Netz liegt Netzwerkprogrammierung 4
weeego Ping über CMD, Umweg über Batch Datei sparen. Netzwerkprogrammierung 17
R Versenden einer MIME-Datei per E-Mail [solved] Netzwerkprogrammierung 5
O Mehrere Datei per DataInput/OutputStream über Socket Netzwerkprogrammierung 12
S StringArray in .txt Datei --> langsam wegen Client/Server!? Netzwerkprogrammierung 16
S Bild-Datei von Servlet an Browser senden Netzwerkprogrammierung 8
U Datei via UDP Netzwerkprogrammierung 8
C Dateigröße einer Datei im Internet ermitteln Netzwerkprogrammierung 2
S Error 404 obwohl die Datei existiert Netzwerkprogrammierung 9
T Datei Herunterladen und ausführen Netzwerkprogrammierung 5
S Mittels Java XML abfragen und nicht die Ausgabe-HTML-Datei Netzwerkprogrammierung 5
C PCAP Datei auslesen Netzwerkprogrammierung 8
F Applet Datei Zugriff Netzwerkprogrammierung 13
G Datei performant im Netzwerk verschieben Netzwerkprogrammierung 4
M [Commons NET] Prüfen, ob auf FTP Datei vorhanden ist Netzwerkprogrammierung 2
Rontu Problem beim Übertragen einer Datei Netzwerkprogrammierung 9
E Größe der Datei vor Download ermitteln Netzwerkprogrammierung 3
C Dateiübertragung - Datei immer ein 4096faches von n Netzwerkprogrammierung 2
E Applet zum Datei-Upload Netzwerkprogrammierung 3
A FileChannel+SocketChannel:Datei wird nur teilweise übertrage Netzwerkprogrammierung 4
J Gibts die Datei? Netzwerkprogrammierung 3
K Datei-Upload per FTP Netzwerkprogrammierung 2
G Fehlermeldung beim Erzeugen der WSDL Datei unter Axis Netzwerkprogrammierung 2
S über rmi datei übertragen? Netzwerkprogrammierung 2
J Zeilenweises auslesen aus einer Datei über Server Netzwerkprogrammierung 6
G Datei über ObjectInputStream versenden Netzwerkprogrammierung 8
G.I.Joe Datei per POST übertragen Netzwerkprogrammierung 2
B Umfangreiche Batch Datei (Rmiregistry prüfung + Prog. start) Netzwerkprogrammierung 4
V Einen Eintrag aus einer Zip Datei von einem Server laden Netzwerkprogrammierung 2
M Datei auf einem Server ausführen Netzwerkprogrammierung 4
N Dateigröße einer Datei auf einem HTTP-/Web-Server. Netzwerkprogrammierung 9
W fehlerhafte Datei nach Dateitransfer per ServletOutputStream Netzwerkprogrammierung 2
F Datei senden und empfangen Netzwerkprogrammierung 4
B Via Java Datei zu PHP-Script auf Apache hochladen Netzwerkprogrammierung 4
B knacken bei download von mp3 datei Netzwerkprogrammierung 2
T Datei senden Netzwerkprogrammierung 3
M Datei auf Remoteserver kopieren Netzwerkprogrammierung 8
B Datei speichern unter Netzwerkprogrammierung 10

Ähnliche Java Themen

Neue Themen


Oben