DB2 Connect gebruik in een Microsoft omgeving Marc Cobbaert.
-
Upload
rebecca-hermans -
Category
Documents
-
view
228 -
download
2
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)