DB2 Connect ervaringen in een Microsoft omgeving

Download Report

Transcript DB2 Connect ervaringen in een Microsoft omgeving

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
aug. 2001
feb. 2002
april 2002
maart 2003
juni 2003
begin installatie
start in produktie
eerste produktie applicaties
synchronisatie data tss.
IDMS en DB2 via MQ
activering RLF
Detector testen
Een paar DB2 mijlpalen …






Aug. 2003
Juni 2004
Okt. 2004
Apr. 2005
Aug. 2005
Nov. 2007
Gebruik realtime statistics
Extra accounting attributen
eerste SP gebruik (COBOL)
aanschaf Detector
SMS managed tablespaces
Websphere Replication
Server for z/OS V9
DB2 Connect historiek bij SD Worx

2001: DB2 Connect V7 (9 fixpacks)
–

2004: DB2 Connect V8 (5 fixpacks)
–

MDAC 2.x, ODBC, OLEDB, ADO,.NET 1.0
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
•

DISPLAY THREAD(*) TYPE(INACTIVE)
–
Inactieve CONNECTIE informatie
•


NAME = DISCONN / STATUS = DA
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
KEEPDYNAMIC
(NO)
KEEPDYNAMIC
(YES)
CACHEDYN YES
Geen enkele vorm
van caching 
enkel full prepares
EDMP skeleton
caching
Short prepares
mogelijk
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
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
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
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/SYNC
POINT  MTS/COM+
CURSORHOLD=NO
NT performance monitoring 
DB2CONNECT_IN_APP_PROCESS=NO
DB2_ENABLE_LDAP=N (snellere connect)