Puzzleteil zur Visualisierung von Integration

Einlesen großer Dateien mit Camel

Wissensbeitrag

Wenden wir uns einmal der Situation zu, dass eine relativ große Datei über eine simple Java Anwendung zerlegt und die so gewonnen Daten in eine Datenbank geschrieben werden sollen. Dazu gibt es verschiedene Ansätze, die sowohl Vor- als auch Nachteile aufweisen.

Möglichkeit 1: plain Java

Java bietet hierzu eine relativ simple Möglichkeit: Den FileReader. Mit diesem FileReader wird die Datei in das Java Programm eingelesen, in welchem dann verschiedene Bearbeitungsschritte vorgenommen werden können. Zum Schluss wird die Datei in die Datenbank geschrieben. Einen Haken hat diese einfache Prozedur allerdings: Der FileReader lädt die gesamte Datei in den Puffer. Dadurch entstehen – je nach Dateigrößen – immens große Laufzeiten. Im Worst-Case führt dieses Verfahren sogar zu einem Programmabsturz und wird damit vollständig unbrauchbar.

Tippen auf Tastatur

Ein Workaround für dieses Problem besteht darin, jeweils nur einzelne Zeilen mit Hilfe des Java-Integrierten Scanner Tools auszulesen und zu bearbeiten. So wird ein geringerer Anteil an Speicher auf einmal benötigt. Nun ergibt sich jedoch das Problem, dass diese Anwendung nachträgliche Anpassungen oder Erweiterungen deutlich schwierig gestaltet. Ein weiterer Nachteil besteht darin, dass erst immer eine komplette Zeile bearbeitet werden muss bevor die nächste Zeile eingelesen wird:

Zeile auslesen -> Bearbeitung und Daten herausfiltern -> Datenbank füllen

Der gesamte Vorgang muss außerdem an einem Stück passieren, da zwischendurch nicht einfach pausiert werden kann.

Plain Java eignet sich somit eher dafür, kleinere Dateien zu verarbeiten. Für größere Dateien empfehle ich andere Varianten – wie zum Beispiel über ActiveMQ und Camel, Open Source-Techniken.

Möglichkeit 2: Open Source (Apache ActiveMQ & Camel)

Rechner mit Programmiercode

Mit Apache Camel besteht in Verbindung mit ActiveMQ die Möglichkeit, oben angesprochene Thematik in zwei „Routen“ zu teilen und diese gleichzeitig laufen zu lassen. „Routen“ sind dabei Handlungsstränge in Camel, welche zum Beispiel eine Datei von A nach B schieben und zwischendurch noch andere Bearbeitungsschritte durchführen:

– Route 1 liest die Zeilen einzeln aus und schreibt diese auf eine Queue

– Route 2 nimmt sich die Messages aus der Queue und schreibt die gewollten Daten in die Datenbank

Ein Vorteil hierbei ist, dass die Routen simultan bearbeitet werden. Das bedeutet, dass Route 2 dauerhaft auf die Queue achtet. Sobald von Route 1 eine Message auf die Queue geschrieben wird, wird diese dadurch von Route 2 bearbeitet. Die fertig bearbeiteten Daten wandern im Anschluss direkt in die Datenbank.

Ein zweiter Vorteil dieser Variante: Asynchronität. Sollte Route 2 zum Beispiel einmal nicht auf die Queue lauschen, kann Route 1 trotzdem noch Messages in die Queue einreihen. Sobald Route 2 wieder verfügbar ist, holt sie sich die bereits vorhandenen Messages einfach ab. Letztlich kann diese Lösung noch durch Transaktionssicherheit ergänzt werden (ein weiterer Vorteil, den Camel von Haus aus bietet), sodass bei einem Ausfall die Daten trotzdem erhalten bleiben.

Ebenso ermöglicht diese Variante eine deutlich einfachere, nachträgliche Anpassung bzw. Erweiterung um zum Beispiel weitere Anbindungen, wie: Die Daten nicht nur in eine Datenbank schreiben, sondern verschiedene Daten zusätzlich noch an andere Stellen weiterzuleiten um beispielsweise eine Stückzahl einer Bestellung ans Lager weiterzugeben.

Welche Varianten nutzen Sie zum Einschreiben von Dateien in Datenbanken? Ich freue mich auf Ihre Erfahrungen, Meinungen und – selbstverständlich – auch Fragen zu diesem Thema.

Wüste der Integration
Wissen

Auf Kamelen durch die Wüste der Integration

Im Rahmen eines Kundenprojektes sollte die Anbindung eines RESTful Webservices an eine DB2 Datenbank realisiert werden. Open Source Integrationsframework Apache Camel lieferte die Lösung. Der Blogartikel geht ins Detail.

Apache Lösungen
Technologie

Apache Lösungen

Lesen Sie alles zu ausgewählten Apache Messaging- und Connectivity- Produkten, die bei uns zum Einsatz kommen.

Services für Apache Camel
Technologie

Services für Apache Camel

Opensource Framework um Integrationslösungen nach den Enterprise Integration Patterns umzusetzen. Zur Umsetzung wird der FUSE Mediation Router eingesetzt – eine ausgeführlich getestete Version von Apache Camel.

Wüste der Integration
Wissen

Auf Kamelen durch die Wüste der Integration - Teil 2

Für Integrationsprojekte bietet Open Source Framework Apache Camel einige Lösungen. In diesem fortsetzenden Beitrag wird WebSphere Message Broker als alternatives Produkt beleuchtet.

