Portierung einer Oracle PL/SQL basierenden Anwendung auf HP NonStop mit SQL/MX



Ähnliche Dokumente
Prozedurale Datenbank- Anwendungsprogrammierung

3. Stored Procedures und PL/SQL

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum:

Kommunikationsübersicht XIMA FORMCYCLE Inhaltsverzeichnis

Gesicherte Prozeduren

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

SQL (Structured Query Language) Schemata Datentypen

Powerful PL/SQL: Collections indizieren mit VARCHAR2- Indizes ein Praxisbeispiel

cs241: Datenbanken mit Übungen HS 2011

Übungsblatt 8- Lösungsvorschlag

3. Stud.IP-Entwickler-Workshop 2. Juni 2006 Workshop 3c: Stud.IP-Enterprise-Edition André Noack, Frank Elsner

4D Server v12 64-bit Version BETA VERSION

Oracle 12c: Neuerungen in PL/SQL. Roman Pyro DOAG 2014 Konferenz

Wo finde ich die Software? - Jedem ProLiant Server liegt eine Management CD bei. - Über die Internetseite

1 Planung Migration UNIMOD collect (=neues Release

SAP NetWeaver Gateway. 2013

Urs Meier Art der Info Technical Info (Februar 2002) Aus unserer Projekterfahrung und Forschung

HighQSoft GmbH AVALON Distributor. Skalierbarkeit und Ausfallsicherheit. Dieter Müller

Information zum SQL Server: Installieren und deinstallieren. (Stand: September 2012)

Systemanforderungen für MSI-Reifen Release 7

Dynamic Ressource Management

PostgreSQL in großen Installationen

Einsatz von Applikationsservern. Untersucht am Beispiel des Sybase Enterprise Application Server

Entwicklungen bei der Linux Clustersoftware

Rapide An Event-Based Architecture Definition Language

Architekturen. Von der DB basierten zur Multi-Tier Anwendung. DB/CRM (C) J.M.Joller

Dokumentation QuickHMI-Schnittstelle für Oracle Datenbanken

Technische Beschreibung: EPOD Server

OERA OpenEdge Reference Architecture. Mike Fechner PUG Infotag 19. Mai 05 Frankfurt

Dokumentation, Analyse, Optimierung,

Windows Small Business Server (SBS) 2008

Hardware- und Softwareanforderungen für die Installation von California.pro

Haben Sie schon einmal aus einem ScreenCobol Requestor ein Java Programm aufgerufen?

mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger

SOLID EDGE INSTALLATION STANDARD PARTS am Client. INSTALLATION Standard Parts am Client

Anzeige des Java Error Stack in Oracle Forms

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS Metadaten

Datenbankstammtisch. Replikation in heterogenen Datenbankumgebungen am Beispiel des Sybase Replication Servers. 1. Februar 2006

Installationsvoraussetzungen

Folgendes PL/SQL Codefragment zeigt das grundlegende Statement für diesen Test: Java.

Access und die andern (Office) Programme. Armin Hess

Continuous Database Integration mit Flyway

Web Interface für Anwender

Agenda. Ziel Problematik OS-Installation Softwareverteilung Inventarisierung Stufenplan

INFORMATION MONITOR HSM SOFTWARE GMBH CLIENT-INSTALLATION

INSTALLATIONSANLEITUNG der Version 2.1 (Jänner 2014)

elcom CDRServer 2011 Call Detail Recording (CDR) Call Detail Recording Server = CDRServer, Software für Telefonie-Reporting CDRServer 2001 kann

seit Java 1.1 Bestandteil der API: packages java.sql, javax.sql

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Oracle APEX Installer

Tipps & Tricks: März Parameter der tnsnames.ora im RAC Umfeld. 1. Parameter: Bereich: Erstellung: RAC 03/2011 SH. Letzte Überarbeitung: 11.

OKB Die MS SQL-Volltextsuche für organice SQL einrichten

2. Datenbank-Programmierung

Hardware- und Softwareanforderungen für die Installation von California.pro

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Löschen eines erkannten aber noch nicht konfigurierten Laufwerks

Entwicklung einer Informix- Administrationsdatenbank mit ERwin

Copyright 2014 Delta Software Technology GmbH. All Rights reserved.

Installation SQL- Server 2012 Single Node

Installationshilfe VisKalk V5

Anleitung Grundsetup C3 Mail & SMS Gateway V

ATHOS Benutzertreffen

Datenbank-Service. RZ-Angebot zur Sicherstellung von Datenpersistenz. Thomas Eifert. Rechen- und Kommunikationszentrum (RZ)

Hinweise zur Installation von MySQL

SQL Server 2008 Standard und Workgroup Edition

Dieses Dokument soll dem Administrator helfen, die ENiQ-Software als Client auf dem Zielrechner zu installieren und zu konfigurieren.

Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10. Technische Informationen (White Paper)

An integrated total solution for automatic job scheduling without user interaction

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Inhalt. 1 Übersicht. 2 Anwendungsbeispiele. 3 Einsatzgebiete. 4 Systemanforderungen. 5 Lizenzierung. 6 Installation. 7 Key Features.

Unserer Aktionen für Wartungskunden:

Alternativen für asynchrones Messaging als Teil der "Converging Infrastructure"

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

DER BESSER INFORMIERTE GEWINNT!

Zend PHP Cloud Application Platform

Formular»Fragenkatalog BIM-Server«

Planung für Organisation und Technik

SQL Server 2005 Standard Edition SQL Server 2005 Enterprise Edition SQL Server 2005 Workgroup Edition

Dezentrale Verschlüsselung. Lumension Device Control Version 4.4

Allgemeine Informationen

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

Systemvoraussetzungen

Produktbeschreibung zum docuform Mercury Cluster & Reprint Modul

Tutorial Windows XP SP2 verteilen

Installation der SAS Foundation Software auf Windows

Avira Management Console Optimierung für großes Netzwerk. Kurzanleitung

IEEE 802.1x Authentifizierung. IEEE 802.1x Authentifizierung IACBOX.COM. Version Deutsch

Web Sockets mit HTML5. Quelle:

Anleitung zur Nutzung des SharePort Utility

Installation Hardlockserver-Dongle

Ora Education GmbH. Lehrgang: Oracle WebLogic Server 11g: Advanced Administration

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Naxtron GmbH Schlosstalstrasse Winterthur. Subject. New Features Oracle 9i Architecture

Systemvoraussetzungen winvs office winvs advisor

Windows Server 2008 (R2): Anwendungsplattform

Systemvoraussetzungen

Transkript:

GTUG 17./18. April 2012 in Ratingen Portierung einer Oracle PL/SQL basierenden Anwendung auf HP NonStop mit SQL/MX Andreas.Gratz@alunorf.de Aluminium Norf GmbH Koblenzer Str. 120 41468 Neuss 1

Gliederung Aufgabenstellung Motivation Herausforderungen Lösungsansätze Zieldatenbank SQL/MX Hoffnungsträger: Referentielle Integrität, Trigger, Stored Procedures Lösungsansatz LOGDB in 2 Schritten Datenbank von Oracle auf NonStop verlagern Server auf NonStop verlagern Lösungsansatz BDEDB mit 2 Wegen Prototyp BDEDB mit Java Stored Procedures BEA Weblogic 8.1.4 auf NonStop BDEDB mit BDESRV auf NonStop Fazit 2

Aufgabenstellung LOG-Datenbank von Oracle nach S-Serie Mehrere 100 WINDOWS Clients und Server Ein multithreaded WINDOWS Server (LOGSRV) Anwendungslogik ca. 80% in PL/SQL Client/Server Kommunikation über TCP/IP (Request/Reply) WINDOWS Managementtool Oracle 9i WINDOWS Cluster BDE-Datenbank von Oracle nach S-Serie (-> Folgeprojekt) Ca. 150 WINDOWS Clients Eine multithreaded WINDOWS Middleware (Server) Anwendungslogik ca. 80% in PL/SQL Client/Server Kommunikation über COM bzw. ActiveX Control und TCP/IP (Request/Reply) zur Middleware WINDOWS Managementtool Oracle 9i WINDOWS Cluster 3

Aufgabenstellung LOGDB WINDOWS Cluster IT-Support & Entwicklung WINDOWS Cluster Node1 in RZ1 Produktion BDE s Server T1 T2 LOGSRV Oracle LOGDB Oracle Call Interface (OCI) Server1 Server2 Server3 Client1 Client2 Client3 TCP/IP Request/Reply WINDOWS APIs C/C++ Library ActiveX DLL LogDBCI.exe Oracle Call Interface (OCI) T1 T2 LOGSRV Oracle LOGDB NonStop API C++ Library COBOL Library WINDOWS Cluster Node2 in RZ2 4

Aufgabenstellung LOGDB Viewer 5

Aufgabenstellung LOGDB Viewer 6

Motivation LOGDB/BDEDB zunehmend strategischer LOGDB stark erweitert zu einer System Management DB (Ende 2006) BDEDB stark erweitert für Konfiguration und Softwareverteilung aller BDEs (Ende 2007) Oracle Cluster nur ausfallsicher, nicht hochverfügbar Heute: Oracle RAC (ab Standard Edition) ist graduell besser Oracle NUP Lizenzen pro User und Device Heute: Oracle RAC Standard Edition mit CPU Lizenz wäre preiswerter NonStop ohne Mehrkosten für Lizenzen NonStop Resourcen waren verfügbar NonStop ist hochverfügbar out of the box Heute: NS-Serie mit XP-Storage -> out of many boxes Alunorf suchte einen geeigneten SQL/MX Prototypen außerhalb des Kerngeschäftes projektierbar mit wenig Resourcen 7

Herausforderungen Welche Oracle Datenbankfeatures sind noch nutzbar? PL/SQL, Stored Procedures (SP), Sequences, Referentielle Integrität insb. Cascading DELETE für FK, Trigger, Transaction Isolation für SP, Dynamisches SQL Wohin mit der PL/SQL Businesslogik? Wie mit dem WINDOWS Client kommunizieren? ODBC, RSC/VSP Massendaten zum WINDOWS Client? Performance? Bis Ende 2011 S-Serie im Einsatz 8

Oracle Features kontra SQL/MX Features PL/SQL und Emb-SQL Stored Procedures in PL/SQL BLOBs Sequences Cascading delete für FK Trigger Transaction Isolation für SP Dynamisches SQL Performant Query plan caching plus Statement Rewrite ANSI SQL und Emb-SQL Stored Procedures in Java Nicht implementiert Nicht implementiert Nicht implementiert Quasi nicht implementiert Hilfskonstrukte mit MP ALIAS Dynamisches SQL Langsam? 9

Anwendungslogik mit PL/SQL PL/SQL ist vollständige Programmiersprache Variablen, Cursor, Ablaufkontrolle, Prozeduren, Funktionen, Trigger, Transaktion, Errorhandling, Exceptions Über externe PL/SQL Prozeduren kann Oracle mit C/C++ und Java Code nahezu beliebig erweitert werden Menge Standardprozeduren für IP, Webservices, Queues ist sehr hoch Eine Stored Procedure (oder Function) ist ein funktionaler Aspekt einer Anwendung (oder Library) Ein Set von Stored Procedures (oder Functions) ist die Anwendung (oder Library) und heißt Packet Der Server ist die Oracle Datenbank (out of the box) Stored Procedures in PL/SQL können von beliebigen Datenbank Clients (und Servern) aufgerufen werden OCI, ODBC, JDBC. Im Rahmen einer Session oder Connection können Stored Procedures konsumiert und orchestriert werden 10

Anwendungslogik mit PL/SQL - Package CREATE OR REPLACE PACKAGE LOGSRV IS FUNCTION Version RETURN VARCHAR2 ; FUNCTION LogEvt( vappname vappinst vevtdatetime vevtmasch vevtcategory vevttype vevtlevel vevtinfo ) RETURN NUMBER ; NUMBER, NUMBER, VARCHAR2 FUNCTION LogEvtData( vappname vappinst vevtdatetime vevtmasch vevtcategory vevttype vevtlevel vevtinfo vevtdata ) RETURN NUMBER ;... NUMBER, NUMBER, RAW END LOGSRV ; / 11

Anwendungslogik mit PL/SQL - Package Body CREATE OR REPLACE PACKAGE BODY LOGSRV IS FUNCTION Version RETURN VARCHAR2 IS BEGIN RETURN '2.1.2' ; END; FUNCTION LogEvt( vappname vappinst vevtdatetime vevtmasch vevtcategory vevttype NUMBER, vevtlevel NUMBER, vevtinfo VARCHAR2 ) RETURN NUMBER IS vret NUMBER := 0 ; vevtid NUMBER := 0 ; vcuralarmevtid NUMBER := 0; vcuralarmstate NUMBER := 0; vcuralarmhistory NUMBER := 0; vevtinfo2 VARCHAR2(512); vevttype2 NUMBER := 0; BEGIN IF vevttype = 5 THEN vret := LOGSRV.LogAlarmExist( vappname, vappinst, vevtmasch, vevtcategory, vcuralarmevtid, vcuralarmstate, vcuralarmhistory ) ; IF vret = 0 THEN vevtinfo2 := 'AlarmSet with error NO_DATA_FOUND, alarm does not exist' ; vevttype2 := 2 ; SELECT S_LOGEVT_EVTID.NEXTVAL INTO vevtid FROM DUAL ; vret := LOGSRV.LogEvtCreate( vappname, vappinst, vevtdatetime, vevtmasch, vevtcategory, vevttype2, vevtlevel, vevtinfo ) ; 12

Abbild. der Anwendungslogik auf NonStop PL/SQL Programmiersprache mit Emb-SQL (COBOL, C/C++, ) Stored Procedure Messagetyp eines Pathway Servers (Request/Reply) PL/SQL SP Parameter müssen in der Messagestruktur abgebildet werden Package Summe aller Messagetypen eines Pathway Servers Oracle Call Interface (OCI) NonStop Anwendungen SERVERCLASS_SEND_, WRITEREADX, C/C++ und COBOL Library Middleware für non-nonstop Anwendungen RSC, CSL, VSP, SOAP,. Massendaten bleiben problematisch für Non-ODBC Anwendungen UMS für RSC, CSL, VSP möglich 13

Lösungsansatz LOGDB - Phase 1 1. Oracle wird verlagert auf SQL/MX - BLOBs werden simuliert (VARCHAR & ODBC/MX binding) - SEQUENCEs werden simuliert (Tabelle) - Cascading delete für foreign keys müssen manuell ausprogrammiert werden 2. LOGSRV mit ODBC/MX gegen SQL/MX - PL/SQL Packages als C++ Klassen - Stored Procedures als C++ Methoden - C++ Exception statt PL/SQL Exception - Highlevel C++ OdbcLib ersetzt OciLib 3. LOGDB-GUI mit ODBC/MX gegen SQL/MX - Highlevel C++ OdbcLib ersetzt OciLib (wie LOGSRV) 14

Lösungsansatz LOGDB Phase 1 Start WINDOWS Cluster IT-Support & Entwicklung WINDOWS Cluster Node1 in RZ1 Produktion BDE s Server T1 T2 LOGSRV Oracle LOGDB Oracle Call Interface (OCI) Server1 Server2 Server3 Client1 Client2 Client3 TCP/IP Request/Reply WINDOWS APIs C/C++ Library ActiveX DLL LogDBCI.exe Oracle Call Interface (OCI) T1 T2 LOGSRV Oracle LOGDB NonStop API C++ Library COBOL Library WINDOWS Cluster Node2 in RZ2 15

Lösungsansatz LOGDB Phase 1 IT-Support & Entwicklung NonStop Server 4 CPU mit 1 GB RAM Produktion BDE s Server SQL/MX LOGDB OdbcLib & ODBC/MX Server1 Server2 Server3 Client1 Client2 Client3 TCP/IP Request/Reply WINDOWS APIs C/C++ Library ActiveX DLL LogDBCI.exe OdbcLib & ODBC/MX T1 T1 LOGSRV WINDOWS Cluster 16

Lösungsansatz LOGDB - Phase 1 Fazit 1. Oracle wird verlagert auf SQL/MX ODBC/MX ODBC/MX ist das bessere ODBC für NonStop Timestamp Behandlung Publish / Subscribe ODBC/MX i.a. nur mit prepared cursors performant Keine Nested Cursors in ODBC/MX Memory Leaks in ODBC/MX und somit keine Langzeitstabilität (div. Fehlerbilder) SEQUENCE Simulation mit UPDATE/SELECT wenig performant Caching von PK IDs nötig (ca. 50-100 sinnvoll) Reorganisation der Datenbank mit foreign keys weniger performant Foreign keys Definitionen entfernt 2. Oracle LOGSRV mit ODBC/MX gegen SQL/MX Insgesamt ist das System komplexer (weil verteilter) Auf S-Serie deutlich langsamer als Oracle, wenige Optimierungspotentiale verblieben (ROWSET) 3. LOGDB-GUI mit ODBC/MX gegen SQL/MX - Auf S-Serie trotz Optimierung deutlich langsamer als Oracle, wegen Dyn-SQL - Entwickler und Administratoren im Performancefrust 17

Lösungsansatz LOGDB - Phase 2 1. LOGSRV wird Pathway Server 2. VSP als Middleware für (fast alle) Clients Eigenentwicklung (RSC-Ersatz) und Standard seit 1993 für Clients in der Alunorf Sehr performant Sehr stabil 18

Lösungsansatz LOGDB Phase 2 Start IT-Support & Entwicklung NonStop Server Produktion BDE s Server SQL/MX LOGDB OdbcLib & ODBC/MX Server1 Server2 Server3 Client1 Client2 Client3 TCP/IP Request/Reply WINDOWS APIs C/C++ Library ActiveX DLL LogDBCI.exe OdbcLib & ODBC/MX T1 T1 LOGSRV WINDOWS Cluster 19

Lösungsansatz LOGDB Phase 2 IT-Support & Entwicklung NonStop Server Pathsend Produktion BDE s Server VSP (TCP/IP) Request/Reply VSP LOGSRV Emb-SQL/MX SQL/MX LOGDB OdbcLib & ODBC/MX Server1 Server2 Server3 Client1 Client2 Client3 LogSrv DLL WINDOWS APIs C/C++ Library ActiveX DLL LogDBCI.exe 20

Lösungsansatz LOGDB - Phase 2 Fazit 1. LOGSRV wird Pathway Server C++ Code ist gute Ausgangsbasis, d.h. die Abbildung von C++/OdbcLib auf C++/Emb- SQL ist überschaubar Skalierbarkeit erfordert zusätzliche Modularisierung Die Sequenz Erzeugung muss in einen neuen (Pathway) Server ausgelagert werden Mehrere Aktionen müssen in einer Transaktion zusammengefasst werden!!! Performance erheblich besser als in Phase 1, erreicht aber nicht jene von Oracle Performance vom LOGDB-GUI unverändert schlecht Das System ist noch komplexer als in Phase 1 2. VSP als Middleware für (fast alle) Clients Messagestrukturen müssen nicht geändert werden, weil das VSP-Protokoll transparent ist Die meisten Clients benötigen nur eine neue DLL (die anderen einen compile&link) VSP ist proprietär (aber Alunorf Standard für jegliche Message basierte Kommunikation zur NonStop) NS-Serie (2012) - LOGSRV dramatisch schneller (ca. Faktor 7, von max. 350 auf 2400 Ereignisse pro Sekunde) - LOGDB-GUI erheblich schneller und klar praxistauglich (immer noch langsamer als Oracle) Entwickler und Administratoren sind begeistert 21

Gesamtfazit Oracle kontra SQL/MX (Sicht Alunorf) Die Entscheidung zur Portierung der Anwendung auf NonStop war insg. richtig Oracle und SQL/MX liegen in Konzeption und Funktionalität weit auseinander und die Kluft wird größer Oracle 9-11g ist deutlich überlegen in Funktionalität und programmers productivity SQL/MX (und SQL/MP) punktet klar in Hochverfügbarkeit TCO Betrachtungen überlasse ich den Managern (aber ) XP-Storage basierende NS-Series Systeme sind ähnlich komplex wie Oracle RAC Systeme TCO Vorteile der NonStop Systeme werden geringer werden Aktuell: Überlegungen einer Rückportierung von SQL/MX auf SQL/MP SQL/MX hat es bislang nicht geschafft,strategisch zu werden (ca. 3 Mio. Zeilen C/COBOL FC100) Nur graduelle Vorteile von SQL/MX gegenüber SQL/MP Weiterentwicklung von SQL/MX kommt scheinbar kaum voran (gemessen an Oracle, SQLServer, MySQL, ) Migration von S-Serie auf NS-Serie zeigt konzeptionelle Schwächen von SQL/MX i.b. Upgrade/Export/Import/ Entwickler für SQL/MX oder SQL/MP zu begeistern ist schwer, wenn diese Oracle Erfahrung aufgebaut haben (leider unvermeidbar) weil in SQL/MX ein PL/SQL Äquivalent fehlt, ist es für viele Entwickler nur ein neueres SQL/MP Komplexe Reports/Queries werden heute überwiegend auf Oracle erstellt (klar: Produktion auf NonStop) Datenreplikation relevanter Tabellen mit DDF von NonStop zu Oracle Praxisfremde Implementierungen, z.b. TRIGGER, helfen nicht zu besserer Akzeptanz Stored Procedures in Java wurden von uns intensiv getestet funktionieren gut im Zusammenspiel mit ODBC/MX und BEA Weblogic, benötigen aber zus. Skills benötigen enorme Resourcen und waren auf S-Serie viel zu langsam, gemessen an PL/SQL 22

GTUG 17./18. April 2012 in Ratingen Andreas.Gratz@alunorf.de Aluminium Norf GmbH Koblenzer Str. 120 41468 Neuss 23