DB2 9存储过程的规划和实施技巧(三)

日期: 2008-07-30 作者:Bernie 来源:TechTarget中国 英文

  为通用情况准备的存储过程


  另外,我们为大多数的存储过程准备了一套运行环境,所准备的启动作业如下所示,其中NUMTCB可以根据系统资源情况来定,一般推荐可以设置为40或60。


  清单4. 通用情况下存储过程对应的STC作业






//DB11WLM2 PROC APPLENV=DB11WLM2,DB2SSN=DSN,RGN=0K,NUMTCB=40 
  //IEFPROC &#101xec PGM=DSNX9WLM,REGION=&RGN,TIME=NOLIMIT, 
  // PARM=’&DB2SSN,&NUMTCB,&APPLENV’ 
  //STEPLIB DD DISP=SHR,DSN=prefix.SCEERUN 
  //* DD DISP=SHR,DSN=prefix.SDFHEXCI For CICS 
  // DD DISP=SHR,DSN=prefix.SDSNEXIT 
  // DD DISP=SHR,DSN=prefix.SDSNLOAD 
  //* DD DISP=SHR,DSN=prefix.SCSQLOAD For MQ 
  //* DD DISP=SHR,DSN=prefix.SCSQAUTH For MQ 
  //* DD DISP=SHR,DSN=prefix.SCSQANLE For MQ 
  //*SYSIN DD SYSOUT=* For Debugger and XML 
  //*SYSPRINT DD SYSOUT=* 
  //*WSERROR DD PATH=’/tmp/wsc.err’, For WEB_SERVICES 
  //* PATHOPTS=(ORDWR,OCREAT,OAPPEND), 
  //* PATHMODE=(SIRUSR,SIWUSR,SIRGRP,SIWGRP,SIROTH,SIWOTH) 

  REXX语言编写的存储过程


  对于由REXX语言写的存储过程来说,启动作业同其他类型的存储过程是不同的。见下面的例子。需要特别提出的是,REXX类型的存储过程的NUMTCB应该设为1。


  清单5. REXX存储过程对应的STC作业







//DB11WLMR PROC APPLENV=DB11WLM_REXX,DB2SSN=DSN,RGN=0K,NUMTCB=1 
  //IEFPROC &#101xec PGM=DSNX9WLM,REGION=&RGN,TIME=NOLIMIT, 
  // DYNAMNBR=5, <== Allow for Dyn Allocs 
  // PARM=’&DB2SSN,1,&APPLENV’ <== Use 1, not NUMTCB 
  //* 
  //NUMTCB@1 SET NUMTCB= <== Null NUMTCB symbol 
  //* 
  //* Include SDSNEXIT to use Secondary Authids (DSN3@ATH DSN3@SGN exits) 
  //STEPLIB DD DISP=SHR,DSN=prefix.RUNLIB.LOAD 
  // DD DISP=SHR,DSN=CBC!!.SCCNCMP <== C Compiler 
  // DD DISP=SHR,DSN=prefix.SCEERUN <== LE runtime 
  // DD DISP=SHR,DSN=prefix.SDSNEXIT 
  // DD DISP=SHR,DSN=prefix.SDSNLOAD 
  //SYS&#101xec DD DISP=SHR,DSN=DSN!!0.SDSNCLST <== Location of DSNTPSMP 
  //SYSTSPRT DD SYSOUT=* 
  //CEEDUMP DD SYSOUT=* 
  //SYSPRINT DD SYSOUT=* 
  //SYSABEND DD DUMMY 
  //DSNTRACE DD SYSOUT=* 
  //* 
  //**** Data sets required by the SQL Procedures Processor 
  //SQLDBRM DD DISP=SHR, <== DBRM Library 
  // DSN=DSN!!0.DBRMLIB.DATA 
  //SQLCSRC DD DISP=SHR, <== Generated C Source 
  // DSN=DSN!!0.SRCLIB.DATA 
  //SQLLMOD DD DISP=SHR, <== Application Loadlib 
  // DSN=DSN!!0.RUNLIB.LOAD 
  //SQLLIBC DD DISP=SHR, <== C header files 
  // DSN=CEE!!.SCEEH.H 
  // DD DISP=SHR, 
  // DSN=CEE!!.SCEEH.SYS.H 
  // DD DISP=SHR, <== Debug header file 
  // DSN=DSN!!0.SDSNC.H 
  //SQLLIBL DD DISP=SHR, <== Linkedit includes 
  // DSN=CEE!!.SCEELKED 
  // DD DISP=SHR, 
  // DSN=DSN!!0.SDSNLOAD 
  //SYSMSGS DD DISP=SHR, <== Prelinker msg file 
  // DSN=CEE!!.SCEEMSGP(EDCPMSGE) 
  //* 
  //**** DSNTPSMP Configuration File – CFGTPSMP (optional) 
  //* A site provided sequential dataset or member, used to 
  //* define customized operation of DSNTPSMP in this APPLENV. 
  //*CFGTPSMP DD DISP=SHR,DSN= 
  //* 
  //**** Workfiles required by the SQL Procedures Processor 
  //SQLSRC DD UNIT=SYSALLDA,SPACE=(23440,(20,20)), 
  // DCB=(RECFM=FB,LRECL=80,BLKSIZE=23440) 
  //SQLPRINT DD UNIT=SYSALLDA,SPACE=(23476,(20,20)), 
  // DCB=(RECFM=VB,LRECL=137,BLKSIZE=23476) 
  //SQLTERM DD UNIT=SYSALLDA,SPACE=(23476,(20,20)), 
  // DCB=(RECFM=VB,LRECL=137,BLKSIZE=23476) 
  //SQLOUT DD UNIT=SYSALLDA,SPACE=(23476,(20,20)), 
  // DCB=(RECFM=VB,LRECL=137,BLKSIZE=23476) 
  //SQLCPRT DD UNIT=SYSALLDA,SPACE=(23476,(20,20)), 
  // DCB=(RECFM=VB,LRECL=137,BLKSIZE=23476) 
  //SQLUT1 DD UNIT=SYSALLDA,SPACE=(23440,(20,20)), 
  // DCB=(RECFM=FB,LRECL=80,BLKSIZE=23440) 
  //SQLUT2 DD UNIT=SYSALLDA,SPACE=(23440,(20,20)), 
  // DCB=(RECFM=FB,LRECL=80,BLKSIZE=23440) 
  //SQLCIN DD UNIT=SYSALLDA,SPACE=(32000,(20,20)) 
  //SQLLIN DD UNIT=SYSALLDA,SPACE=(3200,(30,30)), 
  // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200) 
  //SQLDUMMY DD DUMMY 
  //SYSMOD DD UNIT=SYSALLDA,SPACE=(23440,(20,20)), 
  // DCB=(RECFM=FB,LRECL=80,BLKSIZE=23440) 

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者

Bernie
Bernie

相关推荐