主机WLM应用环境的规划和实施
DB2 9之后,所有的存储过程都运行在WLM应用环境管理之下,由于主机数据库下存储过程数量较多,我们在定制的时候,需要把具有类似属性的存储过程定义在一个应用环境下。目的是最大限度的减少WLM应用环境的定义数量。当然如果你只是客户化少量的存储过程或者是对某些存储过程有一些特定的要求,例如性能或存储等,也可以定义粒度更小的 WLM 应用环境。另外在一些存储过程里所涉及的数据集里,有一些是需要具有APF属性的,需要特别注意。以下为一个WLM应用环境的定义例子,例子中应用环境所对应的启动作业为DB11WLM1。
清单 2. 主机WLM应用环境定义界面
Appl Environment Name . . DB11WLM1 Description . . . . . . . DB2 DB11WLM1 Subsystem type . . . . . DB2 Procedure name . . . . . DB11WLM1 Start parameters . . . . DB2SSN=&IWMSSNM,NUMTCB=1,APPLENV=DB11WLM1 |
创建DB2存储过程
DB2产品提供的存储过程是通过客户化DSNTIJSG作业来定义的。在提交作业完成创建存储过程之前,需要对存储过程进行必要的规划。根据存储过程的功能不同,建议分为以下 4类:
表 1. 存储过程的分类
另外,需要注意以下几点:
1.存储过程的分类可能会依据DB2的PTF版本不同而有改变;
2.存储过程的NUMTCB的设置除了根据存储过程的功能要求外,还依赖于系统资源情况;
3.建议WLM应用环境和启动过程名称一致,便于管理;
4.存储过程分类的粒度根据实际情况可能会有不同,基本原则为在满足功能需求的情况下,尽可能的简化配置,便于管理。
以下我们重点介绍为四个不同的WLM应用环境准备的启动作业过程,通过启动作业可以为WLM环境准备不同的存储过程执行环境。
为在线Utility执行而准备的存储过程
此类存储过程功能是需要调用数据库的在线UTILITY,例如数据库所提供的DSNUTILS和DSNUTILU,在配置此类存储过程的时候,NUMTCB 要求定义为 1,也就是不容许并发调用。主要是由于在调用时,会生成一些中间文件,如果容许同时调用存储过程的话,这些文件会被互相覆盖,导致不可预料的错误发生。
以下为此类存储过程所调用的启动作业。在作业中的SYSIN是分配一些临时空间存储Utility的输入语句。SYSPRINT 是分配临时空间来存储utility的输出信息。RNPRIN01是为DFSORT信息所分配的空间,UTPRINT也是为DFSORT信息所分配的空间,DSSPRINT是当执行concurrent copies时,为输出信息分配空间。
清单 3. 在线Utility存储过程对应的STC作业
//DB11WLM1 PROC APPLENV=DB11WLM1,DB2SSN=DSN,RGN=0K,NUMTCB=1 //IEFPROC exec PGM=DSNX9WLM,REGION=&RGN,TIME=NOLIMIT, // PARM=’&DB2SSN,&NUMTCB,&APPLENV’ //STEPLIB DD DISP=SHR,DSN=prefix.SCEERUN // DD DISP=SHR,DSN=prefix.SDSNEXIT // DD DISP=SHR,DSN=prefix.SDSNLOAD //UTPRINT DD SYSOUT=* //RNPRIN01 DD SYSOUT=* //DSSPRINT DD SYSOUT=* //SYSIN DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) //SYSPRINT DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) |
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
TT百科:存储过程
存储的过程可以访问或修改数据库中的数据,但并不绑定到特定的数据库或对象,这提供了许多优点。
-
在Oracle数据库的自定义函数中调用存储过程
在Oracle数据库的自定义函数中调用存储过程是否可行,Oracle专家Brian Peasland给出了具体的解答。
-
数据库工程师2012年3月刊:数据库2012
数据库的2012,不是末日而是新生。传统厂商纷纷发布大版本更新的数据库产品,开源技术更加强势,2012的精彩始于《数据库工程师》……
-
解读SQL Server数据库存储过程发展历史
SQL Server存储过程可以是Transact-SQL(T-SQL)语句,或者是.NET框架的公共语言运行时(CLR),它是专为方便数据库查询而设计的。