Documente Academic
Documente Profesional
Documente Cultură
Versiune 9 Ediie 7
SA22-1403-01
Versiune 9 Ediie 7
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
. .
. .
. .
. .
. .
. .
. 57 . 57
37
. 37 . 38 . . . . 39 41 43 43
iii
Capitolul 13. Configurarea re-rutrii automate a clientului pentru tehnologia de distribuitor a conexiunii client . . . 81
131
. . . . 131 131 132 133
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
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
119
120 121 122 122 123 123 123 124 125 125 126
. . . .
iv
vi
Pentru informaii detaliate despre ofertele produsului DB2 Connect, vedei www.ibm.com/software/data/db2/db2connect/
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.
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.
v SQL ncorporat
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.
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.
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 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
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.
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
11
TCP/IP
ODBC Perl
ADO.NET PHP
CLI DB2
JDBC Python
SQLJ Ruby
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
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
TCP/IP
ODBC Perl
ADO.NET PHP
CLI DB2
JDBC Python
SQLJ Ruby
pureQuery
Aplicaia 1
Aplicaia 2
Aplicaia 3
Figura 4. Conexiunea direct ntre DB2 Connect i un server de baz de date mainframe IBM
14
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.
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.
15
16
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/
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.
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.
18
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...
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
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
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.
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.
DB2
Selectare nume...
Actualizare...
WebSphere Application Server monitor TP, WebSphere MQ, CICS, Encina, MTS, Tuxedo, WebLogic Flux/API monitor TP
SQL i XA
Client
Client
Client
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
Capitolul 3. Scenarii
23
24
25
26
27
28
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
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
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"
32
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.
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.
34
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.
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
36
Conexiune de ncredere explicit Conexiune obinuit i este ntors un avertisment SQL20360W (SQLSTATE 01679).
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.
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.
38
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.
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
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
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.
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.
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
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.
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.
Dialogul Change password din DB2 Configuration Assistant poate de asemenea fi folosit pentru a modifica parola.
44
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).
45
46
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
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
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.
49
50
51
52
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.
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.
54
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))
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
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
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.
59
&& -007 -010 -060 ... -204 ... -633 -30021 cc00 ... U P
, , , , , , , ,
, , , ,
(s) (s)
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
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.
61
Pentru a activa monitorizarea aplicaiilor locale va trebui s oprii variabila de mediu DB2CONNECT_IN_APP_PROCESS.
62
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
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
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)
9.26.13.61.65289.060306213816
2002:91a:519:13:209:6bff:fe14:4fbb.7684.060306213741
64
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.
Seq#
Seq#
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
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).
68
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.
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
ssid Numele sau identificatorul subsistemului DB2 care este monitorizat de monitorul de sntate DB2 pe care l oprii.
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
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
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
72
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';
73
74
75
76
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?
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
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
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)
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
83
84
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.
85
Aplicaie
Comunicaie Subsistem A
Comunicaie Subsistem B
Reea
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
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
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.
88
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.
89
90
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
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
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.
93
94
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
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.
98
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.
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.
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
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.
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
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.
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.
104
105
106
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.
108
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>
110
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.
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.
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
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 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>
113
114
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
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
<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>
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
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.
120
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.
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.
Buffer-e
RUSIZE
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 TCP
122
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.
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.
124
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/.
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
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
127
128
Partea 5. Depanarea
129
130
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?
132
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.
133
134
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
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.
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
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
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
137
138
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
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.
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
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.
141
142
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
(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
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:
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..........
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:
144
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
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
(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:
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 ..}....-........ ......+.!.<..... ................ ................ ....<........... ............(... .<....
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
146
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.
147
148
Partea 6. Mesajele
149
150
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
152
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.
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.
153
154
Partea 7. Anexe
155
156
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
Da Da Da
SC27-2442-01
Da
Noiembrie 2009
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
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
Da Da Nu
SC27-2468-00
Nu
August, 2009
SC27-2470-01
Da
August, 2009
Da Da Da
Da Nu Da Da Nu
Noiembrie 2009 August, 2009 Noiembrie 2009 August, 2009 Noiembrie 2009
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
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
160
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.
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 .
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
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.
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
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
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.
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
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
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
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
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
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
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
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
Tiprit n S.U.A.
SA22-1403-01
Spine information:
Versiune 9 Ediie 7