DB2 Connect gebruik in een Microsoft omgeving

Slides:



Advertisements
Verwante presentaties
Help, ik moet naar Office 2007!?. Wat horen wij bij klanten Training “New UI will cause too big of a loss in productivity” Training “New UI will cause.
Advertisements

Applicatieplatform congres 12 & 13 maart
Agenda Blok 1 - Evolutie van Cloud Computing
BizTalk by Design Steef-Jan Wiggers.
Atos, Atos and fish symbol, Atos Origin and fish symbol, Atos Consulting, and the fish itself are registered trademarks of Atos Origin SA. August 2006.
Hoe SQL injection werkt
Een alternatief voorstel Naar aanleiding van bestudering van de IAASB voorstellen denkt de NBA na over een alternatief. Dit alternatief zal 26 september.
Internet College 2 Architecturen. Architectuur van netwerktoepassingen •Peer to peer –Windows werkgroep •File- en printer sharing •Internet connection.
Stateful web, developments, trends 1 Webtechnologie Lennart Herlaar.
OpenGIS Web Feature Services om kadastrale data te bewerken Afstudeervoordracht - 14 mei 2004 Thijs Brentjens – GISt, TU Delft.
Service Coordination Protocols ● Noodzaak (Eddy) ● Coordination protocols (Eddy) ● Infra-structuur (Eddy) ● WS-Coordination (Eddy) ● WS-Transaction (Pepijn)
Customer confidential
QAD Reporting & Analytics
Programmeren in Java met BlueJ
Cloud Computing woensdag 20 november Wat is Cloud Computing ? Cloud Computing.
Lucene/SOLR 1: inleiding + indexering
Sitecore Item Web API & Mobile SDK
SQL VOOR BIOLOGEN © 2011 M.L. Hekkelman CMBI Radboud UMC.
ICT Infrastructuur.
Internet altijd en overal: de GigaPort GPRS-pilot Klaas Wierenga Innovatie Manager 10 oktober 2000.
De optimale.
Voor VBA programmeurs Maurice de Beijer.  Maurice de Beijer.  The Problem Solver.  Visual Basic MVP.  Blog: theproblemsolver/default.aspxhttp://msmvps.com/blogs/
© 2004 IBM Corporation Guts Wissema, OpenSource & Linux Sales, IBM Open Document Format.
Presentatie IA Solutions 2005: Programma generatie voor: PLC en SCADA Een update van deze PPT is te downloaden op: Rob Kits - Technisch.
Voor VBA programmeurs Maurice de Beijer.  Maurice de Beijer.  The Problem Solver.  Visual Basic MVP.  Blog: theproblemsolver/default.aspxhttp://msmvps.com/blogs/
Speaking OData to SharePoint 2010 in a RESTful manner Michaël Hompus | Principal Developer | Winvision.
(Gast)gebruik van (W)LAN op basis van 802.1X
Social Technology How to get the end-user involved Carl Bik Capgemini Nederland bv.
Faculteit Ingenieurswetenschappen & Wetenschappen Software Engineering Publicatie Management Systeem Groep se1 Software Engineering Thierry Coppens.
Omgevingen zijn dan geïmplementeerd als Symbol Tables. Symbol Table mapt een symbool met een Binding Meerdere noties van binding –Meerdere manieren te.
SQL injections en meer... PERU. web application vulnerabilities Cross Site Scripting (21.5%) SQL Injection (14%) PHP includes (9.5%) Buffer overflows.
Server side scripting 1 Webtechnologie Lennart Herlaar.
Network Address Translation
1 Toegepaste Informatica Keuzevak C++ 3°jaar. 2 Studiefiche  Software  Boek (hfst 3-5)  Presentatie (website)
Specialismen Analyse en verificatie van protocollen Analyse van Petri-netten Component-specificatie Web-based information systems (Query)talen voor Web.
Enterprise Application Integration Walter Moerkerken Ilona Wilmont Integratie Software Systemen 8 mei 2006.
Integratie Software Systemen Alonso, Casati, Kunu & Machiraju Web Services - Concepts, Architectures and Applications Hoofdstuk 5 – Webservices Danny Romme.
Beheer van Exchange Steven van Houttum
SPLA Service Provider License Agreement
© 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied,
Microsoft Partner Programma & Applicatie testen
WinFX Overview Martin Tirion Senior Consultant Microsoft Services.
Agenda Programma Update Nieuwe Technologie –Windows Vista –Demonstratie Packaging Robot (VAI-BRAINFORCE) –Microsoft ISA Server 2006 –Windows Virtual Server.
Client Management met ConfigMgr Jannes Alink – Management.
Applicatieplatform congres 12 & 13 maart
3.6 Architecture of HIS. 3.7 Integrity & Integration within HIS Suraja Padarath /10/2007.
Cloud computing. Cloud introductie  Gebruiker: ‘ Computer Basics: What is the Cloud?’ ‘De cloud.
JProject02 Bert Jacobs Ignace Van Tricht 4 juni 2009.
Visual Basic.Net - Overzicht
De PROFIBUS, PROFINET & IO-Link dag 2011 Share our Vision for Automation.
Microsoft’s Enterprise Project Management 2007 “The Next Generation” Johan Apperloo Olaf van KImmenaede.
Hoofdstuk 2 Java. Soorten Java-programma’s nJava Applet programma “leeft” op een WWW-pagina nJava Application programma heeft een eigen window nJavascript.
TechNet & MSDN 2002 Problemen van vandaag oplossen en vooruitkijken!
Microsoft Operations Manager & Scripting
Web Applicaties Bouwen met Visual Studio .NET
Windows 2000 Update & Windows.NET Server Family Preview Arthur de Meij Solution Specialist Business Infrastructure Enterprise & Partner Group Microsoft.
© Copyright VIMC 2009 Telecom Expense Management A Discussion Ed Vonk
1 Oracle InterConnect - Pagoni files - KC Server Development & Programming Languages 11 mei 2006 Harm Verschuren.
1 december KC Development Tools Oracle HTML DB 2.0.
1 Inleiding Backups maken van VMs Klassieke aanpak VMware Consolidated Backup Conclusie.
1 Okt 4, 2005 Oracle en XML. 2 Okt 4, 2005 xml in database Datatype XMLTYPE  hét xml datatype in de database CLOB, varchar2... Opslag XMLType (Object)tabel.
Rational Unified Process RUP Jef Bergsma. Iterations –Inception –Elaboration –Construction –Transition De kernbegrippen (Phases)
We zijn toch allemaal zoekende?
1Security Technology PICT les 1 ICT Techniek - les 7 - onderwerpen Operating Systems n Waarom een OS? n Soorten n Taken n Opbouw n Processen.
EML en IMS Learning Design
De evolutie van JavaScript
Dick Dijkstra Azure Technical Specialist Microsoft
In samenwerking met HowITsDone Spring as legacy Hoe innovatie legacy kan worden.
The Solution. Enkele kernpunten Zettabyte File System (ZFS) 128 Bit file system Maximale opslagcapaciteit is gelijk aan op zijn Engels gezegd : 16 billion.
Chapter 1: Introduction
Transcript van de presentatie:

DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert

Agenda SD Worx en haar DB2 achtergrond Huidige applicatie architectuur DB2 Connect opstelling Dynamic statement cache NIET: beveiligings- en applicatie aspecten

Situering SD Worx Sociaal secretariaat : dienstverlening op het vlak van loonadministratie en HR Voor KMO, Grote ondernemingen en de publieke sector Meer en meer internationaal georiënteerd Consultancy op vlak van HR, Tax & Legal, Rekrutering & Assessment, …. Kenniscentrum (marktstudies)

ICT omgeving van SD Worx 2 centrale datacenters in Antwerpen IBM mainframe Z9 BC X02 – z/OS 1.7 Windows 2003 gebaseerde decentrale servers (Windows cluster, VMWare, blades) Synchrone datareplicatie voor beide omgevingen 2 datacenters op 500m van elkaar gelegen Synchrone datareplicatie tussen beide gebouwen, zowel voor centrale (mainframe) als decentrale omgevingen (Windows 2003) IBM DS8100 systemen voor mainframe (PPRC) IBM DS4500/ IBM DS4800/ SUN D280 decentraal (IPSTOR datavirtualisatie)

DB2 historiek bij SD Worx DB2 gebruiker sinds 2001 gestart met DB2 V7 COBOL batch op het mainframe Dynamic sql vanuit een Windows omgeving RDBMS ervaringen met decentrale toepassingen op Oracle of MS Sql Server IDMS op mainframe - recent voorzichtig gebruik van stored procedures in COBOL (SP slechts spil van waaruit COBOL db2 routines worden aangeroepen) Wat is dynamic sql ? Applicatie perspectief : alles wat niet hardcoded in programma source staat; of maw. alles door gebruiker ingegeven of gegenereerd door apllicatie at run-time Db2 perspectief: alles wat niet vooraf is gebind en dus at run-time wordt ‘geprepared’ Bij Db2connect komt in eerste plaats dynamic sql in gedachten; kan natuurlijk ook static sql activeren (bv. in de vorm van SP of static packages, al of niet captured) Waarom dynamic sql ? Geen CICS achtergrond enerzijds, anderzijds vanuit Microsoft omgeving niet echt andere mogelijkheden, tenzij C of Java (SQLJ) met embedded sql Bij SD wordt ODBC/OLE-DB enkel via ADO of ADO.NET aangeroepen

