Hallo,
ich habe folgende Problemstellung:
Der Inhalt von großen Files soll über eine Business-Logik, die in einem J2EE-Server läuft, in eine Datenbank importiert werden. Dabei soll ein Tool einen Ordner überwachen, und wenn eine neue Datei in diesen Ordner kommt, soll diese importiert werden.
Hierbei ergeben sich zwei Probleme:
1) J2EE und File I/O, was ist erlaubt?
2) Wie werden langlaufende Prozesse in J2EE abgebildet werden?
Im Moment läuft die Verzeichnisüberwachung als J2EE-Client. Wenn ein File kommt, importiert dieser Client einzelne Datenblöcke dieses Files in den J2EE-Server (über Session Beans als Session Facade). Da diese Importe aber 1) wichtig sind und 2) sehr viel Laufzeit benötigen, muss man sich die ganze Hochverfügbarkeit und Skalierbarkeit wieder von Hand basteln.
Sehr viel wünschenswerter wäre es, wenn folgendes ginge:
Der Verzeichnis-Überwacher sendet nur eine Message (JMS) mit dem Filename an den J2EE-Cluster. Dieser instanziert auf einem Cluster-Knoten eine MDB. Diese führt den Import durch.
Natürlich muss das Import-Verzeichnis dann als Share für alle Cluster-Knoten zur Verfügung stehen.
Hierbei würde die EJB dann aber auf java.io zugreifen und überdies "ewig" ( >1h) laufen.
Frage: Gibt es einen "richtigen Weg", wie man so etwas implementieren sollte?
Tschüss
Volker
ich habe folgende Problemstellung:
Der Inhalt von großen Files soll über eine Business-Logik, die in einem J2EE-Server läuft, in eine Datenbank importiert werden. Dabei soll ein Tool einen Ordner überwachen, und wenn eine neue Datei in diesen Ordner kommt, soll diese importiert werden.
Hierbei ergeben sich zwei Probleme:
1) J2EE und File I/O, was ist erlaubt?
2) Wie werden langlaufende Prozesse in J2EE abgebildet werden?
Im Moment läuft die Verzeichnisüberwachung als J2EE-Client. Wenn ein File kommt, importiert dieser Client einzelne Datenblöcke dieses Files in den J2EE-Server (über Session Beans als Session Facade). Da diese Importe aber 1) wichtig sind und 2) sehr viel Laufzeit benötigen, muss man sich die ganze Hochverfügbarkeit und Skalierbarkeit wieder von Hand basteln.
Sehr viel wünschenswerter wäre es, wenn folgendes ginge:
Der Verzeichnis-Überwacher sendet nur eine Message (JMS) mit dem Filename an den J2EE-Cluster. Dieser instanziert auf einem Cluster-Knoten eine MDB. Diese führt den Import durch.
Natürlich muss das Import-Verzeichnis dann als Share für alle Cluster-Knoten zur Verfügung stehen.
Hierbei würde die EJB dann aber auf java.io zugreifen und überdies "ewig" ( >1h) laufen.
Frage: Gibt es einen "richtigen Weg", wie man so etwas implementieren sollte?
Tschüss
Volker
Comment