Go Live von Apache Active MQ

Wissensbeitrag

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?

Einleitung

Apache Active MQ ist ein Opensource Messaging System, welches zur Auflösung der engen Kopplung zwischen Anwendungen genutzt werden kann. Neben der in diesem Projekt im Fokus stehenden Java JMS API wieder unter anderem auch eine REST, C und .NET API zur Kommunikation zwischen Anwendung und Messagingsystem zur Verfügung gestellt.

KahaDB Bug in der Active MQ Version 5.4.0

Damit Nachrichten dauerhaft gespeichert werden, muss ein persistenceAdapter konfiguriert werden. Hier ist aufgrund der Performancevorteile die KahaDB dem AMQ Message Store vorzuziehen. Wie Vorabtests der Apache Active MQ Instanz ergaben, besteht in der Apache Active MQ 5.4.0 Version ein Bug in der Implementierung der dateibasierten KahaDB. Die Nachrichten in Queues werden bei Nutzung in sogenannten Log-Dateien, unterhalb des kahadb Verzeichnis, abgebildet. Die Logdateien werden dabei schrittweise hochgezählt. Im Stresstest zeigte sich, dass Active MQ ab einem bestimmten Zeitpunkt, die Logdateien nicht mehr aufräumte. Selbst bei Leerung aller Queues blieben Log-Dateien bestehen. Parallel dazu wuchs der genutzte Java Heap kontinuierlich an. Mit einer Migration auf die Version 5.5.1 konnten beide Probleme behoben werden.

root@debian:/opt/apache-activemq-5.5.1/data/kahadb# ls

db-66.log db.data db.redo lock

Listing 1: Ablageort der KahaDB Logdateien

Optimierung für erhöhte Lastaufkommen

Bei erhöhter Last sollten im Startup Skript der Active MQ Instanz die Konfigurationsparameter zum Start der Instanz sowie das memoryUsage Limit hochgesetzt werden.

root@debian:/opt/apache-activemq-5.5.1/bin# cat activemq | grep Xmx

ACTIVEMQ_OPTS_MEMORY=”-Xms1024M -Xmx1024M”

Listing 2: Anpassung der Konfigurationsparameter am Beispiel des Default Startupskriptes

Anpassungen im Bereich Schwellwerte, Deadletter Queues, Logging & Security

In Abhängigkeit von der Anzahl der Clients, der Größe der Nachrichten und des Transaktionsumfanges sollten weiterhin die producerFlowControl memoryLimit Werte angepasst werden um das Blocking von Producern zu vermeiden. Einem Vollaufen der Festplatte kann mittels Setzen des storeUsage Wertes entgegengewirkt werden. Ein schwerwiegender Fehler tritt auf, wenn der storeUsage Wert nicht erreicht ist, aber die Festplatte bereits voll ist. Um eine automatische Reprozessierung von Nachrichten in Deadletter Queues zu ermöglichen, sollte grundsätzlich immer das Default DLQ Verhalten mittels einer deadLetterStrategy überschrieben werden. Das serverseitige Logging nach activemq.log erwies sich leider als weniger hilfreich. Häufig werden wichtige Fehler nur auf dem INFO Level geloggt. Dementsprechend sollte das Logging Level unbedingt hochgesetzt werden. Für clientseitiges Logging der Active MQ Bibliotheken ist unbedingt eine entsprechende log4j.properties zu hinterlegen. Ansonsten gibt der Java Client keinerlei Hinweise, die für das Debugging genutzt werden können. Im Security Bereich ist auf die Absicherung der Webkonsole und JMX-Schnittstelle sowie der Vergabe von Zugriffsrechten auf Queues und Topics zu achten.

<systemUsage>
<systemUsage sendFailIfNoSpace=”true”>
<memoryUsage>
<memoryUsage limit=”500 mb”/>
</memoryUsage>
<storeUsage>
<storeUsage limit=”1 gb”/>
</storeUsage>
<tempUsage>
<tempUsage limit=”100 mb”/>
</tempUsage>
</systemUsage>
</systemUsage>

Listing 3: Anpassung der Usage-Werte

Qualität der Produktdokumentation & alternative Informationsquellen