Een paar DB2 mijlpalen … mei 2001 begin installatie aug. 2001 start in produktie feb. 2002 eerste produktie applicaties april 2002 synchronisatie data tss. IDMS en DB2 via MQ maart 2003 activering RLF juni 2003 Detector testen

Een paar DB2 mijlpalen … Aug. 2003 Gebruik realtime statistics Juni 2004 Extra accounting attributen Okt. 2004 eerste SP gebruik (COBOL) Apr. 2005 aanschaf Detector Aug. 2005 SMS managed tablespaces Nov. 2007 Websphere Replication Server for z/OS V9 Gebruik van realtime statistieken voor de opvolging van datagroei, reorganisatie momenten of bv. opsplitsing databankbuffers naargelang het UPDATE-gebruik Extra identificatie : eerste gebruik via SQLSETAPI gebruik (probleem met pooled connecties en rapportering) Send client information : - ClientAppName  DB2Connection.ClientApplicationInformation - ClientWrkstName  DB2Connection.ClientWorkstation - ClientUserid  DB2Connection.ClientUser - ClientAcctStr  DB2Connection.ClientAccountingInformation

DB2 Connect historiek bij SD Worx 2001: DB2 Connect V7 (9 fixpacks) MDAC 2.x, ODBC, OLEDB, ADO,.NET 1.0 2004: DB2 Connect V8 (5 fixpacks) ADO, ADO.NET, .NET V2.0 2006: DB2 Connect V9 (2 fixpacks) ADO.NET, .NET V2.0, V3.0 MDAC 2.5, 2.6, 2.7 : instabiliteit tussen releases, werking verschillend naargelang ODBC of OLEDB gebruik Worstelen met .NET ondersteuning, lange tijd geen officiële ondersteuning voor .NET vanuit IBM ODBC (1992) : 2.0, 3.x call level interface gebaseerd op werk van de X/Open groep, uitgebreid met MS specifieke extensies Object oriented data access methodes : DAO (data access objects)  JET Engine  ODBC RDO (remote data objects)  ODBC wrapper  ODBC ADO (ActiveX data objects)  OLEDB interface  ODBC/OLEDB native OLEDB (1996): - opvolger van ODBC, gebaseerd op COM - generieke data access API voor diverse datastores (RDBMS (ODBC), mail (MAPI), directory(LDAP)) - middleware die voorziet in een uniforme interface naar heterogene databronnen - programmeer model ADO (1996/97) : object layer bovenop OLEDB voor talen die geen pointervoorzieningen kennen (Visual Basic, Java, scripting) .NET en framework (v1.0 02/2002, v2.0 11/2005, v3.0 ??/2006) V9 omwille van V3 ondersteuning of V2 ?

Applicatie architectuur

Applicatie architectuur 3-tier applicaties gebaseerd op Microsoft technologie Web based applications Component based development (MTS/COM, COM+/.NET) Transaction monitor applications (COM+, MSDTC) XA-compliant resource manager dankzij DB2Connect

