DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

41
DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert

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

Page 1: DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert

Page 2: 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

Page 3: DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

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)

Page 4: DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

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

Page 5: DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

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

Page 6: DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

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

Page 7: DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

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

Page 8: DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

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

Page 9: DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

Applicatie architectuur

Page 10: DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

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

Page 11: DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

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)

Page 12: DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

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

Page 13: DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

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

Page 14: DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

Het MS .NET Framework

Page 15: DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

Common Language Runtime

Page 16: DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

MS ADO.NET

Page 17: DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

ADO.NET Architectuur

Page 18: DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

.NET Transactie beheer

Page 19: DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

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)

Page 20: DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

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

Page 21: DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

Architectuur

Page 22: DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

DB2 Connect basis architectuur

Page 23: DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

DB2 Thread pooling

Page 24: DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

DB2 Connect Connection pooling

Page 25: DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

DB2 Connect concentrator pooling

Page 26: DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

DB2 z/OS Thread Pooling

Page 27: DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

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

Page 28: DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

Application pooling combinatie

Page 29: DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

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

Page 30: DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

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

Page 31: DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

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

Page 32: DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

Full Caching

Combinatie van local en global caching

– KEEPDYNAMIC(YES)– MAXKEEPD > 0– CACHEDYN=YES

Page 33: DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

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)

Page 34: DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

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

Page 35: DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

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

Page 36: DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

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

Page 37: DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

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

Page 38: DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

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

Page 39: DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

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

Page 40: DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

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)

Page 41: DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.

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)