Insgesamt zeigte sich deutlich bei der Einführung von Apache Active MQ, dass individuelle Lasttests unter anderem zur Ermittlung geeigneter Schwellwerte für Limit-Werte absolut unverzichtbar sind. Hier gibt es keine allgemeinen Berechnungsformeln. Viele der offenen Fragen konnten lediglich durch den Austausch mit aktiven Active MQ Comittern beantwortet werden. Sehr enttäuscht war ich von der Active MQ Produktdokumentation, die bestimmte Konfigurationsparameter häufig kaum oder in einem Fall sogar fehlerhaft beschreibt. Hier erwies sich das Active MQ Forum als deutlich bessere erste Anlaufstelle.

Fazit

Bei dem Go Live einer Active MQ Instanz sind einige Aspekte zu berücksichtigen, die kaum dokumentiert sind. Soll die Inbetriebnahme unter hohem zeitlichen Druck erfolgen, kann diese nur mittels Einsatz von erfahrenem Personal erfolgreich erzielt werden.

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.

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.

Wissen

What's New - WebSphere MQ File Transfer Edition 7.0.2

Lesen Sie in diesem Artikel, was es bei der WebSphere MQ File Transfer Edition 7.0.2 Neues gibt.

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

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.

Apache Lösungen
Technologie

Apache Lösungen

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

Toyota Logo
Referenz

Schnittstellenintegration von SAP und WebSphere MQ

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

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.

Puzzleteil zur Visualisierung von Integration
Wissen

Februar Update von Blueworks Live

IBM hat Blueworks Live im Februar das erste der vier jährlichen Updates spendiert. Blueworks Live ermöglicht gemeinsame Prozessmodellierung und setzt den Fokus auf eine einfache und intuitive Handhabung. Damit werden insbesondere Business Anwender adressiert.

Security, Identity & Access Management als Grundlage für die Digitale Transformation
Wissen

End-To-End Security mit WebSphere MQ AMS

Eine Applikationsübergreifende Absicherung kritischer Daten ist heute gerade beim Einsatz einer zentralen Middleware Lösung eine der signifikanten Fragen, die es zu lösen gilt.

Wissen

Filetransferlösungen mit IBM WebSphere MQ File transfer - 2

Der erste Blogeintrag der Serie über IBM WebSphere MQ file transfer begann mit einem Crashkurs zu WebSphere MQ und schloss mit dem Fazit, dass ein Programm in Kombination mit einem Messagingsystem nahezu alle Anforderungen an eine moderne Filetransferlösung erfüllen könnte. Um eben dieses Programm namens MQ FTE Agent geht es im zweiten Artikel.

IBM Blueworks Live
Lösung 01.09.20

Blueworks Live

Blueworks Live dient zum gemeinsamen Definieren und Modellieren von Geschäftsprozessen. Als Cloud-Dienst benötigt Blueworks Live keine umfangreiche Softwareinstallation und kann auf jedem Computer mit Internetbrowser ausgeführt werden.

Wissen

Neuerungen in IBM WebSphere MQ Version 7.1 - Teil 2

Wie kann WebSphere MQ noch schneller und zuverlässiger werden, als es jetzt schon ist? Lohnt es sich auf die neue Version von WebSphere MQ zu migrieren? Im zweiten Teil unseres Blogeintrages über die Neuerungen in der neuen Version von WebSphere MQ werden wir diese Fragen beantworten.

Rechner mit Programmiercode
Wissen

Neuerungen in IBM WebSphere MQ Version 7.1 - Teil 1

Auf der IBM WebSphere Technical Conference 2011 wurden die Neuerungen bei der IBM WebSphere MQ Version 7.1 vorgestellt. Unser Blogartikel fasst das Wichtigste für Sie zusammen.

Services für WebSphere MQ
Technologie

WebSphere MQ

WebSphere MQ ermöglicht seit nun über 20 Jahren (vormals als MQ Series) die Anwendungsintegration von Geschäftsanwendungen durch den Austausch von Informationen über unterschiedliche Plattformen sowie beim Senden und Empfangen von Daten in Form von Nachrichten (Messages).

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.

Puzzleteil zur Visualisierung von Integration
Wissen

Einlesen großer Dateien mit Camel

Wenn eine relativ große Datei über eine simple Java Anwendung zerlegt und die so gewonnen Daten in eine Datenbank geschrieben werden sollen, gibt es verschiedene Ansätze, die sowohl Vor- als auch Nachteile aufweisen.

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.