COM+ component services COM + voorziet in runtime services voor components ‘at runtime’ : Administration : MS Mgt Console Component Services Explorer (catalog) JITA : just-in-time activation (component activation/deactivation) Object pooling Transacties : distributed component acties als 1 transactie gegroepeerd (OleTX/XA)

COM+ Component Services Synchronization: controle over concurrent access naar objecten Role based security Queued components: asynchrone communicatie tussen componenten Events: signalisatie tussen componenten via publsh-subscribe mechanisme

Architectuur DB2 CLI API, noch ODBC of OLEDB worden rechtstreeks aangesproken MS-ADO interface wordt hiervoor gebruikt ADO is een object oriented data acess interface bovenop OLE-DB ADO is geëvolueerd naar ADO.NET die voorziet in zogenaamde managed data provider

Het MS .NET Framework .NET is een taal onafhankelijke omgeving voor het ontwikkelen van programma’s die op een eenvoudige manier kunnen samenwerken. De .NET programma’s draaien binnen de .NET execution runtime die abstractie maakt van onderliggende hardware of het operating systeem (vergelijkbaar met Java virtual machine). De componenten die de .NET omgeving vormen, noemt men het .NET Framwework. Dit framework bestaat uit 2 hoofdcomponenten : de Common Language Runtime (CLR) en de .NET Framework class library. De CLR vormt de basis van het .NET Framework en beheert de code op uitvoeringsniveau, waar het diensten als geheugenbeheer, thread beheer en remoting verzorgt, evenals stricte data types en beveiliging. Code die voor deze omgeving is ontwikkelt, noemt men managed code tov. unmanaged code.  performance impact ! Het andere onderdeel, de class library, is een object-oriented collectie van herbruikbare code (classes), interfaces en datatypes om applicaties mee te ontwikkelen. Zo bv. zullen .NET applicaties gebruikmaken van ADO.NET om relationele databanken als DB2 te benaderen en data hierin te manipuleren. De classes zijn georganiseerd in zogenaamde namespaces en iedere namespace is gerelateerd aan een specifieke functionaliteit, bv. namespace System.Data bestaat hoofdzakelijk uit classes die de ADO.NET architectuur vormen. System.Net verzorgen een eenvoudige API voor netwerkcommunicatie. IBM.Data.DB2 is namespace voor IBM DB2 .NET Data Provider.

Common Language Runtime MS .NET ondersteunt verschillende talen op het Microsoft platform, talen die moeten voldoen aan de Common Language Specification (een minimum set aan features waaraan desbetreffende compiler moet voldoen om te kunnen werken in de .NET runtime). Voorbeelden van MS zelf: Visual Basic .NET, C#, J# en Visual C++ en scripting talen als JScript.NET en VBScript. Source code wordt omgezet in MS Intermediate Language en at runtime door JIT compiler vertaald in Native machine code. De CLR is gebaseerd op een Common Type System (CTS), een verzameling ondersteunde data types, waardoor samenwerking van code geschreven in verschillende talen, eenvoudig mogelijk wordt. Vergelijkbaar met LE op mainframe.

MS ADO.NET ADO.NET helpt applicaties te connecteren naar een relationeel databanksysteem.

ADO.NET Architectuur Een DataTable object is een verzameling rijen uit één enkele databank tabel. Een Dataset is een collecties van DataTable objecten met relaties en constraints die de tabellen relateert. In disconnected mode is dit een in-memory relationele structuur waarop database operaties kunnen worden uitgevoerd (in memory-cache aan data gelezen uit databank). In connected mode is er directe interactie met de achterliggende databank. De DataAdapter is het object dat communicatie tussen DataSet en datasource mogelijk maakt en voert de DML statements uit Het Connection object wordt gebruikt om naar de databank te connecteren en kan gebruikt worden om transacties mee te controleren. Deze objecten zijn verschillende afhankelijk van gebruikte dataprovider, zo heb je een OleDbConnection en een ODBCConnection en IBM levert een DB2Connection object. Command objecten worden gebruikt om SQL Statements of Stored Procedures uit te voeren. De DataReader class wordt gebruikt om rijen van de databank in te lezen in je applicatie.