Wissen

Mediation mittels Transformation und Routing

Wie kann durch Mediation auf der Basis eines Messagingsystems lose Kopplung zwischen Anwendungen erzielt werden? Gibt es bei der Umsetzung der Mediation Unterschiede zwischen Open Source und kommerziellen Lösungen? Dieser Blogartikel beantwortet diese Fragen.

Verschiedene Werkzeuge wie Hammer, Schraubenzieher, etc. auf einem Boden
Wissen

Standards von Opensource ESB's

Können bestehende, ausführbare Mediationen auf eine SOA Platform portiert werden? Wann wäre dieser Übergang sinnvoll? Was tragen OSGi und JBI zu einer SOA bei?

Puzzleteile zur Visualisierung von Integration
Wissen

Einführungsworkshop in Apache Integrationslösungen

Eine Schulung zu dem Thema „Einführung in die Apache Integrationslösungen“ beschäftigt sich intensiv damit, wie Wissen zu den Produkten Apache ActiveMQ, Camel, CXF und ServiceMix möglichst gut aufbereitet und effizient vermittelt werden kann.

Wissen

Go Live von Apache Active MQ

Welche Anpassungen sollten vor dem Go Live an der Apache Active MQ Brokerkonfiguration vorgenommen werden? Gibt es hier Best Practices? Werden diese ausreichend in der Produktdokumentation beschrieben oder sind diese an anderer Stelle zu finden? Das und mehr klärt dieser Blogartikel.

Arbeit am Laptop
Wissen

Qualität der Messagingsysteme

Welche Funktionalitäten bieten Messagesysteme? Wo liegen die Unterschiede zwischen frei verfügbaren und kommerziellen Messagingsystemen? Lesen Sie in diesem Artikel mehr.

Wissen

Filetransferlösungen mit IBM WebSphere MQ File transfer

IBM WebSphere MQ File Transfer Edition ist ein Produkt, welches im Wesentlichen auf das bereits seit über 15 Jahren etablierte und weit verbreitete Messaging-System IBM WebSphere MQ aufsetzt. Diese Blogserie soll Sie näher in WebSphere MQ einzuführen.

Wissen

Message Broker: Kleines Fixpack mit großer Wirkung

Anfang Oktober 2012 wurde Fixpack 1 für WebSphere Message Broker Version 8 veröffentlicht. Der folgende Blogeintrag beschäftigt sich mit einigen der Neuerungen, die andeuten könnten, wohin sich der Message Broker in Zukunft entwickelt.

Wissen

Filetransferlösungen Teil 5 - Neuerungen in V7.0.1

Mittlerweile existiert bereits ein neueres Release von WebSphere MQ FTE. In diesem Blogartikel sind alle Funktionen in WebSphere MQ FTE 7.0.1 aufgelistet.

Wissen

E-Mobilität-Business lebt von der Datenqualität

Das E-Auto laden und weiterfahren? X-INTEGRATE hat dafür eine Technologieplattform entwickelt, über die sie zugleich ei-ne hohe Datenqualität sicherstellt.

Integration von Geschäftsprozessen mittels Open Source
Wissen

Integration von Geschäftsprozessen mit Open Source

Welche Potentiale haben Open Source Ansätze in einer SOA Implementierung – speziell die der Open Source ESBs (Enterprise Service Bus)?

Puzzleteil zur Visualisierung von Integration
Wissen

IBM Integration Bus 9 – Der neue Message Broker

Auf der Impact 2013 in Las Vegas wurde Version 9 des bewährten WebSphere Message Brokers (WMB) unter dem Namen IBM Integration Bus (IIB) vorgestellt. Der Grund für die Umbenennung ist sicher die neue ESB-Strategie der IBM. Der Blogartikel liefert Einzelheiten.

Schweizer Taschenmesser zur Visualisierung der Bündelung von Funktionen
Wissen

Brave New Message Broker

Der WebSphere Message Broker ist das „Schweizer Taschenmesser“ unter den ESB-Produkten der IBM. Im Blogbeitrag möchten wir einige dieser neuen Funktionen und Verbesserungen zur aktuellen Version kurz vorstellen.

Wissen

Die Zukunft vorhersagen mit Predictive Analytics

Für Unternehmen gilt es heute mehr denn je, nicht nur in der Gegenwart gut aufgestellt zu sein, sondern auch einen Blick in die Zukunft zu wagen. Industrie 4.0 und Predictive Analytics ermöglichen es interne Prozesse besser nachzuverfolgen.

Services für Apache ServiceMix
Technologie

Services für Apache ServiceMix

Ermöglicht es, Anwendungen durch Einsatz eines Opensource ESBs lose zu koppeln. Zur Umsetzung wird der FUSE ESB eingesetzt – eine ausgeführlich getestete Version von Apache ServiceMix.

Zur VDI-Z Website
Presse 27.03.19

Fachbeitrag: Industrielle Nähprozesse digitalisieren

Unter der Marke “Qondac” haben Kunden von Dürrkopp Adler die Möglichkeit, den Status jeder Arbeitsstation oder Maschine visuell und in Echtzeit zu überwachen. Mehr dazu lesen Sie im Fachbeitrag der VDI-Z.

Toyota Logo
Referenz

Schnittstellenintegration von SAP und WebSphere MQ

X-INTEGRATE transformiert die Informationsarchitektur von Toyota Informations-Systeme mit SAP und WebSphere MQ.