Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

DB2 UDB im z/VSE Heinz Peter Maassen – Lattwein GmbH COURSE Tagung Bad Hersfeld 2008.

Ähnliche Präsentationen


Präsentation zum Thema: "DB2 UDB im z/VSE Heinz Peter Maassen – Lattwein GmbH COURSE Tagung Bad Hersfeld 2008."—  Präsentation transkript:

1 DB2 UDB im z/VSE Heinz Peter Maassen – Lattwein GmbH COURSE Tagung Bad Hersfeld 2008

2 DB2 UDB im z/VSE Start Parameter Anpassung Programmierung CPG/HL1 Ausnahmen

3 Start Parameter // JOB DB2START START DB2 IN MULTIPLE USER MODE mit UDB // LIBDEF *,SEARCH=(PRD2.TCPIP15E,PRD2.DB2740) // SETPFIX LIMIT=120K // EXEC PROC=ARIS74DB *-- DB2 DATABASE ID PROC // EXEC PROC=ARIS74SL *-- DB2 PRODUCTION LIBRARY ID PROC // ASSGN SYS098,SYSPCH * DBNAME=SQLDS NCUSER=12 (3 CICSF5, 3 CICSF7, 3 CICSF8, 3 BATCH ) // EXEC ARISQLDS,SIZE=8M,PARM='DBNAME=SQLDS,NCUSERS=12,RMTUSERS=3, X PROTOCOL=AUTO,PROCMXAB=12' /* /& // JOB DB2START START DB2 IN MULTIPLE USER MODE Ohne UDB // LIBDEF *,SEARCH=(PRD2.TCPIP15E,PRD2.DB2740) // SETPFIX LIMIT=120K // EXEC PROC=ARIS74DB *-- DB2 DATABASE ID PROC // EXEC PROC=ARIS74SL *-- DB2 PRODUCTION LIBRARY ID PROC // ASSGN SYS098,SYSPCH * DBNAME=SQLDS NCUSER=12 (3 CICSF5, 3 CICSF7, 3 CICSF8, 3 BATCH ) // EXEC ARISQLDS,SIZE=AUTO,PARM='DBNAME=SQLDS,NCUSERS=12,RMTUSERS=3' /* /&

4 ARISDIRD CATALOG ARISDIRD.A REPLACE=YES * THIS FILE CONVERTED BY ARICCDID PROC 20020208 10:40:44 FROM R51 INPUT * PRD4.DB2510.ARISDIRD.A INTO PRD2.DB2740.ARISDIRD.A * TYPE=LOCAL DBNAME=SQLDS APPLID=SYSARI00 TCPPORT=446 SYSDEF=Y * TYPE=LOCALAXE DBNAME=SQLDS APPLID=SYSARI00 TPN=07F6C4C2 * TYPE=REMOTE DBNAME=CPGDB TCPPORT=50000 IPADDR=192.168.197.20 * /+ Dann: // JOB ARISBDID -- DBNAME DIRECTORY SERVICE GENERATION erstellen Lokal: SQLDS Remote: CPGDB

5 DRDA Support Linken // JOB ARIS745D LINK EDIT ONLINE RESOURCE ADPATER WITH DRDA // STEP 2 - LINK EDIT ONLINE RESOURCE ADPATER DRDA ROUTER // JOB ARIS742D LINK EDIT RDS WITH DRDA SERVER SUPPORT // ARIS74LD: LINK EDIT BATCH RESOURCE ADAPTER WITH DRDA CODE Dann: // JOB ARIS120D * ********************************************************** * ARIS120D: RELOAD THE ISQL PACKAGE * ********************************************************** // EXEC PGM=ARIDBS,SIZE=AUTO,PARM='DBNAME(CPGDB)' CONNECT CPGDBA IDENTIFIED BY CPGDBAPW TO CPGDB; RELOAD PROGRAM (SQLDBA.ARIISQL) REPLACE KEEP INFILE(SYSIPT BLKSZ(80) PDEV(DASD)); READ MEMBER ARIISQLM /* COMMIT WORK; /* /&

6 CPG/ HL1 mit DB2 UDB CPG und HL1 können mit CPGPREP Inline SQL Statements interpretieren und ausführen. DB2PREP ist ein Preprozessor, der erst Assembler DB2 Statements erzeugt, die dann mit Original IBM DB2 Preprozessor den Source Code ergeben. QSAT kann sowohl in der VSE DB2 Umgebung als auch in der UDB eingesetzt werden.