.NET Transactie beheer .NET 2.0 introduceerde nieuwe namespace  System.Transactions Lightweight transactions (single durable resource) OleTx transactions (distributed transactions, bv. multiple connecties naar multiple data stores) Voor lokale transacties (transacties naar 1 enkele databank of buiten COM+ beheer) bestaan er expliciete opdrachten binnen ADO.NET om transactie te starten (BeginTransaction()) en te beëindigen (Commit/Rollback). Data Access Laag en BusinessLogica Laag worden niet gescheiden gehouden  enkel voor kleinere applicaties Distributed transacties worden uitgevoerd door registratie binnen COM+. Resultaat van een transactie wordt imperatief bepaald in programmacode door SetAbort() en SetCommit() methoden of declaratief het door meegeven van AutoComplete attribute. (niet gebruikt)

SD WORX ervaring Integratie tussen Microsoft en IBM DB2 is sterk verbeterd en stabieler geworden Integratie in ontwikkelomgeving Eénduidige IBM DB2 .NET dataprovider Snelle evolutie in .NET blijft een aandachtspunt (.NET 3.0, 3.5, ondersteuning LTM) Performance aspect kan onder controle gehouden worden, maar is constant aandachtspunt (zie verder)

DB2 Connecties onderdelen Het netwerk (TCP/IP meestal) DB2 Clients (CLI, ODBC,OLEDB, DB2 .NET data providers) DB2 Connect server DB2 z/OS (DDF – netwerk connectiviteit / DBM1 database access threads) WLM Service classes en classification rules - in de huidige .NET wereld is de DB2 .NET data provider de aangewezen provider = managed ADO.NET data provider - Sneller dan bridge providers : als de OLE DB .NET data provider: stuurt request naar IBM OLE DB Provider (via COM interop module) of de ODBC .NET data provider: stuurt request naar IBM ODBC provider DB2Connect verzorgt 2 belangrijke elementen, nl. data APIs vanuit applicaties en communicatie met achterliggende DB2 subsysteem

Architectuur Belangrijk pooling (DB2Connect/DB2) Caching

DB2 Connect basis architectuur

DB2 Thread pooling

DB2 Connect Connection pooling

DB2 Connect concentrator pooling

DB2 z/OS Thread Pooling

DISPLAY THREAD DISPLAY THREAD(*) DISPLAY THREAD(*) TYPE(INACTIVE) Pooled DBAT NAME = DISCONN / STATUS = DA DISPLAY THREAD(*) TYPE(INACTIVE) Inactieve CONNECTIE informatie NAME = SERVER / STATUS =R2 DISPLAY DDF DETAIL DISPLAY LOC(*) DETAIL

Application pooling combinatie

Caching Dynamic sql processing bevat 2 stappen : Prepare Execute Prepare kan een zware operatie vormen : Parsen van SQL statement Valideren van de SQL syntax Cataloog access (tabellen, kolommen, privileges) Aanmaak access pad Aanmaak uitvoer statement - Cataloog statistieken benaderen (aantal rijen en pages, indexen en index levels, distribution statistieken, filter factoren berekenen, …)

Local Caching 4 vormen van caching : geen, local en global dynamic cache, full caching Zonder caching betaal je telkens prepare kost voor iedere statement (CPU en IO) Local cache : activering door BIND optie KEEPDYNAMIC(YES) – thread gebonden

Global Caching Global caching in de EDM POOL : DSNZPARM CACHEDYN=YES Alle DML die expliciet geprepared worden of aangeboden via EXECUTE IMMEDIATE Exacte SQL string matching en AUTHID Gebruik van parameter markers Consistente BIND opties bv. CURRENTDATA, ISOLATION, QUALIFIER

Full Caching Combinatie van local en global caching KEEPDYNAMIC(YES) MAXKEEPD > 0 CACHEDYN=YES

Types Prepare Full prepare: normaal geval bv. zonder caching Short prepare : skeleton copy of prepared statement gekopieerd naar local storage Avoided prepare : omwille van full caching Implicit prepare : DB2 voert impliciet prepare uit ten behoeve van applicatie (na COMMIT)

