1 / 15

DB2 UDB im z/VSE

COURSE Tagung Bad Hersfeld 2008. DB2 UDB im z/VSE . Heinz Peter Maassen – Lattwein GmbH. DB2 UDB im z/VSE . Start Parameter Anpassung Programmierung CPG/HL1 Ausnahmen. Start Parameter. // JOB DB2START START DB2 IN MULTIPLE USER MODE mit UDB

eileen
Download Presentation

DB2 UDB im z/VSE

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  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 :UDBauf 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 Gen. ASM Code = System Sicht CALL HOSTVAR DC C‘FIRMA‘,X‘2E‘,C‘ ‘ DC C‘KDNRA‘,X‘05‘,C‘ ‘ CALL SQLCMD DC C‘UPDATE‘,X‘002C‘ 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 ? Vielen Dank für Ihre Aufmerksamkeit

More Related