DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

Post on 12-May-2015

228 views 2 download

Transcript of DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

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

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

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 2003activering 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

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

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

Common Language Runtime

MS ADO.NET

ADO.NET Architectuur

.NET Transactie beheer

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

Architectuur

DB2 Connect basis architectuur

DB2 Thread pooling

DB2 Connect Connection pooling

DB2 Connect concentrator pooling

DB2 z/OS Thread Pooling

DISPLAY THREAD

DISPLAY THREAD(*)– 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

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

KEEPDYNAMIC

(YES)

Geen skeleton caching full prepares

Impliciete prepares mogelijk (stmt. text bewaard over commit)

EDMP caching

Short prepares

Prepared stmts bewaard avoided prepares mogelijk

DB2 DDF parameters

Parm Waarde BeschrijvingDDF 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

DB2 DDF parameters

Parm Waarde BeschrijvingIDTHTOIN 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 YES/NO Storage mgt. Algoritmes gebruiken om thread’s working storage te minimaliseren

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)