Dynamic statement cache CACHEDYN NO CACHEDYN YES KEEPDYNAMIC (NO) Geen enkele vorm van caching  enkel full prepares EDMP skeleton caching Short prepares mogelijk (YES) Geen skeleton caching  full prepares Impliciete prepares mogelijk (stmt. text bewaard over commit) EDMP caching Short prepares Prepared stmts bewaard  avoided prepares mogelijk NO caching: ieder statement moet full prepare ondergaan en kan dan pas worden uitgevoerd; na commit moet opnieuw full prepare worden doorlopen (geen enkele vorm van caching) aangezien prepared statement wordt vrijgegeven na COMMIT punt Onderscheid: skeleton, prepared statement, statement string LOCAL cache only (KEEPDYNAMIC only): telkens full prepare, maar SQL statement text wordt bijgehouden zodat DB2 een impliciete prepare kan uitvoeren – prepared statement nog steeds vrijgegeven na COMMIT GLOBAL cache only: eerste keer full prepare, skeleton SKDS wordt bijgehouden in EDM pool, prepared statement wordt vrijgegeven na COMMIT, evenals statement text  short prepare FULL CACHING : eerste keer fulle prepare, skeleton SKDS wordt bijgehouden in EDM pool, prepared stmt en sql text worden bijgehouden  avoided prepare SKDS = executable statement

DB2 DDF parameters Parm Waarde Beschrijving DDF AUTO DDF Startup at DB2 startup CMTSTAT INACTIVE THREAD POOLING CTHREAD 1-2000 Max. users MAXDBAT 0-1999 Max. remote active DDF – DBM1 CONDBAT 0-150000 Max. remote connecties - DDF POOLINAC 0-9999 Approx. Time in seconds that DBAT can remain in thread pool before terminating - opm. dit zijn niet uitsluitende DDF parameters (titel aanpassen ?)

DB2 DDF parameters Parm Waarde Beschrijving IDTHTOIN 0-9999 Idle thread timeout – iets hoger dan TCPKPALV TCPALVER NO TCP/IP allready verified user identification TCPKPALV 1-65534 TCP/IP keep alive – zie IDTHTOIN CONTSTOR YES/NO Periodieke “contract” thread’s working storage MINSTOR Storage mgt. Algoritmes gebruiken om thread’s working storage te minimaliseren - TCPKPALV detectie DB2 Connect gateways die verdwijnen, zodat DB2 geaffecteerde DBATS kan opkuisen TCPKEEPALIVE on DB2Connect server detecteert wanneer clients (PCs of applicatie servers) verdwijnen

DB2 en de Workload Manager WLM bepaalt de prioriteiten en kent resources toe (CPU, I/O, memory) WLM definities Binnenkomend werk (bv. DDF thread) krijgt service class toegewezen op basis van classificatie regels Een service class kan ingedeeld worden in perioden (inactive threads) Binnen een periode kunnen tegen een bepaalde prioriteit gelimiteerde resources verbruikt worden Dit kan beschermen tegen runaway queries

WLM Enclaves DDF threads worden uitgevoerd als enclave SRBs onder controle van WLM DDF classificatie binnen WLM is belangrijk om correcte thread priority te zetten Enclave creatie en vernietiging afhankelijk van CMTSTAT instelling Bij INACTIVE, wordt thread aangemaakt wanneer eerste SQL wordt ontvangen

WLM Enclaves Bij ACTIVE wordt enclave aangemaakt wanneer DBAT wordt aangemaakt Enclave verdwijnt bij INACTIVE bij COMMIT/ROLLBACK indien RELEASE(COMMIT) Enclave verdwijnt bij ACTIVE wanneer thread verdwijnt INACTIVE thread kan multi-period response time of velocity goals gebruiken

WLM Enclaves Bij ACTIVE kan enkel 1 periode velocity goal gebruikt worden Accounting info bij ACTIVE instelling, enkel wanneer thread eindigt Accounting info bij INACTIVE instelling op moment van COMMIT/ROLLBACK (met KEEPDYNAMIC(YES) in V8)

Diverse instellingen : decentraal Db2connect pooling (zie eerder) Max. agents / max. coordinating agenst Timeouts: applicatie/db2connect, client/db2connect server CONNECTTYPE/DISABLEMULTITHREAD/SYNCPOINT  MTS/COM+ CURSORHOLD=NO NT performance monitoring  DB2CONNECT_IN_APP_PROCESS=NO DB2_ENABLE_LDAP=N (snellere connect)