Sunteți pe pagina 1din 189

IBM DB2 Connect 9.

Versiune 9 Ediie 7

Ghidul utilizatorului DB2 Connect Actualizat, noiembrie 2009

SA22-1403-01

IBM DB2 Connect 9.7

Versiune 9 Ediie 7

Ghidul utilizatorului DB2 Connect Actualizat, noiembrie 2009

SA22-1403-01

Not nainte de a folosi aceste informaii i produsul la care se refer, avei grij s citii informaiile cu caracter general din Anexa B, Observaii, la pagina 167.

Observaie privind ediia Acest document conine informaii care sunt proprietatea IBM. Sunt furnizate pe baza unui acord de licen i sunt protejate de legea referitoare la copyright. Informaiile din aceast publicaie nu includ garanii pentru produs, orice enun din acest manual trebuind s fie interpretat n acest sens. Putei comanda publicaiile IBM online sau prin reprezentantul IBM local. v Pentru a comanda publicaiile online, mergei la IBM Publications Center, la www.ibm.com/shop/publications/order v Pentru a gsi reprezentantul IBM local, mergei la IBM Directory of Worldwide Contacts, la www.ibm.com/planetwide Pentru a comanda publicaii DB2 la DB2 Marketing and Sales n Statele Unite sau Canada, sunai la 1-800-IBM-4YOU (426-4968). Cnd trimitei informaii la IBM, acordai IBM-ului dreptul neexclusiv de a folosi sau distribui informaiile n orice fel considerat corespunztor, fr ca aceasta s implice vreo obligaie pentru dumneavoastr. Copyright International Business Machines Corporation 1993, 2009.

Cuprins
Despre aceast carte . . . . . . . . . v
Tipurile de autentificare suportate cu DB2 Connect . . 44

Partea 1. Concepte DB Connect . . . 1


Capitolul 1. DB2 Connect . . . . . . . 3
Oferta de produse DB2 Connect . . . . . Funciile livrate n DB2 Connect Versiunea 8 . Bazele de date gazd . . . . . . . . DB2 Connect i instruciunile SQL . . . . Utilitarele de administrare DB2 Connect . . InfoSphere Federation Server i DB2 Connect . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 4 5 5 6

Capitolul 6. Legarea aplicaiilor i utilitarelor (DB2 Connect) . . . . . . . 47 Capitolul 7. Actualizrile multilocaie . . 51


Activarea actualizrilor multilocaie folosind Control Center . . . . . . . . . . . . . . . . Testarea actualizrilor multilocaie folosind Control Center Actualizarea multilocaie i managerul de puncte de sincronizare. . . . . . . . . . . . . . . Configurarea DB2 Connect cu un manager de tranzacii compatibil XA . . . . . . . . . . . . . . Suportul DB2 Connect pentru tranzacii cuplate slab . . 52 52 52 53 54

Capitolul 2. Distributed Relational Database Architecture. . . . . . . . . 7


DRDA i accesul la date . DB2 Connect i DRDA . Unitatea de lucru la distan Cereri distribuite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 . 7 . 8 . 10

Capitolul 8. Mutarea datelor cu DB2 Connect . . . . . . . . . . . . . . 55 Capitolul 9. Maparea SQLCODE . . . . 57

Capitolul 3. Scenarii pentru DB2 Connect . . . . . . . . . . . . . . 11


Acces direct la bazele de date gazd . . . . . . Accesarea datelor DB2 de pe gazd System z sau IBM i folosind DB2 Connect Personal Edition . . . . . Produsele de server DB2 Connect ca servere de conectivitate . . . . . . . . . . . . . DB2 Connect i aplicaiile de Web . . . . . . . DB2 Connect i IBM WebSphere . . . . . . . DB2 Connect ca server de aplicaii Java . . . . . DB2 Connect pe serverul de Web . . . . . . . DB2 Connect i serverele de aplicaii . . . . . . DB2 Connect i monitoarele de procesare a tranzaciilor . 11 . 12 . . . . . . 14 15 16 17 18 18 21

Dezactivarea maprii SQLCODE . Ajustarea maprii SQLCODE . .

. .

. .

. .

. .

. .

. .

. 57 . 57

Capitolul 10. Monitorizarea sistemului de baz de date i DB2 Connect . . . . 61


Monitorizarea conexiunilor pentru clieni la distan. . . Monitorizarea performanelor utiliznd Windows Performance Monitor . . . . . . . . . . . . Utilizarea comenzilor GET SNAPSHOT . . . . . . Starea aplicaiei DCS . . . . . . . . . . . . Monitorul de sntate i alertele. . . . . . . . . Privire general asupra monitorului de sntate DB2 for z/OS . . . . . . . . . . . . . . . . Pornirea, oprirea i remprosptarea monitorului de sntate DB2 for z/OS . . . . . . . . . . Vizualizarea, lansarea i salvarea aciunilor recomandate . . . . . . . . . . . . . Vizualizarea sumarelor de alerte privind sntatea . . Vizualizarea obiectelor de alert privind sntatea . . 61 61 62 64 68 68 69 70 72 74

Partea 2. Referine DB2 Connect . . 25


Capitolul 4. Actualizarea directoarelor bazei de date . . . . . . . . . . . . 27
Valorile din directorul bazei de date de sistem . . . Valorile directorului de noduri . . . . . . . . Valorile din directorul DCS . . . . . . . . . Fi de lucru pentru personalizarea directorului . . . Definirea mai multor intrri pentru aceeai baz de date Tratarea datelor BiDi . . . . . . . . . . . . . . . . . 27 28 29 33 33 34

Partea 3. Disponibilitatea nalt i DB2 Connect . . . . . . . . . . . 75


Capitolul 11. Disponibilitatea nalt i echilibrarea ncrcrii pentru conectivitatea bazei de date gazd . . . 77 Capitolul 12. Descrierea i setarea rerutrii automate a clientului (DB2 Connect) . . . . . . . . . . . . . . 79

Capitolul 5. Securitatea DB2 Connect


Conexiunile de ncredere prin DB2 Connect . . . . Crearea i finalizarea unei conexiuni de ncredere prin CLI . . . . . . . . . . . . . . . Comutarea utilizatorilor pe o conexiune de ncredere prin CLI . . . . . . . . . . . . . . Considerente privind autentificarea DB2 Connect . . Suportul Kerberos . . . . . . . . . . . Sugestii i indicii privind securitatea z/OS. . . .
Copyright IBM Corp. 1993, 2009

37
. 37 . 38 . . . . 39 41 43 43

iii

Capitolul 13. Configurarea re-rutrii automate a clientului pentru tehnologia de distribuitor a conexiunii client . . . 81

Partea 5. Depanarea . . . . . . . 129


Capitolul 22. Depanarea DB2 Connect
Strngerea informaiilor relevante . . . . Conectarea iniial nu se realizeaz cu succes Au aprut probleme dup conectarea iniial. Uneltele de diagnoz . . . . . . . . . . . . . . . . . . .

131
. . . . 131 131 132 133

Partea 4. Ajustarea i DB2 Connect

83

Capitolul 14. Considerente privind performana DB2 Connect . . . . . . 85 Capitolul 15. Optimizarea accesului ODBC . . . . . . . . . . . . . . . 89 Capitolul 16. Proiectarea aplicaiei . . . 91 Capitolul 17. Gestionarea conexiunilor 95

Capitolul 23. Urmririle DB2 n DB2 Connect. . . . . . . . . . . . . . 135


Obinerea unei urme DB2 folosind db2trc . . . . . 135 Realizarea unui dump pentru un fiier de urmrire DB2 136 Formatarea unui fiier de urmrire DB2 . . . . . . 136

Capitolul 24. Fiierele de urmrire DRDA. . . . . . . . . . . . . . . 139


Utilitarul de urmrire . . . . . . . . . . . Ieirea urmririi . . . . . . . . . . . . . Analizarea fiierului cu ieirea urmririi . . . . . . Exemple de fiier cu ieire a urmririi . . . . . . Informaiile ulterioare de buffer pentru urmririle DRDA 139 140 140 142 146

Punerea n pool a conexiunilor . . . . . . . . . 95 Concentratorul de conexiuni . . . . . . . . . . 97 Punerea conexiunilor n pool i concentratorul de conexiuni . . . . . . . . . . . . . . . 101 Concentratorul de conexiuni este necesar cu WebSphere MQ Transaction Manager i DB2 for z/OS . . . . . 101

Capitolul 18. Suportul Sysplex pentru serverul DB2 Connect . . . . . . . . 103


Considerente pentru exploatarea System z SYSPLEX Exploatarea DB2 Sysplex . . . . . . . . . Cerinele de configurare pentru Sysplex . . . . . 103 . 104 . 105

Partea 6. Mesajele . . . . . . . . 149


Capitolul 25. Probleme obinuite DB2 Connect. . . . . . . . . . . . . . 151

Partea 7. Anexe. . . . . . . . . . 155


Capitolul 19. Suportul Sysplex pentru client . . . . . . . . . . . . . . . 107
Echilibrarea ncrcrii de lucru la nivel de tranzacie (pe partea client) . . . . . . . . . . . . . . Configurarea echilibrrii ncrcrii de lucru la nivel de tranzacie (pe partea client) . . . . . . . . . Rerutarea automat a clientului (pe partea client) . . . Configurarea rerutrii automate a clientului (pe partea client) . . . . . . . . . . . . . . . Configurarea afinitilor clientului . . . . . . . Limitri la folosirea suportului de Sysplex pentru client 107 108 110 111 114 117

Anexa A. Privire general asupra informaiilor tehnice DB2 . . . . . . 157


Biblioteca tehnic DB2 n format tiprit sau PDF . . Comandarea crilor DB2 tiprite . . . . . . . Afiarea ajutorului pentru starea SQL din linia de comand a procesorului . . . . . . . . . . Accesarea diferitelor versiuni de Centru de informare DB2 . . . . . . . . . . . . . . . Afiarea subiectelor n limba preferat n Centrul de informare DB2 . . . . . . . . . . . . Actualizarea Centrului de informare DB2 instalat pe calculatorul dumneavoastr sau pe un server din intranet Actualizarea manual a Centrului de informare DB2 instalat pe calculatorul dumneavoastr sau pe un server din intranet . . . . . . . . . . . . . ndrumarele DB2. . . . . . . . . . . . Informaii privind depanarea DB2 . . . . . . . Termenii i condiiile . . . . . . . . . . . 157 . 160 . 161 . 161 . 161 . 162

Capitolul 20. Ajustarea DB2 Connect


Ajustarea bazei de date gazd . . . . . . Considerente ale ajustrii reelei . . . . . Conflictul pentru resursele de sistem . . . . Depanarea performanei DB2 Connect . . . Ajustarea DB2 for z/OS . . . . . . . . Creterea ratelor de transfer de date DB2 Connect Blocul de interogare suplimentar . . . . . Scalarea ferestrei RFC-1323 . . . . . . Conversia datelor gazd. . . . . . . . Tipurile de date pentru datele caracter . . . Hardware-ul de reea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

119
120 121 122 122 123 123 123 124 125 125 126

. . . .

163 165 165 166

Anexa B. Observaii. . . . . . . . . 167 Index . . . . . . . . . . . . . . . 171

Capitolul 21. Ajustarea performanei aplicaiei CLI/ODBC . . . . . . . . . 127

iv

Ghidul utilizatorului DB2 Connect

Despre aceast carte


Ghidul utilizatorului DB2 Connect ofer informaiile necesare pentru a v familiariza cu produsul DB2 Connect i folosirea acestuia. Sunt prezentate concepte privind DB2 Connect cu scenarii tipice, ce arat relaiile dintre DB2 Connect i alte pri componente ale mediului de lucru n reea. Sunt discutate considerentele pentru directoarele bazei de date, securitatea ntre sisteme, actualizrile multilocaie, mutarea datelor i monitorizarea DB2 Connect. Se arat cum suport DB2 Connect disponibilitatea nalt n mediul dumneavoastr de lucru n reea. Sunt prezentate noiuni introductive pentru asigurarea performanei de ctre DB2 Connect i n reea, precum i unele subiecte referitoare la depanarea posibilelor probleme.

Cui i este destinat aceast carte?


n aceast carte (sau poriuni ale ei), pot gsi informaii de interes administratorii de sistem, administratorii de baz de date i specialitii n comunicaiile sistemelor.

Copyright IBM Corp. 1993, 2009

vi

Ghidul utilizatorului DB2 Connect

Partea 1. Concepte DB Connect

Copyright IBM Corp. 1993, 2009

Ghidul utilizatorului DB2 Connect

Capitolul 1. DB2 Connect


DB2 Connect ofer conectivitate rapid i robust la bazele de date de pe sisteme mainframe IBM pentru e-business i alte aplicaii care ruleaz sub sistemele de operare Linux, UNIX i Windows. DB2 Connect Personal Edition furnizeaz conectivitate direct pentru servere System z i IBM Power Systems, n timp ce produsele server DB2 Connect furnizeaz conectivitate indirect care permite clienilor s acceseze servere System z i IBM Power Systems prin gateway-ul DB2 Connect. O varietate de produse server DB2 Connect furnizeaz mpachetare unic i soluii de liceniere care v permit s selectai un produs care este potrivit pentru mediul dumneavoastr.

Oferta de produse DB2 Connect


DB2 Connect ofer cteva soluii de conectare, cum ar fi DB2 Connect Personal Edition i mai multe produse server DB2 Connect. v v v v DB2 Connect Enterprise Edition DB2 Connect Application Server Edition DB2 Connect Unlimited Edition for System z DB2 Connect Unlimited Edition for System i

Pentru informaii detaliate despre ofertele produsului DB2 Connect, vedei www.ibm.com/software/data/db2/db2connect/

Funciile livrate n DB2 Connect Versiunea 8


Aceast seciune furnizeaz un rezumat al mbuntirilor introduse n DB2 Connect Versiunea 8. Pentru a gsi lista de modificri introduse n DB2 Versiunea 9 care afecteaz funcionalitatea DB2 Connect, vedei urmtoarele subiecte: v Sumarul pachetelor de corecii DB2 Connect Versiunea 9.5 v Sumarul pachetelor de corecii DB2 Connect Versiunea 9.1 Funciile livrate n DB2 Connect Versiunea 8 Ediia 2 DB2 Connect Versiunea 8.2 include urmtoarele mbuntiri: v Rerutarea automat a clientului Dac este pierdut o conexiune TCP/IP la un server sau server DB2 Connect, clientul va ncerca automat s restabileasc conexiunea dac exist un server alternativ. Serverul alternativ este specificat n instana de server, locaia sa fiind trimis clientului n timpul conexiunii. v Criptarea datelor Comunicaiile client/server asigur acum criptarea datelor de utilizator n timp ce circul prin reea. Funciile livrate n DB2 Connect Versiunea 8 Ediia 1 (inclusiv toate pachetele de corecii i nivelurile de modificare) DB2 Connect Versiunea 8.1 include urmtoarele mbuntiri: v Suport pentru instruciuni SQL mai lungi (pn la 2 MB) Prin aplicaiile CLI i JDBC pot circula instruciuni SQL de pn la 2 MB. Interfaa ncorporat rmne ns la limita de 64 K.
Copyright IBM Corp. 1993, 2009

v Informaii de diagnoz care identific originea unei instruciuni SQL Furnizeaz abilitatea de a determina care program aplicaie a emis o anumit instruciune n cache-ul de instruciuni SQL dinamic DB2 for z/OS. v Matrice de intrri pe coloane Permite aplicaiilor s ofere mai multe seturi de parametri pentru o singur instruciune SQL. v Monitorizarea timpului de reea Acum se folosesc noi elemente de monitorizare, pentru a obine o i mai bun imagine a activitii bazei de date i a traficului din reea la nivel de baz de date sau de aplicaie. v Suport cursor care suport defilare DB2 CLI dinamic Cursoarele cu defilare dinamic sunt suportate acum n DB2 CLI cnd sunt accesate servere DB2 Universal Database (UDB) for z/OS Versiunea 8.1 sau ulterioare. v Suport eWLM Ofer capacitatea de a monitoriza cap la cap unitile de lucru prin grupurile middleware pentru a determina gtuirile. v mbuntiri ale comenzii DB2 ping Comanda DB2 ping suport acum specificaia unei dimensiuni pachet cerere i rspuns. Not: DB2 Connect nu suport comanda PING cnd este lansat ctre gazd dintr-un client Versiunea 7 printr-un gateway Versiunea 9.

Bazele de date gazd


Termenul baz de date este folosit n acest document pentru a descrie un sistem relaional de gestionare a bazei de date (RDBMS). Alte sisteme cu care comunic DB2 Connect ar putea folosi termenul baz de date pentru a descrie un concept puin diferit. Termenul DB2 Connect baz de date se mai poate referi la: System z DB2 for z/OS. Un subsistem DB2 for z/OS este identificat de numele su de locaie (LOCATION NAME). Valoarea LOCATION NAME poate fi determinat prin logarea pe TSO i lansarea urmtoarei interogri SQL folosind una dintre urmtoarele unelte de interogare disponibile:
select current server from sysibm.sysdummy1

LOCATION NAME (nume locaie) este de asemenea definit n BSDS (Boot Strap Data Set), ct i n mesajul DSNL004I (LOCATION=locaie), care este scris cnd pornete DDF (Distributed Data Facility). LOCATION NAME suport pn la 8 nume alias de locaii, permind aplicaiilor s foloseasc diferite nume dbalias pentru a accesa un server Versiunea 8 z/OS. Folosii comanda z/OS -display ddf pentru a obine numele locaiei server, numele de domeniu, adres IP i portDB2. VSE VM DB2 for VSE rulnd ntr-o partiie baz de date identificat prin DBNAME DB2 for VM rulnd ntr-o main virtual CMS identificat prin DBNAME

Servere IBM Power Systems DB2 for IBM i, o parte integrat n sistemul de operare IBM i. Doar o baz de date poate exista pe un server IBM Power Systems dac sistemul nu este configurat s foloseasc pool-uri de stocare auxiliare independente.

Ghidul utilizatorului DB2 Connect

DB2 Connect i instruciunile SQL


DB2 Connect nainteaz instruciunile SQL lansate de programe de aplicaie la serverele de baz de date mainframe IBM. DB2 Connect poate nainta aproape orice instruciune valid SQL, precum i API-urile suportate DB2 (interfee de programare a aplicaiilor): v JDBC v SQLJ v ADO.NET v OLE DB v v v v v v v ODBC Perl PHP pureQuery Python Ruby DB2 CLI

v SQL ncorporat

Suportul SQL ncorporat


Exist dou tipuri de procesare SQL ncorporat: SQL static i SQL dinamic. SQL Static minimizeaz timpul necesar pentru a executa o instruciune SQL prin procesarea nainte. SQL dinamic este procesat cnd instruciunea SQL este lansat la serverul de baz mainframe IBM. Codul SQL dinamic este mai flexibil, dar poate fi mai lent. Decizia de a folosi SQL static sau dinamic este luat de programatorul aplicaiei. Ambele tipuri sunt suportate de DB2 Connect. Serverele de baz de date mainframe IBM diferite implementeaz SQL n mod diferit. DB2 Connect suport complet IBM SQL comun, precum i implementrile DB2 for z/OS, DB2 Server for VM and VSE (numit nainte SQL/DS) i DB2 for IBM i de SQL. IBM SQL este puternic recomandat pentru meninerea independenei bazei de date.

Utilitarele de administrare DB2 Connect


Important: Control Center i componentele sale asociate au fost depreciate n Versiunea 9.7 i s-ar putea s fie nlturate n ediia viitoare. Pentru informaii suplimentare, vedei subiectul Uneltele Control Center i DB2 Administration Server (DAS) au fost depreciate n cartea Ce este nou pentru Versiunea 9.7. Sunt disponibile urmtoarele utilitare pentru a-l ajuta pe un administrator DB2 Connect: v Command Line Processor (CLP) v permite s lansai instruciuni SQL pentru o baz de date a unui server de baze de date mainframe IBM. Dirijeaz instruciunile SQL la baza de date pe care o specificai. v DB2 Command Center furnizeaz o interfa grafic pentru Command Line Processor (CLP). v Utilitarele de import i export v permit s ncrcai, importai i exportai date n i dintr-un fiier pe o staie de lucru i o baz de date a unui server de baze de date mainframe IBM. Aceste fiiere pot fi folosite pentru importul datelor n baze de date, foi de calcul tabelar i alte aplicaii ce ruleaz pe staia dumneavoastr de lucru.
Capitolul 1. Administrarea sistemelor DB2 Connect

v Dac rulai un produs server DB2 Connect, putei folosi Event Viewer i Performance Monitor. Folosind Event Viewer, putei vizualiza evenimentele excepie nregistrate de DB2 Connect. Folosind Performance Monitor, putei monitoriza i gestiona performanele serverelor DB2 Connect locale sau de la distan v DB2 Control Center v permite s administrai i s monitorizai toate aspectele serverelor DB2 Connect. Permite de asemenea administratorilor s lucreze cu obiecte baz de date DB2 for z/OS, cum ar fi tabele, vizualizri, pool-uri de buffer-e i fire de execuie. v Utilitarul monitor de sistem baz de date las administratorul de sistem s monitorizeze conexiunile sistemului. Aceast funcie este disponibil doar cnd DB2 Connect acioneaz ca un server. Acest utilitar de asemenea ajut administratorul de sistem s determine sursa unei erori. Administratorul sistemului poate corela aplicaii client cu joburile corespunztoare care ruleaz pe serverul de baz de date mainframe IBM. Not: n ediiile anterioare, DB2 Graphical Administration Tools, cum ar fi Control Center (centrul de control), erau suportate pe toate platformele. De la Versiunea 9, DB2 Graphical Administration Tools sunt suportate doar pe Windows x86, Windows x64 (AMD64/EM64T), Linux pe x86 i Linux pe AMD64/EM64T. Pentru toate platformele, putei folosi DB2 CLP n scopuri de administrare.

InfoSphere Federation Server i DB2 Connect


InfoSphere Federation Server este o ofert de produs separat care furnizeaz acces la o integrare a datelor de-a lungul surselor de date multivendor, n timp ce DB2 Connect v permite s folosii volumele mari de date localizate pe serverele gazd i midrange existente. InfoSphere Federation Server ajut la integrarea informaiilor permind o colecie de surse de date pentru a fi vizualizate i manipulate ca i cum ar fi o singur surs. Acesta face complet transparent accesul la sursa de date pentru aplicaia apelant. InfoSphere Federation Server lucreaz n conjuncie cu produsele server DB2 Connect. InfoSphere Federation Server furnizeaz acces de citire i scriere nativ la familia de produse DB2, Informix, Oracle, Sybase, Teradata i baze de date Microsoft SQL Server. InfoSphere Federation Server furnizeaz de asemenea acces de citire la surse de date nonrelaionale i surse de date pentru tiinele naturii, cum ar fi Documentum, IBM Lotus Extended Search, fiierele structurate tabel i XML. l putei utiliza pentru a formula interogri pe datele dintr-un sistem federalizat.

Ghidul utilizatorului DB2 Connect

Capitolul 2. Distributed Relational Database Architecture


Distributed Relational Database Architecture (DRDA) este un set de protocoale care permit s lucreze mpreun mai multe sisteme de baz de date, att IBM, ct i non-IBM, precum i programe de aplicaie. Poate fi conectat orice combinaie de produse de gestionare a bazelor de date relaionale care folosesc DRDA, pentru a forma un sistem de gestionare a bazei de date relaionale distribuite. DRDA coordoneaz comunicaiile ntre sisteme definind ce trebuie schimbat i cum trebuie schimbat. Unitate de lucru O unitate de lucru (UOW) este o singur tranzacie logic. Const dintr-o secven de instruciuni SQL n care fie toate operaiile sunt realizate cu succes, fie secvena ca un tot este considerat euat. Unitate de lucru distribuit O unitate de lucru distribuit (DUOW), numit i actualizare multilocaie, implic mai multe servere de baz de date ntr-o unitate de lucru. O DUOW are urmtoarele caracteristici: v Mai mult de un server de gestionare a bazei de data este actualizat de unitatea de lucru. v Aplicaia direcioneaz distribuia lucrului i iniializeaz comiterea. v Ar putea fi mai multe cereri pentru unitatea de lucru. v Exist un server de gestionare a bazei de date pe cerere. v Comiterea este coordonat de-a lungul serverelor baze de date multiple.

DRDA i accesul la date


Chiar dac DRDA definete protocoale de comunicaie baz de date, nu definete interfeele de programare, sau API-urile, care ar trebui folosite de programatorii de aplicaii. n general, DRDA poate fi folosit de un program aplicaie pentru a pasa orice cerere pe care un server destinaie DRDA o poate executa. Toate serverele DRDA disponibile n ziua de azi pot executa cereri SQL naintate de un program aplicaie prin DB2 Connect. IBM furnizeaz programatorilor de aplicaii unelte pentru a genera cereri SQL pentru sistemele de operare Windows, UNIX i Linux. Aceste unelte fac parte din clientul DB2. Managerul de baz de date DB2 suport mai multe interfee de programare: ADO.NET, JDBC, SQLJ, PHP, Perl DBI, SQL ncorporat, DB2 Call Level Interface (CLI) i OLE DB. Aceste API-uri pot fi folosite de programatori pentru a construi aplicaii n diverse limbaje de programare.

DB2 Connect i DRDA


DB2 Connect implementeaz arhitectura DRDA pentru a reduce costul i complexitatea accesrii datelor stocate n DB2 for IBM i, DB2 for IBM Power Systems, DB2 for z/OS, DB2 Server for VM and VSE i alte servere de baz de date compatibile DRDA. Exploatnd complet arhitectura DRDA, DB2 Connect ofer o soluie performant, de cost sczut, cu caracteristici de gestionare a sistemului pe care le cer clienii. n tehnologia DRDA, un solicitant de aplicaie (AR - application requester) este codul care manipuleaz terminarea aplicaiei a unei conexiuni distribuite. AR este aplicaia care cere

Copyright IBM Corp. 1993, 2009

date. DB2 Connect se poart ca un solicitant de aplicaie n numele programelor aplicaie care pot fi locale staiei de lucru DB2 Connect sau pe un client separat la distan pentru DB2 Connect. Un server de aplicaii (AS - application server) este codul care manipuleaz captul de baz de date al conexiunii. DRDA suport de asemenea conexiuni multinivel ntre un solicitant de aplicaie i un server. n aceast topologie, serverul la care se conecteaz un solicitant de aplicaie este un server de aplicaii, iar orice server din aval se numete server de baz de date (DS - database server), deoarece nu interacioneaz direct cu solicitantul de aplicaie. n plus, pentru a evidenia rolul su, care nu este nici acela de sistem de la care pleac o solicitare de baz, nici acela de sistem care execut funcia de baz de date cerut, fiecare server de aplicaii sau server de baz de date dintre un solicitant de aplicaie i serverul final de baz de date este numit de asemenea server intermediar. Folosirea serverelor baz de date i serverelor intermediare este suportat de DB2 Connect. Figura 1 arat fluxul datelor dintre staia de lucru DB2 Connect i serverul mainframe IBM n cazul n care exist doar clieni locali.

Staie de lucru DB2 Connect

Serverul DB2 gazd sau IBM i

Program aplicaie Protocol DRDA Solicitant aplicaie DRDA

Server de aplicaii DRDA

Sistem gestionare baz de date

Figura 1. Fluxul de date ntre un server DB2 Connect i un server mainframe IBM

Pentru a implementa conexiunile dintre sisteme gestiune baz de date server DRDA i IBM Data Server-uri, DRDA folosete urmtoarele arhitecturi: v Character Data Representation Architecture (CDRA) v Distributed Data Management Architecture (DDMA) v Formatted Data Object Content Architecture (FD:OCA) v Transmission Control Protocol/Internet Protocol (TCP/IP). Aceste arhitecturi sunt folosite ca blocuri de construire. Fluxurile de date care curg prin reea sunt specificate de arhitectura DRDA care documenteaz un protocol flux de date care suport acces baz de date relaional distribuit. O cerere este rulat la destinaia corect prin intermediul directoarelor care conin diverse tipuri de informaii de comunicare i numele bazei de date server DRDA care este accesat.

Unitatea de lucru la distan


O unitate de lucru la distan permite unui utilizator sau unei aplicaii program s citeasc sau s actualizeze datele dintr-o locaie per unitatea de lucru. Ofer suport pentru accesul la o singur baz de date dintr-o unitate de lucru. Un program de aplicaie poate actualiza mai multe baze de date la distan, dar poate accesa o singur baz de date dintr-o unitate de lucru.

Ghidul utilizatorului DB2 Connect

Unitatea de lucru de la distan are urmtoarele caracteristici: v Sunt suportate mai multe cereri (instruciuni SQL) per unitatea de lucru. v Sunt suportate mai multe cursoare per unitatea de lucru. v Fiecare unitate de lucru poate actualiza o singur baz de date. v Programul de aplicaie fie comite, fie deruleaz napoi unitatea de lucru. n anumite circumstane de eroare, serverul de baz de date sau DB2 Connect ar putea ntoarce unitatea de lucru. De exemplu, Figura 2 arat un client baz de date care ruleaz o aplicaie transfer de fonduri care acceseaz o baz de date care conine tabele cont de economii, precum o planificare a taxei de tranzacie. Aplicaia trebuie: v S accepte suma de transferat de la interfaa de utilizator. v S scad suma din contul de economii i s determine noul sold. v S citeasc planificarea taxei pentru a determina taxa de tranzacie pentru un cont de economii cu un anumit sold. v S scad taxa de tranzacie din contul de economii. v S adauge suma transferului n contul curent. v S comit tranzacia (unitatea de lucru).

Baz de date
Client baz de date

Actualizare

Cont economii

Actualizare
Server baz de date

Cont curent

Citire

Tax tranzacie

Figura 2. Folosirea unei singure baze de date ntr-o tranzacie

Pentru a seta o asemenea aplicaie, dumneavoastr trebuie: 1. S creai tabelele pentru contul de economii, verificnd planificarea taxelor de cont i tranzacie din aceeai baz de date. 2. n cazul distanei fizice, s setai serverul bazei de date pentru folosirea protocolului de comunicaie corespunztor. 3. n cazul distanei fizice, s catalogai nodul i baza de date pentru a identifica baza de date de pe serverul bazei de date. 4. S precompilai programul de aplicaie pentru a specifica o conexiune de tip 1; cu alte cuvinte, s specificai CONNECT(1) n comanda PREP.

Capitolul 2. DRDA (Distributed Relational Database Architecture)

Cereri distribuite
O cerere distribuit este o funcie de baz de date distribuit care permite aplicaiilor i utilizatorilor s lanseze instruciuni SQL care refer dou sau mai multe DBMS-uri sau baze de date ntr-o singur instruciune. De exemplu, o uniune ntre tabele din dou subsisteme DB2 for z/OS diferite. DB2 Connect furnizeaz suport pentru cereri distribuite de-a lungul bazelor de date i DBMS-uri. De exemplu, putei realiza o operaie de UNION ntre o tabel DB2 i o vizualizare Oracle. DBMS-urile suportate includ membri DB2 Family (cum ar fi DB2 Database for Linux, UNIX, and Windows, DB2 for z/OS i DB2 for i) i Oracle. Cnd se folosete DB2 Connect mpreun cu InfoSphere Federation Server, este disponibil suport pentru mai muli furnizori. Cererea distribuit asigur transparena locaiei pentru obiectele bazei de date. Dac informaiile (din tabele i vizualizri) sunt mutate, referinele la acele informaii (numite porecle) pot fi actualizate fr a fi necesar modificarea aplicaiilor care cer informaiile. Cererea distribuit furnizeaz de asemenea compensare pentru DBMS-uri care nu suport toate dialectele DB2 SQL sau anumite capabiliti de optimizare. Operaiile care nu pot fi realizate sub un asemenea DBMS (cum ar fi un SQL recursiv) sunt rulate sub DB2 Connect. Cererea distribuit funcioneaz ntr-o manier semiautonom. De exemplu, interogrile DB2 care conin referine la obiecte Oracle pot fi lansate n timp ce aplicaiile Oracle acceseaz acelai server. Cererile distribuite nu monopolizeaz i nici nu restricioneaz accesul (n afara constrngerilor de integritate i de blocare) la obiectele Oracle sau alte obiecte DBMS. Implementarea funciei de cerere distribuit conine o instan DB2 Connect, o baz de date care va servi ca baza de date federalizat i una sau mai multe surse de date. Baza de date federalizat conine intrri de catalog ce identific sursele de date i caracteristicile lor. O surs de date const dintr-un DBMS i datele respective. Aplicaiile se conecteaz la baza de date federalizat precum orice copie a altei baze de date DB2. Baza de date federalizat DB2 Connect nu este liceniat pentru gestionarea datelor utilizatorilor. Singurul scop este de a conine informaii despre sursele de date. Dup ce este setat un sistem federalizat, informaiile din sursele de date pot fi accesate ca i cum ar fi ntr-o baz de date mai mare. Utilizatorii i aplicaiile trimit interogri la o baz de date federalizat, care apoi extrage date din sistemele familie DB2 i Oracle sunt necesare. Utilizatorii i aplicaiile specific porecle n interogare; aceste porecle furnizeaz referine la tabele i vizualizri localizate n sursele datelor. Din perspectiva unui utilizator final, poreclele sunt similare cu aliasurile. Muli factori pot afecta performana cererilor distribuite. Cel mai important este s v asigurai c n catalogul global al bazei de date federalizate sunt memorate informaii corecte i actualizate despre sursele datelor i obiectele lor. Aceste informaii sunt folosite de optimizatorul DB2 i pot afecta deciziile pentru a cobor operaiile pentru evaluare la surse de date.

10

Ghidul utilizatorului DB2 Connect

Capitolul 3. Scenarii pentru DB2 Connect


DB2 Connect poate oferi o varietate de soluii pentru necesitile de acces la baza de date mainframe IBM. Acest subiect prezint mai multe scenarii care s-ar putea aplica la mediul sau necesitile dumneavoastr particulare.

Acces direct la bazele de date gazd


Caracteristica de baz a lui DB2 Connect furnizeaz o conexiune direct la o baz de date gazd de la aplicaii desktop care ruleaz pe staiile dumneavoastr de lucru. Cea mia simpl soluie pentru a furniza aceasta este IBM Data Server Driver Package cu licen DB2 Connect. Fiecare staie de lucru care are DB2 Connect Personal Edition instalat poate stabili o conexiune TCP/IP direct la serverele DB2 for z/OS, DB2 for IBM i i DB2 Database for Linux, UNIX, and Windows. n plus, aplicaiile se pot conecta i pot actualiza mai multe baze de date din familia DB2 din aceeai tranzacie cu integritate complet a datelor furnizat de protocolul de comitere n dou faze. Figura 3 la pagina 12 arat o conexiune direct la un server de baz de date mainframe IBM de la o staie de lucru cu DB2 Connect Personal Edition instalat.

Copyright IBM Corp. 1993, 2009

11

DB2 for VSE

DB2 for VM DB2 for z/OS Servere Power Systems

DB2 for IBM i System z

TCP/IP

DB2 Connect Personal Edition

ODBC Perl

ADO.NET PHP

CLI DB2

JDBC Python

SQLJ Ruby

SQL nglobat OLE DB

pureQuery

Aplicaia 1

Aplicaia 2

Aplicaia 3

Figura 3. Conexiunea direct ntre DB2 Connect i un server de baz de date mainframe IBM

Not: 1. Nu trebuie s avei DB2 instalat pe staia de lucru DB2 Connect Personal Edition. Dac vrei un sistem complet de gestionare a bazelor de date relaionale pe staia de lucru DB2 Connect Personal Edition, comandai DB2. 2. Toat funcionalitatea IBM Data Server Client este disponibil cu DB2 Connect Personal Edition. 3. Dac o conexiune la un server baz de date DB2 for z/OS cu exploatare Sysplex activat este pierdut, clientul va ncerca automat s restabileasc conexiunea.

Accesarea datelor DB2 de pe gazd System z sau IBM i folosind DB2 Connect Personal Edition
Conexiunea direct, fr servere intermediare, este o configuraie foarte comod i util. Aceasta mai ales n situaiile n care serverul de baz de date mainframe IBM suport conectivitatea TCP/IP. n astfel de situaii, fiecare staie de lucru DB2 Connect stabilete o conexiune direct cu serverul de baz de date mainframe IBM.

12

Ghidul utilizatorului DB2 Connect

Aplicaia 4

Aplicaia n

Conectivitatea TCP/IP necesit ca baza de date mainframe IBM s suporte TCP/IP. Urmtoarele versiuni suport conexiuni TCP/IP native: v DB2 for z/OS Versiunea 7.1 sau mai recent v DB2 for IBM i Versiunea 5.1 sau mai recent, i v DB2 Server for VM and VSE Versiunea 7 sau mai recent Pentru a v conecta la un server de baz de date mainframe IBM, avei nevoie de o licen DB2 Connect care poate fi adugat la un IBM Data Server. Figura 4 la pagina 14 prezint o staie de lucru pe care este instalat DB2 Connect Personal Edition, conectat direct la un server de baz de date mainframe IBM.

Capitolul 3. Scenarii

13

DB2 for VSE

DB2 for VM DB2 for z/OS Servere Power Systems

DB2 for IBM i System z

TCP/IP

DB2 Connect Personal Edition

ODBC Perl

ADO.NET PHP

CLI DB2

JDBC Python

SQLJ Ruby

SQL nglobat OLE DB

pureQuery

Aplicaia 1

Aplicaia 2

Aplicaia 3

Figura 4. Conexiunea direct ntre DB2 Connect i un server de baz de date mainframe IBM

Produsele de server DB2 Connect ca servere de conectivitate


Un server DB2 Connect permite conectarea mai multor clieni la datele mainframe-ul IBM, putnd reduce semnificativ efortul necesar pentru stabilirea i meninerea accesului la datele de ntreprindere. Figura 5 la pagina 15 ilustreaz soluia IBM pentru mediile de lucru n care dorii ca un client DB2 s realizeze o conexiune indirect la un server de baz de date mainframe IBM printr-un produs server DB2 Connect, cum ar fi DB2 Connect Enterprise Edition.

14

Ghidul utilizatorului DB2 Connect

Aplicaia 4

Aplicaia n

Not: Conexiunile indirecte sunt suportate cu clienii DB2 sau JCC care ruleaz pe Linux, UNIX sau Windows. ncercarea de a v conecta la un server de baz de date mainframe IBM printr-un produs server DB2 Connect folosind orice alt client duce la o eroare SQL1334.

DB2 for VSE

DB2 for VM DB2 for z/OS Servere Power Systems

DB2 for IBM i System z

TCP/IP

Server DB2 Connect Named Pipes, TCP/IP

Client DB2
Figura 5. DB2 Connect Enterprise Edition

Dac este pierdut o conexiune TCP/IP la serverul DB2 Connect, clientul va ncerca automat restabilirea conexiunii. Mai nti clientul ncearc restabilirea conexiunii cu serverul original. Dac nu este restabilit conexiunea, clientul va fi preluat de un server alternativ DB2 Connect. (Serverul alternativ este specificat n instana de server, locaia sa fiind returnat clientului n timpul conexiunii.) n cazul n care conexiunea cu serverul alternativ nu este restabilit, clientul ncearc restabilirea conexiunii cu serverul original. Clientul va continua s ncerce restabilirea conexiunii, comutnd ntre serverul original i serverul alternativ, pn cnd conexiunea este restabilit sau numrul de ncercri depete valoarea de timeout.

DB2 Connect i aplicaiile de Web


Browser-ul de Web devine rapid o interfa standard pentru orice, de la cataloagele online la aplicaiile de intranet. Pentru aplicaii web simple, ar putea fi suficient doar un server web. Pentru aplicaii avansate care necesit acces la baze de date i procesare tranzacii, IBM ofer soluii care folosesc DB2 Connect pentru a gestiona numere foarte mari de tranzacii simultane pe web.
Capitolul 3. Scenarii

15

Avantaje i limitri ale programrii CGI tradiionale


Aplicaiile e-business prin World Wide Web folosesc de obicei Common Gateway Interface (CGI) pentru a permite utilizatorilor s interogheze baze de date back-end. De asemenea, multe companii folosesc intern aplicaiile web, acestea avnd de obicei o baz de date n fundal. Utilizatorii completeaz formularele pe o pagin web i apoi acestea sunt trimise prin CGI aplicaiilor sau scripturilor de pe serverul de Web. Scriptul, la rndul su, folosete un API de baz de date furnizat pentru a lansa interogri SQL ntr-o baz de date gazd. Acelai script poate apoi construi o pagin web (HTML) cu rezultatele interogrii i le trimite napoi, pentru a fi afiate de browser-ul de Web al utilizatorului. Un exemplu este un catalog online unde utilizatorul poate interoga disponibilitatea i preul curent al anumitor bunuri i servicii. Aplicaiile CGI pot fi simplu de proiectat i uor de ntreinut. De cnd standardul CGI a devenit independent de sistemul de operare i de limbaj, este disponibil pe aproape toate platformele. Programele CGI pot fi scrise n C++ sau ntr-un limbaj de scriptare cum ar fi Perl sau PHP. n timp ce CGI ar putea prea o soluie ideal pentru aplicaii bazate pe web, are dezavantaje semnificative. Mediul de programare pentru CGI nu este la fel de sofisticat ca alte API-uri. n plus, scalabilitatea poate deveni o problem cu operaiile de e-commerce pe scar larg. De fiecare dat cnd este invocat o aplicaie CGI, este creat un nou proces pe serverul de Web. Fiecare proces trebuie s-i realizeze propria conexiune la baza de date i s-i lanseze propria interogare. n medii cu un numr mare de tranzacii, aceast limitare poate crea probleme de performan semnificative. Putei folosi DB2 Connect cu un server web pentru a crea aplicaii e-commerce robuste i de volum mare. DB2 Connect furnizeaz mai multe soluii care mbuntesc performana aplicaiilor bazate pe web. Procedurile memorate permit DB2 Connect utilizatorilor s reduc numrul de interogri trimise la baza de date. Punerea conexiunilor n pool reduce frecvena conectrii i deconectrii la i de la o baz de date.

Folosirea PHP ca un modul de server Web sau ca plug-in


Dei PHP poate fi folosit pentru programarea CGI, este folosit n mod obinuit ca un modul de server Web sau ca un plug-in. ntr-un server de Web multi-proces cum este Apache, driverul IBM DB2 pentru PHP poate fi folosit pentru a domoli problema de scalabilitate. ntr-un server de Web multi-proces, un pool de procese este refolosit pentru a servi cererile serverului de Web. Pentru a nu mai fi nevoie s se construiasc o conexiune baz de date pentru fiecare cerere web poate fi creat o conexiune persistent. n acest mediu, o conexiune persistent poate exista mai mult dect domeniul unui singur script PHP. Conexiunea va fi reutilizat, dac este necesar o conexiune identic pentru o cerere de Web ulterioar.

DB2 Connect i IBM WebSphere


IBM WebSphere furnizeaz o soluie e-business mai complet dect este posibil cu unelte tradiionale de scriptare, cum ar fi PHP. Serverele de aplicaii WebSphere nu furnizeaz doar posibilitile de scriptare ale PHP, dar de asemenea v permit servicii complexe high-end prin web, folosind servleturi, Active Server Pages i Entreprise JavaBeans i includ suport pentru tehnologii bazate pe web, cum ar fi Java, TCP/IP, HTTP, HTTPS, HTML, DHTML, XML, MIME, SMTP, IIOP i X.509, printre altele. Cu WebSphere putei s: v Exploatai standarde industriale pentru a accelera dezvoltarea i maximizarea interoperabilitii.

16

Ghidul utilizatorului DB2 Connect

v Includei cadre de lucru pentru aplicaie i tehnologii de unelte parte ter v Analizai performana i utilizarea coninutului sitului Web v Scalai cu uurin situl pentru a permite conectarea mai multor utilizatori i a menine debitul v Implementai de-a lungul unui numr de medii de operare majore (AIX, HP-UX, Linux, Novell NetWare, z/OS, IBM i, Solaris, Microsoft Windows) v V folosii serverul web existent, inclusiv cele de la Apache, IBM, Netscape i Microsoft. WebSphere nu este un produs, ci o familie de trei produse care se adreseaz la trei piee destinaie diferite. Inima soluiei WebSphere este serverul de aplicaii WebSphere. Serverul de aplicaii WebSphere furnizeaz mediul pentru trei tipuri de obiecte. Unul este paginile server Java, care sunt analoage paginilor server active. A doua component conine servleturi Java i a treia este Enterprise JavaBeans. Enterprise JavaBeans este standardul care se impune pentru implementarea aplicaiilor de ntreprindere pe scar foarte larg, robuste. Aplicaiile WebSphere pot fi implementate pe aceeai platform ca serverul web i DB2. n cazul DB2 for z/OS, DB2 Server for VM and VSE, DB2 for IBM i, WebSphere este implementat pe aceeai platform ca produsul server DB2 Connect. Sunt mai multe soluii WebSphere, precum i Rational Application Developer (RAD). Pentru detalii suplimentare, mergei la http://www.ibm.com/software/webservers/appserv/was/

DB2 Connect ca server de aplicaii Java


Multe din dezavantajele asociate cu limbaje de scriptare pot fi depite folosind Java n schimb. IBM furnizeaz apleturi i aplicaii care v permit s folosii Java la fiecare etap a unei tranzacii web. Soluiile IBM furnizeaz permisiunea pentru o combinaie de tehnici, ceea ce nseamn c putei folosi soluii de scriptare cum ar fi Perl DBI sau Microsoft Active Server Pages cu DB2 sau mutarea spre o implementare mai robust furnizat de un server de aplicaii Java cum ar fi IBM WebSphere. Sunt dou API-uri pentru programatorii Java. Prima, JDBC, este suportat pentru folosirea Java pentru a dezvolta apleturi Java data-aware, aplicaii Java precum i servleturi Java, JSP-uri (Java server pages) i EJB-uri (Enterprise Java Beans). JDBC este un API de nivel-apel (de invocare a metodei). Cellalt API Java este SQLJ. SQLJ furnizeaz abilitatea de a specifica SQL inline ntr-un program Java. DB2 poate folosi ambele API-uri, pe partea de client sau server a unei tranzacii web. Pe partea de client sunt suportate apleturi, apleturi pregtite pentru date (data-aware) i aplicaii. Pe partea bazei de date activarea Java conine obiecte baz de date, cum ar fi funciile definite de utilizator i proceduri stocate. Pentru DB2 for z/OS, DB2 Server for VM and VSE i DB2 for IBM i, sunt dou ci de a implementa o aplicaie Java. Putei folosi conectivitatea direct furnizat de DB2 Connect Personal Edition cu TCP/IP sau putei alege s trecei printr-un produs server DB2 Connect care va furniza conectivitate la serverul de date mainframe IBM. n ambele cazuri, utilizatorul pe web nu necesit software special pentru a accesa baza de date, doar un browser standard de Web. Singur lucru care trebuie instalat ntr-un produs server DB2 Connect i orice server web standard. Dac serverul de Web i DB2 Connect nu se afl pe aceeai main fizic, trebuie s fie instalat un IBM Data Server pe serverul de Web. Pentru DB2 for z/OS, componenta cheie este un produs server DB2 Connect care ruleaz pe un server intermediar (mid-tier). Aceast component activeaz serverul JDBC, n afar de
Capitolul 3. Scenarii

17

conectarea la serverul DB2 for z/OS, DB2 Server for VM and VSE i DB2 for i. Din nou, nu este nevoie de un software special pentru browser-ul web al clientului. IBM furnizeaz suport extins i unelte pentru dezvoltarea aplicaiilor i apleturilor Java. Pentru dezvoltarea aplicaiilor baz de date, DB2 Database Enterprise Developer Edition furnizeaz Rational Web Developer, IBM Data Studio, DB2 WebSphere Application Server, precum i produsul DB2 i DB2 Connect pentru testare. Uneltele ter parte, cum ar fi NetBeans, Borland JBuilder sau Symantec Visual Cafe, vor funciona de asemenea cu soluiile de baz de date ale IBM.

DB2 Connect pe serverul de Web


IBM furnizeaz servere HTTP (Web) cu toate produsele DB2 Connect. Produsele serverDB2 Connect, cum ar fi DB2 Connect Enterprise Edition, furnizeaz suport out-of-the-box pentru servere web Apache sau Lotus Domino Go i pot lucra de asemenea cu orice alt server web cum ar fi Microsoft Internet Information Server sau Netscape Enterprise Server. Dac lucrai cu familia de baze de date DB2 care ruleaz pe sisteme zSeries, iSeries, VM i VSE, un produs server DB2 Connect este necesar pe serverul de Web. Produsele server DB2 Connect vor furniza bibliotecile i interfeele de comunicaie pentru a permite serverelor web s acceseze aceste platforme mainframe IBM. TCP/IP poate fi folosit pentru a comunica ntre serverul web i o baz de date care ruleaz pe System z, IBM Power Systems, VM sau VSE. Not: Soluiile de web IBM furnizeaz posibilitatea s se lucreze cu baze de date multiple n acelai script Common Gateway Interface (CGI) (cum ar fi PHP) sau n aceeai tranzacie ntr-un script CGI.

Procedurile memorate
Un considerent important pentru aplicaiile web, ca i n lumea client/server, este s minimizai traficul care se produce ntre serverul HTTP i baza de date de final. Acest considerent este important n special n procesarea tranzacional de mare volum, care este inima celor mai multe aplicaii e-business. Abordarea recomandat este combinarea programrii aplicaiilor CGI cu programarea i logica operaional ncapsulat n procedurile memorate. DB2 Database for Linux, UNIX, and Windows i DB2 for z/OS, DB2 for IBM i i DB2 pentru VSE toate partajeaz aceeai convenie de parametru pentru invocarea procedurilor stocate. Ca i pentru scripturile de interfa web obinuite, browser-ul de Web trimite formularul la serverul de Web, unde este rulat scriptul de interfa web. Totui, n locul transmiterii fiecrei instruciuni individuale SQL la baza de date DB2, este trimis o cerere de executare o procedur memorat. Aceast procedur memorat ncapsuleaz un numr de instruciuni SQL care altfel ar fi rulate individual. Procedurile memorate reduc numrul de mesaje care se duc nainte i napoi ntre scriptul de interfa web i baza de date. Avantajul cheie al procedurilor memorate este traficul de reea sczut ntre serverul HTTP i baza de date back-end DB2.

DB2 Connect i serverele de aplicaii


Apariia aplicaiilor client-server a permis proiectanilor de aplicaii s mbunteasc gradul de folosire i s scad costurile de instruire furniznd aplicaii cu interfee grafice de utilizator pe platforme cum ar fi Windows. n acelai timp, a permis flexibilitatea delegrii funciei de gestionare a bazei de date serverelor robuste de baz de date de pe o varietate de sisteme de operare i platforme hardware.

18

Ghidul utilizatorului DB2 Connect

Modelul client-server, n care aplicaia logic este distribuit la staiile de lucru client este numit de obicei client-server pe 2 niveluri. n modelul pe 2 niveluri, aplicaia este implementat pe nivelul client, iar serverul bazei de date implementeaz serverul (nivelul back-end). DB2 Connect furnizeaz suport complet pentru aplicaii client-server pe 2 niveluri (2-tier), unde serverele baz de date sunt DB2 for z/OS, DB2 for IBM i sau DB2 Server for VM and VSE. O dat cu creterea n mrime a aplicaiilor client-server, devine evident c modelul pe 2 niveluri client-server are limitri semnificative. Distribuirea cantitilor mari de informaii logice la sute sau chiar mii de staii de lucru client a fcut ca gestionarea schimbrilor s fie o sarcin complex i costisitoare. Orice schimbare n regulile de activitate necesit nlocuirea prii client a aplicaiei. Adesea, trebuia ca aceste modificri ale aplicaiei s fie fcute pe toate staiile de lucru client din ntreprindere n acelai timp, pentru a se asigura c regulile de activitate sunt aplicate identic. Alt dezavantaj al modelului client-server pe 2 niveluri care devine evident o dat cu creterea dimensiunii este cantitatea resurselor consumate de asemenea aplicaii. Implementarea de sute sau mii de clieni grai, aa cum sunt numii adesea clienii pe 2 niveluri, a dus la creterea cerinelor de putere de procesare i de capacitate pentru fiecare staie de lucru client. n plus, au crescut mult i cerinele privind serverul de baz de date, deoarece fiecare client necesit o conexiune dedicat la baza de date i resursele pe care le implic meninerea unei astfel de conexiuni. n timp ce dependena modelului client-server pe 2 niveluri de distribuirea logicii de activitate poate fi oarecum redus prin folosirea extensiv a procedurilor memorate, celelalte dezavantaje nu pot fi rezolvate cu uurin fr a modifica modelul. O soluie de server de aplicaii Cum costul i complexitatea aplicaiilor client-server pe 2 niveluri a crescut, majoritatea aplicaiilor mari au trecut la modelul client-server multinivel. n modelul multinivel, rolul nivelului baz de date rmne neschimbat. Nivelul client este ns suplimentat cu unul sau dou niveluri intermediare; de obicei se folosete unul singur astfel c modelul este numit pe 3 niveluri. n modelul pe 3 niveluri, clientul se ocup de tratarea interaciunilor utilizatorului i nu conine vreo logic de activitate. Nivelul de mijloc const dintr-unul sau mai multe servere de aplicaii. Obiectivul serverului de aplicaii este acela de a furniza o implementare robust, eficient din punct de vedere al costului a logicii din spatele proceselor i regulilor de activitate. Ca i n cazul modelului pe 2 niveluri, implementarea regulilor de activitate este adesea suplimentat prin folosirea procedurilor memorate pentru a mbunti performana. Deoarece staiile de lucru client nu mai implementeaz logica aplicaiei i se ocup doar de tratarea interaciunilor de utilizator, cererile de resurse pentru nivelul client sunt cu mult reduse. De fapt, nivelul client din modelul pe 3 niveluri este adesea numit client subire. n plus, deoarece un server de aplicaii centralizat trateaz cererile de la toi clienii, are capacitatea de a partaja resurse, cum ar fi conexiunile la baza de date, ntre toi clienii. Ca rezultat, serverul de baz de date nu mai trebuie s menin conexiuni dedicate pentru fiecare utilizator de aplicaie. Se pot da mai multe exemple de folosire a serverelor de aplicaii pe 3 niveluri n prezent. Aproape toi furnizorii Enterprise Resource Planning (ERP) i implementeaz aplicaiile folosind modelul pe 3 niveluri, cum ar fi aplicaiile SAP R/3 i PeopleSoft V7. Alte exemple sunt principalii furnizori Enterprise Relationship Management, cum ar fi Siebel i Vantive. Servere de aplicaii i DB2 Connect Produsele server DB2 Connect furnizeaz suport de nelegere pentru implementarea aplicaiilor multinivel. Suportul furnizat de DB2 Connect include o varietate de API-uri care pot fi folosite pentru a dezvolta logic aplicaie (ODBC, ADO.NET,
Capitolul 3. Scenarii

19

DB2 CLI, SQL ncorporat, JDBC, SQLJ, Perl, PHP i OLE DB), precum i o infrastructur complet de comunicaii pentru interacionarea cu servere de baz de date din familia DB2. DB2 Connect suport de asemenea implementri n care un nivel (tier) de baz de date conine mai multe servere de baz de date din familia DB2. Aceasta permite serverelor de aplicaii s implementeze tranzacii ce actualizeaz date ce se afl pe mai multe servere de baz de date ntr-o singur tranzacie. Suportul protocol comitere n dou faze furnizat de DB2 Connect se asigur de integritatea unor asemenea tranzacii distribuite. De exemplu, o aplicaie poate actualiza date dintr-o baz de date DB2 for z/OS i DB2 Database for Linux, UNIX, and Windows n aceeai tranzacie. Dac suportul cerere distribuit este instalat i activat, aplicaia poate citi o actualizare baz de date Oracle o baz de date din familia DB2 n aceeai tranzacie. n urmtoarea diagram, API-urile precum i mecanismul de conectivitate dintre serverul de aplicaii i serverele de baz de date back-end este furnizat de un produs server DB2 Connect, cum ar fi DB2 Connect Enterprise Edition.

DB2

DB2

Selectare nume...

Jane, Mike, Tom, Sue

Actualizare...

Server de aplicaii

SQL ODBC, ADO.NET, DB2 CLI, JDBC, SQLJ, Embedded SQL, Perl, PHP, OLE DB, pureQuery, Python, Ruby
Server DB2 Connect

Flux/API personalizat

Client

Client

Client

Figura 6. Suport DB2 Connect pentru servere de aplicaii

Caracteristicile avansate ale DB2 Connect, cum ar fi punerea n pool a conexiunii, reduc cu mult cererile de resurse ale aplicaiei i simplific implementarea serverului de aplicaii.

20

Ghidul utilizatorului DB2 Connect

DB2 Connect i configuraiile serverului de aplicaii Un produs server DB2 Connect este necesar pentru folosirea cu servere de aplicaii. DB2 Connect Personal Edition nu este suportat i nu este liceniat pentru folosirea cu servere de aplicaii. n plus, clienii care implementeaz servere de aplicaii ar trebui s revad termenii i condiiile furnizate cu copia lor de DB2 Connect pentru a nelege numrul de licene utilizator care trebuie obinute. Sunt dou metode de implementare pentru DB2 Connect n mediul server de aplicaii. Un produs server DB2 Connect poate fi instalat pe oricare din: v Maina server de aplicaii v O main server de comunicaii separat n majoritatea situaiilor, instalarea unei copii de DB2 Connect pe acelai server cu serverul de aplicaii este soluia preferat. Instalarea DB2 Connect pe serverul aplicaie v permite s participai la orice schem preluare eroare i echilibrarea ncrcrii pe care o poate implementa un server de aplicaii. Aceast setare poate oferi un nivel mai bun de performan, deoarece elimin un hop de reea suplimentar, necesar cnd se instaleaz DB2 Connect pe un server separat. Mai mult, administrarea poate fi simplificat, deoarece nu este nevoie de instalarea i ntreinerea unui server suplimentar. Instalarea DB2 Connect pe un server separat este o opiune bun n situaiile unde produsul dumneavoastr server DB2 Connect nu este disponibil pentru sistemul de operare sau platforma hardware unde ruleaz serverul de aplicaii.

DB2 Connect i monitoarele de procesare a tranzaciilor


Un server de aplicaii permite unui numr mare de utilizatori s execute aplicaii folosind un minim de resurse de sistem. Un server de aplicaii poate fi extins pentru a permite invocarea tranzaciilor coordonate din aplicaii executate de serverul de aplicaii. Aceast coordonare a tranzaciilor este cunoscut sub numele de monitor TP (Transaction Processing - Procesare tranzacii). Un monitor TP lucreaz mpreun cu un server de aplicaii. Ne putem gndi la o tranzacie ca la un eveniment de rutin, de obicei o cerere de serviciu, n rularea operaiilor zilnice ale unei organizaii. Monitoarele TP au fost proiectate pentru a permite procesarea n ordine a tranzaciilor.

Procesarea tranzaciilor
Fiecare organizaie are reguli i proceduri ce descriu modul n care ar trebui s se lucreze. Aplicaiile de utilizator care implementeaz aceste reguli pot fi numite logica operaional. Tranzaciile pe care aceste aplicaii operaionale le execut sunt adesea numite procesare de tranzacii (Transaction Processing) sau procesare de tranzacii online (Online Transaction Processing - OLTP). Caracteristicile cheie ale OLTP ntr-un mediu comercial sunt: Muli utilizatori De obicei procesarea tranzaciilor este folosit de majoritatea persoanelor dintr-o organizaie, deoarece starea curent a activitii este afectat de multe persoane. Repetitivitate Majoritatea interaciunilor cu calculatorul tind s se reduc la un proces care se tot repet. De exemplu, introducerea unei comenzi i procesarea plilor sunt realizate de foarte multe ori n fiecare zi.

Capitolul 3. Scenarii

21

Interaciuni scurte Majoritatea interaciunilor pe care persoanele dintr-o organizaie le au cu sistemul de procesare a tranzaciilor dureaz puin. Date partajate Deoarece datele reprezint starea organizaiei, poate exista un singur set de date. Integritatea datelor Datele trebuie s reprezinte starea curent a organizaiei i trebuie s fie consistente intern. De exemplu, fiecare comand trebuie s fie asociat cu o nregistrare de cumprtor. Cost sczut/tranzacie Deoarece procesarea tranzaciilor reprezint un cost direct al activitii comerciale, costul sistemului trebuie s fie minim. DB2 Connect permite aplicaiilor de sub controlul serverului de aplicaii ce ruleaz pe Linux, UNIX i Windows s execute tranzacii pe LAN la distan, pe serverele de baz de date mainframe IBM, aceste tranzacii fiind coordonate de un monitor TP.

RM non-DB2 capabil XA (de ex. Oracle, MQ, fiier)

DB2

Jane, Mike, Tom, Sue

Selectare nume...

Actualizare...

WebSphere Application Server monitor TP, WebSphere MQ, CICS, Encina, MTS, Tuxedo, WebLogic Flux/API monitor TP

SQL i XA

Server DB2 Connect

Client

Client

Client

Figura 7. Suportul DB2 Connect pentru monitoare TP

n Figura 7, API-urile, precum i mecanismul de conectivitate dintre serverul de aplicaii i serverele de baz de date back-end sunt furnizate de un produs server DB2 Connect, cum ar fi DB2 Connect Enterprise Edition.

22

Ghidul utilizatorului DB2 Connect

Exemple de monitoare pentru procesarea tranzaciilor


n prezent, cele mai rspndite monitoare TP de pe pia sunt: v IBM WebSphere Application Server v IBM WebSphere MQ v IBM TxSeries CICS v BEA Tuxedo v BEA WebLogic v Microsoft Transaction Server (MTS) n tranzacii coordonate de aceste monitoare TP pot fi folosite servere de baz de date la distan IBM Power Systems, System z i din reeaua local.

Modelul X/Open DTP (Distributed Transaction Processing)


Pentru a actualiza mai multe resurse ntr-o singur tranzacie, ar putea fi necesar o aplicaie care s execute logica operaional. De exemplu, o aplicaie bancar care implementeaz un transfer de bani de la un cont la altul poate cere debitarea unei baze de date (contul surs) i depozitarea n alt baz de date (contul destinaie). Este de asemenea posibil ca aceste dou baze de date s provin de la furnizori diferii. De exemplu, o baz de date poate fi DB2 for z/OS, iar cealalt poate fi o baz de date Oracle. n loc s se implementeze n fiecare monitor TP fiecare interfa de tranzacii de proprietar, a fost definit o interfa comun de tranzacii ntre un monitor TP i orice resurs accesat de o aplicaie. Aceast interfa este numit interfaa XA. Un monitor TP care folosete interfaa XA este un manager de tranzacii (TM - Transaction Manager) compatibil XA. O resurs actualizabil care implementeaz interfaa XA este un manager de resurse (RM - Resource Manager) compatibil XA. Toate monitoarele TP menionate mai sus sunt manageri de tranzacii compatibili XA. Cnd sunt accesate via DB2 Connect, bazele de date gazd la distan, IBM Power Systems i bazele de date DB2 bazate pe LAN sunt manageri de resurse (RM) compatibili XA. De aceea, orice monitor TP care are un manager de tranzacii compatibil XA poate folosi baze de date gazd, IBM Power Systems i DB2 bazate pe LAN n aplicaiile de ntreprindere care execut tranzacii.

Capitolul 3. Scenarii

23

24

Ghidul utilizatorului DB2 Connect

Partea 2. Referine DB2 Connect

Copyright IBM Corp. 1993, 2009

25

26

Ghidul utilizatorului DB2 Connect

Capitolul 4. Actualizarea directoarelor bazei de date


DB2 Connect folosete urmtoarele directoare pentru a gestiona informaiile de conectare la baza de date: v director de baz de date de sistem, care conine numele, nodul i informaiile de autentificare pentru fiecare baz de date pe care o acceseaz DB2 Connect. v director de noduri, care conine adresa de reea i informaiile protocolului de comunicaie pentru fiecare server de baz de date mainframe IBM pe care l acceseaz DB2 Connect. v director servicii conexiune baz de date (DCS), care conine informaii specifice bazelor de date ale serverelor de baz de date mainframe IBM. Not: 1. nainte de a actualiza aceste directoare, ar trebui s configurai comunicaiile de pe serverele baz de date mainframe IBM i staiile de lucru. 2. Directoarele bazei de date pot fi actualizate folosind Configuration Assistant (CA). Pentru a actualiza directoarele bazei de date: 1. Colectai informaiile directorului bazei de date folosind fia de lucru pentru personalizarea directorului 2. Vedei subiectul Actualizarea directoarelor cu informaii despre mainile server de baz de date din Control Center

Valorile din directorul bazei de date de sistem


Pentru fiecare instan a managerului de baz de date exist un director de baz de date de sistem, care conine cte o intrare pentru fiecare baz de date care a fost catalogat pentru instana respectiv. n produsele DB2 Connect, directorul de baz de date de sistem conine informaii privind numele, aliasul, numele de nod i tipul de autentificare ale fiecrei baze de date. n directorul bazei de date de sistem putei specifica urmtoarele informaii: Nume baz de date Valoarea pe care ai scris-o n tabela Parametri director DCS. Alias baz de date Un alias pentru serverul baz de date mainframe IBM. Acest nume va fi utilizat de orice program de aplicaie care acceseaz baza de date. Implicit, este utilizat valoarea pe care o specificai pentru numele bazei de date. Format: 18 caractere alfanumerice pe un singur octet, inclusiv semnul pentru numere (#), semnul a rond (@), semnul dolar ($) i liniu de subliniere (_). Nu poate ncepe cu o liniu de subliniere sau cu un numr. Nume nod Valoarea pe care ai scris-o n tabela Parametri director nod. Autentificare Specific unde va fi fcut validarea numelui de utilizator i a parolei pentru conexiunile iniiate de pe serverul DB2 Connect. Opiunile valide sunt: SERVER, SERVER_ENCRYPT, CLIENT, KERBEROS, SERVER_ENCRYPT_AES i DATA_ENCRYPT. Nu exist suport pentru tipul de autentificare GSSPLUGIN n directorul de baz de date de sistem.
Copyright IBM Corp. 1993, 2009

27

Valorile directorului de noduri


n directorul de noduri putei specifica urmtoarele informaii: Nume nod O porecl pentru sistemul server baz de date mainframe IBM pe care se afl baza de date la distan. Acest nume este definit de utilizator. Scriei acelai nume de nod att n tabela de parametri director nod, ct i n tabela de parametri director de baze de date sistem. Format: 18 caractere alfanumerice pe un singur octet, inclusiv semnul pentru numere (#), semnul a rond (@), semnul dolar ($) i liniu de subliniere (_). Nu poate ncepe cu o liniu de subliniere sau cu un numr. Protocolul Trebuie s fie TCP/IP. Tipul de securitate Tipul verificrilor de securitate care vor fi efectuate. Pentru nodurile TCP/IP, SECURITY SOCKS este o opiune care specific faptul c nodul va fi activat pentru SOCKS, caz n care variabilele de mediu SOCKS_NS i SOCKS_SERVER sunt obligatorii i trebuie setate astfel nct s activeze SOCKS. Numele TCP/IP al gazdei la distan sau adresa IP La definirea nodurilor TCP/IP, fie numele gazdei TCP/IP la distan, fie adresa TCP/IP la distan. Dac este specificat un nume de gazd, atunci acesta trebuie rezolvat la staia de lucru DB2 Connect, fie prin cutarea DNS (Domain Name Server), fie printr-o intrare n fiierul de gazde TCP/IP locale. Pentru gazdele la distan DB2 for z/OS, numele gazdei apare n mesajul DSNL004I (DOMAIN=hostname) cnd este pornit Distributed Data Facility (DDF). Poate fi folosit i comanda -DISplay DDF. La accesarea unui grup de partajare z/OS, numele domeniului ar trebui s se mapeze pe adresa VIPA dinamic a grupului DB2. Aceast adres ruteaz cel mai puin ncrcat membru DB2. Pentru a accesa un anumit numr folosii adresa specific VIPA membru dinamic DB2 i oprii rutarea Sysplex. Fiecare mesaj DSNL004I de membru afieaz numele de domeniu specific al membrului. Numele serviciului TCP/IP sau numrul portului La definirea nodului TCP/IP, fie numele serviciului TCP/IP la distan, fie numrul portului. Acestea trebuie definite pentru TCP/IP la gazda de la distan. Numrul de port 446 a fost nregistrat ca numrul implicit de port pentru DRDA. Pentru gazde la distan DB2 for z/OS, numrul portului este definit n BSDS ca PORT i este de asemenea furnizat n mesajul DSNL004I (TCPPORT=portnumber) cnd este pornit DDF. Poate fi folosit i comanda -DISplay DDF. La accesarea unui grup de partajare z/OS, numele domeniului ar trebui s se mapeze pe adresa VIPA dinamic a grupului DB2. Aceast adres ruteaz cel mai puin ncrcat membru DB2. Pentru a accesa un anumit numr folosii adresa specific VIPA membru dinamic DB2 i oprii rutarea Sysplex. Fiecare mesaj DSNL004I de membru afieaz numele de domeniu specific al membrului. Not: Un al doilea port folosit pentru operaii de resincronizare comitere n dou faze pe conexiuni TCP/IP poate fi asignat de server. De exemplu, setul de date bootstrap DB2 for z/OS aloc un numr de port (RESPORT) pentru a fi folosit pentru resincronizare pentru conexiuni de ieire doar pentru DB2 for z/OS. Pentru aceasta nu este necesar definirea unui nume de serviciu.

28

Ghidul utilizatorului DB2 Connect

Valorile din directorul DCS


Putei specifica urmtoarele informaii n directorul DCS: Nume baz de date O porecl definit de utilizator pentru serverul baz de date mainframe IBM. Scriei acelai nume de baz de date att n tabela de parametri director DCS, ct i n tabela de parametri director baze de date sistem. Format: 18 caractere alfanumerice pe un singur octet, inclusiv semnul pentru numere (#), semnul a rond (@), semnul dolar ($) i liniu de subliniere (_). Nu poate ncepe cu o liniu de subliniere sau cu un numr. Nume baz de date destinaie Baza de date de pe sistemul server de baz de date mainframe IBM, dup cum urmeaz: System z Un subsistem DB2 for z/OS identificat de LOCATION NAME sau unul dintre numele LOCATION alias definite pe serverul z/OS. LOCATION NAME (nume locaie) poate fi determinat prin logarea pe TSO i lansarea urmtoarei interogri SQL utiliznd una dintre uneltele de interogare disponibile:
select current server from sysibm.sysdummy1

De asemenea, sunt definite mai multe LOCATION NAME n Boot Strap Data Set (BSDS), precum i n mesajul DSNL004I (LOCATION=locaie), care este scris cnd pornete Distributed Data Facility (DDF). Poate fi folosit i comanda -DISplay DDF. La accesarea unui grup de partajare z/OS, numele domeniului ar trebui s se mapeze pe adresa VIPA dinamic a grupului DB2. Aceast adres ruteaz cel mai puin ncrcat membru DB2. Pentru a accesa un anumit numr folosii adresa specific VIPA membru dinamic DB2 i oprii rutarea Sysplex. Fiecare mesaj DSNL004I de membru afieaz numele de domeniu specific al membrului. VSE sau VM Numele bazei de date (DBNAME) IBM Power Systems Numele bazei de date relaionale (RDBNAME) Altul Pentru sisteme de operare Windows, Linux i UNIX, aliasul baz de date gsit n directorul baz de date.

ir de parametri Dac dorii s schimbai valorile implicite, specificai unii sau toi parametrii urmtori, n aceast ordine. fiier-mapare Numele unui fiier de mapare SQLCODE care nlocuiete maparea implicit SQLCODE. Pentru a opri maparea SQLCODE, specificai NOMAP. Not: La procesarea unei cereri de interogare, serverul DRDA returneaz date sub forma unui set de rnduri care reprezint setul rezultat. Cu fiecare rnd, se ntoarce de asemenea un SQLCA, n mod normal coninnd un cod SQL zero sau pozitiv (cum ar fi +12 sau +802). Dac folosii un fiier de mapare personalizat la un
Capitolul 4. Actualizarea directoarelor bazei de date

29

server DB2 Connect, asemenea coduri SQL pozitive nu vor fi mapate dac sunt coninute ntr-un fiier de mapare personalizat i au mapri personalizate (de exemplu, sunt mapate la un cod sql diferit sau au jetoane de mapare personalizate). Este important de subliniat c: 1. Codurile SQL pozitive reprezint avertismente, opuse codurilor SQL negative care indic condiii de eroare. Toate codurile SQL negative vor fi mapate ntotdeauna n toate circumstanele, indiferent de fiierul de mapare care este utilizat. Toate codurile SQL pozitive, coninute n fiierul de mapare personalizat i mapate n ele nsele fr nici o modificare, vor fi mapate ntotdeauna n acest mod. De asemenea, vor fi de asemenea mapate codurile SQL pozitive care nu sunt coninute n fiierul de mapare personalizat de pe serverul DB2 Connect. 2. Dac utilizai fiierul de mapare implicit sau dac v conectai direct la baza de date gazd, maparea codurilor SQL va fi efectuat ntotdeauna pentru toate codurile SQL. ,D Acesta este parametrul din poziia a doua. Dac este specificat c aplicaia se va deconecta de la baza de date a serverului de baz de date mainframe IBM cnd este returnat unul din urmtoarele SQLCODE-uri:
SQL30000N SQL30040N SQL30050N SQL30051N SQL30053N SQL30060N SQL30070N SQL30071N SQL30072N SQL30073N SQL30074N SQL30090N

Atunci cnd nu este specificat parametrul de deconectare ,D, o deconectare va fi efectuat doar cnd se returneaz urmtoarele coduri SQL (SQLCODE):
SQL30020N SQL30021N SQL30041N SQL30061N SQL30081N

Pentru explicarea acestor coduri, consultai Referine mesaje. Not: Dac DB2 Connect se deconecteaz din cauza unei erori, va fi efectuat n mod automat o refacere. ,,INTERRUPT_ENABLED Acesta este parametrul din poziia a treia. INTERRUPT_ENABLED (ntrerupere activat) se aplic doar dac serverul terminal nu suport ntreruperi. Dac un server suport ntreruperea DRDA, fluxul DB2 Connect va transmite pur i simplu cererea de ntrerupere serverului.

30

Ghidul utilizatorului DB2 Connect

Dac INTERRUPT_ENABLED este configurat n directorul DCS de pe staia de lucru DB2 Connect i o aplicaie client lanseaz o ntrerupere n timp ce este conectat la un server de baz de date mainframe IBM, DB2 Connect va realiza ntreruperea abandonnd conexiunea i derulnd napoi unitatea de lucru. Acest comportament de ntrerupere este suportat pe AIX i Windows. Aplicaia va recepiona codul SQL (-30081), care indic terminarea conexiunii cu serverul. Aplicaia trebuie apoi s stabileasc o nou conexiune cu serverul baz de date mainframe IBM, pentru a procesa cereri suplimentare ale bazei de date. Pe alte platforme dect AIX V5.2 i mai recente i Windows, DB2 Connect nu suport opiunea de deconectare automat cnd o aplicaie care l folosete primete o cerere de ntrerupere. Not: Acest suport funcioneaz pentru conexiunile TCP/IP pe orice platforme. Clientul ar putea nchide socket-ul, dar - n funcie de implementarea serverului- dar se poate sau nu s existe o recepionare remarcabil. DB2 for z/OS utilizeaz apeluri socket asincrone i de aceea este capabil s detecteze pierderea conexiunii i refacerea oricror instruciuni SQL cu rulare ndelungat care sunt n desfurare. ,,,,,SYSPLEX Acest parametru, din poziia a asea, poate fi folosit pentru a activa explicit suport DB2 Connect SYSPLEX pentru o anumit baz de date. ,,,,,,LOCALDATE=<valoare> Acest parametru, din poziia a aptea, este folosit pentru a activa suport pentru formatare date DB2 Connect. Este implementat folosind o masc de dat pentru <valoare>, dup cum urmeaz: Presupunnd c ai lansat urmtoarele instruciuni CLP (procesor linie de comand):
catalog TCPIP node nynode remote myhost server myport catalog dcs database nydb1 as new_york catalog database nydb1 as newyork1 at node nynode authentication server

Aliasul bazei de date newyork1 va fi utilizat pentru accesarea unei baze de date gazd fr transformarea datelor, deoarece nu a fost specificat nici o masc de dat. ns cu noul suport de formatare a datei, putei utiliza acum urmtoarele comenzi CPL. n acest caz, deoarece se folosete CLP i irul de parametri este specificat folosindu-se marcajul cu ghilimele, valoarea LOCALDATE trebuie s fie specificat ntre dou perechi de ghilimele. Observai folosirea caracterului escape \ (backslash) al sistemului de operare, pentru a asigura pstrarea ghilimelelor n specificaia LOCALDATE.
catalog dcs database nydb2 as new_york parms \",,,,,,LOCALDATE=\"\"YYYYMMDD\"\"\" catalog database nydb2 as newyork2 at node nynode authentication server

Aliasul bazei de date newyork2 v furnizeaz accesul la aceeai baz de date gazd, dar n plus, are specificat o masc de format al datei. Acest exemplu ilustreaz faptul c masca de format al
Capitolul 4. Actualizarea directoarelor bazei de date

31

datei este specificat prin utilizarea cuvntului cheie LOCALDATE, fiind parametrul din poziia a aptea n cmpul PARMS al unei intrri de director DCS. Pentru ca masca de dat s fie corect, TOATE dintre urmtoarele trebuie s fie adevrate: 1. Poate fi doar cel mult cel mult o secven de fiecare tip Y-uri, M-uri i D-uri, unde Y este o cifr pentru an, M este o cifr pentru lun i D este o cifr pentru zi. 2. Numrul maxim de Y ntr-o secven este 4. 3. Numrul maxim de M ntr-o secven este 2. 4. Numrul maxim de D ntr-o secven este 2. De exemplu, toate mtile de dat urmtoare sunt corecte:
"YYyyMmDd" - cifrele Y, M i D nu sunt sensibile la majuscule "MM+DD+YYYY" - este corect s fie o masc mai lung de 10 octei i s aib caractere altele dect Y, M i D n masc "abcYY+MM" - este corect s nu existe o secven de D-uri

Urmtoarele mti de date nu sunt valide:


"YYYYyMMDD" "YYYYMDDM" - invalid deoarece sunt 5 de Y ntr-o secven - incorect deoarece sunt dou secvene de M-uri

Dac o masc de format de dat este incorect, nu se va produce nici o eroare. Pur i simplu va fi ignorat. Dac o masc de dat este corect, aceasta nu nseamn c va fi neaprat utilizat. Transformarea formatului de dat bazat pe o masc de date corect va fi efectuat doar dac TOATE dintre urmtoarele sunt adevrate: 1. Nu este nici o eroare SQL. 2. Ieirea este o valoare de dat n format compatibil ISO (ISO i JIS). 3. Zona de date de ieire ere o lungime de cel puin 10 octei. Aceasta este lungimea minim a unei zone de date de ieire pentru ca o valoare de date s fie stocat acolo, chiar dac NU este efectuat nici o transformare de format de dat calendaristic. Aceast cerin se aplic chiar dac masca de format pentru data calendaristic se termin dup mai puin de 10 octei. 4. Exist o masc valid de format de dat calendaristic, specificat n intrarea de director DCS i aceast masc ncape n zona de date de ieire. ,,,,,,,,BIDI=<ccsid> Acest parametru, din poziia a noua, este utilizat pentru specificarea CCSID-ului bidirecional (BiDi) care s fie utilizat pentru a nlocui CCSID-ul BiDi implicit al serverului de baze de date. De exemplu:
",,,,,,,,BIDI=xyz"

unde xyz reprezint CCSID-ul nlocuit.

32

Ghidul utilizatorului DB2 Connect

Fi de lucru pentru personalizarea directorului


Fia de lucru pentru personalizarea directorului v arat ce informaii trebuie s colectai. Ai putea s considerai convenabil s facei o copie a fiei de lucru i s introducei valorile sistemului dumneavoastr.

Parametrii directorului de noduri


Tabela 1. Parametrii directorului de noduri Parametru Numele nodului Nume gazd la distan (nod TCP/IP) Server (nume serviciu i numr port TCP/IP) Exemplu DB2NODE ZOSHOST db2inst1c (sau 446) Valoarea dumneavoastr

Not: 1. Numrul de port TCP/IP implicit pentru DRDA este 446 2. Dac nu tii c serverul baz de date mainframe IBM suport SECURITY SOCKS, nu specificai SECURITY pentru un nod TCP/IP.

Parametrii directorului DCS


Tabela 2. Parametrii directorului DCS Parametru Nume baz de date Nume baz de date destinaie Solicitant aplicaie ir de parametri ,,,,,,LOCALDATE=\\YYMMDD\\\ Exemplu DB2DB NEW_YORK3 Valoarea dumneavoastr

Parametrii directorului baz de date sistem


Tabela 3. Parametrii directorului baz de date sistem Parametru Nume baz de date Alias baz de date Numele nodului Autentificare Exemplu DB2DB NYC3 DB2NODE SERVER Valoarea dumneavoastr

Definirea mai multor intrri pentru aceeai baz de date


Pentru fiecare baz de date, trebuie s definii cel puin o intrare n fiecare din cele trei directoare (directorul de noduri, directorul DCS i directorul de baze de date sistem). n unele cazuri, ai putea dori s definii mai mult de o intrare pentru baza de date. De exemplu, ai putea vrea s oprii maparea SQLCODE pentru aplicaii care au fost portate de la serverul baz de date mainframe IBM, dar s acceptai maparea implicit pentru aplicaiile care au fost dezvoltate pentru mediul client/server. Vei face aceasta dup cum urmeaz:

Capitolul 4. Actualizarea directoarelor bazei de date

33

v Definii o intrare n directorul de noduri. v Definii dou intrri n directorul DCS, cu nume diferite de baze de date. Pentru o intrare specificai NOMAP n irul de parametri. v Definii dou intrri n directorul de baze de date sistem, cu aliasuri diferite de baze de date i cele dou nume de baze de date pe care le-ai specificat n directorul DCS. Ambele aliasuri acceseaz aceiai baz de date, unul cu mapare SQLCODE, iar cellalt fr mapare SQLCODE.

Tratarea datelor BiDi


Urmtoarea seciune se aplic doar la serverele z/OS. Aceast caracteristic nu trebuie activat pentru un server DB2 for IBM i, deoarece suportul complet BiDi este deja furnizat. Urmtoarele atribute BiDi sunt necesare pentru o tratare corect a datelor BiDi pe diferite platforme: v Form numeric (ARABIC versus HINDI) v Orientare (RIGHT-TO-LEFT versus LEFT-TO-RIGHT) v Shaping (SHAPED versus UNSHAPED) v Schimbare simetric (DA sau NU) v Tip text (LOGICAL versus VISUAL) Deoarece valorile implicite pe diferite platforme nu sunt aceleai, apar probleme cnd sunt trimise date DB2 de pe o platform pe alta. De exemplu, platformele Windows folosesc date LOGICAL UNSHAPED, n timp ce datele z/OS sunt n format SHAPED VISUAL. De aceea, fr suport pentru atribute BiDi, datele trimise de la DB2 for z/OS la DB2 Connect pe Windows se afieaz incorect. Cnd se schimb date ntre DB2 Connect i o baz de date de pe un server, receptorul este cel care, n mod normal, efectueaz conversia asupra datelor de intrare. Aceeai convenie se aplic, n mod normal i n cazul transformrii dispunerii BiDi, care este suplimentar conversiei codurilor de pagin. ns deocamdat niciun produs DB2 gazd nu suport CCSID-uri specifice BiDi sau transformarea dispunerii BiDi. De aceea, DB2 Connect a fost mbuntit cu capacitatea opional de a efectua transformri de dispunere BiDi asupra datelor pe care le va trimite bazei de date de pe server n plus fa de datele primite de la baza de date de pe server. Pentru ca DB2 Connect s realizeze transformri de dispuneri BiDi pentru datele care pleac spre baza de date server, trebuie s fie nlocuit CCSID-u BiDi al bazei de date server. Aceasta se realizeaz prin utilizarea parametrului BIDI n cmpul PARMS al intrrii directorului bazei de date DCS pentru baza de date server. Utilizarea acestei caracteristici este cel mai bine ilustrat cu un exemplu. S presupunem c folosii IBM Data Server n ebraic cu CCSID-ul 62213 (tipul de ir BiDi 5) i ai dori s accesai o baz de date DB2 gazd cu CCSID-ul 424 (tipul de ir BiDi 4). tii ns c datele coninute de baza de date DB2 gazd sunt bazate pe CCSID-ul 62245 (tipul de ir BiDi 10). Sunt dou probleme n aceast situaie. Prima este c baza de date DB2 gazd nu face diferena ntre tipurile de ir BiDi cu CCSID-urile 424 i 62245. A doua problem este faptul c baza de date DB2 gazd nu recunoate CCSID-ul 62213 de pe IBM Data Server. Suport doar CCSID-ul 62209 (tipul de ir BiDi 10), care este bazat pe acelai cod de pagin ca i CCSID-ul 62213.

34

Ghidul utilizatorului DB2 Connect

Va trebui s v asigurai pentru nceput c datele trimise la baza de date gazd DB2 sunt n formatul BiDi tip de ir 6 i de asemenea s fie anunat DB2 Connect c trebuie s realizeze transformarea dispunerii BiDi pentru datele pe care le primete de la baza de date gazd DB2. Vei folosi urmtoarea catalogare pentru baza de date gazd DB2:
catalog dcs database nydb1 as TELAVIV parms ",,,,,,,,BIDI=62245"

Aceasta anun DB2 Connect s nlocuiasc CCSID-ul 424 al bazei de date gazd DB2 cu 62245. Aceast nlocuire include urmtoarele prelucrri: 1. DB2 Connect se va conecta la baza de date DB2 gazd folosind CCSID-ul 62209 (tipul de ir BiDi 10). 2. DB2 Connect va realiza transformarea de dispunere BiDi pentru datele pe care urmeaz s le trimit ctre baza de date DB2 gazd, din CCSID-ul 62213 (tipul de ir BiDi 5) n CCSID-ul 62209 (tipul de ir BiDi 10). 3. DB2 Connect va realiza transformarea de dispunere BiDi pentru datele pe care le primete de la baza de date DB2 gazd, din CCSID-ul 62245 (tipul de ir BiDi 10) n CCSID-ul 62213 (tipul de ir BiDi 5). Not: 1. Pentru ca parametrul BIDI s aib efect, va trebui s fie setat la YES variabila de mediu sau valoarea de registru DB2BIDI. DB2BIDI trebuie setat pe staia de lucru DB2 Connect unde este catalogat intrarea directorului bazei de date DCS. Pentru aplicaiile care ruleaz pe un client la distan al unui server DB2 Connect, variabila DB2BIDI trebuie s fie setat i pe client. 2. Dac dorii ca DB2 Connect s realizeze transformarea de dispunere pentru datele pe care urmeaz s le trimit ctre baza de date DB2 gazd chiar dac nu trebuie s nlocuii CCSID-ul, trebuie s mai adugai parametrul BIDI n cmpul PARMS din directorul de baz de date DCS. n acest caz, CCSID-ul pe care ar trebui s-l furnizai ar trebui s fie CCSID-ul bazei de date gazd DB2 implicit. 3. n unele cazuri, folosirea unui CCSID bidirecional ar putea cauza modificarea interogrii SQL, astfel nct s nu fie recunoscut de serverul DB2. Mai precis, ar trebui s evitai s utilizai CCSID-urile IMPLICIT CONTEXTUAL i IMPLICIT RIGHT-TO-LEFT atunci cnd poate fi utilizat un tip de ir diferit. CCSID-urile CONTEXTUAL pot produce rezultate nepredictibile dac interogarea SQL conine iruri ntre ghilimele. Evitai s folosii iruri n instruciunile SQL i folosii n schimb variabile gazd, de cte ori este posibil. Dac un anumit CCSID bidirecional cauzeaz probleme care nu pot fi corectate aplicnd aceste recomandri, ar trebui s setai variabila de mediu sau valoarea de registru DB2BIDI la NO.

Specificaiile irului de parametri


n continuare sunt prezentate exemple de parametri DCS (fiecare linie este un set de parametri):
NOMAP /u/username/sqllib/map/dcs1new.map,D ,D ,,INTERRUPT_ENABLED NOMAP,D,INTERRUPT_ENABLED,,,SYSPLEX,LOCALDATE="YYMMDD",,

Sau putei s acceptai valorile implicite, fr s mai specificai un ir de parametri. Not: Trebuie s folosii caracterul escape \ (backslash) al sistemului de operare cnd folosii CLP din linia de comand a sistemului de operare pe sistemele UNIX, deoarece trebuie s fie specificate dou perechi de ghilimele pentru masca LOCALDATE din irul de parametri. De exemplu:
Capitolul 4. Actualizarea directoarelor bazei de date

35

db2 catalog dcs db x as y parms \",,,,,,LOCALDATE=\"\"YYMMDD\"\"\"

Aceasta are ca rezultat urmtoarea intrare de director DCS:


DCS 1 entry: Local database name Target database name Application requestor name DCS parameters Comment DCS directory release level = = = = = = X Y ,,,,,,LOCALDATE="YYMMDD" 0x0100

36

Ghidul utilizatorului DB2 Connect

Capitolul 5. Securitatea DB2 Connect


Autentificarea utilizatorilor este important cnd se folosete DB2 Connect, deoarece utilizatorii pot fi att locali, ct i la distan fa de DB2 Connect i baza de date n care se afl datele pe care doresc s le acceseze. Sunt prezentate conexiunile de ncredere i suportul Kerberos, precum i considerente privind securitatea pentru bazele de date de pe mainile gazd.

Conexiunile de ncredere prin DB2 Connect


Unele servere de baz de date DB2 suport contexte de ncredere. Un context de ncredere permite administratorului bazei de date s defineasc condiii sub care aplicaia de client va putea s creeze o conexiune de ncredere. Unei conexiuni de ncredere i este permis s fac lucruri pe care o conexiune normal nu le poate face. Exist dou tipuri de conexiuni de ncredere, implicite i explicite. Atunci cnd creai o conexiune, dac obinei o conexiune de ncredere explicit sau o conexiune de ncredere implicit, sau o conexiune obinuit depinde de cum cerei o conexiune de ncredere i dac conexiunea corespunde criteriului definit n contextul de ncredere pe server, aa cum este rezumat n Tabela 4.
Tabela 4. Ce tip de conexiuni rezult din diferite combinaii de aciuni Conexiunea ndeplinete criteriul de server pentru a fi de ncredere Ai cerut s fie de ncredere conexiunea Conexiunea nu ndeplinete criteriul de server pentru a fi de ncredere

Conexiune de ncredere explicit Conexiune obinuit i este ntors un avertisment SQL20360W (SQLSTATE 01679).

Nu ai cerut s fie de ncredere Conexiune de ncredere implicit Conexiune obinuit conexiunea

O conexiune de ncredere implicit este identic cu o conexiune obinuit, cu excepia c acord privilegii temporare utilizatorilor, n timp ce ei folosesc conexiunea. Privilegiile de rol care sunt acordate (dac sunt) sunt specificate n contextul de ncredere care determin ca conexiunea s fie de ncredere. Conexiunile de ncredere implicite pot fi create de aplicaii care se conecteaz folosind DB Connect. Conexiunile de ncredere implicite sunt fcute i utilizate n acelai mod n care sunt create i folosite i conexiunile regulate. Acest lucru nseamn c nu sunt necesare schimbri de cod pentru ca aplicaiile existente s aib un avantaj asupra conexiunilor de ncredere implicite atta timp ct aplicaiile se conecteaz prin DB Connect. O conexiune de ncredere explicit acord privilegii de rol temporare utilizatorului n acelai mod cum conexiunile de ncredere implicite o fac. n plus, o conexiune de ncredere explicit v permite s modificai ID-ul de autorizare la realizarea de aciuni legate de conexiune. Schimbarea ID-ului de autorizare ntr-o conexiune de ncredere explicit este referit ca comutare de utilizatori. ID-urile de autorizare la care putei comuta i dac un ID de autorizare dat cere o parol la comutarea ctre el sunt definite ca parte a contextului de ncredere care permite crearea conexiunii de ncredere.

Copyright IBM Corp. 1993, 2009

37

Comutarea utilizatorilor poate reduce, n mod semnificativ, depirea partajrii ntr-o conexiune de-a lungul mai multor utilizatori, n special, pentru numele de utilizatori care nu cer o parol, pentru c, n acel caz serverul de baz de date nu autentific ID-ul de autorizare. Atunci cnd utilizai caracteristica, totui, trebuie s fii foarte sigur c aplicaia dumneavoastr nu permite comutarea ctre un ID de autorizare fr validarea i autentificarea ID-ului de autorizare. Altfel, creai o fisur n securitatea sistemului dumneavoastr. Conexiuni de ncredere explicite pot fi create i utilizatorul poate fi comutat la conectarea prin DB2 Connect folosind CLI sau JDBC, incluznd conexiuni stabilite XA. Crearea unei conexiuni de ncredere explicite i comutarea utilizatorilor cere setarea unor atribute de conexiune speciale. Acest lucru nseamn c aplicaiile existente vor avea nevoie s fie modificate pentru ca s funcioneze conexiunile de ncredere explicite. n afar de diferenele deja menionate, putei folosi o conexiune de ncredere (implicit sau explicit) n acelai mod n care ai folosi o conexiune obinuit. Trebuie s fii sigur, totui, n mod explicit s deconectai o conexiune de ncredere explicit cnd ai terminat cu ea, chiar dac se afl ntr-o stare de ntrerupere sau de deconectare. Altfel, resursele folosite de conexiune pot s nu fie eliberate. Aceasta nu este o problem cu conexiunile de ncredere implicite. Not: 1. Important: Comutarea utilizatorilor fr livrarea unei parole ocolete autentificarea bazei de date a serverului. Aplicaia dumneavoastr trebuie s nu permit comutarea la un ID de autorizare fr o parol, doar dac aplicaia a validat deja i a autentificat acel ID de autorizare. A face altfel creeaz o fisur n securitate. 2. Conexiunile de ncredere explicite ar trebui s nu foloseasc autentificare CLIENT. Acest lucru nu se aplic la conexiunile de ncredere implicite. 3. Aplicaiile care folosesc conexiuni de ncredere explicite ar trebui rulate pe maini sigure care au parol de protecie i accesibile doar personalului autorizat. Acest lucru nu se aplic la conexiunile de ncredere implicite.

Crearea i finalizarea unei conexiuni de ncredere prin CLI


Dac serverul bazei de date la care v conectai este configurat s permit, putei crea o conexiune de ncredere explicit la conectarea prin CLI. Aceast procedur presupune c nu folosii un manager de tranzacie XA. Dac folosii un manager de tranzacie XA avei nevoie doar s v asigurai c managerul de tranzacie este configurat pentru s seteze valoarea de configurare TCTX la TRUE cnd apeleaz xa_open. Dac acest lucru este fcut orice conexiune care poate fi o conexiune de ncredere explicit va fi o conexiune de ncredere explicit. Pentru a verifica dac o conexiune este o conexiune de ncredere explicit vedei pasul 3. v Baza de date la care v conectai trebuie s suporte contexte de ncredere. v Un context de ncredere trebuie definit care va recunoate clientul ca fiind de ncredere. v Trebuie s tii ID-ul de autorizare al sistemului, care este specificat n contextul de ncredere. ID-ul de autorizare sistem al unei conexiuni de ncredere este ID-ul de autorizare furnizat serverului ca un nume de utilizator la crearea conexiunii. Pentru a fi de ncredere conexiunea dumneavoastr ntr-un anumit context particular, ID-ul de autorizare sistem trebuie s fie cel specificat n contextul de ncredere. ntrebai administratorul de securitate de un ID de autorizare de sistem valid i parola pentru acel ID.

38

Ghidul utilizatorului DB2 Connect

Exemplele din aceste instruciuni folosesc limbajul C i presupun c conn este un pointer la un manipulator de conexiune valid, dar neconectat. Variabila rc se presupune c are tipul de date SQLRETURN. 1. n plus fa de setarea oricror atribute de conexiune pe care le-ai seta pentru o conexiune obinuit, setai atributul de conexiune SQL_ATTR_USE_TRUSTED_CONTEXT la SQL_TRUE cu un apel al funciei SQLSetConnectAttr.
rc = SQLSetConnectAttr( conn, SQL_ATTR_USE_TRUSTED_CONTEXT, SQL_TRUE, SQL_IS_INTEGER );

2. Conectai-v la o baz de date aa cum ai face-o pentru o conexiune normal, prin apelarea funciei SQLConnect pentru instan. Folosii ID de autorizare sistem ca nume de utilizator i parola sa ca parol. Asigurai-v c verificai avertismentele i erorile, n special cele listate n Tabela 5.
Tabela 5. Erori care indic euarea la crearea unei conexiuni de ncredere SQLCODE SQL20360W SQLSTATE 01679 Semnificaie Conexiunea nu a putut fi stabilit ca o conexiune de ncredere. A fost stabilit n schimb ca o conexiune obinuit.

Dac nu exist erori sau avertismente care s v indice diferit, atunci conexiunea este stabilit i este o conexiune de ncredere explicit. 3. (Opional) Putei verifica dac o conexiune stabilit este o conexiune de ncredere explicit prin verificarea valorii atributului de conexiune SQL_ATTR_USE_TRUSTED_CONTEXT folosind funcia SQLGetConnectAttr. Dac este setat la SQL_TRUE conexiunea este o conexiune de ncredere explicit. 4. Trebuie s fii atent, totui, s deconectai conexiunea cnd ai terminat cu ea, chiar dac se afl ntr-o stare de ntrerupere sau de deconectare. Dac nu deconectai, n mod explicit, o conexiune de ncredere explicit, unele resurse folosite de conexiune nu vor fi eliberate. Not: 1. Conexiunile de ncredere explicite ar trebui s nu foloseasc autentificare CLIENT. Acest lucru nu se aplic la conexiunile de ncredere implicite. 2. Aplicaiile care folosesc conexiuni de ncredere explicite ar trebui rulate pe maini sigure care sunt protejate de parole i accesibile doar personalului autorizat. Acest lucru nu se aplic la conexiunile de ncredere implicite.

Comutarea utilizatorilor pe o conexiune de ncredere prin CLI


Putei comuta utilizatorii pe o conexiune de ncredere explicit prin interfaa linie de comand (CLI). Pentru o descriere despre ce nseamn comutarea utilizatorilor folosind o conexiune de ncredere, vedei subiectul n Legturi nrudite. v Conexiunea trebuie creat cu succes ca o conexiune de ncredere explicit. v Conexiunea de ncredere explicit nu trebuie s fie ntr-o tranzacie. v Contextul de ncredere care permite conexiunii de ncredere explicite s fie creat trebuie configurat pentru a permite comutarea la ID-ul de autorizare pe care l vei comuta, de asemenea. Exemplele din aceste instruciuni folosesc limbajul C i presupun c conn este un pointer la o conexiune de ncredere explicit. Variabila rc se presupune c are tipul de date SQLRETURN. Variabila newuser se presupune c este un pointer la un ir de caractere care pstreaz ID-ul de autorizare al utilizatorului la care vrei s comutai. Variabila passwd se presupune c este un pointer la un ir de caractere care conine parola pentru ID-ul de autorizare.

Capitolul 5. Securitatea DB2 Connect

39

1. Apelai funcia SQLSetConnectAttr pentru a seta atributul SQL_ATTR_TRUSTED_CONTEXT_USERID. Setai-l la ID-ul de autorizare la care vrei s comutai.
rc = SQLSetConnectAttr( conn, SQL_ATTR_TRUSTED_CONTEXT_USERID, newuser, SQL_NTS ); //Verificai pentru erori

Asigurai-v c verificai avertismentele i erorile, n special cele listate n Tabela 6.


Tabela 6. Erori care indic euarea la setarea unui nou ID de autorizare la comutarea utilizatorilor SQLCODE CLI0106E CLI0197E CLI0124E CLI0196E Semnificaie Conexiunea nu a fost fcut. Conexiunea nu este una de ncredere. Este o problem cu valoarea furnizat. Verificai c nu este null sau nu este prea lung, de exemplu. Conexiunea este implicat ntr-o unitate de lucru care mpiedic comutarea utilizatorilor. Pentru a putea comuta utilizatori conexiunea trebuie s nu fie ntr-o tranzacie.

2. (Opional, doar dac nu contextul de ncredere care a permis aceast conexiune de ncredere necesit o parol pentru ID-ul de autorizare la care comutai) Apelai funcia SQLSetConnectAttr pentru a seta atributul SQL_ATTR_TRUSTED_CONTEXT_PASSWORD. Setai-l la parola pentru noul ID de autorizare.
rc = SQLSetConnectAttr( conn, SQL_ATTR_TRUSTED_CONTEXT_PASSWORD, passwd, SQL_NTS ); //Verificai pentru erori

Asigurai-v c verificai avertismentele i erorile, att cele listate n Tabela 6, ct i cele menionate n Tabela 7.
Tabela 7. Erori care indic euare de a seta o parol la comutarea utilizatorilor SQLCODE CLI0198E Semnificaie Atributul SQL_ATTR_TRUSTED_CONTEXT_USERID nu a fost nc setat.

3. Continuai ca i cum ai lucra cu o conexiune obinuit. Dac folosii un manager de tranzacie XA, comutarea utilizatorului este ncercat ca parte a noii cereri, altfel, comutarea utilizatorului este ncercat chiar nainte de iniializarea apelrii urmtoarei funcii care acceseaz baza de date (de exemplu SQLExecDirect). n ambele cazuri, n plus fa de erorile i avertismentele pe care le verificai de obicei, asigurai-v c verificai erorile listate n Tabela 8 la pagina 41. Erorile din Tabela 8 la pagina 41 indic faptul c a euat comutarea utilizatorului.

40

Ghidul utilizatorului DB2 Connect

Tabela 8. Erori care indic euare la comutarea utilizatorilor SQLCODE SQL1046N Semnificaie Contextul de ncredere care permite conexiunea de ncredere nu este configurat pentru a permite comutarea la ID-ul de autorizare la care ncercai s comutai. Nu vei putea comuta la acel ID de autorizare pn cnd nu este modificat contextul de ncredere. Parola furnizat nu este corect pentru ID-ul de autorizare pe care dorii s comutai. Exist o constrngere de nivel al bazei de date care v mpiedic s comutai la utilizator.

SQL30082N SQL0969N cu o eroare nativ de -20361

Dac comutarea utilizatorului eueaz, conexiunea se va afla ntr-o stare necunoscut pn cnd vei comuta cu succes la un alt utilizator. Putei comuta utilizatorii pe o conexiune de ncredere ntr-o stare de neconectare, dar nu putei accesa serverul de baz de date cu ea. O conexiune ntr-o stare de neconectare va rmne n acea stare pn cnd vei comuta cu succes utilizatorii pe ea. Not: 1. Important: Comutnd utilizatorii fr s livrai o parol ocolete autentificarea la serverul de baz de date. Aplicaia dumneavoastr trebuie s nu permit comutarea la un ID de autorizare fr o parol, doar dac aplicaia a validat deja i a autentificat acel ID de autorizare. A face altfel creeaz o fisur n securitate. 2. Specificarea unei valori NULL pentru atributul SQL_ATTR_TRUSTED_CONTEXT_USERID este echivalent cu specificarea ID-ului de autorizare sistem al contextului de ncredere (ID-ul de utilizator folosit cnd a fost creat conexiunea de ncredere explicit. 3. Cnd ai setat cu succes valoarea atributului de conexiune SQL_ATTR_TRUSTED_CONTEXT_USERID la o conexiune de ncredere explicit, conexiunea este resetat imediat. Rezultatul resetrii este ca i cum o nou conexiune a fost creat folosind atributele de conexiune originale pentru respectiva conexiune. Aceast resetare se ntmpl chiar dac valoarea pe care la care setai atributul de conexiune este ID-ul de autorizare al sistemului sau NULL sau aceeai valoare pe care o reine momentan atributul. 4. Dac atributul SQL_ATTR_TRUSTED_CONTEXT_PASSWORD este setat, parola va fi autentificat n timpul procesrii comutrii utilizatorului, chiar dac contextul de ncredere, care a permis conexiunea de ncredere, nu cere autentificarea la o comutare de utilizator pentru acel ID de autorizare. Aceasta rezult ntr-o regie nenecesar. Aceast regul nu se aplic ID-ului de autorizare al contextului de ncredere. Dac ID-ul de autorizare sistemul al contextului de ncredere nu cere autentificare atunci cnd comutai la el, atunci el nu este autentificat chiar dac este furnizat o parol.

Considerente privind autentificarea DB2 Connect


Ca administrator DB2 Connect, n cooperare cu administratorul bazei de date System z sau IBM Power Systems, putei determina unde sunt validate numele de utilizator i parolele: v La client v La serverul System z sau IBM Power Systems v Logare unic i validare printr-un sistem ter parte (Kerberos). Not: n cazul n care clientul la distan nu specific nici un tip de autentificare, clientul se va lega implicit la SERVER_ENCRYPT. Dac acest tip nu este acceptat de ctre server,

Capitolul 5. Securitatea DB2 Connect

41

clientul va rencerca utiliznd valoarea corespunztoare returnat de server. Pentru a ajuta la optimizarea performanei, specificai ntotdeauna tipul de autentificare la client, pentru a evita acest flux suplimentar n reea. ncepnd cu DB2 Connect Versiunea 8.2.2 (echivalent cu Versiunea 8.1 FixPak 9) gateway-ul nu mai este un participant pasiv n timpul negocierii autentificrii. Gateway-ul are un rol activ. Tipul de autentificare specificat n intrarea directorului bazei de date la gateway nlocuiete tipul de autentificare catalogat la client. Clientul, gateway-ul i serverul trebuie s specifice, toate, tipuri compatibile. Dac tipul de autentificare catalogat la gateway nu a fost specificat n intrarea directorului bazei de date, tipul implicit cerut de server va fi autentificarea SERVER. Dar, dac serverul nu suport autentificarea SERVER, se va realiza negocierea ntre client i server. Acest comportament se deosebete de cel al clientului, care folosete n mod implicit SERVER_ENCRYPT dac nu a fost specificat un tip de autentificare. Tipul de autentificare catalogat la gateway nu este folosit dac la client a fost setat opiunea DB2NODE sau SQL_CONNECT_NODE a API-ului Set Client. i n aceste cazuri negocierea se face numai ntre client i server. Cu DB2 Connect sunt permise urmtoarele tipuri de autentificare: CLIENT Numele de utilizator i parola sunt validate la client. DATA_ENCRYPT Ofer capacitatea de a cripta datele de utilizator n timpul comunicaiilor client/server. Acest tip de autentificare nu este suportat pe serverul de baz de date IBM Power Systems. KERBEROS Activeaz clientul pentru a se loga la server utiliznd autentificarea Kerberos n locul combinaiei tradiionale, alctuite din ID i parol. Acest tip de autentificare necesit ca att serverul, ct i clientul s fie activai pentru Kerberos. SERVER Numele utilizator i parola sunt validate la baza de date server System z sau IBM Power Systems. SERVER_ENCRYPT Pentru autentificarea SERVER, numele de utilizator i parola sunt validate la serverul de baz de date System z sau IBM Power Systems, dar ID-urile de utilizator i parolele transferate sunt criptate la client. SERVER_ENCRYPT_AES ID-urile de utilizator i parolele transferate sunt criptate folosind un algoritm de criptare Advanced Encryption Standard (AES) la client i validate la serverul de baz de date System z. Autentificarea Kerberos este unic prin aceea c un client nu transmite ID-ul de utilizator i parola direct la server. n loc, Kerberos lucreaz ca un mecanism de autentificare ter parte. Utilizatorul introduce o singur dat un ID i parola la terminalul client, iar Kerberos valideaz aceast semnare. Dup aceasta, Kerberos transmite automat i sigur autorizarea utilizatorului oricrei cereri de servicii locale i de reea. Aceasta nsemn c utilizatorul nu trebuie s reintroduc un ID i o parol pentru a se loga pe un server DB2 la distan. Capabilitatea de semnare unic furnizat de autentificarea Kerberos necesit ca att DB2 Connect, ct i serverul de baz de date care se conecteaz s asigure suport Kerberos. Not: Nu exist suport pentru tipul de autentificare GSSPLUGIN.

42

Ghidul utilizatorului DB2 Connect

Suportul Kerberos
Nivelul de autentificare Kerberos care manipuleaz sistemul de tichete este integrat n mecanismul Windows 2000 Active Directory. Prile client i server ale unei aplicaii comunic cu modulele de client, respectiv, server ale furnizorului Kerberos SSP (Security Support Provider). Interfaa SSPI (Security Support Provider Interface) furnizeaz o interfa de nivel nalt pentru Kerberos SSP i pentru alte protocoale de securitate.

Setare tipic
Pentru a configura DB2 cu autentificare Kerberos, setai: v O politic de autorizare pentru DB2 (ca service) n directorul activ care este partajat ntr-o reea i v O relaie de ncredere ntre KDC-urile (Key Distribution Centers) Kerberos n cel mai simplu scenariu, exist cel puin o relaie de ncredere KDC de configurat, adic, cea dintre KDC-ul care controleaz staia de lucru client i IBM Power Systems, sau System z. OS/390 Versiunea 2 Ediia 10 sau z/OS Versiunea 1 Ediia 2 furnizeaz procesarea tichetului Kerberos prin facilitatea sa RACF care permite gazdei s acioneze ca un UNIX KDC. DB2 Connect furnizeaz ca de obicei funcionalitatea de ruter n setarea pe 3 niveluri (3-tier). Acesta nu i asum nici un rol n autentificare atunci cnd se utilizeaz securitatea Kerberos. Nu face dect s transmit jetonul de securitate al clientului ctre DB2 for IBM i sau ctre DB2 for z/OS. Nu este nevoie ca gateway-ul DB2 Connect s fie membru al regiunii client sau gazd Kerberos.

Compatibilitatea cu versiunile anterioare


Cerine minime pentru suport Kerberos DB2: IBM Data Server: Versiunea 8 DB2 Connect: Versiunea 8 DB2 for z/OS: Versiunea 7

Sugestii i indicii privind securitatea z/OS


Aceste subiect furnizeaz unele indicaii i sugestii despre securitate pentru conectarea DB2 Connect la un server baz de date DB2 for z/OS.

Cmp extins de securitate


Asigurai-v c DB2 for z/OS Extended Security Field este setat la YES. Acest cmp apare n panoul DB2 for z/OS, DSNTIPR.

Coduri extinse de securitate


Pn la DB2 for z/OS versiunea 5.1, cererile de conectare care furnizeaz ID-uri utilizator sau parole pot eua cu SQL30082 cod motiv 0, dar nici o alt indicaie despre ce ar putea funciona greit.

Capitolul 5. Securitatea DB2 Connect

43

DB2 for z/OS versiunea 5.1 introduce o mbuntire care furnizeaz suport pentru codurile extinse de securitate. Specificnd securitate extins, se vor furniza diagnostice suplimentare, cum ar fi (PASSWORD EXPIRED) n plus la codul motiv. Pentru a exploata sugestiile, parametrul de instalare DB2 for z/OS ZPARM pentru securitate extins ar trebui setat la valoarea YES. Folosii DB2 for z/OS panoul de instalare DSN6SYSP pentru a seta EXTSEC=YES. Putei de asemenea folosi panoul 1 DDF (DSNTIPR) pentru a seta acest lucru. Valoarea implicit este EXTSEC=NO. n cazul unei parole expirate, Windows, Linux, UNIX i aplicaii web care folosesc DB2 Connect vor primii un mesaj de eroare SQL30082.

Securitatea TCP/IP deja verificat


Dac dorii s furnizai suport pentru opiunea de securitate DB2 AUTHENTICATION=CLIENT, folosii panoul de instalare DB2 for z/OS DSNTIP4 (DDF panoul 2) pentru a seta la YES securitatea TCP/IP deja verificat.

Securitatea aplicaiilor Desktop ODBC i Java


Aplicaiile Workstation ODBC i Java folosesc SQL dinamic. Aceasta ar putea crea probleme de securitate n unele instalri. DB2 for z/OS introduce o nou opiune de legare DYNAMICRULES(BIND) ce permite execuia de SQL dinamic sub autorizaia fie a proprietarului, fie a binder-ului. DB2 i DB2 Connect furnizeaz un nou parametru de configurare CLI/ODBC CURRENTPACKAGESET n fiierul de configurare DB2CLI.INI. Acesta ar trebui setat la un nume de schem care are privilegiile corespunztoare. O instruciune SQL schema SET CURRENT PACKAGESET va fi asumat automat dup fiecare conectare pentru aplicaie. Folosii ODBC Manager pentru a actualiza DB2CLI.INI.

Suportul de schimbare a parolei


Dac parola unui ID utilizator a expirat, o instruciune SQL CONNECT ntoarce un mesaj de eroare, cum ar fi SQLCODE -30082 cod motiv 1. Cu DB2 Connect este posibil s modificai parola de la distan. Prin DRDA, DB2 for z/OS poate modifica parola pentru dumneavoastr, emind urmtoarea instruciune CONNECT:
CONNECT TO <database> USER <userid> USING <password> NEW <new_password> CONFIRM <new_password>

Dialogul Change password din DB2 Configuration Assistant poate de asemenea fi folosit pentru a modifica parola.

Tipurile de autentificare suportate cu DB2 Connect


Acest subiect listeaz diversele combinaii de setri de autentificare i securitate care sunt suportate cu DB2 Connect. Tipuri de autentificare pentru conexiuni TCP/IP Protocolul de comunicaie TCP/IP nu suport opiuni de autentificare la nivelul protocolului de reea. Tipul de autentificare determin unde are loc autentificarea. Doar combinaiile artate n aceast tabel sunt suportate de DB2 Connect. Setarea de autentificare se afl n intrarea directorului bazei de date de pe serverul DB2 Connect.

44

Ghidul utilizatorului DB2 Connect

Tabela 9. Scenarii valide de autentificare Scenariu 1 2 3 4 5 6 Setare autentificare CLIENT SERVER SERVER_ENCRYPT KERBEROS DATA_ENCRYPT SERVER_ENCRYPT_AES Validare Client Server baz de date mainframe IBM Server baz de date mainframe IBM Securitate Kerberos Gazd Server de baz de date gazd

Discuie asupra tipurilor de autentificare Urmtoarea discuie este valabil pentru conexiunile descrise mai sus i sunt listate n Tabela 9. n continuare, fiecare scenariu este descris mai detaliat: v n scenariul 1, numele de utilizator i parola sunt validate numai la clientul de la distan. Pentru un client local, numele utilizatorului i parola sunt validate numai la serverul DB2 Connect. Se ateapt ca utilizatorul s fie autentificat la locaia la care se nscriu. ID-ul de utilizatorului este trimis prin reea, dar nu i parola. Utilizai acest tip de securitate numai dac toi clienii staiei de lucru au faciliti adecvate care pot fi de ncredere. v n scenariul 2, numele utilizator i parola sunt validate doar la serverul baz de date mainframe IBM. ID-ul de utilizator i parola sunt trimise prin reea de pe clientul la distan la serverul DB2 Connect i de pe serverul DB2 Connect la serverul de baz de date mainframe IBM. v Scenariul 3 este la fel ca scenariul 2, cu excepia c ID-ul de utilizator i parola sunt criptate. v n scenariul 4, clientul obine un tichet Kerberos de la Kerberos KDC. Tichetul este pasat nealterat prin DB2 Connect la server, unde este validat de ctre server. v Scenariul 5 este acelai cu scenariul 3, cu excepia c datele utilizator sunt de asemenea criptate, iar DATA_ENCRYPT nu suport serverul de baz de date IBM Power Systems. v Scenariul 6 este la fel ca scenariul 3, cu excepia c se folosete algoritmul de criptare AES (Advanced Encryption Standard).

Capitolul 5. Securitatea DB2 Connect

45

46

Ghidul utilizatorului DB2 Connect

Capitolul 6. Legarea aplicaiilor i utilitarelor (DB2 Connect)


Programele de aplicaie dezvoltate utiliznd SQL ncorporat trebuie s fie legate la fiecare baz de date cu care vor opera. Pe platformele unde sunt disponibile aceste funcii, putei face aceasta utiliznd Command Center i Configuration Assistant. Legarea ar trebui realizat o singur dat per aplicaie, pentru fiecare baz de date. n timpul procesului de legare, planurile de acces al bazei de date sunt memorate pentru fiecare instruciune SQL care va fi executat. Aceste planuri de acces sunt livrate de dezvoltatorii de aplicaii i sunt coninute n fiierele de legare care sunt create n timpul precompilrii. Legarea este un proces de procesare a acestor fiiere de legare de un server baz de date mainframe IBM. Deoarece cteva dintre utilitarele furnizate cu DB2 Connect sunt dezvoltate folosind SQL nglobat, ele trebuie s fie legate la serverul de baz de date mainframe IBM nainte de a fi folosite cu sistemul respectiv. Dac nu folosii utilitarele i interfeele DB2 Connect, nu trebuie s le legai la fiecare dintre serverele de baz de date mainframe IBM. Listele fiierelor de legtur necesare acestor utilitare sunt coninute n urmtoarele fiiere: v ddcsmvs.lst pentru System z v ddcsvse.lst pentru VSE v ddcsvm.lst pentru VM v ddcs400.lst pentru IBM Power Systems Legarea uneia sau a mai multor astfel de liste de fiiere la o baz de date va lega fiecare utilitar individual la baza de date. Dac este instalat un produs server DB2 Connect, utilitarele DB2 Connect trebuie s fie legate la fiecare server de baz de date mainframe IBM nainte de a fi folosite cu sistemul respectiv. Presupunnd c avei clienii la acelai nivel de pachet de corecii, trebuie s legai utilitarele o singur dat, indiferent de numrul de platforme client implicate. De exemplu, dac avei 10 clieni Windows i 10 clieni AIX care se conecteaz la DB2 for z/OS prin DB2 Connect Enterprise Edition pe un server Windows, facei una din urmtoarele: v Legai ddcsmvs.lst de la unul din clienii Windows. v Legai ddcsmvs.lst de la unul din clienii AIX. v Legai ddcsmvs.lst dev la serverul DB2 Connect. Acest exemplu presupune c: v Toi clienii sunt la acelai nivel de service. Dac nu este aa atunci, n plus, se poate s fie nevoie legai de la fiecare client al unui anumit nivel de service v Serverul este la acelai nivel de service ca i clienii. Dac nu este, atunci trebuie s legai i de la server. Pe lng utilitarele DB2 Connect, orice alt aplicaie care utilizeaz SQL ncorporat trebuie de asemenea s se lege la fiecare baz de date cu care dorii ca ele s lucreze. O aplicaie care nu este legat va produce n mod normal un mesaj de eroare SQL0805N la execuie. S-ar putea s dorii s creai un fiier list de legturi adiional pentru toate aplicaiile dumneavoastr care trebuie legate. Pentru fiecare server baz de date mainframe IBM la care legai, facei urmtoarele:

Copyright IBM Corp. 1993, 2009

47

1. Asigurai-v c avei autorizare suficient pentru sistemul de gestiune a serverului baz de date mainframe IBM: System z Cerinele de autoritate sunt: v SYSADM sau v SYSCTRL sau v BINDADD i CREATE IN COLLECTION NULLID Not: Privilegiile BINDADD i CREATE IN COLLECTION NULLID furnizeaz autoritate suficient doar cnd pachetele nu exist deja. De exemplu, dac le creai pentru prime dat. Dac pachetele exist deja i le legai din nou, atunci autoritatea necesar pentru a completa taskul (taskurile) depinde de cine a rezolvat legtura original. A) Dac ai fcut legarea original i facei legarea din nou, atunci avnd oricare din autorizrile listate mai sus v va permite s realizai legarea. B) Dac legarea dumneavoastr original a fost fcut de altcineva i dumneavoastr facei a doua legare, atunci avei nevoie de autorizrile SYSADM sau SYSCTRL pentru a finaliza legarea. Avnd doar autorizrile de BINDADD i CREATE IN COLLECTION NULLID nu v permite s completai legtura. Tot este posibil s creai un pachet dac nu avei privilegiile SYSADM sau SYSCTRL. n aceast situaie vei avea nevoie de privilegiul de BIND la fiecare din pachetele existente pe care intenionai s le nlocuii. VSE sau VM Autorizarea necesar este autoritatea DBA. dac dorii s utilizai opiunea GRANT la comanda de legtur (pentru a evita acordarea accesului la fiecare pachet DB2 Connect individual), ID-ul de utilizator NULLID trebuie s aib autorizarea s acorde autoritatea celorlali utilizatori la urmtoarele tabele: v system.syscatalog v system.syscolumns v system.sysindexes v system.systabauth v system.syskeycols v system.syssynonyms v system.syskeys v system.syscolauth v system.sysuserauth Pe sistemul VSE sau VM, putei lansa:
grant select on tabel to nullid with grant option

IBM Power Systems Autoritatea *CHANGE sau mai mult pentru colecia NULLID. 2. Lansai comenzi similare cu urmtoarele:
db2 connect to DBALIAS user USERID using PASSWORD db2 bind cale@ddcsmvs.lst blocking all sqlerror continue messages ddcsmvs.msg grant public db2 connect reset

48

Ghidul utilizatorului DB2 Connect

Unde DBALIAS, USERID i PASSWORD corespund serverului de baz de date mainframe IBM, ddcsmvs.lst este fiierul cu lista de legturi pentru z/OS, iar cale reprezint locaia fiierului cu lista de legturi. De exemplu drive:\sqllib\bnd\ se aplic tuturor sistemelor de operare Windows i INSTHOME/sqllib/bnd/ se aplic tuturor sistemelor de operare Linux i UNIX, unde drive reprezint unitatea virtual unde a fost instalat DB2 Connect i INSTHOME reprezint directorul home al instanei DB2 Connect. Putei utiliza opiunea grant a comenzii bind pentru a acorda privilegiul EXECUTE la PUBLIC sau unui nume de utilizator sau ID de grup specificat. Dac nu utilizai opiunea grant a comenzii bind, trebuie s rulai individual GRANT EXECUTE (RUN). Pentru a gsi numele pachetelor pentru fiierele de legtur, introducei comanda:
ddcspkgn @bindfile.lst

De exemplu:
ddcspkgn @ddcsmvs.lst

s-ar putea s produc ieirea urmtoare:


Bind File Package Name ------------------------------ -----------------------------f:\sqllib\bnd\db2ajgrt.bnd SQLAB6D3

Pentru a determina aceste valori pentru DB2 Connect executai utilitarul ddcspkgn, de exemplu:
ddcspkgn @ddcsmvs.lst

Opional, acest utilitar poate fi utilizat pentru a determina numele pachetelor ale fiierelor de legtur individuale, de exemplu:
ddcspkgn bindfile.bnd

Not: a. Folosirea opiunii de legare sqlerror continue este necesar; totui, aceast opiune este specificat automat pentru dumneavoastr cnd legai aplicaii folosind uneltele DB2 sau CLP. Specificnd aceast opiune, erorile de legtur sunt transformate n avertismente, n aa fel nct fiierul de legtur care conine erori poate rezulta n continuare din crearea unor pachete. n schimb, aceasta permite folosirea unui fiier de legare pentru mai multe servere chiar i cnd implementarea unui anumit server ar putea ar putea face ca sintaxa SQL s fie invalid. Din acest motiv, la legarea unui fiier cu list de legturi ddcsxxx.lst la un anumit server de baz de date mainframe IBM este de ateptat s apar unele avertismente. b. Dac v conectai la o baz de date DB2 prin DB2 Connect, folosii lista de legare db2ubind.lst i nu specificai sqlerror continue, care este valid numai pentru conectarea la un server de baz de date mainframe IBM. De asemenea, pentru a v conecta la o baz de date DB2, este recomandat s folosii clienii DB2 furnizai cu DB2 i nu DB2 Connect. 3. Utilizai instruciuni similare pentru a lega fiecare aplicaie sau list de aplicaii. 4. Dac avei clieni la distan de la o ediie anterioar a DB2, ar putea fi nevoie s legai utilitarele de clienii de DB2 Connect.

Capitolul 6. Legarea aplicaiilor i utilitarelor (DB2 Connect)

49

50

Ghidul utilizatorului DB2 Connect

Capitolul 7. Actualizrile multilocaie


Actualizarea multilocaie, numit i unitate de lucru distribuit (DUOW) sau comitere n dou faze, este o funcie care permite aplicaiilor dumneavoastr s actualizeze date pe mai multe servere de baz de date la distan, cu integritatea garantat. Un exemplu poate fi o tranzacie bancar care implic un transfer de bani dintr-un cont n altul, pe un server de baz de date diferit. ntr-o asemenea tranzacie, este esenial ca actualizrile care implementeaz operaiile de debit ntr-un cont s nu fie comise dect dac sunt comise i actualizrile necesare pentru a procesa creditele n cellalt cont. Considerentele de actualizare multilocaie se aplic atunci cnd datele ce reprezint aceste conturi sunt gestionate de dou servere diferite de baz de date. Produsele DB2 ofer un suport cuprinztor pentru actualizri multilocaie. Acest suport este disponibil pentru aplicaiile dezvoltate folosind SQL-ul obinuit, precum i pentru aplicaiile care folosesc monitoarele de procesare a tranzaciilor (monitoare TP) ce implementeaz specificaiile interfeei X/Open XA. Printre exemplele de asemenea produse monitoare TP se numr IBM TxSeries CICS, IBM Message and Queuing Series, IBM Component Broker Series, IBM San Francisco Project, precum i Microsoft Transaction Server (MTS), BEA Tuxedo i multe altele. Cerinele de setare sunt diferite, n funcie de folosirea actualizrii multilocaie cu SQL nativ sau cu monitor TP. Att programele de actualizare multilocaie cu SQL nativ, ct i cele cu monitor TP trebuie s fie precompilate cu opiunile CONNECT 2 SYNCPOINT TWOPHASE. Ambele pot folosi instruciunea SQL Connect pentru a indica baza de date pe care vor s o foloseasc pentru instruciunile SQL care urmeaz. Dac nu este nici un monitor TP care s comunice DB2 c va coordona tranzacia (precum este indicat de DB2 care primete apelurile xa_open de la monitorul TP pentru a stabili o conexiune baz de date), atunci software-ul DB2 va fi folosite pentru a coordona tranzacia. La folosirea actualizrii multilocaie a monitorului TP, aplicaia trebuie s cear comitere sau derulare napoi folosind API-ul monitorului TP, de exemplu CICS SYNCPOINT, MTS SetAbort(). Cnd se folosete actualizarea multilocaie cu SQL nativ, trebuie folosite instruciunile obinuite SQL COMMIT i ROLLBACK. Actualizarea multilocaie a monitorului TP poate coordona o tranzacie care acceseaz i manageri de resurse DB2 i non-DB2 cum ar fi Oracle, Informix sau SQLServer. Actualizarea multilocaie nativ SQL este folosit doar cu servere DB2. Pentru ca o tranzacie actualizare multilocaie s funcioneze, fiecare din bazele de date care particip ntr-o tranzacie distribuit trebuie s fie capabile s suporte o unitate distribuit de lucru (DUOW). Momentan, urmtoarele servere DB2 au furnizat suport DUOW care le-a permis s participe n tranzacii distribuite: v DB2 pentru Linux, UNIX i Windows Versiunea 8 sau mai recent v DB2 for z/OS Versiunea 7 sau ulterioar v DB2 for IBM i O tranzacie distribuit poate actualiza orice baze de date de servere mixate sau suportate. De exemplu, aplicaia dumneavoastr poate actualiza mai multe tabele dintr-o baz de date DB2 pe Windows, o baz de date DB2 for z/OS i o baz de date DB2 for i, toate ntr-o singur tranzacie.
Copyright IBM Corp. 1993, 2009

51

Activarea actualizrilor multilocaie folosind Control Center


Putei folosi Control Center pentru a asigura actualizri multilocaie. Pentru a activa actualizrile multilocaie: 1. Lansarea Control Center. 2. Facei clic pe semnul [+] pentru a extinde vizualizarea arbore. 3. Cu butonul din dreapta al mouse-ului, selectai instana pe care o configurai. Se deschide un meniu pop-up. 4. Selectai elementul de meniu Multisite Update > Configure. Se deschide vrjitorul Multisite Update. 5. Selectai Use the TP monitor named below i Specify a Transaction Processor (TP) monitor. Acest cmp va afia valorile implicite pentru monitorul TP care l-ai activat. Dac nu vrei s folosii un monitor TP, selectai Do Not Use a TP Monitor. Facei clic pe Next. 6. Dac folosii un monitor TP, specificai setrile managerului de puncte de sincronizare. Dac nu folosii un monitor TP, specificai baza de date a managerului de tranzacii. 7. Facei clic pe Finish.

Testarea actualizrilor multilocaie folosind Control Center


Putei testa setarea actualizrii multilocaie folosind Control Center. Pentru a testa actualizarea multilocaie: 1. Selectai instana cu butonul dreapta a mouse-ului i alegei opiunea meniu Multisite Update > Test din meniul pop-up. Se deschide fereastra Test Multisite Update. 2. Selectai baza de date pe care dorii s o testai dintre bazele de date disponibile n caseta list Available. Putei folosi butoanele cu sgeat (> i >>) din mijloc pentru a muta seleciile n i din caseta list Selected. De asemenea, putei s schimbai ID-ul i parola de utilizator selectate editndu-le direct n caseta list Selected. 3. Cnd ai terminat selecia, apsai OK. Se deschide fereastra Multisite Update Test Result. 4. Fereastra Multisite Update Test Result arat care din bazele de date pe care le-ai selectat au trecut sau nu testul de actualizare. Fereastra va afia coduri SQL i mesaje de eroare pentru cele care au euat. Facei clic pe Close pentru a nchide fereastra. 5. Facei clic pe Close pentru a nchide fereastra Test Multisite Update.

Actualizarea multilocaie i managerul de puncte de sincronizare


Serverele de baz de date mainframe IBM necesit DB2 Connect pentru a participa la o tranzacie distribuit iniiat din aplicaiile web, Linux, Windows i UNIX. n plus, multe dintre scenariile actualizare multilocaie care implic servere baz de date mainframe IBM necesit s fie configurat componenta SPM. Cnd este creat o instan DB2, SPM DB2 este configurat automat cu setri implicite. Necesitatea de a folosi SPM este dictat de alegerea protocolului (TCP/IP) i de folosirea monitorului TP. Urmtorul tabel ofer un sumar de scenarii care necesit folosirea SMP. De asemenea, tabela arat dac este necesar DB2 Connect pentru acces la mainframe IBM de la mainile Intel sau UNIX. Pentru actualizri multilocaie, componenta SPM a DB2 Connect este necesar dac folosii un monitor TP.

52

Ghidul utilizatorului DB2 Connect

Tabela 10. Scenariile de actualizare multilocaie care cer SPM TCP/IP Monitor de procesare tranzacii folosit? Da Manager de puncte de sincronizare? Da Produs server DB2 Connect DB2 Enterprise Server Edition cu licena DB2 Connect aplicat Nu Nu DB2 Connect Personal Edition Produs server DB2 Connect DB2 Enterprise Server Edition cu licena DB2 Connect aplicat DB2 for z/OS V7 DB2 for z/OS V8 sau o versiune ulterioar DB2 for z/OS V7 DB2 for z/OS V8 sau o versiune ulterioar Produs necesar (alegei unul) Baza de date mainframe IBM suportat

Not: O tranzacie distribuit poate actualiza orice baze de date de servere mixate sau suportate. De exemplu, aplicaia dumneavoastr poate actualiza mai multe tabele dintr-o baz de date DB2 pe Windows, o baz de date DB2 for z/OS i o baz de date DB2 for IBM i, toate ntr-o singur tranzacie.

Configurarea DB2 Connect cu un manager de tranzacii compatibil XA


Acest subiect descrie paii de configurare necesari pentru a folosi serverele baz de date IBM Power Systems i System z n monitorul dumneavoastr TP. Trebuie s avei un monitor TP operaional i DB2 Connect instalat, precum i o conexiune configurat i testat la serverul de baz de date mainframe IBM. Pentru a configura DB2 Connect s foloseasc servere baz de date IBM Power Systems i System z n monitorul dumneavoastr TP, realizai urmtorii pai: 1. Configurai monitorul TP astfel nct s poat accesa DB2 XA Switch. DB2 XA Switch livreaz monitorului TP adresele API-urilor DB2 Connect XA. Fiecare monitor TP are o alt cale de a face asta. 2. Configureaz monitorul TP cu irul XA_OPEN din DB2. Fiecare monitor TP are propria cale de a face asta. Pentru informaii despre cum s configurai un ir XA OPEN a lui DB2 pentru a fi folosit de ctre monitorul TP, vedei documentaia proprie a monitorului TP. 3. Dac este necesar, modificai parametrii de configurare implicii DB2 Connect SPM. Serverele de baz de date IBM, gazd i System i (Versiunea 5 Ediia 3 i anterioare) nu suport deocamdat interfaa XA. System i Versiunea 5 Ediia 4 i urmtoarele ofer suport complet pentru XA. SPM este o component a DB2 Connect care mapeaz protocolul de comitere dou faze XA n protocolul de comitere dou faze folosit de servere baz de date mainframe IBM. Implicit, instana DB2 are valori predefinite pentru parametrii de configurare SPM. Cel mai signifiant parametru este parametrul de configurare a managerului bazei de date SPM_NAME. Implicit o variant a primelor 7 caractere ale numelui de gazd TCP/IP.

Capitolul 7. Actualizrile multilocaie

53

Dac folosii TCP/IP s v conectai la DB2 for z/OS, atunci nu ar trebui s modificai nici una din setrile implicite. n acest caz nu este necesar nici o configurare SPM din moment ce este deja operaional.

Suportul DB2 Connect pentru tranzacii cuplate slab


Suportul din DB2 Connect pentru tranzacii cuplate slab este intenionat pentru utilizatori care implementeaz aplicaii distribuite XA care acceseaz DB2 for IBM i V5R4 sau mai recent i DB2 for z/OS Versiunea 7 sau mai recent. Acest suport permite ramuri diferite ale aceleiai tranzacii globale pentru a partaja spaiu de blocare pe DB2 for z/OS. Suportul pentru tranzacii cuplate slab este destinat aplicaiilor .NET i COM+. Aceast caracteristic reduce fereastra n care o ramur a unei tranzacii distribuite ntlnete timeout-uri de blocare sau interblocri din cauza unei alte ramuri din aceeai tranzacie global.

54

Ghidul utilizatorului DB2 Connect

Capitolul 8. Mutarea datelor cu DB2 Connect


Dac lucrai ntr-un mediu complex n care trebuie s mutai datele ntre sistemul baz de date gazd i o staie de lucru, putei folosi DB2 Connect, gateway-ul pentru transferul de date ntre gazd i staia de lucru (vedei Figura 8).

Figura 8. Import/Export prin intermediul DB2 Connect

Utilitarele de export i import DB2 v permit s mutai date de pe un server de baz de date mainframe IBM ntr-un fiier de pe staia de lucru DB2 Connect i invers. Putei folosi apoi datele cu orice alt sistem de gestionare aplicaii sau baze de date relaionale care suport acest format de export sau import. De exemplu, putei exporta date de pe un server baz de date mainframe IBM ntr-un fiier PC/IXF i apoi s-l importai ntr-o baz de date DB2 Database for Linux, UNIX, and Windows. Putei realiza operaii de export sau import dintr-un client de baze de date sau de pe staia de lucru DB2 Connect. Not: 1. Datele care vor fi exportate sau importate trebuie s se conformeze cu restriciile legate de dimensiunea i tipul datelor care sunt aplicabile ambelor baze de date. 2. Pentru a mbunti performana, putei folosi interogri compuse. Specificai modificatorul tipului fiierului compus n utilitarul de import pentru a grupa un numr specificat de instruciuni de interogare ntr-un bloc. Aceasta poate reduce regia reelei i poate mbunti timpul de rspuns. Cu DB2 Connect, operaiile de export i import trebuie s ndeplineasc urmtoarele condiii: v Tipul fiierului trebuie s fie PC/IXF. v O tabel destinaie cu atribute care sunt compatibile cu datele trebuie s fie creat pe serverul destinaie nainte s putei importa pe el. Utilitarul db2look poate fi folosit pentru a obine atributele tabelei surs. Importul prin intermediul DB2 Connect nu poate crea o tabel deoarece INSERT este singura opiune suportat. Dac oricare din aceste condiii nu este ndeplinit, operaia eueaz i este returnat un mesaj de eroare.
Copyright IBM Corp. 1993, 2009

55

Not: Definiiile index nu sunt memorate la exportare i nu sunt folosite pentru import. Dac exportai sau importai date amestecate (coloane ce conin date pe un octet i pe doi octei), considerai urmtoarele: v Pe sistemele care memoreaz datele n EBCDIC (MVS, System z, IBM Power Systems, VM i VSE), caracterele shift-out i shift-in marcheaz nceputul i sfritul datelor pe doi octei. Cnd definii lungimea coloanelor pentru tabelele bazei dumneavoastr de date, asigurai-v c alocai suficient spaiu pentru aceste caractere. v Sunt recomandate coloanele cu caractere de dimensiune variabil, dac datele din coloane nu au un model consistent. Mutarea datelor de pe o staie de lucru pe un server gazd Pentru a muta datele pe un server de baz de date gazd sau System i: 1. Exportai datele dintr-o tabel DB2 ntr-un fiier PC/IXF 2. Folosind opiunea INSERT, importai fiierul PC/IXF ntr-o tabel compatibil n baza de date a serverului gazd. Pentru a muta date dintr-o baz de date server gazd pe o staie de lucru: 1. Exportai datele din tabela bazei de date server gazd ntr-un fiier PC/IXF. 2. Importai fiierul PC/IXF ntr-o tabel DB2. Exemplu Urmtorul exemplu ilustreaz cum se mut date de pe o staie de lucru pe un server de baz de date gazd sau System i. Exportai datele ntr-un format IXF extern emind urmtoarea comand:
db2 export to staff.ixf of ixf select * from userid.staff

Emitei comanda urmtoare pentru a stabili o conexiune DRDA cu baza de date DB2 destinaie:
db2 connect to cbc664 user admin using xxx

Dac nu exist deja, creai tabela destinaie n instana de baz de date DB2 destinaie:
CREATE TABLE mydb.staff (ID SMALLINT NOT NULL, NAME VARCHAR(9), DEPT SMALLINT, JOB CHAR(5), YEARS SMALLINT, SALARY DECIMAL(7,2), COMM DECIMAL(7,2))

Pentru a importa datele emitei comanda urmtoare:


db2 import from staff.ixf of ixf insert into mydb.staff

Fiecare rnd de date va fi citit din fiier n format IXF i o instruciune INSERT SQL va fi emis pentru a insera rndul n tabela mydb.staff. Se va insera cte un rnd pn cnd sunt mutate toate datele n tabela destinaie. Putei gsi informaii detaliate n Moving Data Across the DB2 Family, o publicaie IBM Redbooks. Aceast publicaie Redbooks poate fi gsit la urmtorul URL: http://www.redbooks.ibm.com/redbooks/SG246905.

56

Ghidul utilizatorului DB2 Connect

Capitolul 9. Maparea SQLCODE


Diferite produse baz de date relaional IBM nu produc ntotdeauna aceleai coduri SQLCODE pentru erori similare. Chiar atunci cnd este acelai SQLCODE, ar putea fi nsoit de jetoane care sunt specificate diferit. Lista jetoanelor este transmis n cmpul SQLERRMC din SQLCA. n mod implicit, DB2 Connect mapeaz SQLCODE-urile i jetoanele de la fiecare server de baz de date mainframe IBM la SQLCODE-urile DB2 corespunztoare. Dac dorii s dezactivai maparea SQLCODE, specificai NOMAP n irul de parametri ai directorului DCS. Dac portai o aplicaie direct de pe un server de baz de date mainframe IBM, cum ar fi DB2 for z/OS, ai putea dori oprirea maprii codurilor SQLCODE. Aceasta v va permite s folosii aplicaia fr s schimbai SQLCODE-urile pe care le refer.

Dezactivarea maprii SQLCODE


Dac dorii s oprii maparea codurilor SQLCODE, specificai NOMAP n irul de parametri ai directorului DCS. Dac portai o aplicaie direct de pe un server de baz de date mainframe IBM, cum ar fi DB2 for z/OS, ai putea dori oprirea maprii codurilor SQLCODE. Aceasta v va permite s folosii aplicaia fr s schimbai SQLCODE-urile pe care le refer.

Ajustarea maprii SQLCODE


n mod implicit, DB2 Connect mapeaz SQLCODE-urile i jetoanele de la fiecare server de baz de date mainframe IBM la SQLCODE-urile DB2 corespunztoare. Urmtoarele fiiere sunt copii ale maprilor SQLCODE implicite: v dcs1dsn.map mapeaz SQLCODE-uri DB2 for z/OS. v dcs1ari.map mapeaz SQLCODE-uri DB2 Server for VM and VSE. v dcs1qsq.map mapeaz SQLCODE-uri DB2 for IBM i. Nu sunt necesare pentru DB2 pe sisteme de operare Linux sau UNIX. 1. Dac vrei s suprascriei maparea implicit SQLCODE sau folosii un server baz de date mainframe IBM care nu are o mapare SQLCODE (un server baz de date non-IBM), putei copia unul din aceste fiiere i s l folosii ca baz pentru noul fiier de mapare SQLCODE. Copiind fiierul n loc s-l editai direct, v asigurai c putei ntotdeauna face referire la maparea original SQLCODE, dac este necesar. 2. Specificai numele noului fiier de mapare SQLCODE n irul parametru al directorului DCS. 3. Fiecare fiier de mapare este un fiier de mapare ASCII, care este creat i editat folosind un editor ASCII. La instalarea iniial, fiierul este memorat n directorul mapare din calea de instalare. Fiierul poate conine urmtoarele tipuri speciale de linii: && nceputul logic al fiierului. Toate linii de dinainte de prima apariie a && sunt considerate comentarii n form liber i sunt ignorate. Dac fiierul nu conine

Copyright IBM Corp. 1993, 2009

57

nimic dup &&, nici o mapare SQLCODE nu este realizat. Putei de asemenea dezactiva maparea SQLCODE cu parametrul NOMAP, aa cum s-a descris anterior. * W Ca prim caracter ntr-o linie, indic un comentariu.

Ca prim caracter ntr-o linie, indic faptul c steguleele de avertizare ar trebui remapate. Implicit, sunt transmise steguleele de avertizare originale. Caracterul W trebuie s fie majuscul. Toate liniile dup && trebuie s fie ori spaii, ori instruciuni de mapare n urmtoarea form:
cod_intrare [, cod_ieire [, list_jetoane]]

cod_intrare reprezint una din urmtoarele: sqlcode Codul SQLCODE de la serverul baz de date mainframe IBM. U Toate SQLCODE-urile nedefinite negative (cele ce nu sunt listate n acest fiier) sunt mapate la cod_ieire specificat. Dac nici un cod_ieire nu este specificat n aceast linie, este folosit SQLCODE-ul original. Acest caracter trebuie s fie majuscul. Toate SQLCODE-urile nedefinite pozitive (cele ce nu sunt listate n acest fiier) sunt mapate la cod_ieire specificat. Dac nici un cod_ieire nu este specificat n aceast linie, este folosit SQLCODE-ul original. Acest caracter trebuie s fie majuscul. Codul de clas SQLSTATE de la serverul baz de date mainframe IBM. nn este unul din urmtoarele: 00 01 02 21 22 23 24 26 40 42 51 55 56 57 58 Completare necalificat cu succes Avertisment Nici o dat nclcare de cardinalitate Excepii date nclcare constrngere Stare cursor invalid Identificator instruciuni SQL invalid Derulare napoi tranzacie nclcare acces Stare invalid aplicaie Obiect ce nu este n starea de cerine preliminare Diverse SQL sau Erori de produs Resurse nedisponibile sau intervenie operator Eroare sistem

ccnn

Valoarea cod_ieire specificat este folosit pentru toate SQLCODE-urile cu acest cod de clas care nu sunt specificate explicit n fiierul de mapare. Dac nici un cod_ieire nu este specificat n aceast linie, SQLCODE-ul original este mapat la el nsui, fr s fie copiat nici un jeton peste. Caracterele cc trebuie s fie litere mici.

58

Ghidul utilizatorului DB2 Connect

Dac acelai cod_intrare apare mai mult de o dat n fiierul de mapare, prima apariie este folosit. Valoarea cod_ieire reprezint SQLCODE-ul de ieire. Dac nu este specificat nici o valoare, SQLCODE original este folosit. Dac specificai un cod de ieire, putei de asemenea specifica un din urmtoarele: (s) SQLCODE-ul de intrare i ID-ul de produs (ARI, DSN sau QSQ) vor fi puse n cmpul jetonului de mesaje SQLCA. SQLCODE-ul original este returnat ca fiind singurul jeton. Aceast opiune este conceput pentru a trata SQLCODE-uri nedefinite, exceptnd +965 i -969. Cnd cod_ieire este +965 sau -969, lista de jetoane returnat n cmpul SQLERRMC al SQLCA include SQLCODE-ul original, urmat de identificatorul de produs, urmat de lista de jetoane original. Caracterul s trebuie s fie liter mic. (list-jetoane) O list de jetoane separate de virgule. Specificai doar o virgul pentru a sri un anumit jeton. De exemplu, forma (,t2,,t4) nseamn c primul i al treilea jeton de ieire sunt nule. Fiecare jeton are forma unui numr (n), precedat opional de c, urmat opional de c sau i. Este interpretat dup cum urmeaz: c Tipul datelor jetonului n aceast poziie este CHAR (implicit). Dac c este nainte de n, se refer la jetonul de intrare; dac este dup n, se refer la jetonul de ieire. Caracterul c trebuie s fie liter mic. Tipul datelor jetonului n aceast poziie este INTEGER. Dac i este dup n, se refer la jetonul de ieire. i nu ar trebui s fie nainte de n, deoarece produsele server de baz de date mainframe IBM suport numai jetoane CHAR. Caracterul i trebuie s fie liter mic. Un numr de numere care indic care jetoane server baz de date mainframe IBM sunt folosite. Acestea sunt aranjate n ordinea dorit pentru plasarea n SQLCA de ieire. Numrul indic jetonul server baz de date mainframe IBM; aranjamentul indic ordinea n care jetoanele vor fi plasate n SQLCA. De exemplu, serverul baz de date mainframe IBM ar putea returna dou jetoane, 1 i 2. Dac vrei ca jetonul 2 s apar nainte de jetonul 1 n SQLCA de ieire, specificai (2,1). Pot fi combinate mai multe numere de jeton pentru a forma un jeton de ieire CHAR, prin conectarea lor cu puncte. Virgulele sunt folosite pentru a separa jetoanele de ieire. Dac nu este specificat nici un jeton nainte de o virgul, nici un jeton de ieire nu este inclus n SQLCA pentru aceast poziie. Jetoanele care apar n SQLCA de ieire dup ultimul jeton specificat sunt mapate la un jeton null. Figura 9 la pagina 60 afieaz un fiier de mapare SQLCODE eantion.

Capitolul 9. Maparea SQLCODE

59

&& -007 -010 -060 ... -204 ... -633 -30021 cc00 ... U P

, , , , , , , ,

-007 -171 -204 -206

, , , ,

(1) (2) (c1.2c) (,c1i) (c1c,c2c)

-30021 , +000 -969 +965 , ,

(s) (s)

Figura 9. Un fiier de mapare SQLCODE

Descrierile urmtoare corespund numrului de linie potrivit din figura anterioar: 1. SQLCODE este mapat de la -007 la -007. Primul jeton de intrare primit de la serverul baz de date mainframe IBM este folosit ca primul jeton de ieire i valoarea sa implicit la CHAR. Nici un alt jeton nu este transferat. 2. SQLCODE este mapat de la -010 la -010 (nici un SQLCODE de ieire nu este specificat). Nici un jeton nu este pus n SQLCA de ieire. 3. SQLCODE este mapat de la -060 la -171. Primul jeton de intrare primit de la serverul baz de date mainframe IBM este ignorat. Al doilea este folosit ca primul jeton n SQLCA de ieire i este CHAR. Nu exist un al doilea jeton n SQLCA de ieire. 4. SQLCODE este mapat de la -204 la -204. Primul i al doilea jeton primit de la serverul baz de date mainframe IBM sunt CHAR. Aceste dou jetoane de intrare sunt combinate pentru a forma un jeton de ieire CHAR, care va fi primul jeton de ieire n SQLCA. 5. SQLCODE este mapat de la -633 la -206. Primul jeton de intrare primit de la serverul baz de date mainframe IBM este CHAR. Este convertit la INTEGER i este folosit ca al doilea jeton n SQLCA de ieire. Primul jeton din SQLCA de ieire este null, aa cum este indicat de o virgul. 6. SQLCODE este mapat de la -30021 la -30021. Primul i al doilea jeton de intrare primit de la serverul baz de date mainframe IBM sunt CHAR i sunt folosite ca primul i al doilea jeton din ieirea SQLCA. 7. Toate SQLCODE-urile din SQLCA-uri cu SQLSTATE din clasa 00 vor fi mapate la SQLCODE +000. 8. Toate SQLCODE-urile nedefinite sunt mapate la -969. Aceast opiune trebuie s fie folosit doar dac sunt listate toate codurile mapate, incluzndu-le pe cele care sunt identice i nu necesit mapare. Opiunea (s) indic faptul c lista de jetoane de returnat din cmpul SQLERRMC al SQLCA include SQLCODE-ul original, urmat de produsul n care a aprut eroarea, urmat de lista sa original de jetoane. Dac nu este inclus intrarea U, toate codurile nelistate sunt pasate fr mapare. 9. Toate SQLCODE-urile pozitive nedefinite sunt mapate la -965. Aceast opiune trebuie s fie folosit doar dac sunt listate toate codurile mapate, incluzndu-le pe cele care sunt identice i nu necesit mapare. Opiunea (s) indic faptul c lista de jetoane de returnat din cmpul SQLERRMC al SQLCA include SQLCODE-ul original, urmat de produsul n care a aprut avertismentul, urmat de lista sa original de jetoane. Dac nu este inclus intrarea P, toate codurile pozitive nelistate sunt pasate fr mapare.

60

Ghidul utilizatorului DB2 Connect

Capitolul 10. Monitorizarea sistemului de baz de date i DB2 Connect


Sunt discutate cteva modaliti de a monitoriza conexiunile i performana ntr-un mediu de lucru n care se folosete DB2 Connect. Tipul monitorizrii realizate este specific sistemului de operare.

Monitorizarea conexiunilor pentru clieni la distan


Putei folosi monitor de sistem baz de date cu un produs server DB2 Connect, cum ar fi DB2 Connect Enterprise Edition, pentru a monitoriza conexiunile client la distan. Pentru a monitoriza clienii care sunt locali serverului DB2 Connect, care ruleaz pe nsi serverul, va trebui s setai urmtoarele variabile:
db2set DB2CONNECT_IN_APP_PROCESS=NO

De exemplu, cnd apare o eroare pe sistemul mainframe IBM, administratorul de sistem poate stabili dac problema a fost pe staia de lucru DB2 Connect. Monitorizarea sistemului de baz de date coreleaz: v Jetonul de corelare DRDA (CRRTKN), pentru conversaii neprotejate. v ID-ul unitii de lucru (UOWID), pentru conexiuni n dou faze protejate de managerul de puncte de sincronizare DRDA-3 (cnd sunt utilizate peste conexiunile TCP/IP). v Identificatorul de conexiune DB2 Connect (ID-ul aplicaiei). Aceast informaie arat care dintre conexiunile DB2 Connect a cauzat problema, ceea ce permite administratorului de sistem s foreze aplicaia client de pe sistem fr a-i afecta pe ceilali clieni, utiliznd conexiunea DB2 Connect.

Listarea strii de comutare a monitorizrii


Pentru a lista starea de comutare a monitorizrii, utilizai comanda db2 get monitor switches.

Monitorizarea performanelor utiliznd Windows Performance Monitor


Sistemele de operare Windows furnizeaz o unealt util pentru monitorizarea performanei aplicaiilor dumneavoastr DB2. Monitorul de performan, care este unul din uneltele administrative Windows, afieaz o reprezentare grafic a performanei sistemului. Putei alege o varietate de sisteme, baze de date i articole legate de comunicaii pentru a le monitoriza i mapa mpreun ntr-o reprezentare grafic. De exemplu, rapoartele disponibile prin GET SNAPSHOT FOR ALL DCS DATABASES sau comenzile GET SNAPSHOT FOR ALL DCS APPLICATIONS pot fi realizate grafic n timp real utiliznd monitorizarea i comparate direct cu valori cum ar fi utilizarea CPU. Putei compara direct efectele diferitelor setri de baze de date sau performane n comunicaie. Putei salva configuraiile dumneavoastr specializate de setri n fiiere PMC pe care mai trziu le putei extrage. De exemplu n figura de mai jos, mai multe msuri DB2 sunt afiate pe folosirea CPU. Colecia de valori care este realizat grafic a fost salvat n fiierul db2chart.pmc. Putei salva cte fiiere PMC dorii, fiecare reflectnd alt seciune a performanei sistemului.

Copyright IBM Corp. 1993, 2009

61

Figura 10. Performance Monitor

Pentru a activa monitorizarea aplicaiilor locale va trebui s oprii variabila de mediu DB2CONNECT_IN_APP_PROCESS.

Utilizarea comenzilor GET SNAPSHOT


Monitorul DB2 ine evidena informaiilor de sistem importante. Putei obine un sumar al strii sistemului n orice moment lansnd comanda GET SNAPSHOT. Putei face instantanee ale monitorului dac avei autorizarea SYSMAINT, SYSCTRL sau SYSADM pentru instana de monitor a sistemului de baz de date pe care dorii s o monitorizai. Exist cinci comenzi de instantaneu utile pentru monitorizarea informaiilor DCS. Acestea sunt: v GET SNAPSHOT FOR ALL DCS DATABASES v GET SNAPSHOT FOR ALL DCS APPLICATIONS v GET SNAPSHOT FOR DCS APPLICATION ... v GET SNAPSHOT FOR DCS DATABASE ON alias_bd v GET SNAPSHOT FOR DCS APPLICATIONS ON alias_bd Fiecare comand de instantaneu va produce un raport detaliat despre zona pe care ai cerut-o. De exemplu, lansarea GET SNAPSHOT FOR DCS DATABASE ON DCSDB va produce urmtorul raport:
DCS Database Snapshot DCS database name Host database name First database connect timestamp Most recent elapsed time to connect Most recent elapsed connection duration Host response time (sec.ms) Last reset timestamp = DCSDB = GILROY = 12-15-2001 10:28:24.596495 = 0.950561 = 0.000000 = 0.000000 =

62

Ghidul utilizatorului DB2 Connect

Number of SQL statements attempted Commit statements attempted Rollback statements attempted Failed statement operations Total number of gateway connections Current number of gateway connections Gateway conn. waiting for host reply Gateway conn. waiting for client request Gateway communication errors to host Timestamp of last communication error High water mark for gateway connections Rows selected Outbound bytes sent Outbound bytes received

= 2 = 1 = 0 = 0 = 1 = 1 = 0 = 1 = 0 = None = 1 = 0 = 140 = 103

Acest raport furnizeaz informaii despre conexiunile, performanele, erorile i transferul cererilor SQL pentru baza de date. Instantaneele monitorului DB2 pot fi mult mai detaliate, de fapt. De exemplu, dac lansai comanda GET SNAPSHOT FOR ALL DCS APPLICATIONS, vei primi un raport similar cu urmtorul:
DCS Application Snapshot Client application ID Sequence number Authorization ID Application name Application handle Application status Status change time Client node Client release level Client platform Client protocol Client codepage Process ID of client application Client login ID Host application ID Sequence number Database alias at the gateway DCS database name Host database name Host release level Host CCSID Outbound communication address Outbound communication protocol Inbound communication address First database connect timestamp Host response time (sec.ms) Time spent on gateway processing Last reset timestamp Rows selected Number of SQL statements attempted Failed statement operations Commit statements Rollback statements Inbound bytes received Outbound bytes sent Outbound bytes received Inbound bytes sent Number of open cursors Application idle time UOW completion status Previous UOW completion timestamp UOW start timestamp UOW stop timestamp = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 09150F74.B6A4.991215152824 0001 SMITH db2bp 1 waiting for request 12-15-2001 10:29:06.707086 sys143 SQL06010 AIX TCP/IP 850 49074 smith G9150F74.B6A5.991215152825 0000 MVSDB DCSDB GILROY DSN05012 500 9.21.21.92 5021 TCP/IP 9.21.15.116 46756 12-15-2001 10:28:24.596495 0.000000 0.000000 0 2 0 1 0 404 140 103 287 0 1 minute and 32 seconds

= = 12-15-2001 10:28:25.592631 = 12-15-2001 10:29:06.142790 =

Capitolul 10. Monitorizarea sistemului de baz de date i DB2 Connect

63

Elapsed time of last completed uow (sec.ms)= 0.034396 Most recent operation Most recent operation start timestamp Most recent operation stop timestamp = Execute Immediate = 12-15-2001 10:29:06.142790 = 12-15-2001 10:29:06.707053 Execute Immediate 203 NULLID SQLC2C07 0 0 12-15-2001 10:29:06.142790 12-15-2001 10:29:06.707053 1.101612 0.564263 0 0.013367 220 130 49 27

Statement = Section number = Application creator = Package name = SQL compiler cost estimate in timerons = SQL compiler cardinality estimate = Statement start timestamp = Statement stop timestamp = Host response time (sec.ms) = Elapsed time of last completed stmt(sec.ms)= Rows fetched = Time spent on gateway processing = Inbound bytes received for statement = Outbound bytes sent for statement = Outbound bytes received for statement = Inbound bytes sent for statement = SQL statement text: create table t12 (col1 int, col2 char)

Starea aplicaiei DCS


System Monitor ofer trei forme ale comenzii LIST DCS APPLICATIONS, dup cum urmeaz: v LIST DCS APPLICATIONS v LIST DCS APPLICATIONS SHOW DETAIL v LIST DCS APPLICATIONS EXTENDED n ieirea care urmeaz, formatul pentru Host Application ID i Client Application ID poate fi diferit, n funcie de versiunea bazei de date mainframe IBM i nivelul de suport TCP/IP.
Tabela 11. Formatul ID-ului de aplicaie n funcie de versiunea gazdei i nivelul de suport TCP/IP Scenariu Clienii care acceseaz servere de date cu suport RDB Manager Level mai mic de 7 Clienii care acceseaz servere de date cu nivelul de suport RDB Manager 8 sau mai mare peste TCP/IP v4 Clienii care acceseaz servere de date cu nivelul de suport RDB Manager 8 sau mai mare peste TCP/IP v6 Format ID aplicaie G91A0D3A.P8BC.060306212019

9.26.13.61.65289.060306213816

2002:91a:519:13:209:6bff:fe14:4fbb.7684.060306213741

LIST DCS APPLICATIONS


Pentru a vedea informaiile furnizate de monitor la nivel de aplicaie, lansai comanda DB2 LIST DCS APPLICATIONS.

64

Ghidul utilizatorului DB2 Connect

Returneaz urmtoarele informaii pentru o conexiune TCP/IP (DB2 Connect la DB2 for z/OS):
Auth Id Application Name Appl. Handle ------- ---------------- -----NEWTON db2cli.exe 7 NEWTON db2cli.exe 25 NEWTON db2cli.exe 20 Host Application Id ---------------------------------------------------G91A0D3A.P8BC.060306212019 9.26.13.61.65289.060306213816 2002:91a:519:13:209:6bff:fe14:4fbb.7684.060306213741

Auth.Id (ID de autorizare) ID-ul de autorizare care a fost folosit pentru a v loga la un server baz de date mainframe IBM. Acesta arat cine ruleaz aplicaia. Application Name (Nume aplicaie) Numele aplicaiei ce ruleaz la client, aa cum este cunoscut de DB2 Connect. Sunt disponibili doar primii 20 de octei dup ultimul separator de cale. Appl. Handle (Mner aplicaie) Agentul care se execut pe staia de lucru DB2 Connect. Putei utiliza acest element pentru a lega informaiile monitorului sistemului de baz de date la alte informaii de diagnosticare. ID-ul agentului este de asemenea cerut cnd se utilizeaz API-ul sau comanda FORCE USERS. ID aplicaie gazd Unul dintre urmtoarele: v Jetonul de corelare DRDA (CRRTKN), pentru conversaii neprotejate. v ID-ul unitii de lucru (UOWID), pentru conexiuni n dou faze protejate de DRDA-3 Syncpoint Manager (utilizat peste conexiunile TCP/IP). Identificatorul unic este generat cnd aplicaia se conecteaz la serverul baz de date mainframe IBM. Putei utiliza acest element mpreun cu ID-ul de aplicaie pentru a corela prile de client i de server ale informaiilor de aplicaie.

LIST DCS APPLICATIONS SHOW DETAIL


Dac este specificat formatul de comand DB2 LIST DCS APPLICATIONS SHOW DETAIL, sunt afiate informaii suplimentare, incluznd:
Auth Id Appl. Client Application Id Handle ------------------------------ -------------------- ---------- ---------------------------------------------------NEWTON db2cli.exe 37 2002:91a:519:13:209:6bff:fe14:4fbb.8196.060306214224 Application Name

Seq#

Client DB Alias ----- -------00001 MDB

Client Node -------SAYYID

Client Release -------SQL09000

Client Host Application Id Codepage ---------- -------------------------1252 G91A0D3A.P982.060306214231

Seq#

Host Release ----- -------------------- -------00001 MEXICO DSN08015

Host DB Name

Client Application ID (ID aplicaie client) Identific unic aplicaia conectat la staia de lucru DB2 Connect. Exist diferite formate pentru ID-ul de aplicaie, care sunt dependente de protocolul de comunicaie dintre client i staia de lucru DB2 Connect. Aceast valoare v permite s corelai conexiunile de la clieni la staia de lucru DB2 Connect i de la staia de lucru DB2 Connect la serverul de baz de date mainframe IBM.
Capitolul 10. Monitorizarea sistemului de baz de date i DB2 Connect

65

Client Sequence no (Seq#) (Numr de ordine client) Numrul de ordine client este numrul de ordine al tranzaciei. Este utilizat pentru a ajuta la corelarea unei tranzacii mprtiat pe diferite sisteme. Client DB alias (Alias DB client) Aliasul bazei de date furnizat de aplicaie pentru conectarea la baza de date. Acest element poate fi utilizat pentru a identifica baza de date actual pe care o acceseaz aplicaia. Maparea dintre acest nume i numele bazei de date poate fi realizat utiliznd directoarele bazei de date de pe nodul client i nodul server al managerului de baz de date. Client NNAME (Node) Identific nodul unde se execut aplicaia client. Informaiile variaz n concordan cu protocolul client care este utilizat. Pentru un client conectat prin TCP/IP, acesta este numele de gazd. Client Product ID (ID produs client) Produsul i versiunea care ruleaz pe client. ID-urile produsului client vor fi: v SQL07010 pentru versiunea 7.1 a produselor DB2 Universal Database i DB2 Connect i clienii lor. v SQL08010 pentru versiunea 8.1 a produselor DB2 Universal Database i DB2 Connect i clienii lor. v SQL08020 pentru versiunea 8.2 a produselor DB2 Universal Database i DB2 Connect i clienii lor. v SQL09120 pentru Versiunea 9.1 a produselor DB2, produselor DB2 Connect i clienii lor. Code Page ID (ID pagin de cod) Identificatorul de pagin de cod la nodul unde a fost pornit aplicaia monitorizat. Putei folosi aceste informaii pentru a v asigura c conversia de date este suportat ntre pagina de cod a aplicaiei i pagina de cod a bazei de date (sau pentru bazele de date ale serverului baz de date mainframe IBM, CCSID-ul serverului baz de date mainframe IBM). Dac pagina de cod a aplicaiei este diferit de cea sub care ruleaz monitorul sistemului de baz de date, acest element de pagin de cod v poate ajuta s convertii manual datele care au fost trimise de aplicaie i afiate de monitorul sistemului de baz de date. De exemplu, l putei utiliza pentru ajutorul n traducerea numelui de aplicaie. Outbound Sequence No (Numrul de ordine al ieirii) Acesta reprezint numrul de ordine al ieirii. Este utilizat pentru corelarea tranzaciilor ntre diferite sisteme. Host Database Name (Numele bazei de date gazd) Numele real al bazei de date la care este conectat aplicaia. n directorul DCS, acesta este numele bazei de date destinaie. Host Product ID (ID produs gazd) Produsul i versiunea care ruleaz pe server. Are forma PPPVVRRM, unde: PPP Identific produsul server de baz de date mainframe IBM (de exemplu DSN pentru DB2 for z/OS, ARI pentru DB2 Server for VSE & VM sau QSQ pentru DB2 for IBM i) Reprezint un numr de versiune de dou cifre, cum ar fi 08. Reprezint un numr de ediie de dou cifre, cum ar fi 01. Reprezint nivelul de modificare, de un caracter (0-9 sau A-Z).

VV RR M

66

Ghidul utilizatorului DB2 Connect

LIST DCS APPLICATIONS EXTENDED


Putei utiliza comanda LIST DCS APPLICATIONS cu opiunea EXTENDED pentru a genera un Raport extins. Raportul extins listeaz toate cmpurile care sunt apar cnd este specificat n comand opiunea SHOW DETAIL, plus nou cmpuri noi: v v v v v v v Starea aplicaiei DCS Status change time (Timp modificare stare) Client platform (Platform client) Client protocol (Protocol client) CCSID (Host Coded Character Set Identifier - Identificator set de caractere codat gazd). Client login ID (ID logare client) Process ID of client application (ID-ul de proces al aplicaiei client)

v Database alias at the gateway (Aliasul bazei de date la gateway) v DCS database name (Numele bazei de date DCS) n timp ce opiunea existent a comenzii listeaz cmpurile orizontal, cte o linie pentru aplicaie, noua opiune le listeaz vertical, cte un cmp pe linie. Iat noua sintax a comenzii:
LIST DCS APPLICATIONS [SHOW DETAIL | EXTENDED ]

Acesta este un exemplu de ieire a acestei comenzi, cnd se utilizeaz noua opiune EXTENDED:
List of DCS Applications - Extended Report Client application ID Sequence number Authorization ID Trusted Authorization ID Application name Application handle Application status Status change time Client node Client release level Client platform Client protocol Client codepage Process ID of client application Client login ID Host application ID Sequence number Database alias at the gateway DCS database name Host database name Host release level Host CCSID = 2002:91a:519:13:209:6bff:fe14:4fbb.8196.060306214224 = 00001 = NEWTON = = db2cli.exe = 37 = waiting for request = Not Collected = SAYYID = SQL09000 = NT = TCP/IP = 1252 = 1192 = ISAYYID = G91A0D3A.P982.060306214231 = 00001 = MDB = MDB = MEXICO = DSN08015 = 1208

Cmpul de stare al aplicaiei conine una din urmtoarele valori: 1. connect pending - outbound. Aceasta nseamn c cererea de conectare la o baz de date mainframe IBM a fost emis i DB2 Connect ateapt s fie stabilit conexiunea. 2. waiting for request. Conexiunea cu baza de date mainframe IBM a fost stabilit i DB2 Connect ateapt pentru o instruciune SQL de la aplicaia client 3. waiting for reply. Aceasta nsemn c instruciunea SQL a fost trimis la baza de date mainframe IBM.
Capitolul 10. Monitorizarea sistemului de baz de date i DB2 Connect

67

De asemenea, timpul modificrii strii este afiat n report doar dac n timpul procesrii a fost activat comutatorul System Monitor UOW. n caz contrar, va fi afiat, Not Collected (necolectat).

Monitorul de sntate i alertele


Monitorul de sntate din DB2 for z/OS evalueaz periodic politicile de ntreinere a obiectelor. Dac monitorul de sntate determin c este necesar ntreinerea unui obiect, sunt create alerte de sntate. Aciunile realizate ca rspuns la alertele de sntate pot fi vizualizate, lansate pentru rulare i salvate.

Privire general asupra monitorului de sntate DB2 for z/OS


Pe sistemele z/OS, monitorul de sntate DB2 for z/OS este pornit ca un task pentru fiecare subsistem DB2 care trebuie s fie monitorizat sau pentru un membru dedicat al unui grup de partajare a datelor. Monitorul de sntate DB2 for z/OS declaneaz evaluarea politicilor de ntreinere a obiectelor la momentele i intervalele planificate, aa cum s-a definit n politic. Politicile de ntreinere a obiectelor sunt create folosind vrjitorul de creare a politicilor de ntreinere a obiectelor, din Centrul de control DB2. n timpul fiecrei evaluri de politic, este verificat criteriul pentru recomandarea ntreinerii pe baza pragurilor setate n politica de ntreinere a obiectelor, pentru a determina necesitatea ntreinerii obiectelor (adic dac este nevoie de COPY, REORG, RUNSTATS, STOSPACE, ALTER TABLESPACE sau ALTER INDEX) i a identifica strile restricionate, cum ar fi CHKP, pentru obiectele din grupul de stocare, spaiul de tabel i index, dac este cazul. Dac n timpul evalurii politicii sunt identificate obiecte aflate n stare de alert, sunt notificate contactele din politic pentru alertarea cu privire la sntate, la adresele lor de e-mail sau numerele de pager. Lista contactelor de alertat cu privire la sntate pentru fiecare subsistem DB2 este definit i gestionat n Centrul de control. Cnd este pornit, monitorul de sntate realizeaz un instantaneu iniial al planificrii evalurii politicilor, pe care l folosete pentru a determina cnd trebuie s declaneze evalurile de politic. Acest instantaneu de planificare este remprosptat la momentele specificate la pornirea monitorului de sntate sau atunci cnd monitorul de sntate primete o comand de remprosptare. Modificrile din planificarea de evaluare a unei politici sunt preluate de monitorul de sntate atunci cnd se realizeaz remprosptarea planificrii. Monitorul de sntate este pornit i oprit de la consol, folosind comenzile START i STOP ale sistemului MVS. Jobul de instalare DSNTIJHM plaseaz n biblioteca de proceduri un exemplu de procedur catalogat (DSNHMONP) care pornete un monitor de sntate DB2 i un exemplu de procedur catalogat (DSNHMONA) care pornete mai multe monitoare de sntate DB2 ntr-un sistem MVS sau ntr-un Parallel Sysplex. Vizualizrile, tabelele, seturile de date, procedurile catalogate, procedurile memorate, funciile definite de utilizator i tabela cu setul de rezultate folosite de monitorul de sntate db2 sau de taskurile nrudite de mai jos sunt create i instalate de joburile de instalare DSNTIJCC i DSNTIJHM. DSNTIJCC i DSNTIJHM sunt livrate cu FMID-urile JDB771D i JDB881D. Istoricul de evaluare a politicii Evalurile de politic declanate de monitorul de sntate DB2 sunt nregistrate n tabela DSNACC.HM_EVAL_LOG. n istoric sunt create intrri atunci cnd ncepe evaluarea de politic i atunci cnd se termin evaluarea. Intrrile istoricului sunt pstrate 7 zile, dup care

68

Ghidul utilizatorului DB2 Connect

sunt terse din tabel. Poate fi folosit vizualizarea DB2 DSNACC.HM_ALERT_PO_EV, creat pentru aceast tabel de jobul de instalare DSNTIJCC, pentru a afia toate politicile a cror ultim evaluare nu s-a realizat cu succes.

Pornirea, oprirea i remprosptarea monitorului de sntate DB2 for z/OS


Pe sistemul z/OS, monitorul de sntate DB2 for z/OS este pornit ca un task pentru fiecare subsistem DB2 care trebuie s fie monitorizat sau pentru un membru dedicat al unui grup de partajare a datelor. v Pentru a porni un monitor de sntate DB2, lansai urmtoarea comand START n sistemul MVS:
S membername,DB2SSN=ssid,JOBNAME=HMONssid,TRACE=trace,REFRESH=nn

Parametrii TRACE i REFRESH sunt opionali. membername Specific un membru al bibliotecii de proceduri executat pentru a porni monitorul de sntate DB2, i anume DSNHMONP. Aceast procedur catalogat este creat de jobul de instalare DSNTIJHM. ssid Specific numele sau identificatorul subsistemului DB2 care trebuie s fie monitorizat. trace Specific steguleul de urmrire. Valorile posibile sunt: ON - Se activeaz urmrirea. nregistrrile de urmrire sunt scrise n SYSOUT OFF - Nu se activeaz urmrirea. Valoarea implicit este OFF. nn Specific ora (n formatul de 24 de ore) la care monitorul de sntate remprospteaz instantaneul planificrii evalurii, folosit la declanarea evalurilor de politic. Valoarea implicit este 22. v Pentru a porni mai multe monitoare de sntate DB2, lansai urmtoarea comand START n sistemul MVS:
S membername

membername Un membru al bibliotecii de proceduri executat pentru a porni mai multe monitoare de sntate DB2, i anume DSNHMONA. Not: nainte de a porni mai multe monitoare de sntate DB2 cu o singur comand START folosind DSNHMONA, setul de date HMONPARM specificat n procedura DSNHMONA trebuie s fie populat cu lista subsistemelor care trebuie s fie monitorizate. Procedura catalogat i setul de date sunt create de jobul de instalare DSNTIJHM. v Pentru a remprospta instantaneul planificrii evalurilor de politic, folosit de monitorul de sntate DB2 pentru a determina cnd trebuie s declaneze evaluarea politicii, lansai urmtoarea comand MODIFY n sistemul MVS:
F HMONssid,APPL=REFRESH

ssid Numele sau identificatorul subsistemului DB2 care este monitorizat de monitorul de sntate DB2 pe care l remprosptai. v Pentru a opri un monitor de sntate DB2, lansai urmtoarea comand STOP n sistemul MVS:
Capitolul 10. Monitorizarea sistemului de baz de date i DB2 Connect

69

STOP HMONssid sau P HMONssid

ssid Numele sau identificatorul subsistemului DB2 care este monitorizat de monitorul de sntate DB2 pe care l oprii.

Vizualizarea, lansarea i salvarea aciunilor recomandate


Pentru a vizualiza, lansa i salva aciunile recomandate pentru obiectele de alert identificate n timpul evalurii de politic, apelai procedura memorat DB2 SYSPROC.DSNACCHR, care este creat de jobul de instalare DSNTIJCC. DSNACCHR este o procedur memorat ce determin aciunile recomandate pentru obiectele de alert identificate n timpul evalurii de politic i genereaz un job JCL care va executa aciunile recomandate. Urmtoare diagram de sintax prezint instruciunea SQL CALL pentru invocarea DSNACCHR. Deoarece convenia de legare pentru DSNACCHR este GENERAL WITH NULLS, dac transmitei parametri n variabile gazd trebuie s includei un indicator null pentru fiecare variabil gazd. Trebuie s iniializai indicatorii null pentru variabilele de intrare gazd nainte de a executa instruciunea CALL. Sintaxa
CALL DSNACCHR ( query-type, health-ind, policy-id, work-set, dataset-name, NULL member-name, NULL save-opt, NULL trace-flag,

job-id, jobname, jcl-proc-time, trace-flag, last-statement, return-code, error-msg )

query-type Specific ce dorii s facei cu aciunile recomandate pentru obiectele identificate ca fiind n stare de alert n timpul evalurii politicii. Valorile posibile sunt: v 0 - Vizualizarea aciunilor recomandate pentru obiectele de alert ca job JCL v 1 - Lansarea jobului JCL care execut aciunile recomandate pentru obiectele de alert v 2 - Lansarea jobului JCL care execut aciunile recomandate pentru obiectele de alert i punerea jobului n coada de ateptare v 3 Salvarea aciunilor recomandate pentru obiectele de alert ca job JCL ntr-un membru al bibliotecii query-type este un parametru de intrare de tip INTEGER. health-ind Specific tipul de alert pe care l include DSNACCHR n jobul JCL. Valorile posibile sunt: v RS - Stare restricionat v EX - Extensii depite v RR - Necesit REORG v CR - Necesit COPY v RT - Necesit RUNSTATS v SS - Necesit STOSPACE health-ind este un parametru de intrare de tip VARCHAR(4).

70

Ghidul utilizatorului DB2 Connect

policy-id Specific o politic de ntreinere a obiectelor. policy-id este un parametru de intrare de tip VARCHAR(7). work-set Specific setul de lucru al unei politici de ntreinere care a identificat obiectele de alert pe care DSNACCHR le include n jobul JCL. Acest set de lucru trebuie s fie identificat cu politica i tipul de alert specificate de parametrii policy-id i health-ind. work-set este un parametru de intrare de tipul INTEGER. dataset-name Specific un set de date partiionate (PDS) complet calificat sau un nume de set extins de date partiionate (PDSE). Aceast valoare trebuie s fie specificat dac query-type este 3. dataset-name este un parametru de intrare de tipul VARCHAR(44). member-name Specific un membru al setului de date partiionate (PDS) sau al setului extins de date partiionate (PDSE) specificat n parametrul dataset-name, n care va fi salvat jobul JCL de ntreinere. Aceast valoare trebuie s fie specificat dac query-type este 3. member-name este un parametru de intrare de tip VARCHAR(8). save-opt Specific modul n care se salveaz jobul JCL de ntreinere a obiectelor. Aceast valoare trebuie s fie specificat dac query-type este 3. Valorile posibile sunt: v R - nlocuire v A - Adugare la sfrit v NM - Membru nou save-opt este un parametru de intrare de tip VARCHAR(2). trace-flag Specific dac urmrirea va fi activat sau dezactivat. Valorile posibile sunt: v Y - Se activeaz urmrirea v N - Se dezactiveaz urmrirea trace-flag este un parametru de intrare de tip CHAR(1). job-ID Cnd query-type este 1 sau 2, specific ID-ul de job al jobului lansat. job-id este un parametru de intrare de tip VARCHAR(8). jobname Cnd query-type este 1 sau 2, specific numele jobului lansat. jobname este un parametru de intrare de tip VARCHAR(8). jcl-proc-time

Capitolul 10. Monitorizarea sistemului de baz de date i DB2 Connect

71

Specific momentul n care a fost procesat cererea. jcl-proc-time este un parametru de ieire de tip TIMESTAMP. last-statement Cnd DSNACCHR returneaz o eroare grav (codul de retur 12), acest cmp conine instruciunea SQL care a fost executat cnd a aprut eroarea. last-statement este un parametru de ieire de tip VARCHAR(2500). return-code Codul returnat de execuia DSNACCHR. Valorile posibile sunt: v 0 - DSNACCHR s-a executat cu succes v 12 - DSNACCHR s-a terminat cu erori grave. Parametrul error-msg conine un mesaj care descrie eroarea. Parametrul last-statement conine instruciunea SQL care se executa cnd a aprut eroarea. return-code este un parametru de tip INTEGER. error-msg Cnd DSNACCHR returneaz o eroare grav (codul de retur 12), acest cmp conine mesaje de eroare, inclusiv SQLCA formatat. error-msg este un parametru de ieire de tip VARCHAR(1331). DSNACCHR returneaz un set de rezultate cnd parametrul query-type este 0. Setul de rezultate conine jobul JCL generat de DSNACCHR. Tabela cu setul de rezultate DSNACCHR este creat de jobul de instalare DSNTIJCC. Tabela 12 afieaz formatul setului de rezultate.
Tabela 12. Formatul setului de rezultate DSNACCHR Nume coloan JCLSEQNO Tip date INTEGER Numrul de ordine al rndului din tabel (1,...,n) JCLSTMT VARCHAR(80) Specific o instruciune JCL Descriere

Vizualizarea sumarelor de alerte privind sntatea


Funcia HEALTH_OVERVIEW returneaz informaii din setul de date KSDS VSAM Health Alert Summary ca o tabel DB2. Acest set de date este creat de jobul de instalare DSNTIJHM. Setul de date Health Alert Summary conine informaii privind starea monitorului de sntate DB2 i statisticile sumarelor de alerte pentru fiecare subsistem DB2 monitorizat anterior sau curent de monitorul de sntate n sistemul MVS sau Parallel Sysplex. Aceste informaii sunt returnate clientului cu un rnd pentru fiecare subsistem DB2 i recomandare privind alerta. Rezultatul funciei este o tabel DB2 cu urmtoarele coloane: ip-addr Adresa IP a serverului DB2. Aceasta este o coloan de tip VARCHAR(40). db2-ssid

72

Ghidul utilizatorului DB2 Connect

Identificatorul subsistemului DB2. Aceasta este o coloan de tip VARCHAR(4). health-ind Tipul de alert. Valorile posibile sunt: v RS - Stare restricionat v EX - Extensii depite v RR - Necesit REORG v CR - Necesit COPY v RT - Necesit RUNSTATS v SS - Necesit STOSPACE v PO - Evaluare de politic euat v HM - Stare monitor de sntate health-ind este o coloan de tip VARCHAR(4). host-name Numele de domeniu complet calificat al serverului DB2. Aceasta este o coloan de tip VARCHAR(255). summary-stats Starea monitorului de sntate DB2 dac health-ind este HM. Valorile posibile sunt: v 0 Monitorul de sntate nu este pornit v 1 Monitorul de sntate este pornit v -1 Starea monitorului de sntate este necunoscut Altfel, numrul total de obiecte de alert cu tipul de alert specificat n health-ind. Aceasta este o coloan de tip INTEGER. alert-state Starea alertei specificate n health-ind. Valorile posibile sunt: v 5 - Alarm v 4 - Atenie v 3 - Avertisment v 0 - Normal alert-state este ntotdeauna 0 cnd health-ind este HM. Aceasta este o coloan de tip INTEGER. Numele programului extern pentru funcie este HEALTH_OVERVIEW, iar numele specific este DSNACC.DSNACCHO. Aceast funcie este creat de jobul de instalare DSNTIJCC. Exemplu: Gsii numrul total de obiecte de alert care necesit COPY pentru subsistemul DB2 ABCD:
SELECT SUMMARYSTATS FROM TABLE (DSNACC.HEALTH_OVERVIEW()) AS T WHERE DB2SSID = 'ABCD' AND HEALTHIND = 'CR';

Capitolul 10. Monitorizarea sistemului de baz de date i DB2 Connect

73

Vizualizarea obiectelor de alert privind sntatea


Obiectele de alert identificate n timpul ultimei iteraii realizate cu succes a evalurii de politic sunt salvate n aceste tabele depozit de obiecte de alert, n funcie de tipul obiectului. Obiectele de alert sunt: v DSNACC.HM_MAINT_TS pentru spaiile de tabel v DSNACC.HM_MAINT_IX pentru indeci v DSNACC.HM_MAINT_SG pentru grupurile de stocare DB2 creeaz un numr de vizualizri pentru aceste tabele depozit de obiecte de alert. Vizualizrile i tabelele depozit de obiecte de alert sunt create de jobul de instalare DSNTIJCC. Tabela 13 listeaz tabelele pentru care sunt definite vizualizri i descrieri de vizualizri. Toate numele de vizualizri i numele de tabele au calificativul DSNACC.
Tabela 13. Vizualizrile pentru obiectele de alert privind sntatea Nume vizualizare HM_ALERT_TS_RS HM_ALERT_TS_EX HM_ALERT_TS_RR HM_ALERT_TS_CR HM_ALERT_TS_RT HM_ALERT_IX_RS HM_ALERT_IX_EX HM_ALERT_IX_RR HM_ALERT_IX_CR HM_ALERT_IX_RT HM_ALERT_SG_SS Tabel HM_MAINT_TS HM_MAINT_TS HM_MAINT_TS HM_MAINT_TS HM_MAINT_TS HM_MAINT_IX HM_MAINT_IX HM_MAINT_IX HM_MAINT_IX HM_MAINT_IX HM_MAINT_SG Descriere vizualizare Afieaz toate spaiile de tabel n stare restricionat Afieaz toate spaiile de tabel ale cror extensii au depit o limit specificat de utilizator Afieaz toate spaiile de tabel care necesit REORG Afieaz toate spaiile de tabel care necesit COPY Afieaz toate spaiile de tabel care necesit RUNSTATS Afieaz toi indecii care sunt n stare restricionat Afieaz toi indecii ale cror extensii au depit o limit specificat de utilizator Afieaz toi indecii care necesit REORG Afieaz toi indecii care necesit COPY Afieaz toi indecii care necesit RUNSTATS Afieaz toate grupurile de stocare care necesit STOSPACE

74

Ghidul utilizatorului DB2 Connect

Partea 3. Disponibilitatea nalt i DB2 Connect


Pentru un mediu de lucru n care se folosete DB2 Connect exist considerente specifice n ceea ce privete disponibilitatea nalt. Dac, dintr-un anumit motiv, un server de baz de date dintr-o reea devine indisponibil, este important capabilitatea de a redireciona o staie de lucru client la un server alternativ de baz de date.

Copyright IBM Corp. 1993, 2009

75

76

Ghidul utilizatorului DB2 Connect

Capitolul 11. Disponibilitatea nalt i echilibrarea ncrcrii pentru conectivitatea bazei de date gazd
Pe piaa actual a tehnologiei informaiei exist o mare cerere pentru disponibilitatea non-stop a datelor. Aceast cerin trebuie ndeplinit pentru ca o afacere s in pasul cu concurena i s i continue dezvoltarea. Multe dintre aplicaiile actuale de Web, de e-business i de calcul tabelar necesit acces la datele de ntreprindere. Trebuie stabilit o conexiune de ncredere, rapid i securizat la bazele de date mainframe IBM. Aceast conexiune trebuie s fie disponibil constant i s poat trata cererile de conexiune n condiii de ncrcare critic. Cum poate fi construit o astfel de conexiune?

Scenariu de disponibilitate ridicat


O companie are mai multe staii de lucru i servere de aplicaii care ruleaz pe Windows, Linux i UNIX. Aceste maini necesit acces la date care se afl pe mai multe baze de date mainframe IBM. Aplicaiile care ruleaz pe aceste maini necesit conexiuni rapide i fiabile la bazele de date. ntregul sistem este conectat printr-o reea Ethernet utiliznd TCP/IP.

DB2 for VSE DB2 for VM DB2 for z/OS System z


Servere Power Systems DB2 for IBM i

Ethernet TCP/IP

Windows
Figura 11. Scenariu de reea exemplu

AIX

Linux

Pentru staii de lucru i servere de aplicaii care acceseaz baze de date mainframe IBM, avei nevoie de o component de conectivitate ca intermediar. Aceast component trebuie s furnizeze o conexiune la bazele de date mainframe IBM care s fie de nalt disponibilitate, robust i rapid. De asemenea, trebuie s fie scalabil, pentru a anticipa viitoarea cretere a volumului de conexiuni. Folosii legturile nrudite din acest subiect pentru a vedea detalii despre soluia bazat pe DB2 Connect i caracteristica de rerutare automat a clientului.
Copyright IBM Corp. 1993, 2009

77

78

Ghidul utilizatorului DB2 Connect

Capitolul 12. Descrierea i setarea rerutrii automate a clientului (DB2 Connect)


Principalul scop al caracteristicii de rerutare automat client este aceea de a activa o aplicaie client IBM Data server pentru a recupera dintr-o pierdere de comunicaii, astfel nct aplicaia s poat continua s funcioneze cu un minimum de ntreruperi. Aa cum arat i numele, rerutarea este elementul central al suportului pentru operaii continue. Dar rerutarea este posibil doar atunci cnd exist o locaie alternativ care este identificat conexiunii clientului. ntr-un mediu de nalt disponibilitate non-DB2 Connect, baza de date care este accesat este n mod obinuit sincronizat ntre serverul DB2 original i serverul DB2 alternativ, prin unul din diversele mijloace, cum ar fi HACMP (High Availability Cluster MultiProcessor ) sau HADR (High Availability Disaster Recovery). n cazul serverului DB2 Connect, deoarece nu este nevoie de sincronizarea bazelor de date locale, trebuie doar s v asigurai c att serverul DB2 Connect original, ct i cel alternativ, au baza de date mainframe IBM destinaie catalogat, astfel nct s fie accesibil folosind un alias de baz de date identic. Not: ntr-un mediu de server DB2 Connect alternativ, poate fi specificat un server DB2 Connect pentru a activa rerutarea automat ntre un client i serverul DB2 Connect. Pentru ca rerutarea s aib loc ntre produsele DB2 Connect personal sau server i un server de baz de date mainframe IBM, serverul de la distan trebuie s furnizeze una sau mai multe adrese alternative pentru el. n cazul DB2 for z/OS, se cunosc mai multe adrese dac baza de date este un mediu Sysplex de partajare a datelor. Capabilitatea de rutare pentru Sysplex poate fi configurat ntre DB2 Connect i serverul de baz de date gazd, dac este activat suportul Sysplex. Capabilitatea de rerutare pentru Sysplex este o caracteristic DB2 Connect care permite DB2 Connect s rencerce conexiunea la ali membri din grupul Sysplex, dup ce s-a pierdut conexiunea la membrul original. Serverul alternativ nu este nevoie s fie catalogat n directorul bazei de date pentru a se activa capabilitatea de rerutare pentru Sysplex pe DB2 Connect. Implicit, capabilitatea de rerutare pentru Sysplex este activat, dac suportul Sysplex este activat. Pentru ca un client IBM Data Server s poat recupera dintr-o pierdere a comunicaiei cu un server DB2 Connect folosind rerutarea automat a clientului, o locaie de server DB2 Connect alternativ trebuie specificat nainte de apariia pierderii de comunicaie. Pentru a defini locaia serverului DB2 Connect alternativ pentru o anumit baz de date mainframe IBM, este folosit comanda UPDATE ALTERNATE SERVER FOR DATABASE. Numele de gazd alternativ i numrul de port sunt date ca parte a comenzii. Locaia este memorat n fiierul director baz de date sistem pe serverul DB2 Connect. Pentru ca s fii sigur c locaia serverului DB2 Connect alternativ specificat se aplic la acea baz de date pentru toi clienii, locaia serverului alternativ trebuie specificat la nivelul serverului DB2 Connect. Serverul alternativ este ignorat dac este setat ca instan a clientului. De exemplu, s presupunem c o baz de date mainframe IBM este catalogat folosind aliasul de baz de date db1 la serverul DB2 Connect S1 (cu un numele de gazd db2conn1 i numrul de port 122). Administratorul bazei de date dorete s specifice un server DB2 Connect alternativ S2 la numele de gazd db2conn2 cu numrul de port 123. Mai jos este comanda pe care administratorul bazei de date o va rula la serverul DB2 Connect S1:
db2 update alternate server for database db1 using hostname db2conn2 port 123

Copyright IBM Corp. 1993, 2009

79

Dup ce ai specificat locaia serverului DB2 Connect alternativ pentru aliasul de baz de date db1 la serverul DB2 Connect S1, informaiile despre locaia serverului alternativ sunt returnate clientului IBM Data Server ca parte a procesului de conectare. n cazul n care comunicaiile ntre clientul IBM Data Server i serverul DB2 Connect S1 se pierd pentru un motiv oarecare (de obicei o eroare de comunicaie, cum ar fi codul SQL -30081 sau codul SQL -1224), clientul IBM Data Server va ncerca s se reconecteze la db1 fie prin serverul DB2 Connect original (S1), fie prin serverul DB2 Connect alternativ (S2), comutnd ntre ncercrile cu fiecare server. Intervalul de timp ntre ncercri este mic la nceput, apoi gradual se mrete cu fiecare ncercare. Cnd o conectare s-a fcut cu succes, codul SQL -30108 este returnat pentru a arta c o conexiune de baz de date a fost restabilit dup eec de comunicaie. Sunt returnate numele de gazd sau adresa IP i numele de serviciu sau numrul de port. Clientul IBM Data server ntoarce aplicaiei doar eroarea pentru eecul comunicaiilor iniiale, dac restabilirea comunicaiilor clientului cu serverul original sau cu cel alternativ nu este posibil. Trebuie s notai urmtoarele considerente privitoare la conectivitatea cu server alternativ ntr-un mediu de server DB2 Connect: v Cnd folosii un server DB2 Connect pentru a furniza acces la o baz de date mainframe IBM att pentru clienii locali, ct i pentru cei la distan, poate aprea confuzia cu privire la informaiile de conectivitate ale serverului alternativ, dintr-o intrare de director baz de date sistem. Pentru a minimiza confuzia, considerai catalogarea a dou intrri n directorul bazei de date sistem pentru a reprezenta aceeai baz de date mainframe IBM. Catalogai o intrare pentru clienii la distan i o alta pentru clienii locali. v Orice informaii SYSPLEX care sunt ntoarse de la un server DB2 for z/OS destinaie sunt pstrate doar n cache la serverul DB2 Connect. Numai un singur server alternativ este scris pe disc. Cnd exist mai multe servere alternative sau mai multe servere active, informaiile sunt pstrate n memorie i se pierd cnd se termin procesul.

80

Ghidul utilizatorului DB2 Connect

Capitolul 13. Configurarea re-rutrii automate a clientului pentru tehnologia de distribuitor a conexiunii client
Tehnologiile de distribuitor sau dispecer, cum ar fi WebSphere EdgeServer, distribuie cererile de reconectare a aplicaiei client la un set definit de sisteme dac serverul primar de baz de date eueaz. Dac folosii o tehnologie de distribuitor cu re-rutarea automat a clientului DB2, trebuie s identificai distribuitorul ca server alternativ pentru re-rutarea automat a clientului DB2. Este posibil s folosii o tehnologie de distribuitor ntr-un mediu similar urmtorului: Client > tehnologie de distribuitor > (Server 1 DB2 Connect sau Server 2 DB2 Connect) > DB2 z/OS unde : v Componenta de tehnologie de distribuitor are un nume de gazd TCP/I de DThostname v Serverul 1 DB2 Connect are un nume de gazd TCP/IP de GWYhostname1 v Serverul 2 DB2 Connect are un TCP/IP de GWYhostname2 v Serverul DB2 z/OS are numele de gazd TCP/IP zOShostname Clientul este catalogat folosind DThostname pentru a utiliza tehnologia de distribuitor pentru a accesa oricare dintre Serverele DB2 Connect . Tehnologia de distribuitor care intervine ia decizia s foloseasc GWYhostname1 sau GWYhostname2. O dat ce decizia este luat, clientul are o conexiune socket direct la una din aceste dou porturi DB2 Connect. O dat ce conexiunea socket este realizat la serverul ales DB2 Connect, avei un client tipic de server DB2 Connect la conectivitatea DB2 z/OS. De exemplu, presupunnd c distribuitorul alege GWYhostname2. Aceasta produce urmtorul mediu: Client > DB2 Connect Server 2 > DB2 z/OS Distribuitorul nu rencearc nici o conexiune dac exist orice tip de eec de comunicaii. Dac dorii s activai caracteristica de rerutare client automat pentru o baz de date ntr-un asemenea mediu, serverul alternativ pentru baza de date asociat sau bazele de date din serverul DB2 Connect (DB2 Connect Server 1 sau DB2 Connect Server 2) ar trebui setat s fie distribuitor. (DThostname). Apoi, dac DB2 Connect Server 1 se blocheaz din orice motiv, rerutarea de client automat reacioneaz i o conexiune client este rencercat cu distribuitorul att pe serverul primar ct i pe serverul alternativ. Aceast opiune v permite s combinai i s meninei capabilitile de distribuitor cu caracteristica de rerutare de client automat DB2. Setarea serverului alternativ la o gazd diferit de numele de gazd de distribuitor asigur clienii cu caracteristica de rerutare de client automat. Totui, clienii vor stabili conexiuni directe la serverul alternativ definit i vor ocoli tehnologia de distribuitor, ceea ce elimin distribuitorul i valoarea pe care el o aduce. Caracteristica de rerutare client automat intercepteaz urmtoarele coduri SQL: v sqlcode -20157 v sqlcode -1768 (cod motiv = 7)

Copyright IBM Corp. 1993, 2009

81

Not: Rerutarea de client poate s nu fie informat de eecurile de socket la acest moment de timp dac setarea parametrului de configurare sistem de operare TCP Keepalive este prea nalt. (Notai c numele acestui parametru de configurare difer cu platforma.)

82

Ghidul utilizatorului DB2 Connect

Partea 4. Ajustarea i DB2 Connect


Exist considerente speciale n ceea ce privete performana unui mediu de lucru n care se folosete DB2 Connect pentru transferul cererilor i rspunsurilor ntre staiile de lucru client i serverele de baz de date. mbuntirea sau meninerea performanei n acest mediu se face n mai multe feluri.

Copyright IBM Corp. 1993, 2009

83

84

Ghidul utilizatorului DB2 Connect

Capitolul 14. Considerente privind performana DB2 Connect


Performana este modul n care se comport un sistem n cazul unei anumite ncrcri de lucru. Este afectat de resursele disponibile i de modul n care acestea sunt utilizate i partajate. Dac dorii s mbuntii performana, trebuie mai nti s decidei ce fel de performan dorii. Putei alege mai multe metrici de performan diferite, cum ar fi: Timpul de rspuns Intervalul de timp dintre momentul n care aplicaia trimite bazei de date cererea i momentul n care aplicaia primete un rspuns. Debitul tranzaciei Numrul unitilor de lucru care pot fi completate ntr-o unitate de timp. Unitatea de lucru poate fi simpl, cum ar fi citirea i actualizarea unui rnd, sau complicat, implicnd sute de instruciuni SQL. Rata transferului de date Numrul de octei de date transferai ntre aplicaia DB2 Connect i baza de date mainframe IBM pe unitatea de timp. Performana va fi limitat de resursele hardware i software disponibile. Printre exemplele de resurse hardware se numr CPU-ul, memoria i adaptoarele de reea. Printre resursele software se numr subsistemele de comunicaii, subsistemele de paginare, mbuf pentru AIX.

Fluxurile de date
Figura 12 la pagina 86 arat calea fluxului de date care circul ntre serverul de baz de date mainframe IBM i staia de lucru prin DB2 Connect.

Copyright IBM Corp. 1993, 2009

85

Aplicaie

Sistem gestionare baz de date

DB2 Connect (Solicitant aplicaie DRDA)

Server de aplicaii DRDA

Comunicaie Subsistem A

Comunicaie Subsistem B

Interfaa A hardware reea

Reea

Interfaa B hardware reea

Figura 12. Fluxurile de date n DB2 Connect

v Baza de date mainframe IBM i o parte din subsistemul de comunicaie B ruleaz de obicei pe acelai sistem. Acest sistem este alctuit dintr-unul sau mai multe CPU, memorie principal, un subsistem I/O, DASD i un sistem de operare. Deoarece alte programe ar putea partaja aceste componente, conflictele pentru resurse ar putea cauza probleme de performan. v Reeaua este compus dintr-o combinaie de cabluri, hub-uri, linii de comunicaie, switch-uri i alte controlere de comunicaie. De exemplu, interfaa hardware de reea B ar putea fi controlere de comunicaie ca 3745 sau 3172 sau un adaptor token ring pentru un server IBM Power Systems. Ar putea fi implicate mai multe medii de transmisie ntre interfeele hardware de reea A i B. v Interfaa hardware de reea A ar putea fi Token-Ring, Ethernet**, alt adaptor LAN sau un adaptor care suport protocoale SDLC sau X.25. v DB2 Connect i subsistemul de comunicaii A se afl de obicei pe acelai sistem. Pentru aceast discuie, s-a presupus c i aplicaia se afl pe acelai sistem.

Gtuirile
Debitul tranzaciei este dependent de componenta cea mai lent din sistem. Dac identificai o gtuire a performanei, putei ocoli adesea problema prin modificarea parametrilor de configurare, alocnd mai multe resurse componentei care cauzeaz probleme, actualiznd componenta sau adugnd o component nou, pentru a reduce ncrcarea de lucru. Putei utiliza diverse unelte pentru a determina ct timp consum o interogare la fiecare component. Aceasta v va da o idee despre ce componente ar trebui ajustate sau modernizate pentru a mbunti performana. De exemplu, dac determinai c o interogare consum 60% din timpul su pe maina DB2 Connect, ai putea dori s reglai DB2 Connect sau (dac avei clieni la distan) s adugai o alt main DB2 Connect reelei dumneavoastr.

86

Ghidul utilizatorului DB2 Connect

Benchmark-ul
Benchmark-ul compar performanele dintr-un mediu cu performanele din altul. Benchmark-ul poate ncepe prin rularea aplicaiei de test ntr-un mediu normal. Pe msur ce problema performanei este izolat, pot fi dezvoltate cazuri specializate de test, pentru a limita domeniul funciei care este testat i observat. Benchmark-ul nu trebuie s fie complex. Cazurile de test specializate nu trebuie s emuleze o aplicaie ntreag pentru a obine informaii care pot fi valorificate. Pornii cu msurtori simple i cretei complexitatea doar cnd este justificat. Caracteristicile unui benchmark bun: v Fiecare test poate fi repetat. v Fiecare iteraie a unui test este pornit cu aceeai stare a sistemului. v Hardware-ul i software-ul utilizat pentru benchmarking se potrivete cu mediul produsului. v Nu exist funcii sau aplicaii active n sistem n afar de cele msurate, dac scenariul nu include unele activiti care ruleaz n sistem. Not: Aplicaiile care sunt pornite utilizeaz memoria chiar i atunci cnd sunt minimizate sau neutilizate. Aceasta ar putea cauza paginarea i decalarea rezultatelor benchmark-ului.

Unelte de performan
Urmtoarele tabele listeaz unele din uneltele care v pot ajuta s msurai performana sistemului. Deoarece aceste unelte utilizeaz resurse se sistem, s-ar putea s nu le dorii active tot timpul.
Tabela 14. Unelte de performan pentru CPU i utilizarea memoriei Sistem AIX Unealt vmstat, time, ps, tprof Descriere Furnizeaz informaii despre CPU sau problemele memoriei pe staia de lucru DB2 Connect sau clieni la distan.

HP-UX Windows

vmstat, time, ps, monitor i glance dac este disponibil Microsoft Performance Monitor

Tabela 15. Unelte de performan pentru activitatea bazei de date Sistem Toate System z Unealt Monitorizare baza de date IBM Tivoli OMEGAMON XE for DB2 Performance Monitor on z/OS, ASG-TMON for DB2 (ASG) i CA Insight Performance Monitor for DB2 for z/OS (Computer Associates International, Inc.) Microsoft Performance Monitor Descriere Determin dac problema vine de la baza de date.

Windows

Capitolul 14. Performana DB2 Connect

87

Tabela 16. Unelte de performan pentru activitatea reelei Sistem AIX Unealt netpmon Descriere Raporteaz statistici reea de nivel sczut, inclusiv statistici TCP/IP cum ar fi numrul de pachet sau cadrele primite pe secund. Raporteaz utilizarea controlului de comunicare i VTAM. Manipularea traficului TCP/IP.

Controler de reea ca i 3745 Linux i UNIX

NetView Performance Monitor netstat

88

Ghidul utilizatorului DB2 Connect

Capitolul 15. Optimizarea accesului ODBC


Baza de date DB2 furnizeaz optimizare special proiectat pentru a mbuntii performana comunicaiei prin ODBC. Aceste mbuntiri sunt disponibile pentru Microsoft Access, Lotus Approach sau Visual Basic. Putei ctiga un transfer mai rapid ODBC utiliznd DB2 Configuration Assistant (CA). Pentru a activa ODBC optimizat: v Dac definii o conexiune nou: 1. Pornii DB2 CA. 2. Deschidei meniul Selected i selectai Add Database Using Wizard... 3. Urmai paginile vrjitorului pn ajungei la pagina Data Source. 4. Bifai Register this database for CLI/ODBC. 5. Specificai cum ar trebui nregistrate aplicaiile CLI/ODBC care acceseaz aceast baz de date: As system data source nseamn c baza de date este disponibil tuturor utilizatorilor din sistem. As user data source nseamn c suntei singurul utilizator care poate accesa baza de date. As file data source nseamn c va fi creat un fiier care conine informaiile surs de date. Acest fiier surs de date poate fi partajat cu alte staii de lucru dac avei o conexiune TCP/IP. Altfel, fiierul poate fi doar folosit pe acest calculator 6. Tastai un Nume surs date. 7. (Opional) Selectai o aplicaie din lista Optimize for application pentru a optimiza setrile de surs date pentru o anumit aplicaie. 8. Facei clic pe OK i ieii din CA. v Dac actualizai o conexiune existent: 1. 2. 3. 4. Pornii DB2 CA. Facei dublu clic pe aliasul de baz de date pe care dorii s-l optimizai. Facei clic pe Data Source. Bifai Register this database for CLI/ODBC.

5. Specificai cum ar trebui nregistrate aplicaiile CLI/ODBC care acceseaz aceast baz de date: As system data source nseamn c baza de date este disponibil tuturor utilizatorilor din sistem. As user data source nseamn c suntei singurul utilizator care poate accesa baza de date. As file data source nseamn c va fi creat un fiier care conine informaiile surs de date. Acest fiier surs de date poate fi partajat cu alte staii de lucru dac avei o conexiune TCP/IP. Altfel, fiierul poate fi doar folosit pe acest calculator 6. Tastai un Nume surs date. 7. (Opional) Selectai o aplicaie din lista Optimize for application pentru a optimiza setrile de surs date pentru o anumit aplicaie. 8. Facei clic pe OK i ieii din CA.

Copyright IBM Corp. 1993, 2009

89

90

Ghidul utilizatorului DB2 Connect

Capitolul 16. Proiectarea aplicaiei


Cnd creai o aplicaie, putei mbunti performanele n mai multe moduri. Proceduri SQL compuse i memorate Pentru aplicaiile care trimit i primesc multe comenzi i rspunsuri, regia de reea poate fi semnificativ. Procedurile SQL compuse i memorate sunt dou moduri de a reduce aceast regie. Dac o aplicaie trimite mai multe instruciuni SQL fr intervenia logicii de program, putei utiliza proceduri SQL compuse. Dac avei nevoie de logica de program n grupul de instruciuni SQL, putei utiliza procedurile memorate. Toate instruciunile executabile pot fi coninute n instruciunile compuse SQL, cu excepia urmtoarelor:
CALL FETCH CLOSE OPEN Compound SQL Connect Prepare Release Describe Rollback Disconnect Set connection execute immediate

Procedurile memorate v ajut la reducerea traficului n reea prin plasarea programului logic pe server. Putei s realizai comitere automat cnd ieii din procedur. Putei de asemenea s ntoarcei seturi de rezultate, care minimizeaz logica aplicaiei la client. Cerine pentru grupare Gruparea cererilor de baz de date (instruciuni SQL) nrudite poate reduce numrul de cereri i rspunsuri transmise prin reea. De exemplu, grupnd urmtoarele instruciuni:
SELECT COL1, COL2, COL5, COL6 FROM TABLEA WHERE ROW_ID=1 SELECT COL1, COL2, COL5, COL6 FROM TABLEA WHERE ROW_ID=2

n
SELECT COL1, COL2, COL5, COL6 FROM TABLEA WHERE ROW_ID=1 OR ROW_ID=2

sunt trimise mai puine cereri de-a lungul reelei. Putei folosi de asemenea cuvinte cheie cum ar fi IN i BETWEEN pentru a reduce numrul de rnduri returnate. n plus, putei folosi cuvintele cheie WHERE, IN i BETWEEN n instruciunile UPDATE i DELETE. Predicatul logic Putei utiliza predicatul logic pentru a cere doar liniile i coloanele care sunt necesare. Aceasta minimizeaz traficul n reea i regia CPU pentru transmisia de date. De exemplu, nu utilizai interogarea:
Copyright IBM Corp. 1993, 2009

91

SELECT * FROM TABLEA

dac este nevoie numai de primul rnd din TABLEA cu ROW_ID=1 sau numai de coloana 1 i coloana 2. Gruparea datelor n blocuri Ar trebui sa utilizai gruparea datelor n blocuri dac ateptai cantiti mari de date de la server. Gruparea n blocuri mbuntete folosirea limii de band a reelei i reduce regia CPU pe serverul de baz de date mainframe IBM i serverul DB2 Connect. Exist o cantitate fixat a regiei CPU i a reelei pentru fiecare mesaj trimis i recepionat indiferent de mrime. Blocarea datelor reduce numrul mesajelor necesare pentru transferul aceleiai cantiti de date. La blocare, prima linie de date dintr-un chestionar nu va fi livrat aplicaiei pn este recepionat primul bloc. Blocarea crete timpul de rspuns pentru prima linie, dar mbuntete timpul de rspuns pentru liniile din subsecven. Un alt considerent este cantitatea de memorie utilizat. De obicei setul de memorie n lucru crete n momentul n care este setat blocarea. Cu DB2 Connect, putei controla cantitatea de date care este transferat la fiecare bloc. Pentru a invoca gruparea pe blocuri, folosii opiunea BLOCKING a comenzii prep sau bind. Blocarea este setat, dac: v Cursorul este numai-citire sau v Cursorul este ambiguu i este specificat blocarea n prep sau bind. Not: La utilizarea SQL dinamic, cursorul este totdeauna ambiguu. Instruciunile SQL cu BLOCKING Instruciunile SELECT actualizabile (folosind instruciuni UPDATE/DELETE WHERE CURRENT OF) sunt interogri neblocante, deci ar trebui s le folosii doar cnd este absolut necesar. O instruciune SELECT actualizabil mpiedic modificarea rndului ntre momentul finalizrii instruciunii SELECT i cel al lansrii UPDATE/DELETE. Dac acest nivel de concuren nu este important pentru aplicaia dumneavoastr, o alternativ este utilizarea a DELETE sau UPDATE mpreun cu criteriile de cutare bazate pe valorile returnate de ctre un SELECT care nu poate fi actualizat. Pentru SELECT numai-citire, specificai FOR FETCH ONLY, dar nu pe VM i VSE, unde nu este suportat. SQL static i dinamic Utilizai SQL static ct mai mult posibil. Evit pregtirea seciunii SQL run-time i cursoarele ambigue. Dac nu poate fi evitat SQL dinamic, putei face urmtoarele pentru a minimiza traficul n reea i pentru a mbunti performanele: v Dac instruciunea este SELECT i trebuie s fie pregtit, realizai PREPARE ... INTO SQLDA. SQLDA trebuie alocat la dimensiunea ntreag necesar setrilor dumneavoastr. Dac numrul maxim al coloanelor este x i se ateapt s rmn aa, alocai o SQLDA cu x SQLVAR-uri. Dac numrul coloanelor poteniale este nesigur (i nu este nici o problem n ce privete memoria), utilizai numrul maxim de SQLVAR-uri (256). Dac alocarea SQLDA nu este destul de mare pentru a memora ceea ce ntoarce SQLDA, programul trebuie s apeleze un alt DESCRIBE cu o SQLDA destul de mare pentru a memora rezultatul din nou. Aceasta va crete traficul din reea.

92

Ghidul utilizatorului DB2 Connect

Nu utilizai secvenele PREPARE i DESCRIBE. Utilizarea instruciunilor PREPARE.....INTO asigur o performan mai bun. v Executai legturi statice ale instruciunilor SQL COMMIT sau ROLLBACK n locul instruciunilor dinamice COMMIT sau ROLLBACK. v Dac nu este o instruciune SELECT, COMMIT sau ROLLBACK, pentru a executa instruciunea lansai EXECUTE IMMEDIATE, n locul secvenei PREPARE i EXECUTE. v Aplicaiile ODBC utilizeaz SQL dinamic. Putei utiliza caracteristica de profilare static CLI/ODBC pentru mbuntirea performanei. Aceast caracteristic v permite s capturai i s convertii apelurile ODBC la instruciuni statice memorate ntr-un pachet al bazei de date. Performanele reale pe care le vei obine depind de complexitatea aplicaiei dumneavoastr. Alte considerente SQL Utiliznd Command Line Processor (CLP) este, n general, mai ncet dect avnd SQL dinamic n program deoarece CLP trebuie s analizeze sintactic intrarea naintea lansrii n execuie a motorului bazei de date SQL. CLP formateaz de asemenea datele cnd sunt primite, ceea ce poate s nu fie necesar pentru aplicaia dumneavoastr. Instruciunile SQL ntr-un limbaj interpretat, cum ar fi REXX, sunt substanial mai ncete dect aceleai instruciuni SQL ntr-un limbaj compilat, cum ar fi C. Exist dou tipuri de instruciuni CONNECT numite tipul 1 i tipul 2. La conectarea de tip 2, conectarea la o baz de date pune conexiunea anterioar ntr-o stare de adormire dar nu o abandoneaz. Dac vei comuta ulterior la o conectare adormit, evitai regia de ncrcare a bibliotecilor i setarea structurilor de date interne. Din acest motiv, folosirea conectrii de tip 2 ar putea mbuntii performana pentru aplicaii care acceseaz mai mult de o baz de date.

Capitolul 16. Proiectarea aplicaiei

93

94

Ghidul utilizatorului DB2 Connect

Capitolul 17. Gestionarea conexiunilor


Gestionarea conexiunilor const din dou operaii: punerea conexiunilor n pool i concentratorul de conexiuni. Punerea conexiunilor n pool reduce regia pentru conexiunile bazei de date i gestioneaz volumul de conexiuni. Concentratorul de conexiuni crete scalabilitatea mediului dumneavoastr de lucru prin optimizarea resurselor folosite de serverele de baz de date gazd. Aici sunt discutate ambele operaii.

Punerea n pool a conexiunilor


Produsele server DB2 Connect, cum ar fi DB2 Connect Enterprise Edition, furnizeaz adesea conexiuni la baza de date pentru mii de cereri clieni simultan. Stabilirea i servirea conexiunilor la serverul de baz de date poate fi un proces care cere multe resurse care afecteaz grav performana serverului baz de date i serverului DB2 Connect. Aceast problem este evident mai ales n mediile web, unde fiecare vizit ntr-o pagin web poate necesita construirea unei noi conexiuni la serverul bazei de date, efectuarea unei interogri i terminarea conexiunii. Pentru a reduce aceast regie, produsele server DB2 Connect folosesc punerea conexiunilor n pool, pentru a menine conexiunile deschise la baza de date ntr-un pool gata accesibil. Majoritatea aplicaiilor bazate pe tehnologii web execut un volum larg de tranzacii scurte. O tranzacie web tipic este executat ca parte a propriei conexiuni. Cu alte cuvinte, executarea unei tranzacii nsemn stabilirea unei conexiuni la baza de date i apoi terminarea aceste conexiuni dup doar cteva instruciuni SQL. Acest proces de stabilire i distrugere a conexiunii este foarte costisitor. Implic crearea unui agent DB2 Connect, stabilirea unei conexiuni n reea ntre acest agent i serverul DB2 i crearea unui fir de execuie DB2 pe server. Pentru conexiuni cu rulare mai lung aceste costuri sunt amortizate peste toate tranzaciile executate n aceast conexiune, dar pentru o tranzacie web tipic, aceste costuri vor depi costul execuiei tranzaciei propriu-zise. Punerea n pool a conexiunilor este o tehnic ce permite reutilizarea unei infrastructuri de conexiune care a fost stabilit, pentru conexiuni ulterioare. Cnd este pornit o instan DB2 Connect, este creat un pool de ageni coordonatori. Cnd vine o cerere de conexiune este alocat un agent acestei cereri. Acest agent se va conecta la serverul DB2 i va fi creat un fir de execuie n DB2. Cnd aplicaia emite o cerere de deconectare, agentul nu va transmite aceast cerere mai departe la serverul DB2. n loc, agentul este pus napoi n pool. Agentul din pool este n continuare proprietarul conexiunii sale la serverul DB2 i al firului de execuie DB2 corespunztor. Dac o alt aplicaie lanseaz o cerere de conectare, acest agent este atribuit noii aplicaii. Pentru ca operarea s fie sigur, informaiile privind identitatea utilizatorului sunt transmite mai departe la firul de execuie DB2 care, la rndul lui, realizeaz autentificarea utilizatorului. Pool-ul de conexiuni DB2 asigur o mbuntire semnificativ a performanei n astfel de medii. DB2 Connect menine conexiunile deschise la baza de date ntr-un pool disponibil. Cnd un client cere o conexiune, ea poate fi oferit din acest pool de conexiuni pregtite. Punerea conexiunilor n pool reduce semnificativ regia (activitatea suplimentar) pe care o implic de obicei deschiderea i nchiderea acestor conexiuni. Punerea conexiunilor n pool este transparent pentru aplicaiile care se conecteaz la gazd prin DB2 Connect. Cnd o aplicaie cere deconectarea de la gazd, DB2 Connect abandoneaz conexiunea de intrare cu aplicaia, dar pstreaz conexiunea de ieire la gazd

Copyright IBM Corp. 1993, 2009

95

ntr-un pool. Cnd o aplicaie nou cere o conexiune, DB2 Connect folosete una din pool-ul existent. Folosind o conexiune deja prezent, se reduce timpul de conexiune general, precum i costul nalt de conectare CPU de pe gazd. Agenii DB2 Connect pot fi n dou stri: nefolosii sau activi. Un agent este activ cnd lucreaz pentru o aplicaie. Dup terminarea lucrului, agentul intr n starea nefolosit, ateptnd alt sarcin de la aceeai aplicaie sau de la alta. Toi agenii nefolosii sunt pstrai la un loc, n ceea ce este cunoscut ca pool-ul de ageni nefolosii. Putei configura dimensiunea acestui pool folosind parametrul de configurare num_poolagents. Acest parametru este egal cu numrul maxim de ageni nefolosii pe care vrei s i menin sistemul dumneavoastr. Setarea acestui parametru la 0 este echivalent cu dezactivarea opiunii de punere n pool a conexiunilor. Valoarea implicit pentru acest parametru este setat la AUTOMATIC cu o valoare de 100. Fiind setat la AUTOMATIC, DB2 Connect gestioneaz automat numrul de ageni nefolosii (idle) n pool-ul de ageni nefolosii. DB2 Connect nu stabilete conexiuni la baza de date nainte de a primi prima cerere client. Alternativ, putei umple pool-ul de ageni nefolosii nainte care vreun client s fac o cerere. Pool-ul poate fi completat la pornire folosind parametrul de configurare num_initagents. Acest parametru determin ci ageni nefolosii trebuie creai la pornire. Aceti ageni nefolosii iniial vor avea conexiuni la serverul de baz de date gazd. Cnd un client cere o conexiune la gazd, DB2 Connect va ncerca s obin un agent din cei din pool care au o conexiune la serverul de baz de date gazd. Dac aceasta eueaz, va ncerca s gseasc un agent disponibil n pool-ul cu ageni nefolosii. Dac pool-ul este gol, DB2 Connect va crea un agent nou. Putei controla numrul maxim de ageni care sunt activi concurent, folosind parametrul de configurare max_coordagents. Dup ce acest numr este depit, noile conexiuni vor eua cu sqlcode SQL1226. (Acest cod nseamn c numrul maxim de conexiuni de ieire a fost depit.) Valoarea implicit pentru acest parametru este setat la AUTOMATIC cu o valoare de 200. Fiind setat la AUTOMATIC, DB2 Connect gestioneaz automat numrul de ageni coordonatori. Variabila de registru DB2 DB2CONNECT_IN_APP_PROCESS permite aplicaiilor care ruleaz pe aceeai main ca produsul server DB2 Connect s aib ori DB2 Connect s ruleze n procesul aplicaiilor, comportarea implicit sau s determine ca aplicaia s se conecteze la produsul server DB2 Connect i conexiunea gazd s ruleze ntr-un agent. Pentru ca o aplicaie s foloseasc punerea n pool a conexiunilor, conexiunile la gazd trebuie fcute din agenii produsului server DB2 Connect i deci DB2CONNECT_IN_APP_PROCESS trebuie setat la NO.

Punerea n pool a conexiunilor DB2 Connect fa de punerea n pool a conexiunilor serverului de aplicaii
Punerea n pool a conexiunilor este o necesitate pentru orice tehnologie web bazat pe aplicaii care suport un volum mare de tranzacii. Majoritatea serverelor de aplicaii web ofer acum propriul mod de a pune n pool conexiunile la baza de date. De exemplu, att Microsoft MTS (COM+), ct i IBM WebSphere asigur punerea conexiunilor n pool. Mecanismele de punere n pool implementate de aceste servere difer semnificativ de ceea ce ofer serverele DB2 Connect. Deoarece serverele de aplicaii pun conexiunile n pool numai pentru uz propriu, ele presupun c ID-ul de utilizator, parola, nivelurile de izolare i aa mai departe vor fi exact la fel pentru toate conexiunile. i mai important este faptul c serverele de aplicaii pun n pool numai conexiunile iniiate de acelai proces. Aceasta nseamn c nu sunt puse n pool conexiunile de la alte maini, utilizatori sau procese. n timp ce aceste tehnici ale serverului de aplicaii de punere n pool sunt eficiente pentru refolosirea conexiunilor stabilite

96

Ghidul utilizatorului DB2 Connect

de aceeai instan a unei aplicaii, ele sunt absolut ineficiente pentru punerea n pool a conexiunilor de la mai muli utilizatori, servere i aa mai departe. Punerea n pool a conexiunilor pe care o asigur serverele DB2 Connect este complet independent de aplicaie, main i utilizator. Conexiunile de la mai muli clieni, servere de aplicaii, toate cu ID-uri de utilizator diferite, pot de asemenea refolosi conexiunile altora, fapt care are ca rezultat utilizarea mult mai bun a resurselor puse n pool. Ce tip de punere n pool a conexiunilor este cea corect pentru utilizare? Ambele. n general, folosirea att a punerii n pool a conexiunilor DB2 Connect, ct i a punerii n pool a conexiunilor serverului de aplicaii este o strategie bun, deoarece nu interfer ntre ele. Chiar cnd este activat punerea n pool a conexiunilor serverului de aplicaii, punerea n pool a conexiunilor DB2 Connect poate asigura refolosirea conexiunii pentru mai multe servere de aplicaii, precum i pentru ali clieni care folosesc serverul DB2 Connect.

Concentratorul de conexiuni
Concentratorul de conexiune reduce resursele necesare pe serverele de baz de date DB2 for z/OS pentru a suporta numere mari de staii de lucru i utilizatori web. Aceast funcie poate crete dramatic scalabilitatea DB2 for z/OS i soluiei DB2 Connect furniznd de asemenea balansarea ncrcrii de lucru la nivel tranzacie i operaii sigure n DB2 pentru medii de partajare de date DB2 for z/OS. Concentratorul de conexiuni permite aplicaiilor s stea conectate fr a fi consumate resurse pe serverul gazd DB2. Putei avea mii de utilizatori activi n aplicaii i s avei doar cteva fire de execuie active pe serverul gazd DB2. Tehnologia concentratorului de conexiuni a lui DB2 Connect permite produselor server DB2 Connect, cum ar fi DB2 Connect Enterprise Edition, s furnizeze suport pentru mii de utilizatori care s execute simultan tranzacii de afaceri, reducnd drastic resursele necesare pe serverele de baz de date gazd System z sau IBM Power Systems. Realizeaz acest scop concentrnd sarcina de lucru de la toate aplicaiile ntr-un numr mult mai mic de conexiuni S/390 server baz de date gazd System z sau IBM Power Systems. Chiar dac aceasta ar putea avea similitudini cu funcia de punere a conexiunilor n pool descris mai sus, este de fapt o abordare mai sofisticat a reducerii consumului de resurse pentru aplicaii cu volum mare de OLTP. Concentratorul de conexiuni preia conceptul unui agent i l mparte n dou entiti: v Agentul logic, care reprezint o conexiune de aplicaie. v Agentul coordonator, care posed conexiunea i firul de execuie DB2 i execut cereri aplicaie. Cnd o nou aplicaie ncearc o conectare la gazd, i este alocat un agent logic. Pentru a transmite cod SQL la baza de date este necesar un agent coordonator i acesta este alocat de ndat ce este iniiat o nou tranzacie. Cheia acestei arhitecturi este faptul c agentul coordonator este: v Disociat de agentul logic v Returnat n pool cnd tranzacia se ncheie ca urmare a unei comiteri sau derulri napoi Alt caracteristic cheie este metoda de alocare a agenilor coordonatori la noi tranzacii ntr-un mediu cu partajarea datelor. DB2 Connect implementeaz un algoritm de planificare sofisticat care folosete informaii System z Work Load Manager (WLM). Aceste informaii sunt folosite pentru a distribui sarcina de lucru de-a lungul membrilor unui grup de partajare date n funcie de criteriile setate n WLM. WLM nu numai c tie ncrctura fiecrui membru, dar le tie i disponibilitatea. Aceasta permite DB2 Connect s realoce transparent lucrri de la membrii euai sau suprancrcai la membrii care exist i sunt subutilizai.
Capitolul 17. Gestionarea conexiunilor

97

Concentratorul de conexiuni DB2 Connect este activat cnd setai numrul maxim de ageni logici (max_connections) mai mare dect numrul de ageni de coordonare (max_coordagents). Pool-ul de conexiuni reduce costul stabilirii conexiunii n caz c una nu mai este necesar prin terminarea unei aplicaii. Cu alte cuvinte, o aplicaie trebuie s se deconecteze nainte ca altcineva s foloseasc din nou conexiunea pus n pool. Alternativ, concentratorul de conexiuni permite DB2 Connect s fac o conexiune disponibil unei aplicaii de ndat ce alt aplicaie a terminat o tranzacie i nu necesit deconectarea altei aplicaii. n esen, o conexiune la serverul de baz de date i resursele sale gazd i DB2 Connect asociate sunt folosite de o aplicaie doar cnd are o tranzacie activ. De ndat ce tranzacia s-a ncheiat, conexiunea i resursele asociate sunt disponibile pentru a fi folosite de orice alt aplicaie n care trebuie s fie executat o tranzacie. n versiunile anterioare ale DB2 Connect, fiecare aplicaie activ avea un Engine Dispatchable Unit (EDU) care gestiona conexiunea la baza de date precum i orice cereri de aplicaie. Acest EDU era numit de obicei agent coordonator. Fiecare agent coordonator urmrea starea sau contextul aplicaiei i al EDU-ului. Fiecare EDU ocup o cantitate semnificativ de memorie cnd crete numrul de conexiuni, iar comutarea de context ntre ageni are ca rezultat o regie suplimentar. n arhitectura de mai sus, exist o relaie unu la unu ntre conexiuni i EDU. Concentratorul de conexiuni permite ns relaii multe-la-unu ntre conexiuni i EDU-uri. Cu alte cuvinte, relaia dintre conexiuni (X) i EDU-uri (Y) este acum X >= Y. Concentratorul de conexiuni mparte agentul n dou entiti, un agent logic i un agent lucrtor. Agenii logici reprezint o aplicaie, dar fr referin la un EDU particular. Agentul logic conine toate informaiile i blocurile de control necesare aplicaiei. Dac exist n aplicaii conectate la server, vor fi n ageni logici pe server. Agenii lucrtori sunt EDU fizici care execut cereri de aplicaii, dar care nu au ataament permanent la nici o aplicaie dat. Agenii lucrtor se asociaz cu ageni logici pentru a realiza tranzacii i la limita tranzaciei termin asocierea i se ntorc la pool-ul disponibil. O entitate cunoscut ca dispecer aloc agenii lucrtor la agenii logici. Limitrile numrul de mnere de fiiere deschise pe anumite platforme de calcul ar putea avea ca rezultat mai mult de o instan de planificator.

Restriciile pentru concentratorul de conexiuni


Exist un numr de restricii importante pentru folosirea concentratorului serverului DB2 Connect. Citii urmtoarele informaii n totalitate nainte de a ncerca s utilizai concentratorul de conexiuni n sistem. Restricii generale: v Concentratorul se bazeaz pe protocolul TCP/IP pentru a stabili conexiuni de intrare de la clienii locali sau la distan. Doar conexiunile de intrare care folosesc TCP/IP sau Local (IPC) vor putea folosi conexiuni de ieire puse n pool. Concentratorul va accepta conexiuni prin alte protocoale de comunicaie, cum ar fi Named Pipes, dar nu vei putea s i folosii caracteristicile de concentrare XA cu o astfel de conexiune. v Pentru suport de tranzacie XA strns cuplat, toate aplicaiile care particip n aceeai tranzacie XA trebuie s foloseasc aceeai instan de server DB2 Connect pentru a se conecta la gazd. v Doar aplicaiile care nchid resursele deinute (cum ar cursoarele deinute) la grania de tranzacie pot beneficia de concentrator. Tranzaciile care nu nchid cursoarele deinute vor

98

Ghidul utilizatorului DB2 Connect

v v

merge n continuare, dar vor fi alocate unui agent lucrtor dedicat i astfel nu vor putea utiliza ntregul set de caracteristici al concentratorului. Dac declarai tabele temporare, acestea trebuie abandonate explicit la limita tranzaciei sau ramificrii. Dac nu se abandoneaz tabelele, se va opri concentrarea conexiunilor, dar aplicaia va continua s lucreze. Toate aplicaiile care particip la aceeai tranzacie XA trebuie s aib acelai CCSID i s foloseasc acelai ID de utilizator pentru a efectua conexiunea. Dac este stabilit o conexiune de ieire pentru a suporta o conexiune n dou faze, agentul acelei conexiuni poate fi folosit doar pentru a suporta conexiuni n dou-faze. Similar, agenii stabilii s suporte o conexiune cu o singur faz pot suporta doar conexiune o-faz. Concentratorul suport aplicaiile care folosesc IBM Data Server Driver for JDBC and SQLJ i aplicaiile CLI (Call Level Interface) care folosesc SQL dinamic. De asemenea, aplicaiile CLI nu trebuie s foloseasc KEEPDYNAMIC, deoarece concentratorul depinde de instruciunile care sunt pregtite din nou n graniele fiecrei tranzacii. Cererile de pregtire dinamice din aplicaii SQL dinamic ncorporat vor fi respinse. Aplicaiile trebuie s fie modificate astfel nct s utilizeze QSL static sau CLI pentru instruciuni SQL dinamic. Dac concentratorul de conexiuni este ON, cererea de intrare la serverul DB2 Connect nu poate folosi SSL. Totui, cererea de ieire la serverul de baz de date destinaie poate folosi SSL. Dac concentratorul de conexiuni este OFF, amndou tipurile de cereri, de intrare i de ieire, pot folosi SSL.

Cnd se lucreaz cu DB2 Versiunea 9 sau Versiunea 8 FixPak 13 (sau mai mare), pentru a activa suportul concentratorului DB2 Connect este nevoie de IBM Power Systems Versiunea 5 Ediia 4 (PTF SI23726). n caz contrar, este suportat numai poriunea XA a concentratorului de conexiuni.

Activarea concentratorului de conexiuni


Parametrul de configurare a managerului bazei de date max_coordagents seteaz numrul maxim de ageni logici. Putei activa opiunea de concentrator prin setarea valorii max_connections la orice numr mai mare dect cel implicit. Valoarea implicit pentru max_connections este echivalent cu valoarea max_coordagents. Deoarece fiecare aplicaie va avea un agent logic, max_connections controleaz numrul de aplicaii care pot fi conectate la instana bazei de date, n timp ce max_coordagents controleaz numrul de conexiuni de intrare care pot fi active n orice moment. max_connections va lua o valoare numeric n intervalul de la max_coordagents la 64000. Numrul implicit de ageni logici este egal cu max_coordagents. Se poate seta pe AUTOMATIC att pentru max_connections, ct i pentru max_coordagents. Dac max_connections se seteaz la AUTOMATIC, numrul de conexiuni poate fi crescut peste valoarea de baz configurat. Dac s-a setat AUTOMATIC att pentru max_connections, ct i pentru max_coordagents, max_connections poate crete peste valoarea de baz, iar max_coordagents crete automat pentru a menine raportul de concentrare dintre conexiuni i agenii coordonatori. Pentru configurarea agenilor sunt folosii civa parametri de configurare existeni. Aceti parametri sunt: max_coordagents Numr maxim de ageni de coordonare activi.

Capitolul 17. Gestionarea conexiunilor

99

num_poolagents Dimensiune pool de ageni. Pool-ul de ageni include ageni inactivi i neutilizai. Pentru o performan mai bun, ar trebui s se configureze num_poolagents la numrul mediu de clieni. num_initagents Numrul iniial de ageni lucrtori din pool. Acetia vor fi ageni neutilizai.

suport de tranzacii XA
Arhitectura concentratorului de conexiuni permite DB2 Connect s furnizeze suport pentru tranzacii strns cuplate XA pentru DB2 for z/OS i DB2 for IBM i. Concentratorul va asocia un agent lucrtor cu o anumit tranzacie XA (XID unic) ca pentru orice alt tranzacie. Totui, dac tranzacia XA se ncheie prin xa_end() (grani ramificare), agentul lucrtor nu se va autolansa n pool-ul general. n loc, lucrtorul rmne asociat cu o tranzacie XA. Cnd o alt aplicaie se unete cu aceeai tranzacie XA, agentul lucrtor va fi ataat aplicaiei. Orice apel la grania de tranzacie va returna agentul n pool. De exemplu, xa_prepare() cu acces numai citire, xa_rollback(), xa_recover(), xa_forget(), xa_commit() sau orice eroare XA care cauzeaz derularea napoi va returna agentul n pool-ul normal. Xa_end() ncheie numai ramificarea tranzaciei, dar nu este suficient pentru a ncheia asocierea cu XID.

Exemple de suport de tranzacii XA


1. Considerai un mediu n care sunt necesare 4000 de conexiuni concurente sau mai multe. Un server web care folosete aplicaii CGI sau un sistem de birou cu muli utilizatori desktop poate s depeasc aceast cerin. n acele cazuri, eficiena va necesita ca DB2 Connect s opereze ca un gateway singular; adic, baza de date i sistemul DB2 Connect sunt pe maini separate. Sistemul server DB2 Connect se poate s nu poat susine 4000 de conexiuni deschise simultane la maina baz de date. n majoritatea cazurilor, numrul de tranzacii care apar la un anumit moment va fi considerabil mai mic dect numrul de conexiuni concurente. Administratorul de sistem poate maximiza eficiena sistemului prin setarea parametrilor de configuraie ai bazei de date dup cum urmeaz:
MAX_CONNECTIONS = 4,000 MAX_COORDAGENTS = 1,000 NUM_POOLAGENTS = 1,000

Concentratorul va pstra deschise pn la 4000 de conexiuni concurente, dei gateway-ul poate gestiona numai 1000 de tranzacii la un moment dat. 2. n exemplul de mai sus, agenii lucrtori vor forma i distruge n mod constant asociaiile la agenii logici. Agenii care nu sunt nefolosii ar putea menine o conexiune la baza de date, dar nu particip la nici o tranzacie, de aceea sunt disponibili oricrui agent logic (aplicaie) care cere o conexiune. Cazul tranzaciilor XA este diferit. Pentru acest exemplu, presupunei c un monitor TP este folosit cu un gateway DB2 Connect i o baz de date System z sau IBM Power Systems. Cnd o aplicaie cere o conexiune, concentratorul va ntoarce un agent inactiv peste serverul care cere sau creeaz un nou agent lucrtor. S presupunem c aplicaia cere o tranzacie XA. Este creat un XID pentru aceast tranzacie i agentul lucrtor este asociat cu el. Cnd cererea aplicaiei a fost servit, lanseaz xa_end() i se detaeaz de la agentul lucrtor. Agentul lucrtor rmne asociat cu XID-ul tranzaciei. Poate servi numai cereri pentru tranzacii cu XID-ul asociat. n acest moment, alt aplicaie ar putea face o cerere pentru o tranzacie non-XA. Chiar dac nu sunt ageni lucrtori disponibili, agentul asociat cu XID nu va fi fcut disponibil pentru a doua aplicaie. Este considerat activ. Cea de-a doua aplicaie va avea un nou

100

Ghidul utilizatorului DB2 Connect

agent lucrtor creat pentru aceasta. Cnd cea de-a doua aplicaie i ncheie tranzacia, agentul su lucrtor este eliberat n pool-ul disponibil. ntre timp, alte aplicaii care cer tranzacia asociat cu XID-ul primului agent se pot ataa i detaa de agent, care execut tranzacia dedicat XA pentru ele. Orice aplicaie care cere ca aceast tranzacie particular va fi trimis ctre acest agent lucrtor, dac este liber. Agentul lucrtor nu va fi lansat napoi n pool-ul general dect atunci cnd o aplicaie emite un apel de grani de tranzacie (nu xa_end()). De exemplu, o aplicaie poate ncheia tranzacia cu xa_commit(), n momentul n care agentul lucrtor abandoneaz asocierea cu XID i se ntoarce la pool-ul disponibil. La acest punct, orice cerere de aplicaie poate fi folosit pentru o alt tranzacie XA sau non-XA.

Punerea conexiunilor n pool i concentratorul de conexiuni


Punerea conexiunilor n pool i concentratorul de conexiuni par s fie similare, dar difer prin implementarea lor i prin problemele pe care le trateaz. Punerea conexiunilor n pool ajut la reducerea regiei conexiunilor la baza de date i a volumului de conexiuni manipulate. Concentratorul de conexiuni ajut la creterea scalabilitii DB2 for z/OS i a soluiei DB2 Connect optimiznd folosirea serverelor dumneavoastr baz de date gazd. Cnd se utilizeaz punerea n pool a conexiunilor, conexiunea este disponibil pentru reutilizare numai dup ce aplicaia care este proprietara conexiunii lanseaz o cerere de deconectare. n multe aplicaii clent-server pe 2 niveluri (2-tier) utilizatorii nu se deconecteaz pe durata unei zile de lucru. De asemenea, cele mai multe servere de aplicaii din aplicaiile multinivel stabilesc conexiuni la baza de date atunci cnd pornete serverul i aceste conexiuni nu mai sunt eliberate dect la oprirea serverului de aplicaii. n aceste medii, punerea conexiunilor n pool va aduce puine avantaje, poate nici unul. Dar n mediile web i client-server n care frecvena conectrilor i deconectrilor este mare, punerea conexiunilor n pool va produce mbuntiri semnificative ale performanei. Concentratorul de conexiuni aloc resursele bazei de date gazd doar pe durata unei tranzacii SQL, n timp ce aplicaiile de utilizator rmn active. Aceasta permite configuraii n care numrul de fire de execuie DB2 i resursele pe care acestea le consum s fie mult mai mici dect n cazul n care fiecare conexiune de aplicaie are propriul su fir de execuie. Cnd este vorba de operaii sigure la eroare i despre echilibrarea ncrcrii de lucru, concentratorul de conexiuni este clar alegerea corect, deoarece permite realocarea lucrului cu fiecare nou tranzacie. Alternativ, punerea conexiunilor n pool poate oferi doar o echilibrare foarte limitat i doar la conectare. Punerea conexiunilor n pool i concentratorul de conexiuni trebuie s fie utilizate mpreun, dei se adreseaz unor probleme diferite.

Concentratorul de conexiuni este necesar cu WebSphere MQ Transaction Manager i DB2 for z/OS
Cnd sunt rulate aplicaii ntr-un mediu de lucru IBM WebSphere MQ (numit anterior IBM MQSeries), WebSphere MQ poate aciona ca un manager de tranzacii compatibil XA, coordonnd tranzaciile distribuite cu comitere n dou faze. Cnd WebSphere MQ acioneaz ca un manager de tranzacii n acest fel i sursele de date sunt din familia de produse DB2, exist cteva cerine de configurare. Cele mai multe dintre cerinele de configurare dintr-un astfel de mediu de manager de tranzacii sunt deja documentate n alt parte. De exemplu, trebuie s setai parametrul de configurare DB2 TP_MON_NAME la MQ n clientul runtime DB2.
Capitolul 17. Gestionarea conexiunilor

101

Lipsete ns o cerin de configurare. Aceast cerin este specific pentru DB2 Connect cnd se realizeaz conectarea la sursele de date care sunt servere DB2 for z/OS: cnd se folosete WebSphere MQ pentru a coordona tranzaciile distribuite ce implic servere DB2 for z/OS i DB2 for IBM i, pe gateway trebuie s fie activat caracteristica de concentrator de conexiuni DB2 Connect. Concentratorul de conexiuni este activat atunci cnd valoarea parametrului de configurare max_connections este mai mare dect valoarea parametrului de configurare max_coordagents. Dac nu activai concentratorul de conexiuni, poate rezulta un comportament neateptat al tranzaciilor.

102

Ghidul utilizatorului DB2 Connect

Capitolul 18. Suportul Sysplex pentru serverul DB2 Connect


Un Sysplex este o colecie de servere System z care coopereaz, folosind hardware i software, pentru a procesa lucrul. Sysplex coordoneaz cooperarea, crescnd numrul de procesoare care lucreaz mpreun, ceea ce permite executarea mai multor lucrri. n afar de creterea capabilitii de procesare, un Sysplex poate oferi flexibilitate n ceea ce privete mixarea nivelurilor de hardware i de software i adugarea dinamic a sistemelor. Sysplex permite serverului DB2 Connect s echilibreze conexiunile ntre diferiii membri ai grupului de partajare a datelor. Sysplex i furnizeaz serverului DB2 Connect mijloacele s ncerce membri alternativ n cazul apariiei unui defect la unul din membri. Capacitatea de rerutare Sysplex este o caracteristic a lui DB2 Connect. Suportul Sysplex pentru serverul DB2 Connect este activat implicit, ca i capabilitatea de rerutare pentru Sysplex. Suportul Sysplex pentru o baz de date gazd poate fi dezactivat prin nlturarea parametrului SYSPLEX din intrarea de director DCS, dar fr a nltura intrarea DCS propriu-zis, chiar dac nu mai are ali parametri specificai. Cu capabilitatea de rutare client automat pentru Sysplex, comportamentul implicit este ca o conexiune activat Sysplex s rencerce conectarea cnd exist un defect de comunicaie. Valorile registrului special, pn la ultima tranzacie cu succes care nu blocheaz resurse, sunt rulate din nou cnd DB2 Connect este conectat la un server DB2 for z/OS. Putei configura comportarea exact de rerutare automat client, inclusiv dezactivarea, folosind variabilele de registru DB2_MAX_CLIENT_CONNRETRIES i DB2_CONNRETRIES_INTERVAL. Variabila de registru pentru timeout conexiune este DB2TCP_CLIENT_CONTIMEOUT.

Considerente pentru exploatarea System z SYSPLEX


DB2 Connect furnizeaz echilibrarea ncrcrii i toleran la erori la rutarea conexiunilor la mai multe Sysplex-uri. n timpul conexiunii la un server baz de date DB2 for z/OS care ruleaz ntr-un mediu de partajare date, DB2 Connect va mprtia ncrcarea de lucru ntre diferitele subsisteme DB2 care conin grupul de partajare date, pe baza informaiilor de ncrcare sistem furnizate de Workload Manager (WLM). DB2 Connect primete o list prioritar de membrii Sysplex de la WLM. Fiecare Sysplex returneaz informaii de prioritate ponderat pentru fiecare adres de conexiune. Aceast list este apoi folosit de DB2 Connect pentru a manipula cererile de intrare CONNECT distribuindu-le ntre membrii Sysplex care au alocate prioritile cele mai mari. Pentru echilibrarea ncrcrii, lista cu informaiile de prioriti ponderate Sysplex este obinut n timpul fiecrei conexiuni. Dac este activat concentratorul de conexiuni DB2 Connect, aceast list este de asemenea folosit pentru a se determina unde s fie trimis fiecare tranzacie. Not: Configuraia System z Distributed Data Facility (DDF) nu trebuie modificat pentru a profita de exploatarea DB2 Connect Sysplex. DB2 Connect furnizeaz de asemenea toleran la erori ncercnd s se conecteze la o main Sysplex alternativ n cazul eurii unei conexiuni. O eroare va fi ntoars aplicaiei dac toate conexiunile cunoscute au euat.

Copyright IBM Corp. 1993, 2009

103

DB2 Connect Sysplex este proiectat avnd n vedere gruparea (pooling) agenilor. Cu Sysplex activat, DB2 Connect ruteaz conexiunile la alt membru DDF n cazul n care este pierdut conexiunea la un membru participant la Sysplex. Rerutarea este realizat n funcie de o list de servere Sysplex. Cu adugarea concentratorului, DB2 Connect are acum abilitatea de a echilibra ncrcarea de lucru la limitele tranzaciei. Concentratorul DB2 Connect trebuie activat pentru ca aceasta s funcioneze.

Exploatarea DB2 Sysplex


ntr-un scenariu tipic, un server DB2 Connect (serverul A) ar conversa cu un Sysplex care conine dou servere DB2 for z/OS (serverele B i C).
Sysplex server B HOST_NAME=MVSHOST Sysplex server C HOST_NAME=MVSHOST1

S presupunem c n acest scenariu o aplicaie emite acum:


db2 connect to aliasb user xxxxxxx using xxxxxxxx

Conexiunea la baza de date MVSHOST este stabilit. Deoarece exploatarea Sysplex este activat i pentru serverul DB2 Connect i pentru intrarea director DCS, DB2 for z/OS identific adresa de reea la DB2 Connect pentru fiecare participant Sysplex (MVSHOST i MVSHOST1). Protocoale i fluxuri de mesaje DRDA4 sunt folosite pentru a returna aceste informaii). O dat ce a fost fcut o conexiune iniial, lista returnat de adrese este pus n cache pe staia de lucru DB2 Connect. Dup ce este emis iniial un CONNECT pentru un nod TCP/IP sunt returnate adresele IP.

Informaii de prioritate folosite pentru echilibrarea ncrcrii i tolerana la eroare


Lista de adrese furnizat de DB2 for z/OS include de asemenea informaii de prioritate, inclusiv numrul de conexiuni de la fiecare adres de reea. Lista este remprosptat dac este fcut o nou conexiune de ctre DB2 Connect. Aceste informaii suplimentare sunt folosite n scopuri de echilibrarea ncrcrii, precum i pentru tolerana la erori.

Lista de adrese puse n cache folosit de DB2 Connect


Dac conexiunea baz de date la ALIASB eueaz. atunci mesajul este eroare SQL30081N este emis i conexiunea va fi abandonat. Dac mai este primit o cerere ulterioar de conexiune pentru ALIASB, DB2 Connect face urmtoarele: 1. ncearc serverul cu cea mai mare prioritate din lista cache de adrese pe baza informaiilor de prioritate care au fost returnate de DB2 for z/OS. Aceast strategie este mereu folosit de DB2 Connect i astfel se realizeaz echilibrarea ncrcrii. 2. Dac eueaz aceast ncercare de conexiune, atunci celelalte adrese din list sunt ncercate, n ordinea descresctoare a prioritii, precum este returnat de DB2 for z/OS. Acesta este modul n care DB2 Connect exploateaz informaiile Sysplex pentru a realiza tolerana erorilor. 3. Dac toate celelalte cereri de conexiune eueaz, atunci DB2 Connect va rencerca s se conecteze la ALIASB folosind adresa coninut n directorul de noduri catalogate. Linia de comand db2pd cu parametrul sysplex (db2pd -sysplex) poate fi folosit pentru extragerea informaiilor despre servere asociate cu un mediu Sysplex.

104

Ghidul utilizatorului DB2 Connect

Cerinele de configurare pentru Sysplex


Exploatarea Sysplex nu va fi folosit pentru o baz de date dat dect dac intrarea director DCS pentru acea baz de date conine Sysplex (insensibil la majuscule) n parametrul din poziia a 6-a.

Capitolul 18. Suportul Sysplex pentru serverul DB2 Connect

105

106

Ghidul utilizatorului DB2 Connect

Capitolul 19. Suportul Sysplex pentru client


Clienii IBM Data Server i driver-ele serverelor de date non-Java care au o licen DB2 Connect pot accesa un DB2 for z/OS Sysplex i pot utiliza toate capabilitile Sysplex, inclusiv echilibrarea ncrcrii la nivel de tranzacie, rerutarea automat a clientului i suportul XA limitat. Un Sysplex este o colecie de sisteme DB2 (numite membri) care formeaz un grup de partajare de date. Una sau mai multe faciliti de cuplare furnizeaz o memorare n cache de mare vitez i procesarea blocrilor pentru grupul de partajare de date. Sysplex, mpreun cu Workload Manager (WLM), adresa IP virtual dinamic (DVIPA) i cu Sysplex Distributor, permit unui client s acceseze o baz de date DB2 for z/OS peste TCP/IP cu rezilien de reea i tranzacii distribuite pentru o aplicaie, ntr-o manier echilibrat ntre membrii grupului de partajare de date. Punctul central al acestor capabiliti este o list de servere pe care o ntoarce fiecare membru al grupului de partajare de date DB2 la marginile conexiunii i, opional, la marginile tranzaciei. Lista conine adresa IP i capacitatea disponibil pentru fiecare membru DB2. Cu aceste informaii, un client poate distribui tranzaciile ntr-o manier echilibrat sau poate identifica membrul DB2 de folosit cnd exist un eec de comunicaie. Lista de servere este ntoars la prima conectare de succes la baza de date DB2. De aceea, conexiunea iniial la baza de date trebuie direcionat la adresa IP virtual dinamic (DVIPA) grupul deinut de Sysplex Distributor. Dac cel puin un membru DB2 este disponibil, Sysplex Distributor va ruta cererea ctre baza de date. Dup ce clientul a primit lista de servere, clientul acceseaz direct un membru DB2 bazat pe informaiile din lista de servere. Pentru a configura suportul Sysplex, specificai setrile n fiierul de configuraie db2dsdriver. Pentru mai multe informaii despre WLM, DVIPA i Sysplex Distributor, vedei DB2 for z/OS Information Center la http://publib.boulder.ibm.com/infocenter/dzichelp.

Echilibrarea ncrcrii de lucru la nivel de tranzacie (pe partea client)


Clienii IBM Data Server i driver-ele serverului de date non-Java care au o licen DB2 Connect pot realiza echilibrarea ncrcrii de lucru la nivel de tranzacie fr s mai treac prin serverul DB2 Connect. Cu echilibrarea ncrcrii de lucru la nivel de tranzacie, ncrcarea de lucru pe membri la un DB2 for z/OS Sysplex poate fi reechilibrat la nceputul tranzaciei. Echilibrarea ncrcrii de lucru este realizat pe tranzacii concurente pe o singur conexiune sau pe conexiuni multiple pe o baz per aplicaie. Pentru aplicaiile care invoc doar o singur conexiune care ruleaz un timp ndelungat unde tranzaciile ruleaz mai mult consecutiv dect concurent, ncrcarea de lucru se mut la membrul cu capacitatea cea mai mare. Algoritmul de echilibrare a ncrcrii de lucru face automat ajustrile pentru a modifica ponderile gestiunii ncrcrii de lucru. Urmtoarea privire general descrie paii care apar cnd un client se conecteaz la un DB2 for z/OS Sysplex i cnd apare echilibrarea ncrcrii de lucru cu refolosirea transportului: 1. Cnd clientul stabilete o conexiune, serverul ntoarce o list de servere care conine informaii de distribuie a ncrcrii de lucru a membrilor.

Copyright IBM Corp. 1993, 2009

107

Lista de servere este memorat n cache de client i are un timp de via implicit de 30 de secunde. 2. La nceputul unei noi tranzacii, clientul citete lista de servere pentru a identifica un membru care are capacitate nefolosit i caut n pool-ul de transport pentru un transport inactiv care este legat la un membru mai puin folosit. (Un transport inactiv (idle) este un transport care nu are asociat o conexiune logic.) v Dac este disponibil un transport inactiv, clientul asociaz conexiunea logic cu transportul. v Dac, dup un timeout configurabil de utilizator, nu este disponibil niciun transport inactiv n pool-ul de transport i nu poate fi alocat niciun transport nou, deoarece pool-ul de transport i-a atins limita, se ntoarce o eroare aplicaie. 3. Cnd ruleaz tranzacia, ea acceseaz membrul care este legat la transport. 4. Cnd tranzacia se termin, clientul verific cu serverul dac refolosirea transportului mai este permis pentru conexiunea logic. 5. Dac refolosirea transportului este permis, serverul ntoarce o list de instruciuni SET pentru registrele speciale care se aplic mediului de execuie pentru conexiunea logic. Clientul memoreaz n cache aceste instruciuni, pe care le red pentru a reconstrui mediul de execuie cnd conexiunea logic este asociat unui nou transport. 6. Dac refolosirea transportului este permis, conexiunea logic este disociat periodic de transport i copia clientului pentru lista de servere este remprosptat. 7. Cnd echilibrarea ncrcrii de lucru este necesar pentru o nou tranzacie, clientul folosete acelai proces de a asocia conexiunea logic cu un transport. Indiciu: Echilibrarea ncrcrii de lucru la nivel de tranzacie pe partea clientului este realizat pe tranzaciile care ruleaz pe un singur proces de aplicaie. Dac mai multe procese de aplicaie care ruleaz pe client acceseaz aceeai baz de date activat pentru Sysplex, echilibrarea ncrcrii de lucru este realizat pentru fiecare proces de aplicaie independent de celelalte procese. Pentru a realiza echilibrarea ncrcrii de lucru la nivel de tranzacie pe mai multe conexiuni de la mai multe aplicaii sau procese care ruleaz pe mai muli clieni la distan, folosii caracteristicile de echilibrare a ncrcrii de lucru disponibile la serverul DB2 Connect.

Configurarea echilibrrii ncrcrii de lucru la nivel de tranzacie (pe partea client)


Pentru a configura echilibrarea ncrcrii de lucru la nivel de tranzacie la client, specificai setrile n fiierul de configurare db2dsdriver. nainte de a ncepe Pentru a realiza echilibrarea ncrcrii de lucru la nivel de tranzacie, clientul trebuie s foloseasc conexiunea TCP/IP i s aib o licen DB2 Connect. Urmtorii clieni furnizeaz suport pentru echilibrarea ncrcrii de lucru la nivel de tranzacie: v IBM Data Server Client v IBM Data Server Runtime Client v IBM Data Server Driver Package v IBM Data Server Driver for ODBC and CLI Despre acest task Acest task configureaz echilibrarea ncrcrii de lucru la nivel de tranzacie, ceea ce permite unui client s realizeze echilibrarea ncrcrii de lucru la nivel de tranzacie fr s treac printr-un server DB2 Connect.

108

Ghidul utilizatorului DB2 Connect

Procedura 1. n fiierul de configurare db2dsdriver, activai echilibrarea ncrcrii de lucru la nivel de tranzacie prin setarea parametrului enableWLB la true n subseciunea WLB a unei intrri de baz de date sau a intrrii DSN. De exemplu, specificai urmtorul fiier de configurare db2dsdriver.
<database name="SAMPLE" host="v33ec065.my.domain.com" port="446"> <!-- parametri specifici bazei de date --> <WLB> <!-- Sysplex WLB este dezactivat implicit --> <parameter name="enableWLB" value="true" /> </WLB> </database>

Implicit, enableWLB este false, iar echilibrarea ncrcrii de lucru este dezactivat. 2. Opional: ajustai fin setrile pentru echilibrarea ncrcrii de lucru specificnd valorile pentru urmtorii parametri. Valorile implicite pentru aceti parametri ar trebui s fie suficiente pentru majoritatea aplicaiilor.
Tabela 17. Setrile echilibrrii ncrcrii de lucru n fiierul de configuraie db2dsdriver Parametru maxTransports Descriere Specific numrul maxim de transporturi n pool-ul de transport. Valoarea implicit este -1 (nelimitat). Orice alt valoare negativ nu este valid. O valoare de 0 dezactiveaz echilibrarea ncrcrii de lucru. Specific timpul maxim scurs n numr de secunde nainte ca un transport inactiv s fie abandonat. Valoarea implicit este 600. Valoarea minim suportat este 0. Specific numrul de secunde pe care le va atepta clientul pn cnd un transport devine disponibil. Valoarea implicit este -1 (nelimitat). Valoarea minim suportat este 0. Specific timpul maxim scurs n numr de secunde nainte ca lista de servere s fie remprosptat. Valoarea implicit este 30. Valoarea minim suportat este 0.

maxTransportIdleTime

maxTransportWaitTime

maxRefreshInterval

Pentru mai multe informaii, vedei subiectul despre fiierul de configurare db2dsdriver, n Centrul de informare DB2. Not: Setrile de configuraie existente ale managerului de baz de date MAX_COORDAGENTS, NUM_POOLAGENTS i MAX_CONNECTIONS sunt folosite pentru configurarea echilibrrii ncrcrii de lucru la serverul DB2 Connect i de aceea nu au niciun efect asupra echilibrrii ncrcrii de lucru realizate pe partea clientului.

Exemplu
Exemplu 1: Activarea echilibrrii ncrcrii de lucru la nivel de tranzacie pentru baza de date SAMPLE folosind setrile implicite.
<database name="SAMPLE" host="v33ec065.my.domain.com" port="446"> <!-- parametri specifici bazei de date --> <WLB> <!-- Sysplex WLB este dezactivat implicit --> <parameter name="enableWLB" value="true" /> </WLB> </database>
Capitolul 19. Suportul Sysplex pentru client

109

Exemplu 2: Activarea echilibrrii ncrcrii de lucru la nivel de tranzacie pentru baza de date SAMPLE cu un maximum de 95 pentru transporturi.
<database name="SAMPLE" host="v33ec065.my.domain.com" port="446"> <!-- parametri specifici bazei de date --> <WLB> <!-- Sysplex WLB este dezactivat implicit --> <parameter name="enableWLB" value="true" /> <!-- maxTransports reprezint numrul maxim de transporturi; implicit este -1 (nelimitat) --> <parameter name="maxTransports" value="95" /> </WLB> </database>

Exemplu 3: Activarea echilibrrii ncrcrii de lucru la nivel de tranzacie pentru baza de date SAMPLE cu un maximum de 80 pentru transporturi i un timp maxim de ateptare de 10 secunde pentru un transport disponibil.
<database name="SAMPLE" host="v33ec065.my.domain.com" port="446"> <!-- parametri specifici bazei de date --> <WLB> <!-- Sysplex WLB este dezactivat implicit --> <parameter name="enableWLB" value="true" /> <!-- maxTransports reprezint numrul maxim de transporturi; implicit este -1 (nelimitat) --> <parameter name="maxTransports" value="80" /> <!-- maxTransportWaitTime reprezint numrul maxim de timp scurs n; secunde, nainte ca un transport s devin disponibil; implicit este -1 (nelimitat) --> <parameter name="maxTransportWaitTime" value="10" /> </WLB> </database>

Exemplu 4: Dezactivarea echilibrrii ncrcrii de lucru la nivel de tranzacie pentru baza de date SAMPLE.
<database name="SAMPLE" host="v33ec065.my.domain.com" port="446"> <!-- parametri specifici bazei de date --> <WLB> <!-- Sysplex WLB este deja dezactivat implicit --> <parameter name="enableWLB" value="false" /> </WLB> </database>

Rerutarea automat a clientului (pe partea client)


Caracteristica ACR (Automatic Client Reroute) furnizeaz suport pentru preluarea la defect atunci cnd un client IBM Data Server i pierde conectivitatea la un membru DB2 for z/OS Sysplex. ACR permite clientului s recupereze dintr-un defect prin ncercarea de reconectare la baza de date prin intermediul oricrui membru Sysplex disponibil. ACR este activat implicit cnd este activat echilibrarea de ncrcare de lucru. Suportul ACR pe partea clientului este disponibil n clienii IBM Data Server i n driver-ele serverelor de date non-Java care au o licen DB2 Connect. Serverul DB2 Connect nu este necesar pentru a realiza rutarea automat client (ACR). Dac ACR este activat, cnd un client ntmpin un defect de conexiune la o conexiune existent, n mod obinuit se ntmpl urmtorul proces: 1. Clientul ncearc s execute o instruciune SQL folosind o conexiune existent i ntlnete un defect. 2. Clientul folosete lista de servere pentru a identifica membrul Sysplex de accesat i ncearc din nou s se conecteze la baza de date. Aceast list de servere poate fi lista

110

Ghidul utilizatorului DB2 Connect

returnat de server, sau, dac afinitile clientului sunt specificate, o list de servere alternative specificat de client. Pentru informaii suplimentare, vedei Configurarea afinitilor clientului la pagina 114. 3. Dac ACR nu poate s se reconecteze la baza de date, clientul reconstruiete mediul de execuie pentru noua conexiune stabilit. Este returnat aplicaiei eroarea SQL30108N pentru a indica recuperarea conexiunii la baza de date euat i c tranzacia fost derulat napoi. Aplicaia este responsabil mai departe pentru recuperare, inclusiv de repetarea tuturor lucrrilor care au fost derulate napoi. 4. Dac ACR nu poate s se reconecteze la baza de date, eroarea SQL30081N este returnat aplicaiei. Aplicaia este apoi responsabil pentru recuperarea din eecul conexiunii (de exemplu, ncercnd ea nsi s se conecteze la baza de date). ACR este folosit i cnd un client ntlnete un defect de conexiune cu o conexiune nou. n acest caz, nu este returnat aplicaiei eroarea SQL30108N pentru a indica recuperarea conexiunii la baza de date euat. Fie conectarea are succes, fie este ntoars eroarea SQL30081N. Putei dezactiva ACR sau s configurai mai n detaliu rutarea prin specificarea setrilor n fiierul de configuraie db2dsdriver.

Preluarea la defect de tip seamless pentru aplicaiile CLI i .NET


Cnd ACR este activat, iar destinaia tranzaciei este DB2 for z/OS, preluarea la defect de tip seamless pentru aplicaiile CLI i .NET este activat implicit. Cu preluarea la defect de tip seamless, dac aplicaia ntlnete un defect de conexiune la prima operaie SQL ntr-o tranzacie, driver-ul ruleaz din nou operaia SQL euat ca parte a procesrii rutrii automate client. Dac conectarea are succes, nu se raporteaz nicio eroare aplicaiei, iar tranzacia nu va fi derulat napoi. Eecul conectivitii i recuperarea ulterioar sunt ascunse aplicaiei. Putei dezactiva sau reactiva preluarea la defect de tip seamless prin specificarea setrilor n fiierul de configurare db2dsdriver.

Consideraiile privind serverul DB2 Connect legate de ACR i preluarea la defect de tip seamless
Comportamentul ACR i al prelurii la defect de tip seamless este diferit dac clientul acceseaz Sysplex-ul prin intermediul unui server DB2 Connect. Dac eroarea apare ntre serverul DB2 Connect i Sysplex, rutarea automat client (ACR) este realizat de serverul DB2 Connect. Dac serverul DB2 Connect este la acelai nivel cu client sau mai sus, clientul poate realiza preluarea la defect de tip seamless (fr custuri). Altfel, clientul nu poate realiza preluarea la defect de tip seamless i este returnat aplicaiei eroarea SQL30108N pentru a indica recuperarea conexiunii euate la baza de date. Dac eroarea apare ntre client i serverul DB2 Connect i Sysplex, rutarea automat client (ACR) poate fi realizat pe client la serverul DB2 Connect. Dar preluarea la defect de tip seamless este ntotdeauna, iar eroarea SQL30108N este ntoars aplicaiei.

Configurarea rerutrii automate a clientului (pe partea client)


Rerutarea automat a clientului (ACR) este activat implicit cnd este activat echilibrarea ncrcrii de lucru. Putei dezactiva ACR sau s configurai mai n detaliu rutarea prin specificarea setrilor n fiierul de configuraie db2dsdriver. nainte de a ncepe

Capitolul 19. Suportul Sysplex pentru client

111

Pentru a realiza ACR, clientul trebuie s foloseasc conexiunea TCP/IP i s aib o licen DB2 Connect. Urmtorii clieni furnizeaz suport pentru ACR: v IBM Data Server Client v IBM Data Server Runtime Client v IBM Data Server Driver Package v IBM Data Server Driver for ODBC and CLI Despre acest task Pentru unele aplicaii, ai putea dori s dezactivai ACR sau preluarea la defect de tip seamless, sau ai putea dori s configurai ACR mai n detaliu. Acest task descrie parametrii care sunt disponibili pentru configurarea ACR. Putei de asemenea s modificai comportamentul ACR specificnd afinitile clientului pentru a controla lista de servere care este folosit pentru procesarea conectrii i pentru ACR. Pentru informaii, vedei Configurarea afinitilor clientului la pagina 114. Procedura Pentru a dezactiva ACR sau pentru a configura mai n detaliu rerutarea: v Pentru a dezactiva ACR sau ACR cu preluare la defect seamless, specificai o valoare de false pentru urmtorii parametri n fiierul de configurare db2dsdriver. Specificai aceste setri n subseciunea ACR ntr-o intrare de baz de date.
Tabela 18. Setrile rutrii automate a clientului n fiierul de configuraie db2dsdriver Parametru enableAcr Descriere Specific dac este activat (true) caracteristica ACR sau nu (false). Aceast setare este implicit true cnd echilibrarea ncrcrii de lucru la nivel de tranzacie este activat (setarea enableWLB este true). Dac ACR este dezactivat, celelalte setri pentru ACR sunt ignorate. Specific dac ACR cu caracteristica de preluare la defect de tip seamless este activat (true) sau nu (false). Cnd ACR este activat, iar serverul destinaie este DB2 for z/OS, preluarea la defect de tip seamless este activat implicit. Dac serverul destinaie nu este DB2 for z/OS, aceast setare este ignorat, iar ACR seamless nu este suportat.

enableSeamlessAcr

Pentru mai multe informaii, vedei subiectul despre fiierul de configurare db2dsdriver, n Centrul de informare DB2. v Putei specifica o list de servere alternative care vor fi folosite dac apare un defect la prima ncercare de conectare, iar gazda specificat pentru conexiune nu este disponibil. Pentru a specifica o list de servere alternative, specificai o valoare de true pentru enableAlternateServerListFirstConnect n subseciunea ACR din intrarea pentru baza de date. Cnd valoarea pentru enableAlternateServerListFirstConnect este true, ACR cu preluare la defect seamless este activat implicit indiferent de celelalte setri care sunt specificate pentru ACR n fiierul de configurare db2dsdriver. Pentru a folosi aceast caracteristic, trebuie s setai i o list de servere alternative n fiierul de configurare db2dsdriver. Pentru informaii despre setarea unei liste de servere alternative, vedei Configurarea afinitilor clientului la pagina 114. Dei informaiile despre setarea unei liste de servere

112

Ghidul utilizatorului DB2 Connect

alternative apar n subiectul care descrie afinitile clientului, nu trebuie s folosii afinitile clientului pentru a face uz de aceast capabilitate. De fapt, aceast capabilitate este suportat cnd este activat echilibrarea ncrcrii de lucru la nivel de tranzacie, chiar dac echilibrarea ncrcrii de lucru la nivel de tranzacie i afinitile client nu pot fi activate n acelai timp. Rezultate Dac ACR este activat, o aplicaie care ntlnete un eec al conectivitii este rutat la un alt membru Sysplex. Dac preluarea la defect de tip seamless este dezactivat sau ne se poate aplica, eroarea SQL30108N este ntoars aplicaiei. Dac defectul apare la prima operaie SQL a unei tranzacii, iar preluarea la defect de tip seamless este activat (i aplicabil), clientul poate rula din nou operaia SQL euat ca parte a procesrii ACR. Dac conectarea are succes, nu se raporteaz nicio eroare aplicaiei.

Exemplu
Exemplu 1: Activare ACR pentru baza de date SAMPLE cnd preluarea la defect de tip seamless este dezactivat
<database name="SAMPLE" host="v33ec065.my.domain.com" port="446"> <!-- parametri specifici bazei de date --> <WLB> <!-- Sysplex WLB este dezactivat implicit --> <parameter name="enableWLB" value="true" /> </WLB> <ACR> <!-- ACR este deja activat implicit cnd WLB este activat --> <parameter name="enableAcr" value="true" /> <!-- Cnd ACR este activat, iar serverul destinaie este DB2 for z/OS, Seamless ACR este activat implicit; dac serverul destinaie nu este DB2 for z/OS, aceast setare este ignorat iar Seamless ACR nu este suportat. --> <parameter name="enableSeamlessAcr" value="false" /> </ACR> </database>

Exemplu 2: Dezactivare ACR pentru baza de date SAMPLE


<database name="SAMPLE" host="v33ec065.my.domain.com" port="446"> <!-- parametri specifici bazei de date --> <WLB> <!-- Sysplex WLB este dezactivat implicit --> <parameter name="enableWLB" value="true" /> </WLB> <ACR> <!-- ACR este activat implicit cnd WLB este activat --> <parameter name="enableAcr" value="false" /> </ACR> </database>

Exemplu 3: Specificai c lista de servere alternative este folosit la momentul primei conectri, dac gazda iniial nu este disponibil
<database name="SAMPLE" host="v33ec065.svl.ibm.com" port="446"> <ACR> <parameter name="enableACR" value="true"/> <parameter name="enableAlternateServerListFirstConnect" value="true"/> </ACR> </database>

Capitolul 19. Suportul Sysplex pentru client

113

Configurarea afinitilor clientului


Putei configura afinitile clientului pentru a controla ordinea serverelor care sunt ncercate n timpul procesrii conectrii iniiale i n timpul procesrii rerutrii automate a clientului (ACR). Putei folosi afinitile clientului cnd echilibrarea ncrcrii de lucru nu este activat explicit. Despre acest task n mod obinuit, aplicaiile care folosesc capacitile Sysplex ale clientului determin la care membru s se conecteze n timpul unui defect, folosind cea mai recent list de servere returnat de serverul de baz de date. n acest model, clientul reruteaz pe baza ultimei liste de servere returnate pe care a citit-o, prin urmare ordinea serverelor de ncercat este controlat de server. Totui, putei neglija aceast comportare configurnd afinitile clientului i specificnd o list de servere alternativ de folosit n timpul procesrii conectrii iniiale i pentru procesarea rerutrii clientului realizate de client. Cnd procesarea afinitilor clientului este activ, ordinea serverelor care sunt ncercate pentru procesarea ACR este controlat de ctre client. Pentru a configura afinitile clientului, specificai setri pentru ALTERNATE_SERVER_LIST, AFFINITY_LIST i CLIENT_AFFINITY n fiierul de configurare db2dsdriver. Cnd aceste setri sunt specificate: v Conexiunea este stabilit pe baza unei liste de servere alternativ, nu pe baza portului i gazdei specificate de aplicaie. De exemplu, dac aplicaia specific Host = s1 i lista de servere alternativ specific Serverlist = (s2, s1, s3), atunci conexiunea iniial este ncercat pe s2 i nu pe s1. Ordinea ncercrilor de conectare este (s2,s2,s2) (s1,s1,s1) (s3,s3,s3). acrRetryInterval se aplic ncercrilor individuale de conectare (un total de 8 ori, n acest exemplu). v Rerutarea clientului de tip seamless (fr custuri) este activat automat. Rerutarea clientului este realizat prin conectarea la serverele specificate n parametrii Server i Port ai grupului ALTERNATE_SERVER_LIST. Fiecare server din lista alternativ este ncercat de maxAcrRetries ori nainte de a fi folosit urmtorul server din lista alternativ, iar aceasta continu pn cnd este parcurs ntreaga list sau pn se stabilete cu succes o conexiune. De exemplu, dac lista de servere alternativ este definit s fie (s3,s1,s2) i maxAcrRetries este 3, atunci ordinea de rerutare este (s3,s3,s3) (s1,s1,s1) (s2,s2,s2). acrRetryInterval se aplic dup fiecare ncercare individual de conectare (un total de 8 ori, n acest exemplu). Procedura Pentru a specifica setrile de afinitate client n fiierul de configurare db2dsdriver. 1. n fiierul de configurare db2dsdriver sub grupul ACR, declarai lista de servere alternative specificnd intrri pentru ALTERNATE_SERVER_LIST. n list specificai numrul de port i numele de gazd pentru fiecare server. De exemplu:
<database name="SAMPLE" host="v33ec065.svl.ibm.com" port="446"> <acr> <parameter name="enableACR" value="true"/> <alternate_server_list> <server name="server1" hostname="v33ec067.svl.ibm.com" port="446" > </server> <server name="server2" hostname="v33ec066.svl.ibm.com" port="446" > </server> <server name="server3"

114

Ghidul utilizatorului DB2 Connect

hostname="v33ec065.svl.ibm.com" port="446" > </server> </alternate_server_list> . . .

Specificnd aceast list, doar declar serverele alternative; nu duce la nicio modificare n comportament. 2. Sub grupul ACR, identificai ordinea serverelor specificnd intrri n AFFINITY_LIST. De exemplu:
. . . <affinity_list> <list name="list1" serverorder="server1,server2,server3" > </list> <list name="list2" serverorder="server3,server2,server1" > </list> </affinity_list> . . .

Specificnd aceast list, doar identific ordinea serverelor; nu duce la nicio modificare n comportament. 3. Sub grupul ACR, activai afinitile clientului specificnd unul din urmtoarele subgrupuri de afiniti client. Specificnd unul dintre aceste subgrupuri se foreaz activarea afinitilor clientului. Toi clienii care se conecteaz la aceast baz de date trebuie specificai n unul din subgrupurile CLIENT_AFFINITY. Dac un client nu este gsit n unul din aceste subgrupuri, atunci se va ridica o eroare la ncercarea de conectare. Cnd este prezent un subgrup CLIENT_AFFINITY, ACR este activat implicit. v CLIENT_AFFINITY_DEFINED Specific o anumit mapare de la numele de gazd client la un element AFFINITY_LIST specific. Numele de gazd client va fi descoperit automat i va fi comparat cu intrarea din fiierul de configuraie db2dsdriver pentru a calcula lista de afiniti. De exemplu:
. . . <client_affinity_defined> <!- aceast seciune are afiniti specifice definite --> <client name="client1" hostname="appsrv1.svl.ibm.com" listname="list2" > </client> <client name="client2" hostname="appsrv2.svl.ibm.com" listname="list1" > </client> </client_affinity_defined> . . .

v CLIENT_AFFINITY_ROUNDROBIN Specific o alocare circular (round robin) n ALTERNATE_SERVER_LIST. Aceast alocare are serverul de nceput setat la fel cu indexul clientului (baza zero) n lista
Capitolul 19. Suportul Sysplex pentru client

115

CLIENT_AFFINITY_ROUNDROBIN, modulo numrul de servere din ALTERNATE_SERVER_LIST. De exemplu:


. . . <client_affinity_roundrobin> <!- roundrobin alege serverul de nceput la fel cu numrul de index al clientului din aceast seciune (baza 0) modulo numrul de servere. --> <client name="client3" hostname="appsrv3.svl.ibm.com" > <!- aceast intrare este index 0, modulo 3, aa c obine: server1, server2, server3 --> </client> <client name="client4" hostname="appsrv4.svl.ibm.com" > <!- aceast intrare este index 1, modulo 3, aa c obine: server2, server3, server1 --> </client> </client_affinity_roundrobin> . . .

Rezultate La procesarea afinitilor clientului se aplic urmtoarele reguli i considerente: v Cnd este activat CLIENT_AFFINITY (adic, sunt prezente unul sau mai multe subgrupuri CLIENT_AFFINITY n fiierul de configurare db2dsdriver), valoarea implicit pentru maxAcrRetries este 3. Intervalul valid pentru aceast valoare este de la 0 la MAX_INT. Dac valoarea specificat este 0, procesarea ACR se realizeaz ca i cum maxAcrRetries ar fi fost specificat la 1. v Valoarea implicit pentru acrRetryInterval este 0. Intervalul valid pentru aceast valoare este de la 0 la MAX_INT. Cnd aceast valoare este 0, nu exist niciun interval ntre rencercri sau ncercrile ACR n driver. v Numrul total de servere alternative care se calific pentru un client dat nu poate depi 24. Cnd numrul de servere care se calific este mai mare dect 24, apare SQL1042N. v Setrile enableWLB i CLIENT_AFFINITY se exclud reciproc. Apare o eroare SQL5162N dac sunt activate amndou setrile enableWLB i CLIENT_AFFINITY. v Atributele necesare trebuie specificate n grupurile ALTERNATE_SERVER_LIST, AFFINITY_LIST i CLIENT_AFFINITY. Altfel va apare SQL5163N. v Dac este activat CLIENT_AFFINITY, ALTERNATE_SERVER_LIST nu trebuie s fie goal. Altfel va apare SQL5164N. v Dac este activat CLIENT_AFFINITY, atunci numele de gazd ai clienilor trebuie s se rezolve la o list de servere alternative valid. Altfel va apare SQL5164N. De exemplu, dac numele de gazd al clientului este xyz.domain.com i numele de gazd nu este gsit n unul din subgrupurile CLIENT_AFFINITY, atunci apare SQL5164N. n plus, numele de gazd poate aprea doar n unul din grupurile CLIENT_AFFINITY.

Exemplu
Urmtorul exemplu arat o seciune de baz de date exemplu a fiierului de configurare db2dsdriver cu subgrupurile CLIENT_AFFINITY specificate:

116

Ghidul utilizatorului DB2 Connect

<database name="SAMPLE" host="v33ec065.svl.ibm.com" port="446"> <acr> <parameter name="enableACR" value="true"/> <alternate_server_list> <server name="server1" hostname="v33ec067.svl.ibm.com" port="446" > </server> <server name="server2" hostname="v33ec066.svl.ibm.com" port="446" > </server> <server name="server3" hostname="v33ec065.svl.ibm.com" port="446" > </server> </alternate_server_list> <affinity_list> <list name="list1" serverorder="server1,server2,server3" > </list> <list name="list2" serverorder="server3,server2,server1" > </list> </affinity_list> <client_affinity_defined> <!- this section has specific defined affinities --> <client name="client1" hostname="appsrv1.svl.ibm.com" listname="list2" > </client> <client name="client2" hostname="appsrv2.svl.ibm.com" listname="list1" > </client> </client_affinity_defined> <client_affinity_roundrobin> <!- roundrobin alege serverul de nceput la fel cu numrul de index al clientului din aceast seciune (baza 0) modulo numrul de servere. --> <client name="client3" hostname="appsrv3.svl.ibm.com" > <!- aceast intrare este index 0, modulo 3, aa c obine: server1, server2, server3 --> </client> <client name="client4" hostname="appsrv4.svl.ibm.com" > <!- aceast intrare este index 1, modulo 3, aa c obine: server2, server3, server1 --> </client> </client_affinity_roundrobin> </acr> </database>

Limitri la folosirea suportului de Sysplex pentru client


Se aplic unele limitri suportului Sysplex pentru client disponibil n clienii IBM Data Server i driver-ele de server de date non-Java. v Limitri ale echilibrrii ncrcrii de lucru la nivel de tranzacie: Clientul trebuie s foloseasc o conexiune TCP/IP.

Capitolul 19. Suportul Sysplex pentru client

117

Pentru clienii i driver-ele IBM Data Server care folosesc suportul Sysplex pentru client, lista de servere este pus n cache n cadrul procesului aplicaiei. De aceea, lista este partajat doar de conexiunile din acel proces pentru echilibrarea ncrcrii de lucru de la unul sau mai multe fire de execuie. v Limitrile rerutrii automate a clientului: Clientul trebuie s foloseasc o conexiune TCP/IP. Preluarea la defect de tip seamless (fr custuri) la prima instruciune SQL a unei tranzacii nu este suportat dac serverul Sysplex nu permite refolosirea transportului la sfritul tranzaciei anterioare. O excepie este dac refolosirea transportului nu este acordat ca rezultatul unui KEEPDYNAMIC(YES). Preluarea la defect de tip seamless la prima instruciune SQL a unei tranzacii nu este suportat dac driver-ul CLI trebuie s pstreze o istorie a API-urilor apelate anterior pentru a putea reda instruciunea SQL. Scenariile n care aceasta poat aprea includ specificarea datelor la momentul execuiei, la efectuarea de SQL compus i la folosirea intrrilor matriciale. Dac se ntmpl o preluare la defect de tip seamless cnd autocomiterea este activat, o instruciune SQL poate fi executat i comis de mai multe ori. Acest rezultat poate aprea cnd apare un eveniment care declaneaz rerutarea automat a clientului dup terminarea cu succes a comiterii originale. Pentru a evita acest comportament, dezactivai fie autocomiterea, fie preluarea la defect de tip seamless (fr custuri). Preluarea la defect de tip seamless nu este aplicabil n interiorul unei proceduri memorate Preluarea la defect de tip seamless nu este aplicabil n mediile Federated Server v Suport XA: Urmtoarele modele de procesare a managerului de tranzacii nu sunt suportate: - Dual-transport. n acest model, o tranzacie, peste transportul A, este legat la un membru de la xa_start pn la xa_end, dar xa_prepare(readonly), xa_prepare plus xa_commit sau xa_rollback, sau xa_rollback vin peste transportul B, posibil din alt proces de aplicaie. Exemple de manageri de tranzacie care folosesc acest model sunt IBM WebSphere MQ i IBM Lotus Domino. - Multi-transport. Acest model implic folosirea mai multor transporturi de la mai multe procese de aplicaie, pentru aceeai tranzacie. Un exemplu de manager de tranzacii care folosete acest model este BEA Tuxedo. Pentru managerii de tranzacii XA care folosesc un model de procesare multi-transport, mai este necesar un server DB2 Connect de nivel intermediar (middle-tier).

118

Ghidul utilizatorului DB2 Connect

Capitolul 20. Ajustarea DB2 Connect


Pot fi utilizai diveri parametri din fiierul de configurare al managerului bazei de date pentru a regla DB2 Connect.

RQRIOBLK
Parametrul RQRIOBLK seteaz dimensiunea maxim a blocurilor I/E ale reelei. O dimensiune mai mare de bloc ar putea mbuntii performana cererilor mai mari. Dimensiunea blocului nu afecteaz n mod normal timpul de rspuns pentru cereri mici, cum ar fi cererile pentru o singur linie de date. O dimensiune mai mare a blocului necesit de obicei mai mult memorie pe serverul DB2 Connect. Aceasta crete dimensiunea setului de lucru i ar putea produce un volum mare de paginare pe staiile de lucru mici. Folosii dimensiunea de bloc DRDA implicit (32767) dac nu cauzeaz prea mult paginare la executarea aplicaiei dumneavoastr. Altfel, reducei dimensiunea blocului de I/E pn nu mai exist paginare. O dat paginarea pornit, se va produce o degradare a performanei. Folosii unelte de monitorizare performan (cum ar fi unealta vmstat pentru sisteme de operare Linux i UNIX) pentru a determina dac paginarea are loc pe sistemul dumneavoastr.

DIR_CACHE
Parametrul DIR_CACHE determin dac se pun n cache informaiile directorului. Cnd se folosete punerea n cache (DIR_CACHE=YES), fiierele din director sunt citite i trecute n memoria cache pentru a minimiza regia de creare a structurii de directoare interne i de citire a fiierelor director de fiecare dat cnd este stabilit o conexiune. Dac nu se folosete punerea n cache (DIR_CACHE=NO), de fiecare dat cnd v conectai la o baz de date directorul corespunztor este citit de pe un disc i apoi se execut cutarea. Dup ce sunt gsite intrrile cerute, toat memoria folosit la cutarea n directoare este eliberat. n cazul punerii n cache, n timpul procesrii db2start este construit un cache de director partajat, care este eliberat cnd DB2 se oprete. Acest cache este folosit de toate procesele server DB2 (db2agent). De asemenea, este construit un director de cache de aplicaie privat cnd o aplicaie emite prima conectare a ei la baza de date i este eliberat cnd se termin aplicaia. Fiecare cache conine o imagine a directorului de baz de date de sistem, a directorului de servicii de conectare la baza de date i a directorului de noduri. Cache-ul reduce costurile conectrii prin eliminarea fiierelor directoare I/E i prin minimizarea cutrii de directoare. Dac este actualizat un director pus n cache, schimbrile nu sunt propagate imediat n celelalte cache-uri. Dac intrarea directorului nu este gsit n cache, se caut n directorul original. Punerea n cache crete memoria privat necesar pe durata de via a aplicaiei. Fr punere n cache, aceast memorie este necesar doar cnd este procesat o cutare de director. Folosirea pe ansamblu a memoriei partajate de DB2 crete uor, deoarece informaiile directorului care sunt partajate ntre agenii bazei de date sunt mutate n memoria partajat.
Copyright IBM Corp. 1993, 2009

119

Dimensiunea memoriei necesare pentru cache depinde de numrul intrrilor definite n fiecare director.

NUMDB
Comportamentul DB2 Connect nu era afectat de parametrul de configurare NUMDB n versiunile anterioare, dar acest lucru s-a schimbat odat cu Versiunea 8. Acest parametru indic numrul maxim de baze de date la care se pot conecta clienii prin serverul DB2 Connect. Mai precis, numrul maxim de aliasuri de baz de date diferite care pot fi catalogate pe serverul DB2 Connect.

Ali parametri DB2 Connect


AGENTPRI i MAXAGENTS sunt depreciai n Versiunea 9.5 Comenzile pentru actualizarea valorii pentru MAXAGENTS vor continua s funcioneze, aa c aplicaiile existente nu vor suferi, dar valorile vor fi ignorate. Numele de parametru nu va aprea n nicio list de configurare. n trecut, numrul total permis de ageni pentru a fi creai pe o partiie DB2 dat era controlat prin parametrul de configurare MAXAGENTS. Acum exist posibilitatea s se configureze automat numrul de ageni. Implicit, NUM_POOLAGENTS va fi setat la AUTOMATIC cu o valoare de 100. De asemenea, MAX_COORDAGENTS va fi setat la AUTOMATIC cu o valoare implicit de 200. Pentru a trimite iruri de contabilizare de la aplicaiile dumneavoastr client la serverul DB2 Connect, folosii mijloacele specifice API pentru setarea informaiilor de contorizare. Mijloacele specifice API sunt mai rapide dect setarea variabilei de mediu DB2ACCOUNT. IBM Data Server Driver for JDBC and SQLJ Proprietatea com.ibm.db2.jcc.DB2BaseDataSource.clientAccountingInformation IBM Data Server Provider for .NET Proprietatea DB2Connection.ClientAccountingInformation CLI/ODBC Cuvntul cheie configurare CLI/ODBC ClientAcctStr SQL ncorporat (C, C++ i COBOL) Funcia sqlesact Dac nu avei nevoie de un fiier de mapare SQLCODE ajustat, putei s mbuntii performana utiliznd maparea SQLCODE implicit sau dezactivnd maparea SQLCODE. Fiierul de mapare implicit este nglobat n biblioteca DB2 Connect; un fiier de mapare ajustat trebuie s fie citit de pe disc, ceea ce afecteaz performana.

Ajustarea bazei de date gazd


Performana sistemului va fi afectat de performana serverului baz de date mainframe IBM. Sistemele diferite de gestionare a bazelor de date au caracteristici de performan diferite. Optimizatorii SQL de pe sisteme diferite, de exemplu, s-ar putea comporta diferit cu aceeai aplicaie. Verificai documentaia performanei sistemului server baz de date mainframe IBM pentru informaii suplimentare. Ai putea mbuntii performana folosind opiunile de legare UR (uncommitted read - citire necomis) sau NC (no commit - fr comitere), dac sunt disponibile, pentru a evita jurnalizarea.

120

Ghidul utilizatorului DB2 Connect

Not: Cnd se folosete UR, datele nejurnalizate pot fi numai citite, nu actualizate, i apoi numai dac gruparea pe blocuri este setat la ALL. n funcie de serverul de aplicaii i granularitatea blocrii pe care o furnizeaz, nivelul de izolare folosit pentru o interogare sau aplicaie ar putea avea un efect semnificativ asupra performanei. Baza de date ar trebui sa aib un nivel corespunztor de normalizare, utilizare efectiv a indecilor i alocare a spaiului bazei de date. Performana poate fi afectat de asemenea de tipurile de date pe care le utilizai, aa cum se arat n seciunea urmtoare.

Considerente ale ajustrii reelei


Cea mai bun cale de a mbunti performanele generale ntr-un mediu de baze de date distribuite este de a elimina ntrzierile din reea. Este ceva obinuit pentru administratorii de reele s considere o reea mai eficient n cazul n care colecteaz ct mai multe date posibile ntre transmisii. Aceast metod nu este valabil pentru aplicaii cum ar fi bazele de date distribuite, deoarece determin ntrzieri n reea. Utilizatorul final nu vede eficiena reelei, ci doar ntrzierile. Cele mai multe dispozitive de reea au parametri de ntrziere, iar cele mai multe dintre ele au valori implicite care sunt foarte proaste pentru baze de date distribuite. Pentru mbuntirea performanei trebuie s localizai aceti parametri i, dac este posibil, s-i setai la zero. n plus ar trebui s v asigurai c dimensiunea buffer-ului pentru dispozitiv este destul de mare pentru a preveni retransmisia din cauza datelor pierdute. De exemplu, sistemele UNIX au tipic o adncime implicit a cozii de transmisie sau recepie de 32. Pentru rezultate mai bune, setai adncimea cozii la 150. Un parametru corespondent la setrile DLC este adncimea la recepie, care ar trebui s fie de asemenea150. Parametrul IOBUF este setat la o valoarea prea mic n majoritatea locaiilor. De obicei este setat la 500, dar experiena a artat c soluia optim este s fie setat la valoarea 3992 dac mutai cantiti mari de date, n special pentru conexiunile canal, cum ar fi ESCON sau 3172. Pe un sistem LAN dimensiunile ferestrelor de transmisie i recepie DLC sau LLC pot avea efecte dramatice asupra performanelor. Valoarea de transmisie trebuie setat la 7 sau mai mult, iar pentru majoritatea configuraiilor cea mai bun valoare de recepie este 4 sau mai puin. Dac rulai Ethernet, ar trebui s setai dimensiunea segmentului TCP la 1500 octei. Pe o reea Token-ring sau FDDI aceast valoare ar trebui s fie 4400 octei i dac folosii un adaptor ESCON cu TCP/IP, dimensiunea segmentului ar trebui s fie ntotdeauna 4096. n sfrit, pentru reele TCP/IP, dimensiunea buffer-ului de transmisie i recepie TCP ar trebui setat mai mare ca 32768. Valoarea de 65536 este n general cea mai bun. Not: Stabilirea unei conexiuni de la gateway la server (conexiune de ieire) este mult mai scump dect stabilirea unei conexiuni de la client la gateway (conexiune de intrare). ntr-un mediu unde mii de clieni se conecteaz la i deconecteaz de la server frecvent prin gateway, o cantitate substanial a timpului de procesare este petrecut stabilind conexiuni de ieire. DB2 Connect asigur conexiuni pool de-a lungul TCP/IP. Cnd un client cere deconectarea de la server, gateway-ul abandoneaz conexiunea de intrare cu clientul, dar pstreaz conexiunea de ieire cu serverul ntr-un pool. Cnd un client nou intr n gateway pentru a cere o conexiune, gateway-ul asigur una existent din pool pentru a reduce timpul pentru conectarea general i pentru a salva costul maxim de conectare la server CPU. n Tabela 19 la pagina 122 putei vedea un sumar al metodelor de ajustare a performanei reelei.

Capitolul 20. Ajustarea DB2 Connect

121

Tabela 19. Metode de ajustare a performanei reelei Ce se caut ntrzieri deliberate Buffer-e Exemplu Setare Note Implicit sunt de obicei mai mari. Util mai ales pentru ESCON sau alt adaptor canal. Setarea RUSIZE i RQRIOBLK la aceeai dimensiune ar putea da performan maxim. Utilizai un ritm adaptabil, unde se poate aplica. Implicit este de obicei 32. Adaptoarele ESCON folosite pentru TCP/IP ar trebui setate ntotdeauna la 4096. Implicit este doar 8192 pentru Windows. Poate fi setat n registrul Windows.

Parametri de ntrziere Setare la 0. pe dispozitivele de reea Parametrul IOBUF Setare pn la 3992.

Buffer-e

RUSIZE

Dimensiunea optim este 4096.

Buffer-e

Ritm

VPACING, PACING i Mode Profiles ar trebui setate la 63. Valoarea recomandat este 150. 1500 la Ethernet, 4400 la Token-Ring i FDDI.

Setare adaptor Setare TCP

Adncimea cozii de transmisie/recepie Dimensiune segment

Setare TCP

Dimensiunea spaiului de emisie/recepie

Trebuie s fie 64K pentru ambele.

Conflictul pentru resursele de sistem


Performana poate fi degradat dac mai multe taskuri din sistem intr n conflict pentru resursele de sistem. Luai n considerare urmtoarele ntrebri: v Este CPU saturat? Luai n considerare modernizarea sistemului, reducerea ncrcrii de lucru a sistemului i ajustarea sistemului pentru a reduce regia de procesare. v Este memoria supra-comis? Luai n considerare modernizarea memoriei, reducnd ncrcarea de lucru a sistemului i reglnd sistemul pentru a reduce setul de lucru al memoriei. v Este adaptorul/controlerul de comunicaii prea ocupat? Luai n considerare modernizarea reelei sau mperecherea plcilor Token-Ring. v Este unul dintre subsisteme prea ocupat i este acest subsistem n calea datelor? v Exist procese sau taskuri care nu sunt necesare i ruleaz n sistem? Regula general este s nu se configureze sau porneasc servicii dect dac sunt utilizate cu regularitate pentru c ar folosi degeaba resurse sistem. v Utilizeaz cteva procese sau taskuri majoritatea resurselor? Pot fi acestea oprite? Le pot fi reduse prioritile? Pot fi ele rafinate astfel nct s nu mai utilizeze aa multe resurse?

Depanarea performanei DB2 Connect


Dac utilizatorii DB2 Connect se confrunt cu timpi mari de rspuns n cazul interogrilor voluminoase de pe serverele mainframe IBM, ar trebui examinate urmtoarele zone pentru cauze posibile ale problemelor de performan: 1. Pentru interogrile care au ca rezultat returnarea blocuri mari de date de la serverul mainframe IBM (uzual 32K de date i mai mult), asigurai-v c parametrul de configurare manager baz de date RQRIOBLK este setat la 32767. Aceasta se poate face utiliznd CLP (Command Line Processor), dup cum urmeaz:

122

Ghidul utilizatorului DB2 Connect

db2 update database manager configuration using RQRIOBLK 32767

2. Asigurai-v c dimensiunea maxim RU definit n modul de definire IBMRDB este setat la o valoare potrivit. Se recomand ca dimensiunea s nu fie mai mic de 4K pentru conexiunile ce folosesc hardware Token-ring. Pentru conexiunile ce folosesc hardware Ethernet, reinei c dimensiunea maxim a cadrului Ethernet este 1536 octei, ceea ce ar putea fi un factor limitator.

Ajustarea DB2 for z/OS


Putei optimiza procesarea firelor de execuie inactive din z/OS. n V5, este permis pn la 25,000 de clieni conectai concurent. n toate aceste cazuri, numrul maxim de clieni care pot fi activi n acelai timp este ns 1999. Fiecare client staie de lucru poate rmne conectat atunci cnd este inactiv; firul su de execuie este plasat ntr-un lan inactiv la fiecare comitere. Parametrii DSNZPARM CMTSTAT, CONDBAT i MAXDBAT influeneaz prelucrarea firelor de execuie. Pentru cea mai bun performan, setai CMTSTAT pe INACTIVE, potrivii CONDBAT la numrul maxim de DBAT-uri conectate care furnizeaz o bun performan i MAXDBAT la numrul maxim acceptabil de DBAT-uri active.

Creterea ratelor de transfer de date DB2 Connect


n plus fa de blocarea rndurilor pentru un set de rezultate interogare, DB2 for z/OS poate de asemenea returna mai multe astfel de blocuri de interogri n rspuns la o cerere OPEN sau FETCH pentru un client la distan, cum ar fi DB2 Connect. n loc s trimit repetat clientul cereri la DB2 for z/OS care cer un bloc de date rnd o dat, clientul poate cere opional ca serverul s trimit napoi un numr de blocuri de interogare n plus fa de cel pe care-l trimite ntotdeauna napoi. Aceste blocuri de interogare sunt numite blocuri de interogare suplimentare. Astfel, aceast nou caracteristic permite clientului s reduc numrul de ntoarceri pe linia de reea, ceea ce reprezint un cost important pentru performanele reelei. Scderea numrului de cereri trimise de client ctre server pentru blocuri de interogare se traduce ntr-o mrire semnificativ a performanelor. Aceast cretere de performan se datoreaz faptului c comutarea ntre o linie de trimitere i de recepie este o operaie costisitoare din punct de vedere al performanelor. DB2 Connect poate acum exploata aceast mbuntire de performan cernd blocuri extra de interogare DB2 for z/OS. Pentru a profita din plin de ntoarcerea blocurilor extra de interogare (fiecare putnd avnd pn la 32K octei) pentru protocolul de reea preferat de TCP/IP, extensiile de scalare fereastr au fost activate ca arhitectur sub RFC-1323 n DB2 Connect. Aceast caracteristic permite TCP/IP s ajusteze dinamic dimensiunile ferestrelor de trimitere i de recepie pentru a se adapta n mod eficient la eventualele cantiti mari de date returnate pe calea blocurilor de interogare suplimentare.

Blocul de interogare suplimentar


Suport pentru interogare extra bloc pe servere cu DB2 for z/OS Versiunea 7 sau mai recent este configurat prin parametrul EXTRA BLOCKS SRV n panoul de instalare DB2 DDF. Acest suport este configurat de calea de controlat cu numrul maxim de blocuri de interogri suplimentare pe care DB2 le poate trimite napoi la un client pentru o cerere. Putei seta acest parametru la o valoare ntre 0 i 100. Prin setarea parametrului la valoarea 0 se dezactiveaz returnarea de blocuri de interogare suplimentare. Valoarea implicit de 100 ar trebui utilizat ntotdeauna pentru a avea cel mai mare avantaj al acestei caracteristici, exceptnd unele comportamente specifice unei reele care ar face ca setarea s nu mai fie ideal.
Capitolul 20. Ajustarea DB2 Connect

123

Pe partea de client, unde aplicaia acceseaz DB2 for z/OS ori direct printr-o instalare co-localizat n DB2 Connect sau printr-o instalare server separat DB2 Connect, sunt mijloace variate pentru activarea suportul corespunztor DB2 Connect pe baz de cursor sau instruciune: v Utilizarea unei dimensiuni a setului de rnduri interogare pentru un cursor. v Utilizarea clauzei OPTIMIZE for N ROWS n instruciunea select asociat cu un cursor v Utilizarea clauzei FETCH FIRST N ROWS n instruciunea select asociat cu un cursor DB2 Connect poate activa suportul pentru rnduri suplimentare de interogare utiliznd diferite API-uri SQL: SQL ncorporat v Utilizatorul poate invoca suport bloc extra pentru o interogare specificnd clauza OPTIMIZE for N ROWS sau clauza FETCH FIRST N ROWS ONLY sau ambele sau selectai nsi instruciunea. v Cu clauza OPTIMIZE for N ROWS, DB2 for z/OS va ncerca s pun n blocuri numrul dorit de rnduri de returnat la DB2 Connect, n funcie de setarea parametrului de instalare EXTRA BLOCKS SRV DDF. Aplicaia poate alege s aduc mai mult de N rnduri deoarece DB2 for z/OS nu limiteaz numrul total de rnduri care ar putea fi returnat pentru rezultatul interogrii setat la N. v Clauza FETCH FIRST N ROWS ONLY lucreaz similar, cu excepia c setul de rezultate ale interogrii este limitat la N rnduri de DB2 for z/OS. Aducerea a mai mult de N rnduri va avea ca rezultat codul SQL +100 (sfrit date). CLI/ODBC v Utilizatorul poate invoca suportul pentru blocuri de interogare suplimentare, pentru o interogare, utiliznd atributul su instruciune SQL_MAX_ROWS. v Clauza FETCH FIRST N ROWS ONLY este folosit n schimb pentru un server DB2 UDB pentru DB2 for z/OS 7.1 sau mai recent. Pentru Versiunea 7, setul de rezultate ale interogrii este limitat la N rnduri de DB2 pentru DB2 for z/OS. ncercarea de a aduce a mai mult de N rnduri va avea ca rezultat SQL_NO_DATA_FOUND. Pentru Versiunea 8 sau mai recent, CLI asigur c doar primele N rnduri sunt returnate aplicaiei prin managerul de cursor client. JDBC Utilizatorul poate invoca suportul pentru blocuri de interogare suplimentare, pentru o interogare, utiliznd metoda setMaxRows. Similar activrii CLI/ODBC, DB2 Connect va eticheta clauza OPTIMIZE for N ROWS pentru un server DB2 for z/OS 6.x. DB2 Connect va eticheta de asemenea clauza FETCH FIRST N ROWS ONLY pentru un server DB2 for z/OS 7.1 sau mai recent.

Scalarea ferestrei RFC-1323


Scalarea ferestrelor este suportat pe toate platformele Windows, Linux i UNIX care suport extensiile RFC-1323 pentru TCP/IP. Putei activa aceast caracteristic pe DB2 pentru Windows, Linux sau UNIX folosind variabila de registru DB2 DB2SORCVBUF. Pentru a activa scalarea ferestrelor, aceast variabil de registru ar trebui setat la orice valoare peste 64K. De exemplu, pe DB2 pentru Windows, Linux, sau UNIX, putei emite db2set DB2SORCVBUF =65537. Dimensiunile maxime ale buffer-elor de trimitere i de primire sunt dependente de sistemul de operare. Pentru a se asigura c dimensiunile de buffer configurate au fost acceptate, utilizatorul poate s seteze parametrul de configurare al managerului de baz de date DIAGLEVEL la 4 (informativ) i s verifice mesajele din fiierul istoric al notificrilor de administrare.

124

Ghidul utilizatorului DB2 Connect

Pentru ca scalarea ferestrelor s aib efect trebuie activat la ambele capete ale unei conexiuni; sau i pe staia de lucru i gazd, sau direct prin stiva TCP/IP a sistemului de operare, sau indirect prin produsul DB2. De exemplu, pentru DB2 for z/OS, scalarea ferestrelor poate fi activat prin sistemul de operare setnd TCPRCVBUFRSIZE la orice valoare peste 64K. Dac folosii un IBM Data Server la distan pentru a accesa o baz de date DB2 mainframe IBM printr-o staie de lucru a serverului DB2 Connect, putei activa i scalarea ferestrei pe client. Cu acelai jeton, putei activa scalarea ferestrei ntre un IBM Data Server la distan i un server DB2 staie de lucru cnd nu este implicat nicio baz de date DB2 mainframe IBM. n timp ce scalarea ferestrei este destinat s creasc performanele reelei, este important de observat c mbuntirea ateptat de performane ale reelei nu se materializeaz ntotdeauna. Interaciunea dintre factori cum ar fi dimensiunea cadrului folosit pentru adaptorul LAN Ethernet sau Token-ring, dimensiunea IP MTU i alte setri la rutere prin legtura de comunicaie ar putea avea ca rezultat degradarea performanei o dat ce scalarea ferestrei a fost activat. De aceea, implicit, scalarea ferestrei este dezactivat, cu buffer-ele de recepie i de transmisie setate la 64K. Trebuie s fii pregtit s apreciai impactul pornirii scalrii ferestrei i s realizai orice corecii necesare pentru reea. Pentru o introducere despre ajustarea reelei pentru performane mbuntite, vedei http://www.networking.ibm.com/.

Conversia datelor gazd


Cnd sunt transferate informaii ntre diferite medii (cum ar fi Intel [Windows], IEEE [sistemele de operare Linux i UNIX], System z [VM, VSE, z/OS], IBM Power Systems [IBM i]), ar putea fi necesar convertirea tipurilor de date numerice (cum ar fi decimal, integer, floating point). Aceast conversie poate afecta performana. Costul CPU al conversiei datelor caracter pe un singur octet este n general mai mic dect acela al conversiei datelor numerice (cnd este necesar conversia datelor). Costul conversiei de date pentru DATE/TIME/TIMESTAMP este aproape egal cu cel pentru CHAR pe un singur octet. Conversia datelor n virgul mobil (FLOATING) cost cel mai mult. Proiectantul de aplicaie ar putea vrea s beneficieze de aceste aspecte la proiectarea unei aplicaii pe baza DB2 Connect. Dac o tabel de baz de date are o coloan definit FOR BIT DATA, datele de tip caracter transferate ntre aplicaie i baza de date nu necesit nici o conversie de date. Aceasta poate fi folosit cnd arhivai date pe serverul baz de date mainframe IBM.

Tipurile de date pentru datele caracter


Datele caracter pot avea tipul de date CHAR sau VARCHAR. Care tip de date este mai eficient depinde de lungimea tipic de date din cmp: v Dac dimensiunea datelor propriu-zise variaz semnificativ VARCHAR este mai eficient, deoarece CHAR adaug caractere goale pentru a umple cmpul. Aceste caractere goale trebuie s fie transferate de-a lungul reelei, la fel ca oricare alte caractere. v Dac dimensiunea datelor propriu-zise nu variaz prea mult CHAR este mult mai eficient, deoarece fiecare cmp VARCHAR are civa octei pentru lungime, care trebuie s fie transmii.

Capitolul 20. Ajustarea DB2 Connect

125

Hardware-ul de reea
Urmtoarele considerente se refer la hardware: v Viteza reelei sau mediul de transmisie Performanele se mbuntesc cu un mediu de transmisie mai rapid. De exemplu, urmtoarele valori sunt tipice pentru ratele de transfer brut al datelor: Canal-la-canal (fibre optice) 4,0 MB/s LAN 16 Mbps 2,0 MB/s Canal-la-canal (obinuit) 1,0 MB/s LAN 4 Mbps 0,5 MB/s Purttoare T1 de mare vitez (1,544 Mbps) 0,193 MB/s Linie telefonic rapid la distan 56 Kbps 0,007 MB/s Model 19,6 Kbps 0,002 MB/s Modem 9600 bps 0,001 MB/s Rata transferului de date este limitat de cel mai ncet mediu de transmisie din calea spre serverul baz de date mainframe IBM. v Adaptorul de reea sau controlorul de comunicaii Trebuie planificat cu grij utilizarea memoriei adaptorului de reea sau a controlerului de comunicaii. n plus, trebuie s consultai un specialist n reele pentru a v asigura c controlerul are capacitatea de a manipula traficul suplimentar generat de DB2 Connect. v Topologia reelei Dac datele trec dintr-un LAN n alt LAN i dintr-o reea n alt reea, luai n considerare timpul pentru parcurgerea traseului. Punile, ruterele i gateway-urile vor crete timpul de transfer. De exemplu, prin reducerea numrului punilor traversate se reduce numrul de hopuri necesare pentru fiecare cerere. Trebuie luat de asemenea n considerare distana fizic dintre noduri. Chiar dac un mesaj este transferat prin satelit, timpul de transfer este limitat de viteza lumini (3 * 10**8 m/s) i de distana dus-ntors dintre expeditor i destinatar. v Traficul reelei Dac limea de band a reelei este complet utilizat, vor scdea att timpul de rspuns, ct i rata transferului de date pentru o singur aplicaie. Pot aprea aglomerri n reea atunci cnd datele se acumuleaz ntr-o anumit parte a reelei; de exemplu, la un NCP vechi cu o dimensiune foarte mic a buffer-ului. v Fiabilitatea reelei Dac rata de erori a reelei este mare, debitul reelei va scdea i aceasta va duce la o performan de nivel sczut, din cauza retransmisiei.

126

Ghidul utilizatorului DB2 Connect

Capitolul 21. Ajustarea performanei aplicaiei CLI/ODBC


CLI/ODBC este o interfa de programare a aplicaiilor SQL care poate fi apelat de aplicaiile dumneavoastr de baz de date. Funciile CLI invoc proceduri memorate DB2 care, n schimb, acceseaz tabelele de catalogare sistem. Unele aplicaii folosesc API-uri ODBC pentru a aduna informaii de metadate care sunt folosite n procesarea ulterioar. Cele zece apeluri API de metadate care pot fi fcute sunt:
SQLTables SQLColumns SQLSpecialcolumns SQLStatistics SQLPrimarykeys SQLForeignkeys SQLTablePrivileges SQLColumnPrivileges SQLProcedures SQLProcedureColumns

Anumite aplicaii CLI/ODBC care folosesc API-urile de metadate listate mai sus ar putea interoga toate obiectele din aceast baz de date. De exemplu, un apel SQLTables cere metadate pentru toate tabele din baza de date. Pe un sistem mare, asemenea cereri pot duce la mult trafic pe reea, pot dura o perioad considerabil de timp i pot consuma o cantitate considerabil din resursele serverului. Pot fi folosite mai multe cuvinte cheie de iniializare CLI/ODBC pentru a limita cantitatea de date care vor fi returnate de apelurile iniiale API n timpul etapei obinere informaii dup conectarea la baza de date. Aceste cuvinte cheie pot fi setate de: 1. Editare manual a fiierului db2cli.ini. 2. Prin schimbarea setrilor ODBC/CLI pentru baza de date folosind Configuration Assistant a clientului (pe acele platforme care le suport). 3. Actualiznd configurarea bazei de date CLI folosind linia de comand a interfeei DBA. Cuvintele cheie sunt:
DBName TableType SchemaList SysSchema GrantorList GranteeList

Copyright IBM Corp. 1993, 2009

127

128

Ghidul utilizatorului DB2 Connect

Partea 5. Depanarea

Copyright IBM Corp. 1993, 2009

129

130

Ghidul utilizatorului DB2 Connect

Capitolul 22. Depanarea DB2 Connect


Mediul DB2 Connect implic mai multe produse software, hardware i de comunicaie. Depanarea se realizeaz cel mai bine stabilind verdictul (locaia erorii) printr-un proces de eliminare i rafinare a datelor disponibile. Dup strngerea informaiilor relevante i bazndu-v pe selecia dumneavoastr de subiecte aplicabile, trecei la seciunea de referin.

Strngerea informaiilor relevante


Depanarea include ngustarea domeniului problemei i investigarea cauzelor posibile. Un punct de start potrivit este adunarea informaiilor relevante i stabilirea a ceea ce se cunoate, a datelor ce nu au fost strnse i ce ci de depanare putei elimina. Rspundei cel puin la ntrebrile urmtoare. v Conectrile iniiale s-au realizat cu succes? v Hardware-ul funcioneaz corespunztor? v Cile de comunicaie sunt operaionale? v Au existat modificri ale reelei de comunicaie care ar fi putut face invalide intrrile de director anterioare? v A fost pornit baza de date? v Este ntrerupt comunicaia este ntre unul sau mai muli clieni i DB2 Connect Server (gateway); ntre gateway-ul DB2 Connect i serverul de baz de date mainframe IBM; sau ntre DB2 Connect Personal Edition i serverul de baz de date mainframe IBM. v Ce putei determina din coninutul mesajului i jetoanele returnate n mesaj? v Folosirea uneltelor de diagnoz cum ar fi db2trc, db2pd sau db2support v-ar putea ajuta n acest moment? v Alte maini realizeaz taskuri similare care funcioneaz corect? v Dac acesta este un task la distan, reuete executarea lui local?

Conectarea iniial nu se realizeaz cu succes


Revedei urmtoarele ntrebri i asigurai-v c paii de instalare au fost urmai: 1. Procesarea instalrii s-a realizat cu succes? v Au fost disponibile toate produsele software de cerine preliminare? v A fost adecvat spaiul de memorie i de disc? v A fost instalat suportul pentru client la distan? v A fost completat instalarea software-ului de comunicaii fr nici o condiie de eroare? 2. Pentru sistemele de operare UNIX, a fost creat o instan a produsului? v Ca root ai creat un utilizator i un grup care s devin proprietarul instanei i grupul sysadm? 3. Dac este cazul, informaiile de licen au fost procesate cu succes? v Pentru sisteme de operare UNIX, ai editat fiierul nodelock i ai introdus parola pe care a livrat-o IBM? 4. Configuraiile ntre serverul de baz de date mainframe IBM i staia de lucru au fost configurate corect? v Exist trei configuraii care trebuie s fie luate n considerare:
Copyright IBM Corp. 1993, 2009

131

a. Configuraia server baz de date mainframe IBM identific solicitantul aplicaiei la server. Sistemul de gestiune server baz de date mainframe IBM va avea intrri catalog sistem care vor defini solicitantul n termeni de locaie, protocol reea i securitate. b. Configuraia staiei de lucru DB2 Connect definete populaia client pentru server i serverul mainframe IBM. c. Configurarea staiei de lucru client trebuie s aib numele staiei de lucru i protocolul de comunicaie definite. v Analiza problemelor pentru nerealizarea unei conexiuni iniiale include verificarea c numele PU (unitate fizic) sunt complete i corecte sau verificarea conexiunilor TCP/IP pentru care au fost specificate numrul corect de port i numele gazdei. v Administratorul server baz de date mainframe IBM i administratorul de reea au utilitare disponibile pentru a diagnostica probleme. 5. Avei nivelul de autoritate cerut de sistemul de gestionare a bazei de date de pe serverul mainframe IBM pentru a folosi baza de date de pe mainframe IBM?. v Evaluai autoritatea de acces a utilizatorului, regulile pentru calificativele de tabele, rezultatele anticipate. 6. Dac ncercai s folosii CLP (Command Line Processor) pentru a lansa instruciuni SQL pentru serverul de baz de date mainframe IBM, reuii? v Ai urmat procedura de a lega CLP la serverul baz de date mainframe IBM?

Au aprut probleme dup conectarea iniial


Urmtoarele ntrebri pot constitui un punct de plecare pentru a ngusta domeniul problemei. 1. Exist circumstane de operare speciale sau neobinuite? v Exist o nou aplicaie? v Exist noi proceduri utilizate? v Exist modificri recente care pot afecta sistemul? De exemplu, au fost modificate produse sau aplicaii software de la ultima rulare cu succes a aplicaiei sau scenariului? v Pentru programe de aplicaie, ce interfa de aplicaie de program (API) a fost folosit pentru a crea programul? v Au fost rulate alte aplicaii care folosesc software-ul sau API-uri de comunicaii pe sistemul utilizatorului? v A fost instalat recent un pachet de corecii? Dac problema a aprut n timp ce un utilizator ncerca folosirea unei caracteristici ce nu a mai fost folosit (sau ncrcat) n sistemul de operare respectiv de cnd a fost instalat, stabilii care este cel mai recent pachet de corecii IBM i ncrcai-l dup instalarea caracteristicii. 2. Aceast eroare a mai aprut nainte? v Exist vreo rezolvare documentat pentru condiii de eroare anterioare? v Cine au fost participanii i dac acetia pot furniza informaii de specialitate privind o posibil evoluie a aciunii? 3. Ai ncercat s folosii comenzile software-ului de comunicaii care returneaz informaii despre reea? v TCP/IP ar putea avea informaii valoroase extrase folosind comenzi i demoni TCP/IP. 4. Exist informaii returnate n SQLCA (SQL communication area) care v pot fi utile? v Problema care se ocup de proceduri trebuie s includ pai de examinare a coninuturilor cmpurilor SQLCODE i SQLSTATE. v SQLSTATE permite programatorilor de aplicaii s testeze pentru clase de erori care sunt comune pentru familia DB2 a produselor baz de date. ntr-o reea baz de date relaional distribuit acest cmp ar putea furniza o baz comun.

132

Ghidul utilizatorului DB2 Connect

5. A fost executat START DBM pe Server? Adiional, asigurai-v c mediul variabilei DB2COMM este setat corect pentru clienii care acceseaz serverul de la distan. 6. Exist alte maini care efectueaz aceeai activitate i pot s se conecteze cu succes la server? Numrul maxim de clieni care ncearc s se conecteze la server ar putea fi atins. Dac se deconecteaz un client de la server poate dup aceea s se conecteze clientul care mai nainte nu se putea conecta? 7. Maina are adresarea corespunztoare? Verificai dac maina este unic n reea. 8. Cnd se face conectarea de la distan, este garantat autoritatea necesar clientului? Conectarea la instan ar putea avea succes, dar autorizarea ar fi putut s nu fie garantat la nivelul baz de date sau tabel. 9. Este aceasta prima main de conectat la o baz de date la distan? n medii distribuite ruterele sau punile dintre reele ar putea s blocheze comunicaiile ntre client i server. De exemplu, la folosirea TCP/IP, asigurai-v c putei face PING la gazda la distan.

Uneltele de diagnoz
Dac ntlnii o problem, putei utiliza urmtoarele: v Toate datele de diagnoz, cum ar fi fiierele dump, fiierele capcan, istoricele de eroare, fiierele de notificare i istoricele de alerte, se afl n calea specificat de parametrul de configurare a managerului bazei de date pentru calea directorului datelor de diagnoz (diagpath): Dac valoarea acestui parametru de configurare este null, datele de diagnoz sunt scrise ntr-unul dintre urmtoarele directoare sau foldere: Pentru mediile Linux i UNIX: INSTHOME/sqllib/db2dump, unde INSTHOME este directorul home al instanei. Pentru mediile Windows suportate: - Dac nu este setat variabila de mediu DB2INSTPROF, se folosete x:\SQLLIB\DB2INSTANCE, unde x:\SQLLIB este referina drive-ului i a directorului specificat n variabila de registru DB2PATH, iar valoarea DB2INSTANCE este numele instanei. Not: Directorul nu trebuie s se numeasc SQLLIB. - Dac nu este setat variabila de mediu DB2INSTPROF, se folosete x:\DB2INSTPROF\DB2INSTANCE, unde DB2INSTPROF este numele directorului cu profilul de instan, iar DB2INSTANCE este numele instanei (implicit, valoarea DB2INSTDEF pe sistemele de operare Windows pe 32 de bii). v Pentru sisteme de operare Windows, putei folosi Event Viewer pentru a vizualiza istoricul de notificare administrare. v Printre uneltele de diagnoz care pot fi folosite se numr db2trc, db2pd, db2support i db2diag. v Pentru sisteme de operare Linux i UNIX, comanda ps, care returneaz informaii de stare proces despre procese active pentru ieire standard. v Pentru sisteme de operare UNIX, fiierul de baz care este creat n directorul curent cnd au loc erori severe. Acesta conine o imagine de memorie a procesului terminat i poate fi utilizat pentru a determina care funcii au cauzat eroarea.

Capitolul 22. Depanarea DB2 Connect

133

134

Ghidul utilizatorului DB2 Connect

Capitolul 23. Urmririle DB2 n DB2 Connect


Aciunile i operaiile de urmrire din mediul dumneavoastr de lucru v pot oferi informaii utile pentru depanarea unei probleme. Putei obine, face dump i formata o urmrire realizat n produsul server de baz de date DB2. Facilitatea de urmrire este furnizat ca parte a produsului server de baz de date DB2.

Obinerea unei urme DB2 folosind db2trc


Comanda db2trc controleaz facilitatea de urmrire furnizat cu DB2. Facilitatea de urmrire nregistreaz informaii despre operaii i formateaz aceste informaii ntr-o form ce poate fi citit. Nu uitai c apare o regie suplimentar atunci cnd ruleaz o urmrire, aa c activarea facilitii de urmrire poate afecta performana sistemului. n general, echipele IBM de dezvoltare i de suport software folosesc urmririle DB2 pentru depanare. Putei rula o urmrire pentru a obine informaii referitoare la o problem pe care o investigai, dar folosirea sa are rezultate limitate fr cunoaterea codului surs DB2. Cu toate acestea, este important s tii cum se pornete corect urmrirea i cum se face dump pentru fiierele de urmrire, n eventualitatea c vi se cere obinerea lor. Not: Va trebui s avei autoritatea SYSADM, SYSCTRL sau SYSMAINT pentru a folosi db2trc Pentru a v face o idee care sunt opiunile disponibile, executai comanda db2trc fr niciun parametru:
C:\>db2trc Usage: db2trc (chg|clr|dmp|flw|fmt|inf|off|on) options

Pentru informaii suplimentare despre un anumit parametru al comenzii db2trc, folosii opiunea -u. De exemplu, pentru a vedea informaii suplimentare despre activarea urmririi, executai urmtoarea comand:
db2trc on -u

Aceasta va furniza informaii despre toate opiunile adiionale (etichetate ca faciliti) ce pot fi specificate la activarea urmririi DB2. Cnd se activeaz urmrirea, cea mai important opiune este -L. Aceasta specific dimensiunea buffer-ului de memorie care va fi folosit pentru a stoca informaiile urmrite. Dimensiunea buffer-ului poate fi specificat n octei sau n megaoctei. (Pntru a specifica megaoctei, adugai M sau m dup valoare). Dimensiunea buffer-ului de urmrire trebuie s fie un numr de megaoctei egal cu o putere a lui doi. Dac specificai o dimensiune care nu ndeplinete aceast cerin, dimensiunea buffer-ului va fi rotunjit automat n jos, la cea mai apropiat putere a lui doi. Dac buffer-ul este prea mic, se pot pierde informaii. n mod implicit, sunt pstrate numai cele mai recente informaii n cazul n care se umple buffer-ul. Dac buffer-ul este prea mare, poate fi dificil trimiterea fiierului la echipa IBM de suport software. Dac se urmrete o operaie relativ scurt (cum ar fi o conexiune la baza de date), de obicei este suficient o dimensiune de aproximativ 8 MB:
Copyright IBM Corp. 1993, 2009

135

C:\> db2trc on -l 8M Trace is turned on

Dac ns urmrii o operaie mai mare sau dac se desfoar o activitate intens, poate fi necesar un buffer de urmrire mai mare. Pe majoritatea platformelor, urmrirea poate fi activat n orice moment i funcioneaz aa cum s-a artat mai sus. Exist ns i anumite situaii de care trebuie s inei cont: 1. Pe sisteme cu mai multe partiii de baz de date, trebuie s rulai o urmrire pentru fiecare partiie fizic (nu logic) de baz de date. 2. Pe platformele HP-UX, Linux i Solaris, dac este dezactivat urmrirea dup ce a fost pornit instana, la urmtoarea pornire a urmririi va fi folosit un buffer foarte mic, indiferent de dimensiunea specificat. De exemplu, s spunem c ai pornit ieri urmrirea folosind comanda db2trc on -l 8m, ai colectat o urmrire i apoi ai dezactivat urmrirea (db2trc off). Astzi dorii s rulai urmrirea cu buffer-ul de memorie setat la 32 megaoctei (db2trc on -l 32m) fr a opri i a reporni instana. Vei constata c n acest caz urmrirea va avea un buffer mic. Pentru a rula eficient urmrirea pe aceste platforme, activai urmrirea dup pornirea instanei cu dimensiunea de buffer de care avei nevoie i curai dup aceea buffer-ul dup cum este necesar.

Realizarea unui dump pentru un fiier de urmrire DB2


Dup ce a fost activat facilitatea de urmrire folosind opiunea ON, toat ativitatea ulterioar a instanei va fi urmrit. n timp ce ruleaz urmrirea, putei folosi opiunea clr pentru a cura buffer-ul de urmrire. Toate informaiile existente n buffer-ul de urmrire vor fi nlturate.
C:\>db2trc clr Trace has been cleared

Dup terminarea operaiei urmrite, folosii opiunea dmp urmat de un nume de fiier de urmrire pentru a realiza pe disc un dump al buffer-ului de memorie. De exemplu:
C:\>db2trc dmp trace.dmp Trace has been dumped to file

Facilitatea de urmrire va continua s ruleze dup ce a fost realizat dump-ul pentru buffer-ul de urmrire. Pentru a dezactiva urmrirea, folosii opiunea OFF:
C:\>db2trc off Trace is turned off

Formatarea unui fiier de urmrire DB2


Fiierul de dump creat de comanda db2trc dmp este n format binar i nu poate fi citit. Pentru a verifica dac un fiier de urmrire poate fi citit, formatai fiierul de urmrire binar pentru a afia controlul fluxului i trimitei ieirea formatat la un dispozitiv null. Exemplul urmtor prezint comanda pentru realizarea acestui task:
db2trc flw example.trc nul

unde example.trc este un fiier binar care a fost produs folosind opiunea dmp. Ieirea acestei comenzi v va spune explicit dac exist vreo problem privind citirea fiierului i dac urmrirea a fost sau nu nfurat.

136

Ghidul utilizatorului DB2 Connect

n acest punct, fiierul de dump poate fi trimis la IBM Software Support. Acolo va fi formatat pe baza nivelului dumneavoastr de service pentru DB2. ns uneori este posibil s vi se cear s trecei fiierul de dump n format ASCII nainte de a-l trimite. Putei face aceasta cu opiunile flw i fmt. Trebuie s furnizai numele fiierului binar de dump i numele fiierului ASCII pe care dorii s-l creai:
C:\>db2trc flw trace.dmp trace.flw C:\Temp>db2trc flw trace.dmp trace.flw Total number of trace records : 18854 Trace truncated : NO Trace wrapped : NO Number of trace records formatted : 1513 (pid: 2196 tid 2148 node: -1) Number of trace records formatted : 100 (pid: 1568 tid 1304 node: 0) ... C:\>db2trc fmt trace.dmp trace.fmt C:\Temp>db2trc fmt trace.dmp trace.fmt Trace truncated : NO Trace wrapped : NO Total number of trace records : 18854 Number of trace records formatted : 18854

Dac aceast ieire indic faptul c Trace wrapped este YES, nseamn c buffer-ul de urmrire nu a fost suficient de mare pentru a conine toate informaiile colectate n perioada de urmrire. n funcie de situaie, o urmrire nfurat poate fi suficient de bun. Dac v intereseaz cele mai recente informaii (adic informaiile pstrate implicit dac nu se specific opiunea -i), ceea ce se afl n fiierul de urmrire poate fi suficient. ns dac v intereseaz ceea ce s-a ntmplat la nceputul perioadei de urmrire sau dac v intereseaz tot ce s-a ntmplat, poate fi necesar s executai din nou operaia, cu un buffer de urmrire mai mare. Putei folosi anumite opiuni cnd formatai un fiier binar ntr-un fiier text ce poate fi citit. De exemplu, putei folosi db2trc fmt -xml trace.dmp trace.fmt pentru a converti datele binare i a trimite rezultatul ntr-un format parsabil XML. Celelalte opiuni sunt prezentate detaliat n descrierea comenzii de urmrire (db2trc). Alt lucru de care trebuie s inei cont este faptul c n sistemele de operare Linux i UNIX DB2 va realiza automat pe disc un dump pentru buffer-ul de urmrire atunci cnd se oprete instana din cauza unei erori grave. Astfel, dac este activat urmrirea cnd o instan se termin anormal, este creat un fiier n directorul de diagnoz i este denumit db2trdmp.###, unde ### este numrul partiiei de baz de date. Nu la fel se ntmpl pe platformele Windows. n aceste situaii trebuie s creai manual dump-ul urmririi. Pentru a recapitula, urmtorul exemplu prezint o secven obinuit de comenzi db2trc:
db2trc on -l 8M db2trc clr <Executai comenzile pentru re-crearea problemei> db2trc dump db2trc.dmp db2trc off db2trc flw db2trc.dmp <nume_fiier>.flw db2trc fmt db2trc.dmp <nume_fiier>.fmt db2trc fmt -c db2trc.dmp <nume_fiier>.fmtc

Capitolul 23. Urmririle DB2 n DB2 Connect

137

138

Ghidul utilizatorului DB2 Connect

Capitolul 24. Fiierele de urmrire DRDA


nainte de a analiza urmririle DRDA, trebuie s nelegei c DRDA este un standard deschis pentru definirea structurilor de date date i de comunicaie. De exemplu, DRDA cuprinde un set de reguli pentru organizarea datelor n vederea transmisiei i modul de comunicare a informaiilor care apar. Aceste reguli sunt definite n urmtoarele manuale de referin: v DRDA V3 Vol. 1: Distributed Relational Database Architecture v DRDA V3 Vol. 2: Formatted Data Object Content Architecture v DRDA V3 Vol. 3: Distributed Data Management Architecture Versiunile PDF ale acestor manuale sunt disponibile la www.opengroup.org. Utilitarul db2drdat nregistreaz datele schimbate ntre un DRDA Application Requestor (AR) i un DB2 DRDA Application Server (AS) (de exemplu ntre DB2 Connect i un server de baz de date gazd sau server Power Systems).

Utilitarul de urmrire
Utilitarul db2drdat nregistreaz datele schimbate ntre serverul DB2 Connect (n numele IBM Data Server) i serverul de baz de date mainframe IBM. Ca un administrator de baz de date (sau dezvoltator de aplicaii), ai putea considera util s nelegei cum funcioneaz acest flux de date, deoarece aceste cunotine v pot ajuta s determinai originea unei anumite probleme. S presupunem c aflai n urmtoarea situaie: lansai o instruciune de baz de date CONNECT TO pentru un server de baz de date mainframe IBM i comanda eueaz i primii un cod de retur pentru eec. Dac nelegei exact ce informaii au fost trimise sistemului de gestiune server baz de date mainframe IBM, ai putea determina cauza eecului chiar dac informaiile codului retur sunt generale. Multe euri sunt cauzate de simple erori de utilizator. Ieirea de la db2drdat listeaz fluxurile de date schimbate ntre staia de lucru DB2 Connect i sistemul de gestionare a serverului de baz de date mainframe IBM. Datele trimise la serverul baz de date mainframe IBM sunt etichetate SEND BUFFER i datele primite de la un server baz de date mainframe IBM sunt etichetate RECEIVE BUFFER. Dac un buffer de primire conine informaie SQLCA, va fi urmat de o interpretare formatat a acestei date i etichetat SQLCA. Cmpul SQLCODE al unui SQLCA este valoarea nemapat returnat de serverul de baz de date mainframe IBM. Buffer-ele de trimitere i de primire sunt aranjate de la cel mai vechi la cel mai recent n fiier. Fiecare buffer are: v ID-ul de proces v O etichet SEND BUFFER, RECEIVE BUFFER sau SQLCA. Prima comand DDM sau obiect dintr-un buffer are eticheta DSS TYPE. Datele care rmn n buffer-ele de trimitere sau de primire sunt divizate n 5 coloane care conin: v Un numr de octei. v Coloanele 2 i 3 reprezint fluxurile de date DRDA schimbate ntre cele dou sisteme, n ASCII sau EBCDIC. v O reprezentare ASCII a coloanelor 2 i 3.
Copyright IBM Corp. 1993, 2009

139

v O reprezentare EBCDIC a coloanelor 2 i 3.

Ieirea urmririi
Utilitarul db2drdat scrie urmtoarele informaii n fiierul de urmrire: v -r Tip de rspuns/obiect DRDA Buffer de primire v -s Tip de cerere DRDA Buffer de trimitere v -c SQLCA v Informaie de eroare TCP/IP Cod de retur funcie de primire Gravitate Protocol folosit API folosit Funcie Numr eroare Not: 1. O valoare zero pentru codul de ieire indic faptul c s-a terminat cu succes comanda, iar o valoare nenul indic faptul c nu este aa. 2. Cmpurile returnate variaz n funcie de API-ul folosit. 3. Cmpurile returnate variaz n funcie de platforma pe care ruleaz DB2 Connect, chiar i pentru acelai API. 4. n cazul n care comanda db2drdat trimite ieirea ctre fiierul care deja exist, vechiul fiier va fi ters, exceptnd situaia n care permisiunile fiierului mpiedic tergerea lui.

Analizarea fiierului cu ieirea urmririi


ntr-o urmrire db2drdat sunt capturate urmtoarele informaii: v ID-ul procesului (PID) al aplicaiei client v v v v RDB_NAME catalogat n directorul de servicii de conexiuni la baze de date (DCS). CCSID-urile DB2 Connect CCSID-urile serverului de baz de date mainframe IBM Sistemul de gestionare a serverului bazei de date mainframe IBM cu care comunic sistemul DB2 Connect.

Primul buffer conine comenzile Exchange Server Attributes (EXCSAT) i Access RDB (ACCRDB) trimise la sistemul de gestiune server baz de date mainframe IBM. Trimite aceste comenzi ca rezultat al comenzii de baz de date CONNECT TO. Urmtorul buffer conine rspunsul pe care l-a primit DB2 Connect de la sistemul de gestionare a serverului de baz de date mainframe IBM. Conine EXCSATRD (Exchange Server Attributes Reply Data) i un ACCRDBRM (Access RDB Reply Message). EXCSAT Comanda EXCSAT conine numele staiei de lucru a clientului specificat de obiectul SRVNAM (Server Name), care este punctul de cod X116D, conform specificaiei

140

Ghidul utilizatorului DB2 Connect

DDM. Comanda EXCSAT se afl n primul buffer. n comanda EXCSAT, valorile X9481A292 (codate n CCSID 500) sunt traduse n masc dup ce s-a nlturat X116D. Comanda EXCSAT conine de asemenea obiectul EXTNAM (External Name), care este deseori plasat n informaiile de diagnoz de pe sistemul de gestionare a bazei de date mainframe IBM. Este alctuit dintr-un ID de aplicaie pe 20 de octei, urmat de un ID de proces de 8 octei (sau un ID de proces pe 4 octei i un ID de fir de execuie pe 4 octei). Este reprezentat de punctul de cod X115E, n acest exemplu valoarea sa fiind completat de db2bp cu spaii, urmate de 000C50CC. Pe un Linux sau UNIX IBM Data Server, aceast valoare poate fi corelat cu comanda ps, care returneaz informaiile de stare despre procese despre procesele active la ieirea standard. ACCRDB Comanda ACCRDB conine RDB_NAME din obiectul RDBNAM, care este punctul de cod X2110. Comanda ACCRDB urmeaz comenzii EXCSAT din primul buffer. n comanda ACCRDB, valorile XE2E3D3C5C3F1 sunt traduse n STLEC1 dup ce s-a nlturat X2110. Aceasta corespunde cmpului de nume al bazei de date destinaie din directorul DCS. irul de contabilizare are punctul de cod X2104. Setul de coduri configurat pentru staia de lucru DB2 Connect este afiat prin localizarea obiectului CCSID CCSIDSBC (CCSID pentru caractere pe un octet) cu punctul de cod X119C n comanda ACCRDB. n acest exemplu, CCSIDSBC este X0333, ceea ce nseamn 819. n comanda ACCRDB sunt prezente de asemene obiectele CCSIDDBC (CCSID pentru caractere pe doi octei) i CCSIDMBC (CCSID pentru caractere pe octei amestecai) adiionale, cu punctele de cod X119D i X119E. n acest exemplu, CCSIDSBC este X04B0, ceea ce nseamn 1200, iar CCSIDMBC este X0333, ceea ce nseamn 819. EXCSATRD i ACCRDBRM Valorile CCSID sunt de asemenea returnate de la serverul baz de date mainframe IBM n Access RDB Reply Message (ACCRDBRM) n al doilea buffer. Acest buffer conine EXCSATRD urmat de ACCRDBRM. Fiierul de ieire exemplu conine dou valori CCSID pentru sistemul server baz de date mainframe IBM. Valorile sunt 1208 (pentru caractere pe un octet i octet mixt) 1200 (pentru caractere pe doi octei). Dac DB2 Connect nu recunoate pagina de cod ce vine napoi de la serverul de baz de date mainframe IBM, utilizatorul primete SQLCODE -332, mpreun cu paginile de cod surs i int. Dac serverul de baz de date mainframe IBM nu recunoate setul de coduri trimis de DB2 Connect, returneaz VALNSPRM (Parameter Value Not Supported, cu punctul de cod DDM X1252), care se traduce n SQLCODE -332 pentru utilizator. ACCRDBRM conine de asemenea parametrul PRDID (Product-specific Identifier, cu punctul de cod X112E). Valoarea este XC4E2D5F0F8F0F1F5, ceea ce nseamn DSN08015 n EBCDIC. Conform standardelor, DNS este DB2 for z/OS. Este indicat de asemenea numrul de versiune. ARI este DB2 Server for VSE & VM, SQL este baza de date DB2 sau DB2 Connect, iar QSQ este DB2 for IBM i.

Capitolul 24. Urmele DRDA

141

Exemple de fiier cu ieire a urmririi


Figurile urmtoare prezint o ieire exemplu ce ilustreaz cteva schimburi de fluxuri de date DRDA ntre staiile de lucru DB2 Connect i un server de baz de date gazd sau System i. Din punctul de vedere al utilizatorului, a fost emis o comand baz de date CONNECT TO folosind procesorul liniei de comand (CLP). Figura 13 la pagina 143 folosete DB2 Connect Enterprise Edition Versiunea 9.1 i DB2 for z/OS Versiunea 8 peste o conexiune TCP/IP.

142

Ghidul utilizatorului DB2 Connect

1 data DB2 UDB DRDA Communication Manager sqljcSend fnc (3.3.54.5.0.100) pid 807116 tid 1 cpid -1 node 0 sec 0 nsec 0 probe 100 bytes 16 Data1 233 (PD_TYPE_UINT,8) unsigned integer:

2 data DB2 UDB DRDA Communication Manager sqljcSend fnc (3.3.54.5.0.1177) pid 807116 tid 1 cpid -1 node 0 sec 0 nsec 19532 probe 1177 bytes 250 SEND BUFFER(AR): EXCSAT RQSDSS 0 1 2 3 4 5 6 7 8 9 A B C D E F 00C3D041000100BD 1041007F115E8482 F282974040404040 4040404040404040 4040F0F0F0C3F5F0 C3C3F0F0F0000000 0000000000000000 0000000000000000 0000000000000000 000000000060F0F0 F0F1A2A495404040 4040404040404040 4040404040404040 4040404040404040 C4C5C3E5F8404040 F0A2A49540404040 4040404040404040 4000181404140300 0724070008147400 05240F0008144000 08000E1147D8C4C2 F261C1C9E7F6F400 08116D9481A29200 0C115AE2D8D3F0F9 F0F0F0 ACCSEC RQSDSS 0 1 2 3 4 5 6 7 8 9 A B C D E F 0026D00100020020 106D000611A20003 00162110E2E3D3C5 C3F1404040404040 404040404040 (ASCII) 0123456789ABCDEF ...A.....A...^.. ...@@@@@@@@@@@@@ @@.............. ................ .............`.. .....@@@@@@@@@@@ @@@@@@@@@@@@@@@@ .....@@@....@@@@ @@@@@@@@@....... .$....t..$....@. ....G....a...... ..m.......Z..... ... (EBCDIC) 0123456789ABCDEF .C}........".;db 2bp 000C50CC000... ................ .............-00 01sun DECV8 0sun ....... .............. . .....QDB2/AIX64. .._mask...]SQL09 000

0000 0010 0020 0030 0040 0050 0060 0070 0080 0090 00A0 00B0 00C0

0000 0010 0020

(ASCII) (EBCDIC) 0123456789ABCDEF 0123456789ABCDEF .&..... .m...... ..}......_...s.. ..!.......@@@@@@ ....STLEC1 @@@@@@

3 data DB2 UDB DRDA Communication Manager sqljcReceive fnc (3.3.54.3.0.100) pid 807116 tid 1 cpid -1 node 0 sec 0 nsec 110546200 probe 100 bytes 12 Data1 105 (PD_TYPE_UINT,4) unsigned integer:

4 data DB2 UDB DRDA Communication Manager sqljcReceive fnc (3.3.54.3.0.1178) pid 807116 tid 1 cpid -1 node 0 sec 0 nsec 110549755 probe 1178 bytes 122 RECEIVE BUFFER(AR): EXCSATRD OBJDSS 0 1 2 3 4 5 6 7 8 9 A B C D E F 0059D04300010053 1443000F115EE5F8 F1C14BE2E3D3C5C3 F100181404140300 0724070007147400 05240F0007144000 0700081147D8C4C2 F20014116DE2E3D3 C5C3F14040404040 4040404040000C11 5AC4E2D5F0F8F0F1 F5 ACCSECRD OBJDSS 0 1 2 3 4 5 6 7 8 9 A B C D E F 0010D0030002000A 14AC000611A20003 (ASCII) 0123456789ABCDEF .Y.C...S.C...^.. ..K............. .$....t..$....@. ....G.......m... ...@@@@@@@@@@... Z........ (EBCDIC) 0123456789ABCDEF ..}..........;V8 1A.STLEC1....... .............. . .....QDB2..._STL EC1 ... ]DSN08015

0000 0010 0020 0030 0040 0050

0000

(ASCII) (EBCDIC) 0123456789ABCDEF 0123456789ABCDEF ................ ..}..........s..

5 data DB2 UDB DRDA Communication Manager sqljcSend fnc (3.3.54.5.0.100) pid 807116 tid 1 cpid -1 node 0 sec 0 nsec 110656806 probe 100 bytes 16 Data1 233 (PD_TYPE_UINT,8) unsigned integer:

Figura 13. Exemplu de ieire de urmrire (conexiune TCP/IP)

Capitolul 24. Urmele DRDA

143

6 data DB2 UDB DRDA Communication Manager sqljcSend fnc (3.3.54.5.0.1177) pid 807116 tid 1 cpid -1 node 0 sec 0 nsec 110659711 probe 1177 bytes 250 SEND BUFFER(AR): SECCHK RQSDSS 0 1 2 3 4 5 6 7 8 9 A B C D E F 003CD04100010036 106E000611A20003 00162110E2E3D3C5 C3F1404040404040 404040404040000C 11A1D9858799F485 A599000A11A09585 A6A39695 ACCRDB RQSDSS 0 1 2 3 4 5 6 7 8 9 A B C D E F 00ADD001000200A7 20010006210F2407 00172135C7F9F1C1 F0C4F3C14BD7C1F8 F806030221064600 162110E2E3D3C5C3 F140404040404040 4040404040000C11 2EE2D8D3F0F9F0F0 F0000D002FD8E3C4 E2D8D3C1E2C30016 00350006119C0333 0006119D04B00006 119E0333003C2104 (ASCII) (EBCDIC) 0123456789ABCDEF 0123456789ABCDEF .<.A...6.n...... ..}......>...s.. ..!.......@@@@@@ ....STLEC1 @@@@@@.......... ....Regr4e ............ vr....newton (ASCII) 0123456789ABCDEF ........ ...!.$. ..!5........K... ....!.F..!...... .@@@@@@@@@@@@... ............/... .........5.....3 ...........3. (EBCDIC) 0123456789ABCDEF ..}....x........ ....G91A0D3A.PA8 8..........STLEC 1 ... .SQL09000....QTD SQLASC..........

0000 0010 0020 0030

0000 0010 0020 0030 0040 0050 0060

7 data DB2 UDB DRDA Communication Manager sqljcReceive fnc (3.3.54.3.0.100) pid 807116 tid 1 cpid -1 node 0 sec 0 nsec 259908001 probe 100 bytes 12 Data1 176 (PD_TYPE_UINT,4) unsigned integer:

8 data DB2 UDB DRDA Communication Manager sqljcReceive fnc (3.3.54.3.0.1178) pid 807116 tid 1 cpid -1 node 0 sec 0 nsec 259911584 probe 1178 bytes 193 RECEIVE BUFFER(AR): SECCHKRM RPYDSS 0 1 2 3 4 5 6 7 8 9 A B C D E F 0015D0420001000F 1219000611490000 000511A400 ACCRDBRM RPYDSS 0 1 2 3 4 5 6 7 8 9 A B C D E F 009BD00200020095 2201000611490000 000D002FD8E3C4E2 D8D3F3F7F0000C11 2EC4E2D5F0F8F0F1 F500160035000611 9C04B80006119E04 B80006119D04B000 0C11A0D5C5E6E3D6 D540400006212524 34001E244E000624 4C00010014244D00 06244FFFFF000A11 E8091E768301BE00 2221030000000005 68B3B8C7F9F1C1F0 C4F3C1D7C1F8F840 4040400603022106 46000A11E8091E76 831389 (ASCII) (EBCDIC) 0123456789ABCDEF 0123456789ABCDEF ...B.........I.. ..}............. ..... ...u. (ASCII) 0123456789ABCDEF ........"....I.. .../............ ............5... ................ .........@@..!%$ 4..$N..$L....$M. .$O........v.... "!......h....... .......@@@@...!. F......v... (EBCDIC) 0123456789ABCDEF ..}....n........ ....QTDSQL370... .DSN08015....... ................ ...NEWTON ..... ....+...<.....(. ..!.....Y...c... ...........G91A0 D3APA88 ..... ....Y...c.i

0000 0010

0000 0010 0020 0030 0040 0050 0060 0070 0080 0090

9 data DB2 UDB DRDA Communication Manager sqljcSend fnc (3.3.54.5.0.100) pid 807116 tid 1 cpid -1 node 0 sec 2 nsec 364420503 probe 100 bytes 16 Data1 10 (PD_TYPE_UINT,8) unsigned integer:

Figura 14. Exemplu de ieire de urmrire (conexiune TCP/IP) - continuare

144

Ghidul utilizatorului DB2 Connect

10 data DB2 UDB DRDA Communication Manager sqljcSend fnc (3.3.54.5.0.1177) pid 807116 tid 1 cpid -1 node 0 sec 2 nsec 364440751 probe 1177 bytes 27 SEND BUFFER(AR): RDBCMM RQSDSS 0 1 2 3 4 5 6 7 8 9 A B C D E F 000AD00100010004 200E (ASCII) (EBCDIC) 0123456789ABCDEF 0123456789ABCDEF ........ . ..}.......

0000

11 data DB2 UDB DRDA Communication Manager sqljcReceive fnc (3.3.54.3.0.100) pid 807116 tid 1 cpid -1 node 0 sec 2 nsec 475009631 probe 100 bytes 12 Data1 54 (PD_TYPE_UINT,4) unsigned integer:

12 data DB2 UDB DRDA Communication Manager sqljcReceive fnc (3.3.54.3.0.1178) pid 807116 tid 1 cpid -1 node 0 sec 2 nsec 475014579 probe 1178 bytes 71 RECEIVE BUFFER(AR): ENDUOWRM RPYDSS 0 1 2 3 4 5 6 7 8 9 A B C D E F 002BD05200010025 220C000611490004 00162110E2E3D3C5 C3F1404040404040 4040404040400005 211501 SQLCARD OBJDSS 0 1 2 3 4 5 6 7 8 9 A B C D E F 000BD00300010005 2408FF (ASCII) (EBCDIC) 0123456789ABCDEF 0123456789ABCDEF .+.R...%"....I.. ..}............. ..!.......@@@@@@ ....STLEC1 @@@@@@..!.. ..... (ASCII) (EBCDIC) 0123456789ABCDEF 0123456789ABCDEF ........$.. ..}........

0000 0010 0020

0000

13 data DB2 UDB DRDA Communication Manager sqljcSend fnc (3.3.54.5.0.100) pid 807116 tid 1 cpid -1 node 0 sec 5 nsec 721710319 probe 100 bytes 16 Data1 126 (PD_TYPE_UINT,8) unsigned integer:

14 data DB2 UDB DRDA Communication Manager sqljcSend fnc (3.3.54.5.0.1177) pid 807116 tid 1 cpid -1 node 0 sec 5 nsec 721727276 probe 1177 bytes 143 SEND BUFFER(AR): EXCSQLIMM RQSDSS 0 1 2 3 4 5 6 7 8 9 A B C D E F 0053D0510001004D 200A00442113E2E3 D3C5C3F140404040 4040404040404040 D5E4D3D3C9C44040 4040404040404040 4040E2D8D3C3F2C6 F0C1404040404040 4040404041414141 41484C5600CB0005 2105F1 SQLSTT OBJDSS 0 1 2 3 4 5 6 7 8 9 A B C D E F 002BD00300010025 2414000000001B64 656C657465206672 6F6D206464637375 73312E6D79746162 6C65FF (ASCII) 0123456789ABCDEF .S.Q...M ..D!... ....@@@@@@@@@@@@ ......@@@@@@@@@@ @@........@@@@@@ @@@@AAAAAHLV.... !.. (EBCDIC) 0123456789ABCDEF ..}....(......ST LEC1 NULLID SQLC2F0A ......<..... ..1

0000 0010 0020 0030 0040 0050

0000 0010 0020

(ASCII) (EBCDIC) 0123456789ABCDEF 0123456789ABCDEF .+.....%$......d ..}............. elete from ddcsu .%......?_...... s1.mytable. ..._`./.%..

15 data DB2 UDB DRDA Communication Manager sqljcReceive fnc (3.3.54.3.0.100) pid 807116 tid 1 cpid -1 node 0 sec 5 nsec 832901261 probe 100 bytes 12 Data1 102 (PD_TYPE_UINT,4) unsigned integer:

Figura 15. Exemplu de ieire de urmrire (conexiune TCP/IP) - continuare

Capitolul 24. Urmele DRDA

145

16 data DB2 UDB DRDA Communication Manager sqljcReceive fnc (3.3.54.3.0.1178) pid 807116 tid 1 cpid -1 node 0 sec 5 nsec 832906528 probe 1178 bytes 119 RECEIVE BUFFER(AR): SQLCARD OBJDSS 0 1 2 3 4 5 6 7 8 9 A B C D E F 0066D00300010060 240800FFFFFF3434 3237303444534E58 4F544C2000FFFFFE 0C00000000000000 00FFFFFFFF000000 0000000000572020 2057202020202020 001053544C454331 2020202020202020 2020000F44444353 5553312E4D595441 424C450000FF (ASCII) 0123456789ABCDEF .f.....`$.....44 2704DSNXOTL .... ................ .....W W ..STLEC1 ..DDCSUS1.MYTA BLE... (EBCDIC) 0123456789ABCDEF ..}....-........ ......+.!.<..... ................ ................ ....<........... ............(... .<....

0000 0010 0020 0030 0040 0050 0060

17 data DB2 UDB DRDA Communication Manager sqljcSend fnc (3.3.54.5.0.100) pid 807116 tid 1 cpid -1 node 0 sec 5 nsec 833156953 probe 100 bytes 16 Data1 10 (PD_TYPE_UINT,8) unsigned integer:

18 data DB2 UDB DRDA Communication Manager sqljcSend fnc (3.3.54.5.0.1177) pid 807116 tid 1 cpid -1 node 0 sec 5 nsec 833159843 probe 1177 bytes 27 SEND BUFFER(AR): RDBRLLBCK RQSDSS 0 1 2 3 4 5 6 7 8 9 A B C D E F 000AD00100010004 200F (ASCII) (EBCDIC) 0123456789ABCDEF 0123456789ABCDEF ........ . ..}.......

0000

19 data DB2 UDB DRDA Communication Manager sqljcReceive fnc (3.3.54.3.0.100) pid 807116 tid 1 cpid -1 node 0 sec 5 nsec 943302832 probe 100 bytes 12 Data1 54 (PD_TYPE_UINT,4) unsigned integer:

20 data DB2 UDB DRDA Communication Manager sqljcReceive fnc (3.3.54.3.0.1178) pid 807116 tid 1 cpid -1 node 0 sec 5 nsec 943306288 probe 1178 bytes 71 RECEIVE BUFFER(AR): ENDUOWRM RPYDSS 0 1 2 3 4 5 6 7 8 9 A B C D E F 002BD05200010025 220C000611490004 00162110E2E3D3C5 C3F1404040404040 4040404040400005 211502 SQLCARD OBJDSS 0 1 2 3 4 5 6 7 8 9 A B C D E F 000BD00300010005 2408FF (ASCII) (EBCDIC) 0123456789ABCDEF 0123456789ABCDEF .+.R...%"....I.. ..}............. ..!.......@@@@@@ ....STLEC1 @@@@@@..!.. ..... (ASCII) (EBCDIC) 0123456789ABCDEF 0123456789ABCDEF ........$.. ..}........

0000 0010 0020

0000

Figura 16. Exemplu de ieire de urmrire (conexiune TCP/IP) - continuare

Informaiile ulterioare de buffer pentru urmririle DRDA


Putei analiza buffer-ele de trimitere i de primire rezultate pentru informaii adiionale. Urmtoarea cerere conine o comitere. Comanda commit determin sistemul de gestionare a serverului de baz de date mainframe IBM s comit unitatea curent de lucru. Al patrulea buffer este primit de la sistemul de gestiune baz de date server baz de date mainframe IBM ca rezultat al unei comiteri sau derulri napoi. Conine mesajul de rspuns sfrit unitate de lucru (ENDUOWRM), care indic faptul c unitatea curent de lucru s-a ncheiat.

146

Ghidul utilizatorului DB2 Connect

n acest exemplu, intrarea de urmrire 12 conine un SQLCA null, indicat de punctul de cod DDM X2408 urmat de XFF. Un SQLCA null (X2408FF) indic succesul (SQLCODE 0). Figura 13 la pagina 143 arat un exemplu a unui buffer primit care conine un SQLCA de eroare la intrarea de urmrire 16.

Capitolul 24. Urmele DRDA

147

148

Ghidul utilizatorului DB2 Connect

Partea 6. Mesajele

Copyright IBM Corp. 1993, 2009

149

150

Ghidul utilizatorului DB2 Connect

Capitolul 25. Probleme obinuite DB2 Connect


Acest subiect listeaz cele mai comune simptome de probleme de conexiune ntlnite la folosirea DB2 Connect. n fiecare caz, vi se ofer: v O combinaie dintre un numr mesaj i un cod retur (sau un cod retur specific protocolului) asociat mesajului. Fiecare combinaie de mesaj i cod retur are un antet separat i anteturile sunt ordonate dup numrul mesajului i apoi dup codul retur. v Un simptom, de obicei sub form listrii unui mesaj exemplu. v O soluie sugerat, indicnd cauza probabil a erorii. n unele cazuri, ar putea fi livrat mai de o soluie sugerat.

SQL0965 sau SQL0969


Simptom Pot fi lansate mesajele SQL0965 i SQL0969 cu diferite coduri de retur din DB2 for IBM i, DB2 for z/OS i DB2 Server for VM and VSE. Cnd ntlnii oricare din mesaje, ar trebui s examinai codul SQL original din documentaia referitoare la produsul server de baz de date care emite mesajul. Soluie Codul SQL primit de la serverul baz de date mainframe IBM nu poate fi translatat. Corectai problema, pe baza codului erorii, apoi relansai comanda care a euat.

SQL5043N
Simptom Suportul pentru unul sau mai multe protocoale de comunicaie a euat s porneasc. Totui funcia managerului bazei de date nucleu a fost pornit cu succes. Poate protocolul TCP/IP nu este pornit pe serverul DB2 Connect. Se poate s fi existat o conexiune cu succes client anterioar. Dac diaglevel = 4, atunci fiierele istoric db2diag ar putea conine o intrare similar, de exemplu:
2001-05-30-14.09.55.321092 Instance:svtdbm5 Node:000 PID:10296(db2tcpcm) Appid:none common_communication sqlcctcpconnmgr_child Probe:46 DIA3205E Socket address "30090" configured in the TCP/IP services file and required by the TCP/IP server support is being used by another process.

Soluie Acest avertisment este un simptom care semnaleaz c DB2 Connect, care acioneaz ca server pentru clieni la distan, are probleme n manevrarea unuia sau mai multor comunicaii client. Aceste protocoale pot fi TCP/IP i altele, mesajul indicnd de obicei c nu este configurat corect unul dintre protocoalele de comunicaie definite pentru DB2 Connect. Deseori cauza poate fi c variabila de profil DB2COMM nu este definit sau este definit incorect. n general, problema este cauzat de nepotrivirea dintre variabila DB2COMM i numele definite n configuraia managerului bazei de date (de exemplu, svcename sau nname). Un scenariu posibil este s avei o conexiune anterioar reuit i apoi s primii mesajul de eroare SQL5043, fr ca nimic s se fi schimbat n configuraie. Aceasta ar putea aprea folosind protocolul TCP/IP, cnd sistemul la distan termin anormal conexiunea dintr-un motiv oarecare. Cnd aceasta se ntmpl, este posibil
Copyright IBM Corp. 1993, 2009

151

s par c nc exist o conexiune pe client i c ar putea fi restaurat fr intervenii suplimentare emind comenzile artate mai jos. Mai probabil, unul din clienii care se conecteaz la serverul DB2 Connect nc are un mner pe portul TCP/IP. Pe fiecare main care este conectat la serverul DB2 Connect, introducei urmtoarele comenzi:
db2 terminate db2stop

SQL30020
Simptom SQL30020N Execution failed because of a Distributed Protocol Error that will affect the successful execution of subsequent commands and SQL statements. Soluii Ar trebui contactat service-ul pentru aceast eroare. Rulai comanda db2support nainte de a contacta service-ul.

SQL30060
Simptom SQL30060N <authorization-ID> does not have the privilege to perform operation <operation>. Soluie La conectarea la DB2 for z/OS, tabelele CDB nu au fost actualizate corect.

SQL30061
Simptom Conectarea la o locaie greit de server baz de date mainframe IBM - nu poate fi gsit nicio baz de date destinaie. Soluie Un nume de server de baz de date eronat ar putea fi specificat n intrarea directorului DCS. Cnd se ntmpl aceasta, este returnat SQLCODE -30061 ctre aplicaie. Verificai nodul, baza de date i intrrile director DCS DB2. Cmpul nume baz de date destinaie din intrarea directorului DCS trebuie s corespund numelui bazei de date bazat pe platform. De exemplu, pentru o baz de date DB2 for z/OS, numele care urmeaz s fie folosit trebuie s fie cel folosit n cmpul BSDS (Boot Strap Data Set) LOCATION=locname, care este de asemenea furnizat n mesajul DSNL004I (LOCATION=location) cnd este pornit DDF (Distributed Data Facility). Comenzile corecte pentru un nod TCP/IP sunt:
db2 catalog tcpip node <nume_nod> remote <nume_sau_adres_gazd> server <nt_port_sau_nume_serviciu> db2 catalog dcs database <nume_local> as <nume_real_bd> db2 catalog database <nume_local> as <alias> at <nume_node> authentication server

Pentru a v conecta la baza de date lansai apoi:


db2 connect to <alias> user <nume_utilizator> using <parol>

SQL30081N cu Cod retur 79


Simptom
SQL30081N A communication error has been detected. Communication protocol being used: "TCP/IP". Communication API being used: "SOCKETS". Location

152

Ghidul utilizatorului DB2 Connect

where the error was detected: "". Communication function detecting the error: "connect". Protocol specific error code(s): "79", "*", "*". SQLSTATE=08001

Soluie (soluii) Aceast eroare poate avea loc n cazul unui client la distan care eueaz la conectarea la un server DB2 Connect. De asemenea, poate aprea la conectarea de la serverul DB2 Connect la un server de baz de date mainframe IBM. 1. Variabila de profil DB2COMM ar putea fi setat incorect pe serverul DB2 Connect. Verificai aceasta. De exemplu, comanda db2set db2comm=tcpip ar trebui s apar n sqllib/db2profile la rularea DB2 Enterprise Server Edition pe AIX. 2. Ar putea fi o nepotrivire ntre numele de serviciu TCP/IP i specificaiile de numr de port la IBM Data Server i serverul DB2 Connect. Verificai intrrile n fiierele services TCP/IP pe amndou mainile. 3. Verificai c DB2 este pornit pe serverul DB2 Connect. Setai diaglevel al configuraiei managerului de baz de date la valoarea 4, folosind comanda:
db2 update dbm cfg using diaglevel 4

Dup oprirea i repornirea DB2, uitai-v n fiierul istoric db2diag pentru a verifica dac au fost pornite comunicaiile TCP/IP DB2. Ar trebui s vedei o ieire similar cu:
2001-02-03-12.41.04.861119 Instance:svtdbm2 Node:00 PID:86496(db2sysc) Appid:none common_communication sqlcctcp_start_listen Probe:80 DIA3000I "TCPIP" protocol support was successfully started.

SQL30081N cu codul de eroare specific protocolului 10032


Simptom
SQL30081N A communication error has been detected. Communication protocol being used: "TCP/IP". Communication API being used: "SOCKETS". Location where the error was detected: "9.21.85.159". Communication function detecting the error: "send". Protocol specific error code(s): "10032", "*", "*". SQLSTATE=08001

Soluie Acest mesaj de eroare ar putea fi primit la ncercarea de deconectarea de la o main un comunicaiile TCP/IP deja au euat. Corectai problema cu subsistemele TCP/IP. pe majoritatea mainilor, repornirea protocolului TCP/IP este modul de rezolvare a problemei. Ocazional, ar putea fi necesar reciclarea ntregii maini.

SQL30082 RC=24 n timpul CONNECT


Simptom SQLCODE -30082 Nu este corect numele de utilizator sau parola furnizat. Soluie Asigurai-v c este furnizat parola corect n instruciunea CONNECT, dac este necesar. Parola nu este disponibil pentru trimiterea la baza de date de pe serverul destinaie. Trebuie s fie trimis o parol de la IBM Data Server la baza de date de pe serverul destinaie. Pe anumite platforme, de exemplu AIX, parola poate fi obinut doar dac este furnizat n instruciunea CONNECT.

Capitolul 25. Interpretrile DB2 Connect

153

154

Ghidul utilizatorului DB2 Connect

Partea 7. Anexe

Copyright IBM Corp. 1993, 2009

155

156

Ghidul utilizatorului DB2 Connect

Anexa A. Privire general asupra informaiilor tehnice DB2


Informaiile tehnice DB2 sunt disponibile prin urmtoarele unelte i metode: v Centrul de informare DB2 Subiecte (subiecte de task, de concept i de referin) Ajutor pentru uneltele DB2 Programe exemplu ndrumarele v Crile DB2 Fiiere PDF (descrcabile) Fiiere PDF (de pe DVD-ul DB2 PDF) Cri tiprite v Ajutor pentru linia de comand Ajutor pentru comand Ajutor pentru mesaj Not: Subiectele din Centrul de informare DB2 sunt actualizate mai frecvent dect crile tiprite sau n format PDF. Pentru a beneficia de cele mai recente informaii, instalai actualizrile de documentaie pe msur ce devin disponibile sau consultai Centrul de informare DB2 de la ibm.com. Putei gsi de asemenea informaii tehnice DB2 suplimentare, cum ar fi note tehnice, documente White Paper i publicaii IBM Redbooks, la ibm.com. Vizitai situl cu biblioteca software-ului DB2 Information Management, la http://www.ibm.com/software/data/swlibrary/.

Reacia dumneavoastr cu privire la documentaie


Apreciem reacia dumneavoastr privind documentaia DB2. Dac avei sugestii privind mbuntirea documentaiei DB2, trimitei un e-mail la db2docs@ca.ibm.com. Echipa pentru documentaia DB2 citete toate reaciile, dar nu v poate rspunde direct. Pentru o mai bun nelegere a ceea ce vrei s ne comunicai, furnizai exemple specifice. Dac trimitei o reacie referitoare la un anumit subiect sau fiier de ajutor, includei titlul subiectului i URL-ul. Nu folosii aceast adres de e-mail pentru a contacta DB2 Customer Support. Dac avei o problem tehnic referitoare la DB2 care nu este tratat n documentaie, contactai centrul de service IBM local pentru asisten.

Biblioteca tehnic DB2 n format tiprit sau PDF


Tabelele urmtoare prezint biblioteca DB2 disponibil n IBM Publications Center, la www.ibm.com/shop/publications/order. Manualele DB2 Versiunea 9.7 n englez sau traduse n format PDF pot fi descrcate de la www.ibm.com/support/docview.wss?rs=71 &uid=swg2700947. Dei n tabele sunt identificate crile tiprite disponibile, crile pot s nu fie disponibile n ara sau regiunea dumneavoastr.

Copyright IBM Corp. 1993, 2009

157

Numrul de formular este mrit de fiecare dat cnd este actualizat un manual. Avei grij s citii versiunea cea mai recent a manualelor, conform listei de mai jos. Not: Centrul de informare DB2 este actualizat mai frecvent dect crile tiprite sau n format PDF.
Tabela 20. Informaii tehnice DB2 Nume Administrative API Reference Administrative Routines and Views Call Level Interface Guide and Reference, Volume 1 Call Level Interface Guide and Reference, Volume 2 Command Reference Data Movement Utilities Guide and Reference Data Recovery and High Availability Guide and Reference Database Administration Concepts and Configuration Reference Database Monitoring Guide and Reference Database Security Guide DB2 Text Search Guide Numr format SC27-2435-01 SC27-2436-01 SC27-2437-01 Disponibil tiprit Da Nu Da Ultima actualizare Noiembrie 2009 Noiembrie 2009 Noiembrie 2009

SC27-2438-01

Da

Noiembrie 2009

SC27-2439-01 SC27-2440-00 SC27-2441-01

Da Da Da

Noiembrie 2009 August, 2009 Noiembrie 2009

SC27-2442-01

Da

Noiembrie 2009

SC27-2458-01 SC27-2443-01 SC27-2459-01

Da Da Da Da Da Da Nu

August, 2009 Noiembrie 2009 Noiembrie 2009 August, 2009 Noiembrie 2009 Noiembrie 2009 August, 2009

Developing ADO.NET SC27-2444-01 and OLE DB Applications Developing Embedded SQL Applications Developing Java Applications Developing Perl, PHP, Python, and Ruby on Rails Applications Developing User-defined Routines (SQL and External) Getting Started with Database Application Development Getting Started with DB2 Installation and Administration on Linux and Windows Globalization Guide SC27-2445-01 SC27-2446-01 SC27-2447-00

SC27-2448-01

Da

Noiembrie 2009

GI11-9410-01

Da

Noiembrie 2009

GI11-9411-00

Da

August, 2009

SC27-2449-00

Da

August, 2009

158

Ghidul utilizatorului DB2 Connect

Tabela 20. Informaii tehnice DB2 (continuare) Nume Numr format Disponibil tiprit Da Nu Nu Nu Nu Ultima actualizare Noiembrie 2009 August, 2009 Noiembrie 2009 Noiembrie 2009 Noiembrie 2009

Instalarea serverelor DB2 GC27-2455-01 Instalarea clienilor IBM Data Server GC27-2454-00

Referine mesaje, volumul SC27-2450-00 1 Referine mesaje, volumul SC27-2451-00 2 Net Search Extender Administration and Users Guide Partitioning and Clustering Guide pureXML Guide Query Patroller Administration and Users Guide Spatial Extender and Geodetic Data Management Feature Users Guide and Reference SQL Procedural Languages: Application Enablement and Support SQL Reference, Volume 1 SQL Reference, Volume 2 Troubleshooting and Tuning Database Performance Modernizarea la DB2 Versiunea 9.7 Visual Explain Tutorial Ce este nou pentru Versiunea 9.7 SC27-2469-01

SC27-2453-01 SC27-2465-01 SC27-2467-00

Da Da Nu

Noiembrie 2009 Noiembrie 2009 August, 2009

SC27-2468-00

Nu

August, 2009

SC27-2470-01

Da

August, 2009

SC27-2456-01 SC27-2457-01 SC27-2461-01

Da Da Da

Noiembrie 2009 Noiembrie 2009 Noiembrie 2009

SC27-2452-01 SC27-2462-00 SA22-1406-01

Da Nu Da Da Nu

Noiembrie 2009 August, 2009 Noiembrie 2009 August, 2009 Noiembrie 2009

Workload Manager Guide SC27-2464-01 and Reference XQuery Reference SC27-2466-01

Tabela 21. Informaii tehnice privind DB2 Connect Nume Numr format Disponibil tiprit Da Ultima actualizare Noiembrie 2009

Instalarea i configurarea SA22-1404-01 DB2 Connect Personal Edition Instalarea i configurarea SA22-1405-01 serverelor DB2 Connect Ghidul utilizatorului DB2 SA22-1403-01 Connect

Da Da

Noiembrie 2009 Noiembrie 2009

Anexa A. Privire general asupra informaiilor tehnice DB2

159

Tabela 22. Informaii tehnice Information Integration Nume Information Integration: Administration Guide for Federated Systems Information Integration: ASNCLP Program Reference for Replication and Event Publishing Information Integration: Configuration Guide for Federated Data Sources Information Integration: SQL Replication Guide and Reference Information Integration: Introduction to Replication and Event Publishing Numr format SC19-1020-02 Disponibil tiprit Da Ultima actualizare August, 2009

SC19-1018-04

Da

August, 2009

SC19-1034-02

Nu

August, 2009

SC19-1030-02

Da

August, 2009

GC19-1028-02

Da

August, 2009

Comandarea crilor DB2 tiprite


Dac avei nevoie de cri DB2 tiprite, le putei cumpra online n multe, dar nu n toate rile sau regiunile. Putei oricnd comanda cri tiprite DB2 de la reprezentantul local IBM. Nu uitai c anumite cri de pe DVD-ul DB2 PDF Documentation nu sunt disponibile n varianta tiprit. De exemplu, nici unul dintre volumele Referine mesaje DB2 nu este disponibil ca o carte tiprit. Versiunile tiprite ale multora dintre crile DB2 de pe DVD-ul DB2 PDF Documentation pot fi comandate contra cost de la IBM. n funcie de locul de unde plasai comanda, putei comanda cri online, de la IBM Publications Center. Dac n ara sau regiunea dumneavoastr nu este disponibil comandarea online, putei oricnd s comandai cri tiprite DB2 de la reprezentantul local IBM. Reinei c nu toate crile de pe DVD-ul DB2 PDF Documentation sunt disponibile n varianta tiprit. Not: Cea mai recent i mai cuprinztoare documentaie DB2 se afl n Centrul de informare DB2 de la http://publib.boulder.ibm.com/infocenter/db2luw/v9r7. Comandarea crilor tiprite DB2: v Pentru a afla dac putei s comandai cri tiprite DB2 online n ar sau regiune, verificai centrul de publicaii IBM la http://www.ibm.com/shop/publications/order. Trebuie s selectai o ar, regiune sau limb pentru a accesa informaiile de comandare publicaii i apoi s urmai instruciunile pentru locaia dumneavoastr. v Pentru a comanda cri tiprite DB2 de la reprezentantul local IBM: 1. Localizai informaiile de contact pentru reprezentantul local pe unul dintre urmtoarelor situri web: Directorul IBM cu contactele din ntreaga lume la www.ibm.com/planetwide Situl web al publicailor IBM la http://www.ibm.com/shop/publications/order. Vei avea nevoie s selectai ara, regiunea sau limba pentru a accesa n mod corespunztor paginile de baz (home) ale publicailor pentru locaia dumneavoastr. Din aceast pagin, urmai legtura About this site. 2. Cnd sunai, specificai c dorii s comandai publicaia DB2.

160

Ghidul utilizatorului DB2 Connect

3. Furnizai reprezentantului titlurile i numerele de formular ale crilor pe care dorii s le comandai. Pentru titluri i numere de formular, vedei Biblioteca tehnic DB2 n format tiprit sau PDF la pagina 157.

Afiarea ajutorului pentru starea SQL din linia de comand a procesorului


Produsele DB2 ntorc o valoare SQLSTATE pentru condiii care ar putea fi rezultatul unei instruciuni SQL. Ajutorul pentru SQLSTATE explic semnificaia strilor SQL i a codurilor de clase de stri SQL. pentru a porni ajutorul pentru o stare SQL, deschidei procesorul linie de comand i introducei:
? sqlstate sau ? cod clas

unde sqlstate reprezint o stare SQL valid de 5 cifre i cod clas reprezint primele dou cifre ale strii SQL. De exemplu, ? 08003 afieaz ajutorul pentru starea SQL 08003, iar ? 08 afieaz ajutorul pentru codul clasei 08 .

Accesarea diferitelor versiuni de Centru de informare DB2


Pentru subiectele DB2 Versiunea 9.7, URL-ul Centrului de informare DB2 este http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/. Pentru subiectele DB2 Versiunea 9.5, URL-ul Centrului de informare DB2 este http://publib.boulder.ibm.com/infocenter/db2luw/v9r5. Pentru subiectele DB2 Versiunea 9.1, URL-ul Centrului de informare DB2 este http://publib.boulder.ibm.com/infocenter/db2luw/v9/. Pentru subiectele DB2 Versiunea 8, mergei la URL-ul Centrului de informare DB2 la: http://publib.boulder.ibm.com/infocenter/db2luw/v8/.

Afiarea subiectelor n limba preferat n Centrul de informare DB2


Centrul de informare DB2 ncearc s afieze subiecte n limba specificat n preferinele browser-ului. Dac un subiect nu a fost tradus n limba preferat, centrul de informareDB2 afieaz subiectul n englez. v Pentru a afia subiectele n limba preferat n browser-ul Internet Explorer: 1. n Internet Explorer, facei clic pe butonl Tools > Internet Options > Languages.... Se deschide fereastra Language Preferences. 2. Asigurai-v c limba preferat este specificat n prima intrare din lista de limbi. Pentru a aduga o nou limb, facei clic pe butonul Add.... Not: Adugarea unei limbi nu garanteaz c pe calculator se afl fonturile necesare pentru afiarea subiectelor n limba preferat. Pentru a muta o limb n vrful listei, selectai o limb i facei clic pe butonul Move Up pn cnd limba este prima n lista de limbi. 3. Remprosptai pagina pentru a afia Centrul de informare DB2 n limba dumneavoastr preferat. v Pentru a afia subiectele n limba preferat ntr-un browser Firefox sau Mozilla:
Anexa A. Privire general asupra informaiilor tehnice DB2

161

1. Selectai butonul din seciunea Languages n dialogul Tools > Options > Advanced. Este afiat panoul Languages n fereastra Preferences. 2. Asigurai-v c limba preferat este specificat n prima intrare din lista de limbi. Pentru a aduga o nou limb la list, facei clic pe butonul Add... pentru a selecta o limb din fereastra Add Languages. Pentru a muta o limb n vrful listei, selectai o limb i facei clic pe butonul Move Up pn cnd limba este prima n lista de limbi. 3. Remprosptai pagina pentru a afia Centrul de informare DB2 n limba dumneavoastr preferat. Pe unele browser-e i combinaii de sistem de operare, trebuie de asemenea s modificai setrile regionale ale sistemului de operare la Locale-ul i limba dorit.

Actualizarea Centrului de informare DB2 instalat pe calculatorul dumneavoastr sau pe un server din intranet
Un Centru de informare DB2 instalat local trebuie actualizat periodic. nainte de a ncepe Un Centru de informare DB2 Versiunea 9.7 trebuie s fie deja instalat. Pentru detalii vedei subiectul Instalarea centrului de informare DB2 folosind vrjitorul DB2 Setup n Instalarea serverelor DB2. Toate cerinele preliminare i cerinele care se aplic instalrii Centrului de informare se aplic i pentru actualizarea Centrului de informare. Despre acest task Un Centru de informare DB2 existent poate fi actualizat automat sau manual: v Actualizrile automate - actualizeaz caracteristicile i limbile Centrului de informare existente. Un avantaj suplimentar al actualizrilor automate este c Centrul de informare este indisponibil pentru o perioad de timp minim n timpul actualizrii. n plus, actualizrile automate pot fi setate s ruleze ca parte a altor joburi batch care ruleaz periodic. v Actualizrile manuale - trebuie folosite cnd vrei s adugai caracteristici sau limbi n timpul procesului de actualizare. De exemplu, un Centru de informare local a fost instalat iniial cu ambele limbi, francez i englez, iar acum dorii s instalai limba german; o instalare manual va instala germana, i va actualiza caracteristicile i limbile Centrului de informare existente. Dar, o actualizare manual necesit s oprii manual centrul de informare, s-l actualizai i s-l repornii. Centrul de informare nu este disponibil pe ntreg procesul de actualizare. Procedura Acest subiect detaliaz procesul pentru actualizrile automate. Pentru actualizarea manual, vedei subiectul Actualizarea manual a centrului de informare DB2 instalat pe calculatorul dumneavoastr sau pe un server intranet. Pentru a actualiza automat Centrul de informare DB2 instalat pe calculatorul dumneavoastr sau pe un server din intranet: 1. Pe sistemele de operare Linux: a. Navigai n calea n care este instalat Centrul de informare. n mod implicit, Centrul de informare DB2 este instalat n directorul /opt/ibm/db2ic/V9.7. b. Navigai din directorul de instalare n directorul doc/bin.

162

Ghidul utilizatorului DB2 Connect

c. Rulai scriptul ic-update:


ic-update

2. Pe sisteme de operare Windows: a. Deschidei o fereastr de comand. b. Navigai n calea n care este instalat Centrul de informare. n mod implicit, Centrul de informare DB2 este instalat n directorul <Program Files>\IBM\DB2 Information Center\Version 9.7, unde <Program Files> este locaia directorului Program Files. c. Navigai din directorul de instalare n directorul doc\bin. d. Rulai fiierul ic-update.bat:
ic-update.bat

Rezultate Centrul de informare DB2 repornete automat. Dac sunt actualizri disponibile, Centrul de informare afieaz subiectele noi i actualizate. Dac nu sunt disponibile actualizri pentru centru de informare, se adaug un mesaj n istoric. Fiierul istoric se afl n directorul doc\eclipse\configuration. Numele fiierului istoric este un numr generat aleatoriu. De exemplu, 1239053440785.log.

Actualizarea manual a Centrului de informare DB2 instalat pe calculatorul dumneavoastr sau pe un server din intranet
Dac ai instalat Centrul de informare DB2 local, putei s descrcai i s instalai actualizrile de la IBM. Despre acest task Pentru a actualiza manual Centrul de informare DB2 instalat local, trebuie s: 1. Oprii Centrul de informare DB2 pe calculatorul dumneavoastr i apoi pornii-l n modul independent. Cnd rulai Centrul de informare n modul independent, nu poate fi accesat de ali utilizatori din reea, astfel c putei s aplicai actualizrile. Versiunea Workstation (staie de lucru) a Centrului de informare DB2 ruleaz ntotdeauna n modul independent. . 2. Folosii caracteristica Actualizare pentru a vedea ce actualizri sunt disponibile. Dac exist actualizri pe care trebuie s le instalai, putei folosi caracteristica Actualizare pentru a le obine i instala. Not: Dac mediul dumneavoastr necesit instalarea actualizrilor Centrului de informare DB2 pe o main care nu este conectat la internet, oglindii situl de actualizare ntr-un sistem de fiiere local folosind o main care este conectat la internet i pe care este instalat Centrul de informare DB2. De asemenea, dac actualizrile de documentaie vor fi instalate de muli utilizatori din reeaua dumneavoastr, putei reduce timpul necesar pentru o actualizare individual oglindind local situl de actualizare i crend un proxy pentru situl de actualizare. Dac sunt disponibile pachete de actualizare, folosii caracteristica Actualizare pentru a obine pachetele respective. ns caracteristica Actualizare este disponibil numai n modul independent. 3. Oprii Centrul de informare independent i repornii pe calculator Centrul de informare DB2.

Anexa A. Privire general asupra informaiilor tehnice DB2

163

Not: Pe Windows 2008, Windows Vista (i mai noi), comenzile listate mai trziu n aceast seciune, trebuie rulate ca administrator. Pentru a deschide un prompt de comand sau o unealt grafic avnd privilegii complete de administrator, facei clic dreapta pe scurttur i apoi selectai Run as administrator. Procedura Pentru a actualiza Centrul de informare DB2 instalat pe calculatorul dumneavoastr sau pe un server din intranet: 1. Oprii Centrul de informare DB2. v n Windows, facei clic pe Start Control Panel Administrative Tools Services. Apoi facei clic dreapta pe serviciul Centrul de informare DB2 i selectai Stop. v n Linux, introducei urmtoarea comand:
/etc/init.d/db2icdv97 stop

2. Pornii Centrul de informare n modul independent. v n Windows: a. Deschidei o fereastr de comand. b. Navigai n calea n care este instalat Centrul de informare. n mod implicit, Centrul de informare DB2 este instalat n directorul Program_Files\IBM\DB2 Information Center\Version 9.7, unde Program_Files reprezint locaia directorului Program Files. c. Navigai din directorul de instalare n directorul doc\bin. d. Rulai fiierul help_start.bat:
help_start.bat

v n Linux: a. Navigai n calea n care este instalat Centrul de informare. n mod implicit, Centrul de informare DB2 este instalat n directorul /opt/ibm/db2ic/V9.7. b. Navigai din directorul de instalare n directorul doc/bin. c. Rulai scriptul help_start:
help_start

Se deschide bowser-ul Web implicit al sistemului pentru a afia Centrul de informare independent. 3. Facei clic pe butonul Actualizare ( ). (JavaScript trebuie activat n browser.) n panoul din partea dreapt a Centrului de informare, facei clic pe Gsire actualizri. Este afiat o list de actualizri pentru documentaia existent. 4. Pentru a iniia procesul de instalare, bifai seleciile pe care dorii s le instalai i apoi facei clic pe Instalare actualizri. 5. Dup terminarea procesului de instalare, facei clic pe Sfrit. 6. Oprii Centrul de informare independent: v n Windows, navigai la directorul de instalare doc\bin i rulai fiierul help_end.bat:
help_end.bat

Not: Fiierul batch help_end conine comenzile necesare pentru oprirea n siguran a proceselor pornite cu fiierul batch help_start. Nu folosii Ctrl-C sau alt metod pentru a opri help_start.bat. v n Linux, navigai la directorul doc/bin din directorul de instalare i rulai scriptul help_end:
help_end

164

Ghidul utilizatorului DB2 Connect

Not: Scriptul help_end conine comenzile necesare pentru oprirea n siguran a proceselor pornite cu scriptul help_start. Nu folosii alt metod pentru a opri scriptul help_start. 7. Repornii Centrul de informare DB2. v n Windows, facei clic pe Start Control Panel Administrative Tools Services. Apoi facei clic dreapta pe serviciul Centrul de informare DB2 i selectai Start. v n Linux, introducei urmtoarea comand:
/etc/init.d/db2icdv97 start

Rezultate Este afiat Centrul de informare DB2 cu subiectele noi i actualizate.

ndrumarele DB2
ndrumarele DB2 v ajut s vedei diverse aspecte ale produselor DB2. Leciile ofer instruciuni pas cu pas.

nainte de a ncepe
Putei vizualiza versiunea XHTML a ndrumarului din centrul de informare la http://publib.boulder.ibm.com/infocenter/db2help/. Unele lecii folosesc date sau cod de exemplu. Vedei ndrumarul pentru o descriere a cerinelor preliminare pentru operaiile sale specifice.

ndrumarele DB2
Pentru a vizualiza ndrumarul, facei clic pe titlu. pureXML n pureXML Guide Setai o baz de date DB2 astfel nct s stocai date XML i s realizai operaii de baz cu depozitul de date XML native. Visual Explain n Visual Explain Tutorial Analizai, optimizai i ajustai instruciunile SQL pentru performane mai bune folosind Visual Explain.

Informaii privind depanarea DB2


Este disponibil o gam larg de informaii privind depanarea i determinarea problemelor, pentru a v ajuta la folosirea produselor baz de date DB2. Documentaia DB2 Pentru informaii privind depanarea, vedei DB2 Troubleshooting Guide sau seciunea Elementele de baz ale bazei de date, din Centrul de informare DB2. Acolo gsii informaii referitoare la izolarea i identificarea problemelor folosind utilitarele i uneltele de diagnoz DB2, soluii pentru unele dintre cele mai comune probleme i alte sfaturi pentru rezolvarea problemelor care pot aprea atunci cnd folosii produsele baz de date DB2. Situl Web DB2 Technical Support Consultai situl Web DB2 Technical Support dac avei probleme i dorii ajutor la gsirea cauzei i a soluiilor posibile. Situl de suport tehnic are legturi la cele mai noi publicaii DB2, documente TechNote, APAR-uri, pachete de corecii i alte

Anexa A. Privire general asupra informaiilor tehnice DB2

165

resurse. Putei cuta prin aceast baz de date de cunotine pentru a gsi soluiile posibile pentru problemele dumneavoastr. Accesai situl Web DB2 Technical Support, la http://www.ibm.com/software/data/ db2/support/db2_9/

Termenii i condiiile
Permisiunile pentru utilizarea acestor publicaii sunt acordate n conformitate cu urmtorii termeni i condiii. Utilizare personal: Putei reproduce aceste publicaii pentru utilizarea personal, necomercial, cu condiia ca toate anunurile de proprietate s fie pstrate. Nu putei s distribuii, s afiai sau s realizai lucrri derivate din aceste Publicaii sau dintr-o poriune a lor fr consimmntul explicit primit de la IBM. Utilizare comercial: Putei reproduce, distribui i afia aceste publicaii doar n cadrul ntreprinderii dumneavoastr, cu condiia ca toate anunurile de proprietate s fie pstrate. Nu putei s realizai lucrri derivate din aceste Publicaii, nici s reproducei, s distribuii sau s afiai aceste Publicaii sau o poriune a lor n afara ntreprinderii dumneavoastr fr consimmntul explicit primit de la IBM. n afara celor acordate expres prin aceast permisiune, nu se acord nicio alt permisiune, licen sau drept, explicite sau implicite, pentru aceste Publicaii sau orice informaii, date, software sau alte elemente pe care le conin i care reprezint o proprietate intelectual. IBM i rezerv dreptul de a retrage permisiunea acordat aici oricnd consider c folosirea Publicaiilor este n detrimentul intereselor sale sau cnd IBM constat c instruciunile de mai sus nu au fost respectate. Nu putei descrca, exporta sau reexporta aceste informaii dect n deplin conformitate cu legile i regulamentele aplicabile, inclusiv toate legile i regulamentele de export ale Statelor Unite. IBM NU OFER NICIO GARANIE PRIVIND CONINUTUL ACESTOR PUBLICAII. PUBLICAIILE SUNT FURNIZATE CA ATARE, FR NICIUN FEL DE GARANIE, EXPLICIT SAU IMPLICIT, INCLUZND, DAR FR A SE LIMITA LA ELE, GARANIILE IMPLICITE DE VANDABILITATE, DE NENCLCARE A UNOR DREPTURI SAU NORME I DE POTRIVIRE PENTRU UN ANUMIT SCOP.

166

Ghidul utilizatorului DB2 Connect

Anexa B. Observaii
Aceste informaii au fost elaborate pentru produse i servicii oferite n S.U.A. Informaiile despre produsele IBM se bazeaz pe informaiile disponibile la momentul publicrii pentru prima dat a acestui document i se pot modifica. Este posibil ca IBM s nu ofere n alte ri produsele, serviciile sau caracteristicile discutate n acest document. Luai legtura cu reprezentantul IBM local pentru informaii despre produsele i serviciile disponibile n zona dumneavoastr. Referirea la un produs, program sau serviciu IBM nu nseamn c se afirm sau c se sugereaz faptul c poate fi folosit numai acel produs, program sau serviciu IBM. Poate fi folosit n loc orice produs, program sau serviciu care este echivalent din punct de vedere funcional i care nu ncalc dreptul de proprietate intelectual al IBM. ns evaluarea i verificarea modului n care funcioneaz un produs, program sau serviciu non-IBM ine de responsabilitatea utilizatorului. IBM poate avea brevete sau aplicaii n curs de brevetare care s acopere subiectele descrise n acest document. Faptul c vi se furnizeaz acest document nu nseamn c vi se acord licena pentru aceste brevete. Putei trimite ntrebri referitoare la licen, n scris, la: IBM Director of Licensing IBM Corporation North Castle Drive Armonk, NY 10504-1785 U.S.A. Pentru ntrebri privind licena pentru informaiile pe doi octei (DBCS), contactai departamentul IBM de proprietate intelectual din ara dumneavoastr sau trimitei ntrebri n scris la: Intellectual Property Licensing Legal and Intellectual Property Law IBM Japan, Ltd. 3-2-12, Roppongi, Minato-ku, Tokyo 106-8711 Japan Paragraful urmtor nu se aplic n cazul Marii Britanii sau al oricrei alte ri/regiuni n care aceste prevederi sunt incompatibile cu legile locale: INTERNATIONAL BUSINESS MACHINES CORPORATION OFER ACEAST PUBLICAIE CA ATARE, FR NICIUN FEL DE GARANIE, EXPLICIT SAU IMPLICIT, INCLUZND, DAR FR A SE LIMITA LA ELE, GARANIILE IMPLICITE PRIVIND NENCLCAREA UNUI DREPT, VANDABILITATEA SAU POTRIVIREA PENTRU UN ANUMIT SCOP. Unele state nu permit declinarea rspunderii pentru garaniile explicite sau implicite n anumite tranzacii; de aceea, este posibil ca aceast declaraie s nu fie valabil n cazul dumneavoastr. Aceste informaii pot include inexactiti tehnice sau erori tipografice. Se efectueaz modificri periodice la informaiile incluse aici; aceste modificri vor fi ncorporate n noi ediii ale publicaiei. IBM poate aduce mbuntiri i/sau modificri produsului (produselor) la care se refer aceast publicaie n orice moment, fr notificare. Orice referire n cadrul acestor informaii la alte situri Web dect cele IBM este oferit doar pentru comoditate i nu reprezint n nici un fel susinerea acelor situri Web. Materialele de pe siturile Web respective nu fac parte din materialele pentru acest produs IBM, iar utilizarea acestor situri Web se face pe propriul risc.
Copyright IBM Corp. 1993, 2009

167

IBM poate folosi sau distribui informaiile pe care le furnizai n orice mod crede c este corespunztor, fr ca aceasta s implice vreo obligaie pentru dumneavoastr. Deintorii de licen pentru acest program care doresc s obin informaii despre el pentru a permite: (i) schimbul de informaii ntre programe create independent i alte programe (inclusiv cel de fa) i (ii) folosirea reciproc a informaiilor schimbate trebuie s contacteze: IBM Canada Limited Office of the Lab Director 8200 Warden Avenue Markham, Ontario L6G 1C7 CANADA Aceste informaii pot fi disponibile, cu respectarea termenilor i condiiilor, inclusiv, n unele cazuri, cu plata unei taxe. Programul liceniat descris n acest document i toate materialele liceniate disponibile pentru el sunt furnizate de IBM conform termenilor din IBM Customer Agreement, IBM International Program License Agreement sau orice acord echivalent ncheiat ntre noi. Toate datele de performan din acest document au fost determinate ntr-un mediu controlat. De aceea, rezultatele obinute n alte medii de funcionare pot fi diferite. Anumite msurtori s-ar putea s fi fost fcute pe sisteme n faza de dezvoltare i nu exist nici o garanie c aceste msurtori vor fi la fel pe sistemele n faza final. Mai mult, unele msurtori pot fi estimri obinute prin extrapolare. Rezultatele reale pot varia. Utilizatorii acestui document trebuie s verifice datele aplicabile pentru mediul lor specific. Informaiile referitoare la produsele non-IBM au fost obinute de la furnizorii produselor respective, din anunurile lor publicate sau din alte surse disponibile public. IBM nu a testat aceste produse i nu poate confirma nivelul performanei, compatibilitatea sau alte caliti pretinse ale acestor produse non-IBM. ntrebrile despre capabilitile produselor non-IBM trebuie s fie adresate furnizorilor acelor produse. Toate declaraiile privind direcia viitoare sau inteniile IBM pot fi schimbate sau retractate fr notificare, reprezentnd doar scopuri i obiective. Aceste informaii pot conine exemple de date i rapoarte folosite n operaiile comerciale de zi cu zi. Pentru a fi ct mai complete, exemplele includ nume de persoane, de companii, de mrci i de produse. Toate aceste nume sunt fictive i orice asemnare cu nume sau adrese folosite de o ntreprindere real este pur coinciden. LICEN COPYRIGHT: Aceste informaii conin exemple de programe de aplicaie n limbaj surs, care ilustreaz tehnici de programare pentru diverse platforme de operare. Putei copia, modifica i distribui aceste exemple de programe dup cum dorii, fr vreo plat ctre IBM, dac o facei pentru dezvoltarea, folosirea, n scop de marketing sau de distribuire a programelor de aplicaie n conformitate cu interfaa de programare a aplicaiilor pentru platforma de operare pentru care au fost scrise exemplele de program. Aceste exemple nu au fost testate amnunit n toate condiiile. Ca urmare, IBM nu poate garanta sau sugera fiabilitatea, capacitatea de service sau funcionalitatea acestor programe. Programele exemplu sunt furnizate AA CUM SUNT, fr niciun fel de garanie. IBM nu va putea fi fcut responsabil pentru niciun fel de pagube ce ar putea avea ca i cauz folosirea de ctre dumneavoastr a programelor exemplu.

168

Ghidul utilizatorului DB2 Connect

Fiecare copie sau poriune din aceste programe eantion sau lucrrile derivate din ele trebuie s conin un anun de copyright, dup cum urmeaz: (numele companiei dumneavoastr) (an). Pri din acest cod sunt derivate din IBM Corp. Sample Programs. Copyright IBM Corp. _introducei anul sau anii_. Toate drepturile sunt rezervate.

Mrci comerciale
IBM, sigla IBM i ibm.com sunt mrci comerciale sau mrci comerciale nregistrate deinute de International Business Machines Corp n multe jurisdicii din toat lumea. Alte nume de servicii i produse pot fi mrci comerciale deinute de IBM sau alte companii. O list curent de mrci comerciale IBM este disponibil pe Web la Copyright and trademark information la www.ibm.com/legal/copytrade.shtml. Urmtorii termeni sunt mrci comerciale sau mrci comerciale nregistrate ale altor companii v Linux este o marc comercial nregistrat deinut de Linus Torvalds n Statele Unite, n alte ri sau ambele. v Java i toate mrcile comerciale i emblemele bazate pe Java sunt mrci comerciale deinute de Sun Microsystems, Inc. n Statele Unite, n alte ri sau ambele. v UNIX este o marc comercial nregistrat deinut de Open Group n Statele Unite i n alte ri. v Intel, sigla Intel, Intel Inside, sigla Intel Inside, Intel Centrino, sigla Intel Centrino, Celeron, Intel Xeon, Intel SpeedStep, Itanium i Pentium sunt mrci comerciale sau mrci comerciale nregistrate deinute de Intel Corporation n Statele Unite, n alte ri sau ambele. v Microsoft, Windows, Windows NT i logo-ul Windows sunt mrci comerciale deinute de Microsoft Corporation n Statele Unite, n alte ri sau ambele. Alte nume de companii, produse sau servicii pot fi mrci comerciale sau mrci de servicii ale altora.

Anexa B. Observaii

169

170

Ghidul utilizatorului DB2 Connect

Index Caractere speciale


&& fiier de mapare SQLCODE 57 autentificare (continuare) tipuri (continuare) KERBEROS 41 SERVER 41 SERVER_ENCRYPT 41 SERVER_ENCRYPT_AES 41 valori implicite 41 validare 41 autoritate BINDADD DB2 Connect 47 autoritate CREATE IN COLLECTION NULLID autorizare legare 47

A
actualizare multilocaie Activare 51 Control Center 52 manager punct sync 52 testarea 52 unitate de lucru distribuit (DUOW) 51 actualizri Centrul de informare DB2 162, 163 directoare baz de date 27 afiniti client configurarea 114 ajustare baze de date gazd 120 DB2 Connect 83 DB2 for z/OS 123 parametrii agentpri 119 dir_cache 119 maxagents 119 MAXDARI 119 numdb 119 rqrioblk 119 reele 121 ajutor configurare limb 161 instruciuni SQL 161 alertele de sntate DB2 pentru z/OS 68 alias baz de date client 64 aplicaii compus SQL 91 legare 47 performana proiectare aplicaie 91 proceduri memorate 91 proiectare 91 Web DB2 Connect 15 aplicaii client recuperarea comunicaiilor 79 aplicaii web DB2 Connect 15 proceduri memorate 18 Arhitectura reprezentrii datelor tip caracter (CDRA) ATOMIC compus SQL nesuportat n DB2 Connect 91 autentificare 33 DB2 Connect 44 declaraie REVOKE 44 director baz de date sistem 27 privire general 41 tipuri CLIENT 41, 43 DATA_ENCRYPT 41 Copyright IBM Corp. 1993, 2009

47

B
baze de date ajustare 120 aliasuri director baz de date sistem 27 foaie de lucru pentru personalizarea directorului 33 gazd 4 grupare cereri 91 nume director baz de date sistem 27 director DCS 29 foaie de lucru pentru personalizarea directorului 33 obiect RDBNAM 140 unelte de performan 85 baze de date destinaie nume 29, 33 baze de date federalizate cereri distribuite 10 baze de date gazd accesare folosind DB2 Connect Personal Edition 11 conectivitate disponibilitate nalt 77 ncrcare echilibrare 77 blocare date 91 blocuri de interogare suplimentare parametru EXTRA BLOCKS SRV 123 privire general 123 blocuri de interogri creterea ratei de transfer a datelor DB2 Connect 123 buffer de trimitere date urmrire 139

C
cri comandare 160 CCSID (identificator set de caractere codat) suport bidirecional detalii 29 Centrul de informare DB2 actualizare 162, 163 limbi 161 versiuni 161

171

cereri baz de date grupare pentru performan 91 cereri distribuite privire general 10 clauza FOR FETCH ONLY instruciune SELECT 91 clieni echilibrare ncrcri de lucru 107 rerutare automat client conexiuni la DB2 for z/OS 110 suport Sysplex limitri 117 clieni server de date IBM echilibrare ncrcare de lucru 107 rerutare automat client pe partea client 110 cod de eroare SQL0969 151 cod de eroare SQL30020 151 cod de eroare SQL30061 151 cod de eroare SQL30081N 151 cod de eroare SQL30082 151 cod eroare SQL0965 151 cod eroare SQL30060 151 cod eroare SQL30073 151 cod eroare SQL5043N 151 comanda ACCRDB 140 comanda ACCRDBRM 140 comanda ACCSEC 140 comanda atributelor server exchange 140 comanda db2drdat Fiier de ieire 139 comanda db2trc formatare ieire urmrire 136 privire general 135 realizarea unui dump pentru ieirea urmrii comanda de comitere 140 comanda de sistem START MVS 68 comanda de sistem STOP MVS 68 comanda EXCSAT 140 comanda EXCSATRD 140 comanda FORCE 64 comanda GET SNAPSHOT privire general 62 comanda LIST DCS APPLICATIONS ieire 64 comanda SECCHK 140 comandarea crilor DB2 160 comand ps obiect EXTNAM 140 privire general 133 comeni ACCRDBRM 140 EXCSATRD 140 comenzi ACCRDB 140 ACCSEC 140 comitere 140 db2drdat privire general 139 db2trc formatare fiier urmrire 136 obinere urm 135 EXCSAT 140 GET SNAPSHOT privire general 62 SECCHK 140

136

comitere n dou faze Activare 51 port resynch folosit de conexiunile TCP/IP 28 comunicaii recuperare 79 concentrator de conexiuni ageni de lucru 97 comparaie punere conexiuni n pool 101 DB2 Connect 101 gestionarea conexiunilor 95 privire general 95, 97 conexiuni DB2 Connect Enterprise Edition 14 direct la gazde 11 direct la mainframe IBM 11 eecuri rerutare client automat 81 gzduire direct System z 12 gestionare 95 IBM i direct 12 pool avantaje 97 concentratori de conexiuni 97 privire general 95 restabilire DB2 Connect Enterprise Edition 14 direct la gazd 11 conexiuni de ncredere CLI/ODBC 38 comutarea utilizatorilor prin CLI/ODBC 39 DB2 Connect 37 configuraie conexiuni gazd 11 modificri parol 43 conflict resurse de sistem 122 contexte de ncredere suport CLI/ODBC 38 suport DB2 Connect 37 Control Center actualizare multilocaie 52 conversie gazd 125 cotare de nivel performana 85 CPU-uri unelte de performan 85 cuvnt cheie CURRENTPACKAGESET CLI/ODBC

43

D
date blocare 91 flux DB2 Connect 7, 85 suport fus orar 29 surse 10 transferare ntre gazde i staii de lucru 55 performana 126 rate 85, 126 DB2 Connect concentratori de conexiuni 101 configurare IBM Power Systems 53 mainframe IBM 53 System z 53

172

Ghidul utilizatorului DB2 Connect

DB2 Connect (continuare) Enterprise Edition aplicaii web 15 manageri de tranzacie compatibil XA 53 Monitorizri de procesare tranzacie 21 server de aplicaii Java 17 servere de conectivitate 14 servere web 18 mbuntiri funcii 3 mutarea datelor 55 privire general 3 produse 3 scenarii server de conectivitate 11 securitate 37 suport gazd 11 suport mainframe 11 suport Sysplex 103, 107 suport System i 11 utilitare de administrare 5 DB2 for z/OS monitorul de sntate aciuni recomandate 70 obiecte de alert 74 oprire 69 pornire 69 privire general 68 remprosptare 69 sumare alerte 72 opiunea DYNAMICRULES (BIND) 43 securitate 43 valori director nod 28 debit tranzacii 85 depanare conexiuni 131, 132 DB2 Connect 131, 151 informaii online 165 ndrumare 165 performana 122 strngere informaii 131 urmriri DRDA 142, 146 obinere folosind comanda db2trc 135 despre aceast carte v determinarea problemei conexiune 131 informaii disponibile 165 ndrumare 165 post-conexiune 132 unelte de diagnoz privire general 133 dezvoltarea aplicaiilor IBM Data Server Driver Package 11 ODBC 11 proiectare aplicaie 91 dimensiune bloc DB2 Connect 119 dimensiune bloc pagin 119 directoare baz de date a sistemului actualizare 27 valori 27 personalizare 33 directoare baz de date actualizare 27 DCS (Database Connection Services) 27

directoare baz de date (continuare) intrri multiple 33 nod 27 director baz de date sistem actualizare 27 valori 27 Director DCS (Database Connection Services) vedei Director DCS (servicii conectare baze de date) Director DCS (Servicii Conectare la Baza de date) actualizare intrri 27 valori 29 disponibilitate nalt DB2 Connect 75 documentaie fiiere PDF 157 privire general 157 termeni i condiii de utilizare 166 tiprite 157 DRDA (Distributed Relational Database Architecture) acces de date 7 DB2 Connect 7 privire general 7 driver-e IBM Data Server echilibrare ncrcare de lucru 107 rerutare automat client pe partea client 110 DSS (Decision Support System) 139 dump urm la un fiier privire general 136

29

E
echilibrare ncrcare de lucru configurare clieni 108 pe partea client 107 element monitorizare nume aplicaie erori depanare 131 exemple concentratori de conexiuni 97 concentratori XA 97 64

F
facilitate de control al accesului la resurse (RACF) autentificare 44 FDOCA (Formatted Data Object Content Architecture) fi de lucru personalizare director 33 fiier dcs1ari.map 57 fiier dcs1dsn.map 57 fiier dcs1qsq.map 57 fiier ddcs400.lst 47 fiier ddcsmvs.lst 47 fiier ddcsvm.lst 47 fiier ddcsvse.lst 47 fiier de configurare db2dsdriver 108 fiiere de baz determinarea problemei 133 fus orar privire general 29 7

G
gtuiri performana 85 Index

173

gtuiri (continuare) tranzacii 85 Gestionare date distribuite (DDM) DRDA (Distributed Relational Database Architecture) ieire db2drdat 139

J
7 Java server de aplicaii API-uri 17 DB2 Connect 17 JDBC 17 SQLJ 17 jetoane SQLCODE-uri 57

H
hardware performan de reea 126

I
IBM WebSphere privire general 16 informaii diagnoz privire general 133 InfoSphere Federation Server privire general 6 instruciune COMMIT legare static 91 instruciune DESCRIBE instruciuni SQL compuse 91 performan cu instruciunea PREPARE 91 instruciune EXECUTE IMMEDIATE proiectare aplicaie 91 instruciune PREPARE efect performan 91 proiectare aplicaie 91 instruciune ROLLBACK legare static 91 instruciune SELECT actualizabil 91 FOR FETCH ONLY activ 91 proiectare aplicaie 91 instruciune SET CURRENT PACKAGESET 43 instruciuni SQL ajutor afiare 161 clauza FOR FETCH ONLY din SELECT 91 COMMIT 91 DB2 Connect 5 DESCRIBE 91 EXECUTE IMMEDIATE 91 PREPARE 91 ROLLBACK 91 SELECT 91 interfa de nivel apel (CLI) aplicaii parametru de configurare CLI/ODBC CURRENTPACKAGESET 43 conexiuni de ncredere 37 privire general 127 istoric de evaluare politic 68 istorice evaluare politic 68

L
legare aplicaii 47 autoritate 47 pachete DB2 Connect 47 utilitare DB2 Connect 47 list de adrese puse n cache list de legtur DB2 Connect 47

104

M
manager punct sync (SPM) parametri de configurare valori implicite 53 scenariu 52 manageri de tranzacie XA concentratori de conexiuni 97 privire general 21 memorie unelte pentru utilizare 85 mesaje de eroare DB2 Connect 151 Microsoft Windows aplicaii 11 modelul X/Open DTP (distributed transaction processing) privire general 21 monitorizare conexiuni 61 Windows Performance Monitor 61 monitorizarea sistemului de baz de date clieni la distan 61 privire general 5 Monitorizri de procesare tranzacie OLTP 21 monitorizri procesare tranzacie actualizare multilocaie 51 DB2 Connect 21 exemple 21 Tuxedo 21 monitorul de sntate DB2 pentru z/OS 68 mutarea datelor DB2 Connect 55

ndrumare depanare 165 determinarea problemei list 165 Visual Explain 165

N
165 noduri directoare actualizare 27 valori 28

174

Ghidul utilizatorului DB2 Connect

noduri (continuare) nume foaie de lucru pentru personalizarea directorului valori baz de date sistem 27 valori director nod 28 NOT ATOMIC compus SQL proiectare aplicaie 91 NULLID 47 nume baz de date destinaie AS 29 nume destinaie simbolic sensibilitate la majuscule 28

33

O
obiect EXTNAM 140 obiect SRVNAM 140 obiecte de alert vizualizare 74 observaii 167 ODBC acces optimizat 89 Ajustarea performanei aplicaiei CLI/ODBC aplicaii parametru de configurare CLI/ODBC CURRENTPACKAGESET 43 interfee 11 oprire monitorul de sntate DB2 for z/OS 69 opiunea de monitor SHOW DETAIL 64

127

P
pachete servere de baz de date gazd 47 servere de baz de date System i 47 paraetru enableSeamlessAcr 111 parametri BSDS (bootstrap data set) z/OS 28 parametri de configurare agentpri 119 dir_cache 119 max_coordagents detalii 97 privire general 95 MAXDARI 119 num_initagents 95, 97 num_poolagents 95, 97 numdb 119 rqrioblk 119 TCP_KEEPALIVE 81 parametrii directoare 33 PRDID 140 SYSPLEX 29 iruri 34 parametru D (deconectat) 29 parametru de configurare manager baz de date maxagents depreciat 119 parametru de configurare numdb DB2 Connect 119 parametru de configurare pentru suport cache de director Ajustarea DB2 Connect 119 parametru de configurare rqrioblk ajustare 119 parametru de configurare sistem de operare TCP_KEEPALIVE parametru dir_cache 119

parametru enableAcr 111 parametru enableWLB 108 parametru INTERRUPT_ENABLED (deconectat) 29 parametru LOCALDATE 29 parametru maxRefreshInterval 108 parametru maxTransportIdleTime 108 parametru maxTransports 108 parametru maxTransportWaitTime 108 parametru NOMAP dezactivare mapare SQL 57 mapare SQL CODE 29 parametri director DCS 57 parametru PRDID 140 parametrul de configurare manager baz de date agentpri 119 parametrul de configurare manager baz de date max_coordagents detalii 97 privire general 95 parametrul de configurare manager baz de date num_initagents configurare pool de ageni inactivi 95 privire general 97 parametrul de configurare manager baz de date num_poolagents configurare pool de ageni inactivi 95 privire general 97 parole modificare z/OS 43 performana acces ODBC 89 concentrator de conexiuni 101 DB2 Connect ajustare 83 depanare 122 privire general 85 rate de transfer n cretere 123 hardware de reea 126 impact procesor linie de comenzi (CLP) 91 proiectare aplicaie 91 punerea conexiunilor n pool 101 resurse de sistem 122 z/OS 123 pool de transport 107 pornire monitorul de sntate DB2 for z/OS 69 predicate performan de logic 91 proceduri memorate privire general 18 procesorul de linie de comenzi (CLP) instruciuni SQL 5 performana 91 programare CGI (interfa gateway obinuit) 15 programarea CGI (Common Gateway Interface) avantaje 15 limitri 15 protocol de autentificare Kerberos DB2 Connect 41 OS/390 43 z/OS 43 punerea conexiunilor n pool comparaie concentrator conexiuni 101 gestionarea conexiunilor 95 privire general 95

81

R
RECEIVE BUFFER 139 Index

175

referine definirea intrrilor bazei de date multiple relaii de ncredere DB2 Connect 37 rerutare automat client configurare 111 detalii 79 pe partea client 110 setare 79 rerutare client automat defectare conexiune 81 resurse de sistem conflict 122 reele ajustare 121 rate de transfer de date 126 unelte de performan 85

33

S
scalare fereastr extensii RFC-1323 124 scenariu Securitate TCP/IP 44 securitate DB2 Connect 37 indicaii 43 instruciunea GRANT 44 Kerberos 43 sugestii 43 suport coduri extins pentru DB2 for z/OS 43 TCP/IP 44 tipuri 33 valori director nod 28 server de aplicaii DB2 Connect 18 definiie DRDA 7 servere aplicaie DB2 Connect 18 servere de conectivitate DB2 Connect Enterprise Edition 14 servere web DB2 Connect 18 setare db2dsdriver AFFINITY_LIST 114 setare db2dsdriver ALTERNATE_SERVER_LIST 114 setare db2dsdriver CLIENT_AFFINITY 114 sfrit unitate de mesaje de rspuns lucru (ENDUOWRM) SOCKS noduri variabile de mediu obligatorii 28 solicitani aplicaie (AR) definiie DRDA 7 parametrii 33 SQL dinamic 91 static 91 SQL dinamic parametru de configurare CLI/ODBC CURRENTPACKAGESET 43 performana tehnici 91 procesarea efectelor 5 SQL static performana 91 procesarea efectelor 5

SQL_ATTR_ TRUSTED_CONTEXT_PASSWORD comutare utilizatori pe o conexiune de ncredere prin CLI TRUSTED_CONTEXT_USERID comutare utilizatori pe o conexiune de ncredere prin CLI USE_TRUSTED_CONTEXT creare conexiuni de ncredere prin CLI 38 SQLCA buffer-e de date 139 cmp SQLCODE 139 SQLCODE cmp n SQLCA 139 fiier de mapare 57 Mapare 57 SQLDA dimensiune de alocare 91 SQLSTATE coduri de clas 57 stare sistem comanda GET SNAPSHOT 62 sumare alerte vizualizare 72 suport bidirectional CCSID parametru BIDI 29 Sysplex cerine de configurare 105 informaii cu prioritate 104 ncrcare echilibrare 104 limitri pentru suportul pe partea client 117 parametru 29 suport client 107 suport DB2 Connect 103 System z 103 toleran pagin lips 104 utilizare 104

39 39

iruri de parametri virgul dubl 29 virgule 29

T
140 TCP/IP comanda ACCSEC 140 comanda SECCHK 140 configurare conexiuni gazd 12 DOMAIN 28 extensii RFC-1323 124 nume de gazd de la distan 28, 33 nume gazd 33 nume servicii 28 numere port 33 port resynch 28 RESPORT 28 scenarii de autentificare 44 securitate 43 TCPPORT 28 termeni i condiii publicaii 166 testarea actualizare multilocaie 52 timpi de rspuns DB2 Connect 85

176

Ghidul utilizatorului DB2 Connect

tip autentificare PROGRAM 44 tip autentificare SAME 44 tip de autentificare CLIENT DB2 Connect 41 tip de autentificare DATA_ENCRYPT 41 tip de autentificare SERVER DB2 Connect 41 tip de autentificare SERVER_ENCRYPT DB2 Connect 41 tip de date CHAR detalii 125 tip de date INTEGER conversie de date gazd 125 tip de date pachet zecimal 125 tip de date VARCHAR privire general 125 tip de date zecimal zonat 125 tipul de autentificare SERVER_ENCRYPT_AES tipuri de autentificare NONE 44 tipuri de date caracter 125 CHAR 125 conversie efect performan 125 INTEGER conversie de date gazd 125 pachet zecimal 125 VARCHAR privire general 125 virgul flotant conversie de date gazd 125 zecimal zonat 125 tipuri de date caracter 125 tipuri de date virgul flotant conversie 125 transporturi 107 tranzacii actualizare multilocaie 7, 51 aplicaii distribuite XA 54 comitere n dou faze 7 cuplat slab DB2 Connect 54 DB2 Connect Enterprise Edition 21 debit DB2 Connect 85 distribuit 51 unitate de lucru (UOW) 7 Tranzacii Monitorizri de procesare tranzacie 21 Tuxedo DB2 Connect Enterprise Edition 21

41

uniti de lucru la distan caracteristici 8 exemplu 8 privire general 8 urmriri date ntre DB Connect i server 139 DB2 135, 136 DB2 Connect 135 DRDA exemple 142 informaii buffer 146 interpretare 139 exemple de fiiere de ieire 142 Fiier de ieire 139, 140 utilitar ddcstrc 140 utilitar de export transfer de date ntre gazde i staii de lucru 55 utilitar de import transferarea datelor ntre gazd i staia de lucru 55 utilitar de stare de proces comand 133, 140 utilitar de urmrire (db2drdat) 139 utilitare administrare DB2 Connect 5 db2drdat 139 ddcspkgn 47 legare 47 monitorizarea sistemului de baz de date 5 ps (process status) 133, 140 urmrire 139

V
vrajitor de configurare a actualizrii multilocaiei vrjitori actualizare multilocaie 52 52

W
WebSphere privire general 16 WebSphere MQ DB2 Connect 101 Windows Performance Monitor monitorizare aplicaii DB2

61

X
XA conexiuni de ncredere 37 exemple de concentrator 97 manageri de resurse 21

U
unelte performana 85 utilizare CPU 85 utilizare memorie 85 unitate de lucru (UOW) distribuit 51 la distan 8 privire general 7 uniti de lucru distribuite actualizare multilocaie 51 comitere n dou faze 51 privire general 7 servere suportate 51

Index

177

178

Ghidul utilizatorului DB2 Connect

Tiprit n S.U.A.

SA22-1403-01

Spine information:

IBM DB2 Connect 9.7

Versiune 9 Ediie 7

Ghidul utilizatorului DB2 Connect

S-ar putea să vă placă și