-r: 指定向哪个region添加资源定义。如果没有指定,资源定义将被添加到CICSREGION环境变量指定的region。
-P: 添加资源定义到持久化数据库,而不将它安装到运行时数据库。(在-B或-P没有指定时是默认选项)。
-B: 添加资源定义到持久化数据库,并更新运行时数据库,然后在运行时系统中安装资源定义。
ResourceName:被添加的资源定义的名称。
AttributeName=attributeValue:重写属性。
例如:
#cicsadd -c pd -r TEST -B MyProg PathName=program1
这条命令添加名为”MyProg“的程序定义到名为TEST的region的持久化数据库和运行时数据库,程序路径设置为”program1“。
当使用这条命令时,要确保在你指定的种类中没有相同名称的资源定义,否则将会引起错误。
因为运行时数据库将会从持久化数据库中被重载,所以推荐冷启动你的region。在冷启动后你刚刚添加的资源会生效。但是不要冷启动SFS服务器。
参阅:
关于持久化(permanent)、运行时(runtime)、自动(auto)数据库,冷启动和热启动:
(2)删除资源定义
本条命令用于从持久化数据库或运行时数据库中删除一个或多个资源定义,当然也可以将两个数据库中的资源定义同时删除。
语法
cicsdelete -c <className> [-r <regionName>] [-P | -R | -B] <resourceName> [<resourceName>…]
选项
-P: 从持久化数据库删除(在-P、-B或-R没有指定时是默认选项)。
-R: 从运行时数据库删除并从运行中的系统里卸载。
-B: 从持久化和运行时数据库中删除,并从运行中的系统里卸载。
当进行删除操作时,必须指定资源名称。
参阅:
(3)更新资源定义
当需要对已经存在的资源定义进行修改时,可以使用本条命令,从而省去删除然后再添加同一个资源定义的麻烦。
语法
cicsupdate -c <className> [-r <regionName>] [-P | -R | -B] [<resourceName>]
[<attributeName=attributeValue>…]
选项
-P: 更新持久化数据库(在-P、-B或-R没有指定时是默认选项)。
-R: 更新运行时数据库并安装到运行中的系统。在”cicsupdate -R“之前使用”cicsdelete -R“。
-B: 更新持久化和运行时数据库,并安装到运行中的系统。
参阅:
“cicsupdate“除了可以修改资源定义,还将帮助用户避免重启(停止和冷启动)region,因为它可以重载运行时数据库。
(4)获取资源定义
本条命令可以检索持久化数据库中指定类型的资源的属性。
语法
cicsget -c <className> [-r <regionName>] {-l | -s [<resourceName>] | [<resourceName>]}
选项
-l: 列出region中指定类型的所有的资源定义。
-s: 列出指定资源的所有属性名和属性值。信息分写为两行。第一行是以”:”分割的属性名,第二行包括所有相应的属性值,也以”:”分割。
参阅:
“/var/cics_regions/<regionName>/database/<className>/<className>.stanza“文件中也可以获取和修改属性信息。但是强烈建议使用命令行工具,因为它可以帮助用户检查属性名和属性值,同时在大多数情况下避免重启region。
3. “hello world“示例程序
在学习了资源管理之后,用户可能会对于在何处使用这些知识和工具存在困惑。所以本节会以一个在屏幕上显示”hello world“的示例程序,来说明通过使用”cicsadd“、”cicstcl“和CEDF在TXSeries中运行交易的步骤。期间会有一个关于如何在修改了程序后避免重启region的提示。
首先,用户需要一个叫做”helloworld“的C语言程序。
(1)翻译、编译和连接”helloworld“程序
以下是程序的源代码,请保存在region的bin目录下。
路径是”/var/cics_regions/<regionName>/bin“,名称为”helloworld.ccs“。
Int main(){
Char* Hello = “Hello world!”;
EXEC CICS SEND FROM(Hello) LENGTH(12) ERASE;
EXEC CICS RETURN;
}
使用下列命令去翻译、编译和运行上述程序:
cicstcl -lC helloworld.ccs
“cicstcl“会翻译、编译源程序,然后运行相应的命令连接生成的目标程序。”-lC“表示源代码是C语言程序。
参阅:
如果没有错误信息出现,说明程序被创建成功,在bin目录下会出现一个名为”helloworld“的可执行文件。
(2)添加PD资源定义
尽管程序位于bin目录下,region还是不知道程序的存在。通过在region中添加一个程序定义(PD),用户可以通过资源名称来使用这个程序。
cicsadd -c pd -r <regionName> <PD entry name> PathName=<path of program>
PD名称(PD entry name)不能多于8个字符。
参阅:
(3)添加TD资源定义
现在region知道了有程序在<path of program>路径下,名为<PD entry name>。然后用户在region中添加一个交易定义(TD),”ProgName“属性值设置为<PD entry name>。这样当运行这个交易时,”helloworld“程序会被执行。
cicsadd -c td -r <regionName> <TD entry name> ProgName=<PD entry name>
TD名称(TD entry name)不能多于4个字符。
参阅:
(4)将程序装载到运行时数据库
如果TD和PD没有装载到运行时数据库,交易不能成功运行。
下面将介绍在3种不同情况下,确保将程序装载到运行时数据库的方法。
a.如果region没有启动(执行步骤2和3时region为”inoperative“状态)
只需要冷启动region。所有的资源定义将会被装载到运行时数据库和运行中的系统。
b.如果在添加资源定义时region已经启动(执行步骤2和3时region为”active“状态)
完成步骤2和3后,PD和TD都只是装载到了持久化数据库。可以通过停止region然后冷启动的方法使系统从持久化数据库向运行时数据库装载这些定义。
c. 如果在添加资源定义前region已经启动(执行步骤2和3前region为”active“状态)
可以通过在执行”cicsadd“命令时直接指定”-B“选项来向运行时数据库、持久化数据库中添加PD和TD,并将它们安装到运行中的系统。
(5)运行HELO交易
使用”cicslterm“来连接region并运行HELO交易。
如果在屏幕上看到”Hello World!”,那么恭喜!用户已经掌握了如何创建和运行自己的交易。
接下来的两节是对于调试程序有用的建议。
(6)使用CEDF调试程序
CEDF交易可以控制诊断工具(EDF)的开启和停止。若要通过EDF调试程序,需要在使用cicstran或cicstcl时添加”-e“选项。EDF可以调试程序,在调试点停止并显示程序在调试点的行为。
对于本单元的示例程序,用户必须在第1步运行”cicstcl“命令时指定”-e“选项,”-d“是可选项,指定是否显示行数。
为了启动EDF,首先需要开启一个终端并运行CEDF交易,然后用户会看到类似”Terminal C9F2: EDF mode ON“这样的信息(C9F2是终端标识号,可以在以下文件中找到最新的记录”/var/cics_regions/<regionName>/data/CSMT.out“) 。
开启一个新的终端,使用CECI运行想要调试的交易,命令格式如下
CECI START TRANSID(transid) TERMID(终端id)
本例中为CECI START TRANSID(HELO) TERMID(C9F2)
然后回到运行CEDF的终端进行程序的调试。这是CEDF的同步调试模式。可以看到类似下图中的内容。
使用回车键执行每一步程序,使用”Tab“键和回车键来选择屏幕底部的选项。
以下文章点击率最高
Loading…