7 QPG und DB2 UDB Bei QPG muss das SQL Interface in der UDB installiert sein. Das sind die Packages HMXPRSQ für CICS und HMYPRSQ für Batch. Dann kann das QPG Programm nach SQL CONNECT :UID IDENTIFIED BY :PWD TO :UDB auf die UDB mit dynamischen SQL Statements (ohne DECLARE CURSOR FOR... und SELECT INTO...) zugreifen. Ansonsten gibt es die gleichen Einschränkungen wie im CPG/HL1 Leider unterstützt die UDB bisher nicht alle extended dynamischen Befehle.

8 CPG/ HL1 mit DB2 UDB HL1 / CPG Programme - SQL UPDATE CPGDBA.KUNDEN * - SQL SET FIRMA = :FIRMA * - SQL WHERE KDNRA = :KDNR User Application = Sicht CALL HOSTVAR DC C‘FIRMA‘,X‘2E‘,C‘ ‘ DC C‘KDNRA‘,X‘05‘,C‘ ‘ CALL SQLCMD DC C‘UPDATE‘,X‘002C‘ Gen. ASM Code = System Sicht HOSTVAR SQLCMD

9 Defaults setzen: Ab QSAT 2.5 kann eine Default DB2 DB sowohl für den Compile als auch für QSAT definiert werden. Hierzu wird der Source Code von QSATDIR angepasst, ein Objekt erstellt und die Phasen entsprechend neu gelinkt.

10 QSATDIR.A QSATDIR CSECT *---------------------------------------------------------------------* * QSAT DIRECTORY FUER DB2 TYPE * * ---------------------------- * * DIESE TABELLE WIRD IM QSAT UND BEIM PREPROZESS VERWENDET UM ZU * * ENTSCHEIDEN, WELCHE SQL BEFEHLE ZUR DATENBANK ERLAUBT SIND. * * AUSSERDEM WIRD IM QSAT ENTSCHIEDEN, WELCHE HL1 MODULE AUFGERUFEN * * WERDEN, DA DIE SYSTEM TABELLEN UNTERSCHIEDLICHE NAMEN IN DER UDB * * ODER IM SQLDS HABEN. * *---------------------------------------------------------------------* * AUFBAU DER TABELLE: * * ------------------- * * DBNAME DC CL18'SQLDS' 1 - 18 DBNAME * * DBTYPE DC CL3'VSE' ODER 'VM ' ODER 'UDB' 19 - 21 DBTYPE * * --------------------------------------------------------------------* SQLDS DC CL18'SQLDS',CL3'VSE' * CPGDB DC CL18'CPGDB',CL3'UDB' * DBMAS DC CL18'DBMAS',CL3'UDB' * ENDDIR DC F'-1' * * END, END IN ASMA90, END DO NOT REMOVE COMMA *

11 Benutzen: In ISQL Start Kann die UDB Direkt eingetra- gen werden.

12 Anzeige Tabelle mit ISQL: Das ist das CPGDD für DB2 Program- mierung. View Table Direkt in der Steuerzentrale der DB2 UDB unter Windows XP.

13 Programmierung: // JOB DB2UMW /* EXEC CPGPREP,SIZE=512K,PARM='PUNSOURCE,LIST,NOPRINT,ISOL(CS),DB(SQLD /* S),USERID=CPGDBA/CPGDBAPW,QSATDB(CPGDB),QSATPW(CPGDBAPW)' // EXEC CPGPREPW,SIZE=512K,PARM='PUNSOURCE,LIST,NOPR,ISOL(CS),DB(CPGDB)*,USERID=CPGDBA/CPGDBAPW,QSATDB(CPGDB),QSATPW(CPGDBAPW)' - OPTIONS MAIN HL1 H COM ADD 0 TITLE SQL#SERVER PHASE TST039 - ASS A DIC DEF BIG. - *--------------------------------------------------------------* - * TEST INSERT MIT NULL FELDERN * - *-------------------------------------------------MAS-30.04.08-* - -D. - SQL BEGIN DECLARE SECTION............ Hier folgt das Programm /*...

14 Was nicht geht: Bei DRDA sind einige wichtige und Performance sparende Funktionen leider nicht unterstützt, besonders im Bereich dynamischer Befehle: Nullwerte werden beim INSERT Befehl nicht unterstützt, es kommt SQLCODE –309! DRDA unterstützt kein SELECT... INTO. Das muss mit einem DECLARE CURSOR, OPEN, FETCH, CLOSE gelöst werden. WHERE CURRENT OF... geht nicht Zum Teil werden hierdurch erhebliche Programmänderungen erforderlich!

15 Noch Fragen ?


Herunterladen ppt "DB2 UDB im z/VSE Heinz Peter Maassen – Lattwein GmbH COURSE Tagung Bad Hersfeld 2008."

Ähnliche Präsentationen


Google-Anzeigen