![]() |
|
|
|||||||
| Application Tier EJB, Spring |
|
|
|
Themen-Optionen | Thema durchsuchen | Ansicht |
| #1 (permalink) | |
|
Stammbenutzer
Kilobyte
Registriert seit: 05.07.2004
Fachbeiträge: 229
Abgegebene Danke: 3
Erhielt 1 Danke für 1 Beitrag
|
Ich habe eine Stateless Session Bean, die vom Client Dateiinhalte bekommt und sie auf dem Server speichert.
Momentan wird einfach ein byte-Array übergeben. Bei großen Dateien kann das natürlich Probleme mit dem verfügbaren Speicher an Client u. Server geben... Kann man einer EJB denn auch irgendwie einen Stream übergeben, wo dann am Server ganz normal ausgelesen wird? Falls nicht - was würdet ihr optimalerweise machen? Dachte da an einen Segmentierungsmechanismus, der dann eben Dateien segmentiert überträgt, am Server auf Festplatte zwischenspeichert u. wenn alles da ist erst zusammenfügt u. wegspeichert. Fänd ich aber nicht so schön... |
|
|
|
| #2 (permalink) | |||
|
Stammbenutzer
Megabyte
Registriert seit: 19.07.2004
Fachbeiträge: 1.467
Abgegebene Danke: 8
Erhielt 56 Danke für 56 Beiträge
|
Muss es eine stateless Bean sein? Wenn sie stateful wär würd ich die Datei einfach in kleinen Schritten übertragen und Methoden zum öffnen, schreiben und schließen anbieten. In etwa so (vereinfacht)
ich kenn mich leider mit EJBs zu wenig aus, bei RMI würds so gehen. Wüsste daher nicht was bei EJBs dagegen sprechen sollte. //EDIT wenn es stateless bleiben muss, müsstest du halt irgendwo eine Art ID generieren, die ID zum Client beim open zurück liefern und den Stream in einer Map zur ID speichern. Die ID müsste man halt dann beim schreiben und schließen mit übergeben damit man den richtigen Stream holen kann. Ist aber nur theoretisch durchdacht. Geändert von Niki (14.06.2010 um 15:29 Uhr) |
||
|
|
|
| #3 (permalink) | |||||||||||||||||||
|
Stammbenutzer
Kilobyte
Themenstarter
Registriert seit: 05.07.2004
Fachbeiträge: 229
Abgegebene Danke: 3
Erhielt 1 Danke für 1 Beitrag
|
Mit einer Stateful hast recht da wäre das einfacher indem beim zerstören einfach auf den offenen Stream geprüft wird u. bei Bedarf die Leichen entfernt werden können. Werde morgen mal schauen ob irgendwas dagegen spricht, die stateful zu machen... Wie ist das denn nochmal mit dem Zerstören einer Stateful Bean? Muss man das explizit machen oder wird sie auch zerstört, wenn das RemoteInterface vom GC aufgeräumt wird bzw. durch einen Timeout? |
||||||||||||||||||
|
|
|
||||||||||||||||||
| #4 (permalink) | |
|
Java-Forum Team
Moderator
Registriert seit: 13.09.2007
Fachbeiträge: 12.752
Abgegebene Danke: 215
Erhielt 810 Danke für 721 Beiträge
|
Laut EJB Spek. ist java.io.File verboten, weil es nicht transaktionsfähig ist, und weil es da ein Problem mit Clustering geben könnte
![]() k.A., aber vielleciht findest du ja einen passenden JCA. |
|
|
|
| #5 (permalink) | |
|
Stammbenutzer
Viertel Gigabyte
Registriert seit: 19.01.2007
Fachbeiträge: 2.804
Abgegebene Danke: 12
Erhielt 163 Danke für 156 Beiträge
|
JCA ist der einzig richtige Ansatz.
Unter Umständen kann man einen Umweg über Dateien in Betracht ziehen. Aber nie direkt auf die Dateien zugreifen, sondern über einen Resource Adapter gehen. Es gibt auch schon fertige File Resource Adapter.
__________________
Grüße, ++++++++++ [ >+++++++>++++++++++>+++>+<<<<- ] >. -----. >++++++++++++++. ++. So funktioniert das mit Foren/Newsgroups/Mailing Lists etc.: smart-questions_de |
|
|
|
| #7 (permalink) | ||||||||||||||||
|
Stammbenutzer
Viertel Gigabyte
Registriert seit: 19.01.2007
Fachbeiträge: 2.804
Abgegebene Danke: 12
Erhielt 163 Danke für 156 Beiträge
|
JSR-220 EJB 3.0 Spec , EJB Core:
Kapitel 21.1.2:
__________________
Grüße, ++++++++++ [ >+++++++>++++++++++>+++>+<<<<- ] >. -----. >++++++++++++++. ++. So funktioniert das mit Foren/Newsgroups/Mailing Lists etc.: smart-questions_de |
|||||||||||||||
|
|
|
|||||||||||||||
| #8 (permalink) | |
|
Stammbenutzer
Kilobyte
Themenstarter
Registriert seit: 05.07.2004
Fachbeiträge: 229
Abgegebene Danke: 3
Erhielt 1 Danke für 1 Beitrag
|
Hoppala.. Danke für den Hinweis. Hat das denn einen bestimmten Grund? Bisher hatte ich noch keine Ausfälle zu beklagen mit dem FileInputStream (was auch aus dem java.io package kommt)...
|
|
|
|
| #9 (permalink) | |||||||||||||||||||
|
Stammbenutzer
Viertel Gigabyte
Registriert seit: 19.01.2007
Fachbeiträge: 2.804
Abgegebene Danke: 12
Erhielt 163 Danke für 156 Beiträge
|
Ein weiteres Thema ist die Portierbarkeit, Skaliebarkeit, Clustering. Der Container legt über Konfiguration fest, wo dein Bean existiert. Es ist nicht sichergestellt, dass der Pfad in das Filesystem auf jedem System passend existiert. Es gibt noch mehr Gründe... deterministisches Verhalten, transaktionales Verhalten usw. Technisch funktioniert es natürlich, auch wenn es die Möglichkeit gäbe diese Zugriffe z.B. über einen Securitymanager zu verbieten. Wer sich außerhalb der Spec bewegt, sollte genau wissen was er tut. Ich rate davon ab.
__________________
Grüße, ++++++++++ [ >+++++++>++++++++++>+++>+<<<<- ] >. -----. >++++++++++++++. ++. So funktioniert das mit Foren/Newsgroups/Mailing Lists etc.: smart-questions_de |
||||||||||||||||||
|
|
|
||||||||||||||||||
| #10 (permalink) | |
|
Stammbenutzer
Kilobyte
Themenstarter
Registriert seit: 05.07.2004
Fachbeiträge: 229
Abgegebene Danke: 3
Erhielt 1 Danke für 1 Beitrag
|
Weiß ich natürliiiich
![]() Ne im Ernst danke für den Hinweis. Werde ich mich auf jeden Fall näher drum kümmern, wenn mal wieder Zeit ist. So lange darf es einfach nicht fehlschlagen Clustering etc. haben wir zwar immer auf dem Schirm, steht aber im "20-Jahres-Plan"
|
|
|
|
| #11 (permalink) | |||||||||||||||||||
|
Stammbenutzer
Viertel Gigabyte
Registriert seit: 19.01.2007
Fachbeiträge: 2.804
Abgegebene Danke: 12
Erhielt 163 Danke für 156 Beiträge
|
Ich verdiene mit dieser Einstellung mein Geld und kann mich nicht beschweren ![]() Firmen zahlen gut, wenn produktiver Code amok läuft und Image- und Geldverlust droht.
__________________
Grüße, ++++++++++ [ >+++++++>++++++++++>+++>+<<<<- ] >. -----. >++++++++++++++. ++. So funktioniert das mit Foren/Newsgroups/Mailing Lists etc.: smart-questions_de |
||||||||||||||||||
|
|
|
||||||||||||||||||
| #12 (permalink) | |||||||||||||||||||
|
Stammbenutzer
Kilobyte
Themenstarter
Registriert seit: 05.07.2004
Fachbeiträge: 229
Abgegebene Danke: 3
Erhielt 1 Danke für 1 Beitrag
|
![]()
|
||||||||||||||||||
|
|
|
||||||||||||||||||
| #13 (permalink) | |
|
Java-Forum Team
Moderator
Registriert seit: 13.09.2007
Fachbeiträge: 12.752
Abgegebene Danke: 215
Erhielt 810 Danke für 721 Beiträge
|
Was mich doch dann wundert ist, dass man JEE AppServer einsetzt, EJBs & etc. pp., sich aber offensichtlich noch keiner mit den Grundlagen auseinandergesetzt hat. Leider findet man sowas häufig, war auch schon in einem Projekt mit J2EE 1.4, JBoss4, Hibernate, aber MySQL als DB... wir haben uns lange gewundert, warum unsere ach so tollen Transaktionen nicht funzen... bis es dann gedämmert hat: MySQL MyISAM Tabellen unterstützen keineTransaktionen, so einfach kann es manchmal sein. Leider hätte die Änderung auf INNODB tabellen größere Änderungen am System verlangt, die Tests zB. hatten einen Deadflock bei eingeschalteten Transaktionen, und ein paar andere Stellen.
Ergebnis: Viel Aufwand, Arbeit, Technologie und Komplexität für ein Produkt, das so vergleichbare Features hatte wie eine PHP Seite oder AccessDB. |
|
|
|
| #14 (permalink) | |
|
Stammbenutzer
Viertel Gigabyte
Registriert seit: 19.01.2007
Fachbeiträge: 2.804
Abgegebene Danke: 12
Erhielt 163 Danke für 156 Beiträge
|
ACK
__________________
Grüße, ++++++++++ [ >+++++++>++++++++++>+++>+<<<<- ] >. -----. >++++++++++++++. ++. So funktioniert das mit Foren/Newsgroups/Mailing Lists etc.: smart-questions_de |
|
|
|
| #15 (permalink) | |
|
Neuer Benutzer
byte
Registriert seit: 19.10.2007
Fachbeiträge: 13
Abgegebene Danke: 1
Erhielt 0 Danke für 0 Beiträge
|
Welche Resource-Adapter die das können kennt ihr?
Ich bin bisher nur auf einen einzigen gestoßen : File Resource Adapter | Download File Resource Adapter software for free at SourceForge.net Würde am liebsten einen eigenen Implementieren, sieht aber ganz schön kompliziert aus. Kennt jemand ein Tutorial, das sich genau mit diesem Thema befasst und für JCA 1.5 ist ? thx |
|
|
|
|
| Themen-Optionen | Thema durchsuchen |
| Ansicht | |
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| JTable - Spaltenzellen nicht fokusierbar machen | jherz | AWT, Swing, JavaFX & SWT | 15 | 17.04.2009 22:46 |
| Eclipse lässt sich nicht öffnen | Bernd1983 | IDEs und Tools | 31 | 21.05.2007 15:13 |
| Ladefortschritt - bietet das diese Quelltextvorlage? | Rex | Allgemeine Java-Themen | 9 | 05.10.2006 18:28 |
| Stringkonvert | fomobrain | Java Basics - Anfänger-Themen | 47 | 31.03.2006 08:04 |
| TextArea zeigt String nicht richtig an | StarSeven | AWT, Swing, JavaFX & SWT | 4 | 10.01.2004 10:18 |
| Lesezeichen |
|
|