oracle messaging: aq vs. weblogic jms - doag.org · •intern mom provider für den oesb (oracle...
TRANSCRIPT
Logica is now part of CGI.
Oracle Messaging: AQ vs. WebLogic JMS? Bertrand Caradec, Oracle BI Consultant
November 2012
© Logica 2012. All rights reserved. Logica is now part of CGI.
CGI: Neuer globaler IT- & Business Process Services Champion
* Logica-Mitarbeiter ausgenommen ** CGI-Umsatz basierend auf den Finanzergebnissen der am 31.12.2011 beendeten 12-Monats-Periode (IFRS); Logica-Umsatz basierend auf den Pro-Forma-Ergebnissen des Kalenderjahres 2011 (“Underlying Revenue”)
Erstklassige Business- und
IT-Beratung
End-to-End IT- und
Geschäftsprozess-
Dienstleistungen
36 Jahre erfolgreiche
Partnerschaft mit
unseren Kunden
Kundennähe in
Kombination mit
unserem globalen
Delivery-Netzwerk
Über 100 führende
IT-basierte Lösungen
85% unserer
72.000 Mitarbeiter
besitzen Firmen-
anteile*
Umsatz: **
C$10.4 Mrd Backlog:
C$17.7 Mrd
Service für über
5.000 Kunden von weltweit über
400 Standorten
CGI ist der
weltweit
6.größte unabhängige
Anbieter von
IT- und
Geschäftsprozess-
Dienstleistungen.
DOAG Konferenz 2012 - Nürnberg
Fokussiertes
Branchen- & Themen
Know-how in über
40 Ländern
No. 3 © Logica 2012. All rights reserved. Logica is now part of CGI.
Business Intelligence: Unser deutsches Team
150 Mitarbeiter – 1 Verantwortung
Immer die aktuellen Trends im Auge:
z.B. Big Data, Multi Device BI, Social Media, In-Memory
Erfahrenes Managementteam
mit tiefem fachlichen Verständnis & lang-
jähriger Erfahrung in komplexen Projekten
Vertrauensvoller Partner für u.a. für Dt. Telekom, Dt. Bahn, Vodafone,
KION, MAN, 1&1, EZB, Gothaer & buch.de
Umfassende BI Betreuung
Audit & Review, Architektur, ETL, DWH,
Reporting, Planung & BICC Beratung
Berlin
Hamburg
Bremen
Düsseldorf
Stuttgart
München
Frankfurt/M.
Darmstadt
Köln/Bonn
Mannheim
50 Mitarbeiter
10 Mitarbeiter 65 Mitarbeiter
4 Mitarbeiter
2 Mitarbeiter
10 Mitarbeiter
10 Mitarbeiter
Zusammenarbeit mit namhaften Partnern:
DOAG Konferenz 2012 - Nürnberg
No. 4 © Logica 2012. All rights reserved. Logica is now part of CGI.
Bertrand Caradec
DOAG Konferenz 2012 - Nürnberg
Oracle BI Consultant bei Logica mit den Beratungsschwerpunkten:
• Entwicklung mit Oracle DB seit 2003 in OLTP oder DWH Umfeld
• OCP Advanced PL/SQL, OCE Apex Developer
• IBM Cognos BI
• Java, XML
No. 5 © Logica 2012. All rights reserved. Logica is now part of CGI.
Agenda
Einführung MOM, JMS, WebLogic JMS & AQ
Messaging Projektbeispiel
Evaluierung und Ergebnisse
Zusammenfassung / Fazit 04
03
02
01
DOAG Konferenz 2012 - Nürnberg
No. 6 © Logica 2012. All rights reserved. Logica is now part of CGI.
Message-oriented Middleware (MOM)
DOAG Konferenz 2012 - Nürnberg
• allgemeiner Begriff für Hard- & Software die den Nachrichten-austausch zwischen distribuierten Anwendungen anbietet
• Anders als bei einer Remote Procedure Call (RPC) Middleware, wird der Nachrichtenversand asynchron vorgenommen
• Elemente eines MOM Systems: Clients, Nachrichten und der MOM Provider, der eine API und administrative Tools zur Verfügung stellt
• MOM Providers bei Oracle: AQ (Oracle Advanced Queuing), WebLogic JMS, GlassFish Message Queue, Tuxedo Message Queue
No. 7 © Logica 2012. All rights reserved. Logica is now part of CGI.
Java Message Service (JMS)
DOAG Konferenz 2012 - Nürnberg
• fester Bestandteil von JEE, 1998 von Sun spezifiziert
• aktuelle Version ist 1.1 von 2002, JMS 2.0 erwartet für 2013
• definiert eine sehr allgemeine API für die Ansteuerung einer MOM zum Senden / Empfangen von Nachrichten aus einem Java Client heraus
• JEE Anbieter müssen die JMS API umsetzen so dass der JMS Dienst bereitgestellt wird
• unterstützt zwei unterschiedliche Übermittlungsarten von Nachrichten: Point-to-point (Queue) Verbindungen & Publish/Subscribe (Topic) Kommunikation
No. 8 © Logica 2012. All rights reserved. Logica is now part of CGI.
Übersicht WebLogic
DOAG Konferenz 2012 - Nürnberg
• Seit der Akquisition von BEA in 2008, ist der Java EE Applikation Server WebLogic das zentrale Produkt der Oracle Fusion Middleware
• strategischer Applikation Server von Oracle (vor GlassFish & OAS)
• Fortgeschrittene Integration ins Oracle Portfolie
• Basis für BI Software (ODI, OBIEE), SOA und Prozess Management (Oracle Service Bus, SOA Suite) und Content Management (WebCenter)
• Aktuelle Version Version: 12c, vorherige Version: 11g(10.3.x)
• Mit der 12c Version: Implementierung von JEE6, EJB 3.1 und JDK 7 zertifiziert
• Hochverfügbarkeit mit Clustering, Skalierbarkeit
No. 9 © Logica 2012. All rights reserved. Logica is now part of CGI.
WebLogic – Java Message Service (JMS)
DOAG Konferenz 2012 - Nürnberg
WebLogic Server
JMS Server
JMS Module
Queues
Topics
ConnectionFactories
File Storage
JDBC Storage
JMS Client –
Message producer
Messages
JMS Client –
Message consumer
Message-driven Beans
Messages
• JMS Provider des WebLogic Servers
• Implementiert die JMS 1.1 Spezifikation
• Bietet zahlreiche Zusatzfunktionen: Store and Forward, Distributed Destinations, JMS Clustering, Unit-of-unit, Unit-of-work
No. 10 © Logica 2012. All rights reserved. Logica is now part of CGI.
Übersicht – Oracle AQ
DOAG Konferenz 2012 - Nürnberg
• Bestandteil des Oracle RDBMS
• erschien mit der Version 8.0.3 als erstes integriertes Messagingsystem in einer Datenbank
• wird bei jeder Oracle Edition (XE, SE, EE) kostenlos mitgeliefert
• seit der Version 10.1 als „Oracle Streams AQ“ neu genannt
• intern MOM Provider für den OESB (Oracle Enterprise Service Bus) und wird u.a. bei den Oracle Streams und Oracle Scheduler benutzt
• PL/SQL API für die Administration und Enqueuing/Dequeuing
• JMS Schnittstelle zu AQ (aqapi.jar, Java Package oracle.jms), die JMS Clients greifen per JDBC an die Oracle Queues zu
No. 11 © Logica 2012. All rights reserved. Logica is now part of CGI.
Oracle AQ – Features
DOAG Konferenz 2012 - Nürnberg
• Point to point (single consumer queue) oder Publish/Subscribe (multi consumer queue)
• Für multi consumer queue: Propagation, Subscription List, Multiple Recipients
• Nachrichten sind in normalen Oracle Tabellen gespeichert: SQL-based Zugriff, Standard Oracle Features: backup, recovery, export/import, Hochverfügbarkeit, Skalierbarkeit
• Exception Queues (Nach x Sekunden ohne Dequeue oder nach x gerollbackt Dequeue)
• Enqueue Optionen (Message Grouping, Recipient List, message delay, message expiration), Dequeue Optionen
• Data Dictionnary Views (DBA_QUEUES, DBA_QUEUES_TABLES, AQ$<queue table>), Statistic View V$AQ
No. 12 © Logica 2012. All rights reserved. Logica is now part of CGI.
Agenda
Einführung MOM, JMS, WebLogic JMS & AQ
Messaging Projektbeispiel
Evaluierung und Ergebnisse
Zusammenfassung / Fazit 04
03
02
01
DOAG Konferenz 2012 - Nürnberg
No. 13 © Logica 2012. All rights reserved. Logica is now part of CGI.
Messaging Systemlandschaft
DOAG Konferenz 2012 - Nürnberg
No. 14 © Logica 2012. All rights reserved. Logica is now part of CGI.
Das aktuelle Messaging arbeitet mit AQ
DOAG Konferenz 2012 - Nürnberg
No. 15 © Logica 2012. All rights reserved. Logica is now part of CGI.
Technische Details des aktuellen Systems
DOAG Konferenz 2012 - Nürnberg
• XMLTYPE ist der Payload Type der Nachrichten
• die Ausgangsqueues sind als Multiconsumer Queue definiert, während die Eingangsqueues als Subscriber einer Ausgangsqueue eingetragen sind
• XMLTYPE Nachrichten werden anhand des Packages DBMS_XMLDOM zuerst in eine DOM Struktur umgewandelt und sequentiell mit DOM Elementen gelesen
• Die Exception Queues, die nach einem bestimmten Dequeue-Timeout oder nach x Rollback Dequeue der normalen Queue gefüllt werden, werden nach X Tagen geleert
No. 16 © Logica 2012. All rights reserved. Logica is now part of CGI.
Redesign des PasInSys Servers
• neue Anforderungen erheblichen Erweiterung der Soll- und der Ist-Daten (Faktor 100)
• aktuelle technische Architektur und Hardware können diese Erweiterung nicht erfüllen
Ein Redesign wird benötigt!
• Für das Messagingsystem bedeutet dies:
• Evaluierung der Messagingsystemen Oracle AQ & WebLogic JMS
• Technologieevaluierung für den internen / externen Datenaustausch mit den neuen Anforderungen (2000 Nachrichten/s)
DOAG Konferenz 2012 - Nürnberg
No. 17 © Logica 2012. All rights reserved. Logica is now part of CGI.
Bestandteile der Evaluierung
DOAG Konferenz 2012 - Nürnberg
• Messaging Provider: Oracle AQ 11GR2 vs. WebLogic Server 10.3.5 JMS
• Messaging Format: XML vs. Objektstruktur
• Systemreaktion auf Nachrichtgröße: Standard Prognose Meldung (ca. 13 KB in XML Format) vs. BIG Nachricht (5 Mal so groß)
• Skalierung, Netzwerklast
• Hinweis: Die Evaluierung bezieht sich nur die reine Messaging Technologie, nicht die technische Nachrichtenverarbeitung
No. 18 © Logica 2012. All rights reserved. Logica is now part of CGI.
Agenda
Einführung MOM, JMS, WebLogic JMS & AQ
Messaging Projektbeispiel
Evaluierung und Ergebnisse
Zusammenfassung / Fazit 04
03
02
01
DOAG Konferenz 2012 - Nürnberg
No. 19 © Logica 2012. All rights reserved. Logica is now part of CGI.
AQ Evaluierung - 1 Queue 1 Queue
DOAG Konferenz 2012 - Nürnberg
Getrennte Messungen
1) Messung des reinen Enqueuings in die Ausgangs-queue: nur die Enqueue Jobs laufen (Dequeue Jobs gestoppt)
2) Messung des AQ Propagation Jobs mit der Zeitdifferenz: max(remote enqueue time) – max(local enqueue time)
3) Messung des reinen Dequeuing aus der Eingangs-queue: nur die Dequeue Jobs laufen
No. 20 © Logica 2012. All rights reserved. Logica is now part of CGI.
1 Queue 1 Queue – Ergebnis Einqueuing
DOAG Konferenz 2012 - Nürnberg
Local enqueuing
No. 21 © Logica 2012. All rights reserved. Logica is now part of CGI.
1 Queue 1 Queue – Ergebnis Propagation
DOAG Konferenz 2012 - Nürnberg
Propagation + remote enqueue
No. 22 © Logica 2012. All rights reserved. Logica is now part of CGI.
1 Queue 1 Queue – Ergebnis Dequeuing
DOAG Konferenz 2012 - Nürnberg
Dequeuing
No. 23 © Logica 2012. All rights reserved. Logica is now part of CGI.
1 Queue 1 Queue – Fazit
DOAG Konferenz 2012 - Nürnberg
• Das lokale Enqueuing & Dequeuing lassen sich gut parallelisieren
• Die Propagation wird durch die Parallelisierung des Enqueuings nicht verbessert
• Das UDT Standard Format ist mit Abstand das effizientestes Format. Besonders beim Einsatz der Propagation (um den Faktor 3 schneller im Vergleich mit dem XML Standard)
• Ein BIG UDT Objekt lässt sich schlechter enqueuen oder dequeuen als das entsprechende BIG XML Objekt
• Die Dequeuing Performance mit XMLType ist unabhängig von der XML Größe
No. 24 © Logica 2012. All rights reserved. Logica is now part of CGI.
AQ Evaluierung – n Queues n Queues
DOAG Konferenz 2012 - Nürnberg
• Ein Propagation Job ist definiert zwischen jeder Ausgangsqueue und ihrer entsprechenden Eingangsqueue
No. 25 © Logica 2012. All rights reserved. Logica is now part of CGI.
n Queues n Queues – Ergebnis Enqueuing
DOAG Konferenz 2012 - Nürnberg
Enqueuing
No. 26 © Logica 2012. All rights reserved. Logica is now part of CGI.
n Queues n Queues – Ergebnis Propagation
DOAG Konferenz 2012 - Nürnberg
Propagation + remote enqueue
No. 27 © Logica 2012. All rights reserved. Logica is now part of CGI.
n Queues n Queues – Ergebnis Dequeuing
DOAG Konferenz 2012 - Nürnberg
Dequeuing
No. 28 © Logica 2012. All rights reserved. Logica is now part of CGI.
n Queues n Queues – Fazit
DOAG Konferenz 2012 - Nürnberg
• Die Propagierung lässt sich durch mehrere Eingangs- und Ausgangsqueues skalieren
• UDT ist das leistungsfähigstes Format für:
• Enqueuing,
• Propagierung und
• Dequeuing
• Aber Enqueueing & Dequeueing verschlechtert sich deutlicher für einen BIG UDT im Vergleich zu einem BIG XML
No. 29 © Logica 2012. All rights reserved. Logica is now part of CGI.
JMS Evaluierung – Vergleich der Persistenz
DOAG Konferenz 2012 - Nürnberg
• JDBC Persistenz: Oracle Tabelle WLSTORE Record Feld kann als auch BLOB deklariert werden
• File Persistenz: ein WebLogic FileStore muss angelegt werden
• File Ordner in MW_HOME\user_projects\domains\domain-name\servers\server-name\data\store\ wird erzeugt
Feld Typ
ID NUMBER
TYPE NUMBER
HANDLE NUMBER
RECORD LONG RAW
No. 30 © Logica 2012. All rights reserved. Logica is now part of CGI.
WebLogic JMS Persistenz – Ergebnis Enqueuing
DOAG Konferenz 2012 - Nürnberg
Storage Vergleich - Local message producing
No. 31 © Logica 2012. All rights reserved. Logica is now part of CGI.
WebLogic JMS Persistenz – Ergebnis Dequeuing
DOAG Konferenz 2012 - Nürnberg
Storage Vergleich - Local message consuming
No. 32 © Logica 2012. All rights reserved. Logica is now part of CGI.
WebLogic JMS Persistenz – Fazit
DOAG Konferenz 2012 - Nürnberg
• File Storage deutlich performanter als JDBC Storage auf einer lokalen Datenbank
• Mit einer remote Datenbank sollte der Unterschied noch deutlicher sein
• File Storage wird für die weiteren Tests benutzt
No. 33 © Logica 2012. All rights reserved. Logica is now part of CGI.
JMS Evaluierung – Vergleich JMS Nachrichtentypen
DOAG Konferenz 2012 - Nürnberg
• JMS definiert 5 verschiedenen Typen von Nachrichtobjekten:
• TextMessage,
• BytesMessage,
• ObjectMessage,
• StreamMessage &
• MapMessage
• Implementierung des Interface: javax.jms.Message
• WebLogic JMS bietet dazu den folgenden Message Typ (mit einem built-in Support für Xpath): XMLMessage (extends javax.jms.TextMessage)
• Vergleich zwischen:
• ObjectMessage &
• XMLMessage
No. 34 © Logica 2012. All rights reserved. Logica is now part of CGI.
JMS Typen Vergleich – Ergebnis Enqueuing
DOAG Konferenz 2012 - Nürnberg
JMS Remote Message Producing
JMS MBD Consuming
0
5000
10000
15000
20000
25000
1 2 3 4 5 6 7 8 9 10
Anzahl MDB in the free pool
Na
ch
ric
hte
n/s
XmlMessage - Standard
XmlMessage - Big
ObjectMessage Standard
ObjectMessage Big
No. 35 © Logica 2012. All rights reserved. Logica is now part of CGI.
JMS Typen Vergleich – Ergebnis Dequeuing
DOAG Konferenz 2012 - Nürnberg
JMS Remote Message Consuming
JMS MBD Consuming
0
5000
10000
15000
20000
25000
1 2 3 4 5 6 7 8 9 10
Anzahl MDB in the free pool
Na
ch
ric
hte
n/s
XmlMessage - Standard
XmlMessage - Big
ObjectMessage Standard
ObjectMessage Big
No. 36 © Logica 2012. All rights reserved. Logica is now part of CGI.
JMS Evaluierung – MDB
DOAG Konferenz 2012 - Nürnberg
• Message-driven Bean (MDB) prozessiert die JMS Nachrichten asynchron
• MDB Instanzen werden gepoolt
No. 37 © Logica 2012. All rights reserved. Logica is now part of CGI.
WebLogic MDB – Ergebnis
DOAG Konferenz 2012 - Nürnberg
JMS MBD Consuming
JMS MBD Consuming
0
5000
10000
15000
20000
25000
1 2 3 4 5 6 7 8 9 10
Anzahl MDB in the free pool
Na
ch
ric
hte
n/s
XmlMessage - Standard
XmlMessage - Big
ObjectMessage Standard
ObjectMessage Big
No. 38 © Logica 2012. All rights reserved. Logica is now part of CGI.
Agenda
Einführung MOM, JMS, WebLogic JMS & AQ
Messaging Projektbeispiel
Evaluierung und Ergebnisse
Zusammenfassung / Fazit 04
03
02
01
DOAG Konferenz 2012 - Nürnberg
No. 39 © Logica 2012. All rights reserved. Logica is now part of CGI.
Vergleichsmatrix – Messaging
DOAG Konferenz 2012 - Nürnberg
WebLogic Server JMS Oracle Streams AQ 11g
Storage des Queues File System des Applikation Servers Oracle AQ Tabelle
Remote Message Producing
Java clients Oracle AQ Propagation mit mehreren Eingangsqueue
Local Message Consuming
Message-Driven Beans im Applikation Server
Dequeuing mit Oracle PL/SQL API
Optimal Nachrichtformat
JMS ObjectMessage Oracle User Defined Type (UDT)
Backup Bei Pufferung der Nachrichten im Dateisystem ist das Backup-Problem ungelöst
Standard Backup / Recovery einer Oracle Datenbank
No. 40 © Logica 2012. All rights reserved. Logica is now part of CGI.
Vergleichsmatrix – Nachrichtenverarbeitung
DOAG Konferenz 2012 - Nürnberg
WebLogic Server JMS Oracle Streams AQ 11g
Ort der Nachrichten-verarbeitung
JEE Application Server Oracle Datenbank
Umgebung der Verarbeitung
Message-driven Beans gesteuert bei dem EJB Container
Oracle Jobs (Oracle Session)
Programmiersprache Java 6 PL/SQL 11g
Aspekte der Programmier-sprache
Moderne Sprache: objekt-orientiert, Vererbung, Abstraktion, Polymorphismus, umfangreiche API
Prozedurale Sprache (objekt-orientiert möglich mit Aufwand)
Technologie Community (open source, Frameworks)
Sehr groß Begrenzt
Netzwerklast für DB Read / Write
Hoch (JDBC)
Optimal (Verarbeitung läuft in der DB)
Skalierbarkeit
Hoch durch multi-threading mit Enterprise Java Beans und Clustering des Application Servers
Möglich durch Parallelisierung (parallele Job Sessions) des Dequeuings aber begrenzt durch:
1. der PL/SQL Engine ist nur ein von den vielen anderen Komponenten der Oracle Datenbank
2. die Oracle Datenbank läuft auf einen einzigen Server (kein Cluster)
No. 41 © Logica 2012. All rights reserved. Logica is now part of CGI.
Fazit I – Bessere Architektur beim WebLogic
DOAG Konferenz 2012 - Nürnberg
Grundsätzlich sind beide Technologien einsetzbar:
• Ein erforderlicher Durchsatz ist mit WebLogic JMS oder AQ gewährleistet
• Vorteile von WebLogic: Hier erhält man eine „State of the Art“ Architektur für die Nachrichtenverarbeitung:
• klare Trennung zwischen Business Logik (im JEE WebLogic Server) & Datenpersistenz (in der Oracle Datenbank)
• erhöhte Skalierbarkeit durch multi-threading von Message-Driven Beans & Clustering
• Nachrichtenverarbeitung in Java statt PL/SQL: objekt-orientierte Programmierung, große API, open source Frameworks
• weniger Last auf der Datenbank
No. 42 © Logica 2012. All rights reserved. Logica is now part of CGI.
Fazit II – Empfehlung für AQ unter Bedingungen
DOAG Konferenz 2012 - Nürnberg
• Nachteile von WebLogic:
• Auslagerung der Nachrichtenkomponente in einen Applikations-server bedeutet eine deutlich komplexere Architektur
• Es besteht eine Sicherungsproblematik mit WebLogic
• WebLogic erzeugt eine erhöhte Netzwerklast
• Vorteile AQ:
• AQ ist kostenfreier Standardbestandteil der Oracle DB
• Logica konnte gute Erfahrungen mit AQ im Projekt sammeln
• Die Vorteile der „ State of the Art“ Architektur des WebLogic wiegen die Nachteile nicht unbedingt auf unter Bedingungen ist AQ empfehlenswert.
No. 43 © Logica 2012. All rights reserved. Logica is now part of CGI.
Fazit III – Bedingungen für den AQ Einsatz
DOAG Konferenz 2012 - Nürnberg
• Unter Beachtung der folgenden Rahmenparameter ist der Einsatz von AQ empfehlenswert:
• Einsatz von Oracle-PL/SQL-Objekten statt XMLType (schlanker, stark typisiert, kein Parsing mehr nötig)
• Verwendung von JPublisher für die Transformation von Oracle Objekten in Java Klassen (AQ JMS clients)
• Verwendung der XDB Features
No. 44 © Logica 2012. All rights reserved. Logica is now part of CGI.
Weitere Logica Vorträge auf der DOAG
DOAG Konferenz 2012 - Nürnberg
Oracle Messaging: AQ vs. WebLogic JMS Referent: Bertrand Caradec
Mi. 21.11. / 9:00 Uhr / Konferenzraum EG
BI Lifecycle – Wildwuchs oder klare Vorgaben? Referent: Dirk Braunecker
Mi. 21.11. / 14:00 Uhr / Konferenzraum Stockholm
Nested Tables Types als Ergänzung zu Pivot XML Referent: Thomas Strub
Do. 22.11. / 9:00 Uhr / Konferenzraum EG
Forecasting Oracle Performance – Better than a crystal ball Referent: Yuri van Buren
Do. 22.11. / 15:00 Uhr / Konferenzraum St. Petersburg
ODI Projekt Lifecycle – Segen oder Fluch? Referent: Michael Klose
Do. 22.11. / 16:00 Uhr / Konferenzraum Kiew
1
3
4
2
5
No. 45 © Logica 2012. All rights reserved. Logica is now part of CGI.
Vielen Dank für Ihre Aufmerksamkeit
Haben Sie noch Fragen?
DOAG Konferenz 2012 - Nürnberg
No. 46 © Logica 2012. All rights reserved. Logica is now part of CGI.
Ihr Kontakt
Bertrand Caradec ORACLE BI CONSULTANT
E-MAIL: [email protected]
LOGICA DEUTSCHLAND GMBH & CO. KG /
AM LIMESPARK 2 / 65843 SULZBACH (TAUNUS) /
T +49 151 163 604 33
DOAG Konferenz 2012 - Nürnberg