TXSeries入门系列文章4

参阅:

http://www-01.ibm.com/support/knowledgecenter/SSAL2T_8.1.0/com.ibm.cics.tx.doc/reference/r_cedf.html?lang=en

7)改变属性值后更新运行时数据库

用户现在应该已经不能满足于简单的”helloworld“程序,而迫不及待地要尝试更多逻辑复杂的应用程序了。那么PDPathName属性或者TDProgName属性或者两个都可能需要修改,然后重启region来使修改生效。但是重启region会耗费太多的时间。下面两种方法可以在修改属性后避免重启region

a. 首先使用”cicsdelete -R“,然后运行”cicsupdate -B

cicsdelete -R“会将资源定义从运行时数据库中删除并从运行中的系统中卸载。”cicsupdate -B“可以更新持久化和运行时数据库,并向运行中的系统中安装资源定义。

b. 首先使用”cicsdelete -B“,然后运行”cicsadd -B

严格来说,这不是更新而是重新添加资源定义。但是它行得通。

 
 

4.    练习

1)在RGN1bin目录下通过”-e“和”-d“选项翻译、编译、连接”helloworld“程序。

2)向RGN1中添加名为HELLOPRGPD记录。

3)向RGN1中添加名为HELOTD记录。

4)使用CEDF调试HELO交易并阅读EDF显示的信息。

5)改变helloworld.ccs中”Hello“变量的内容以显示其他字符串。重新编译程序,运行HELO交易并观察信息是否改变。

6)完成下列的操作并观察会发生什么(确保region处于激活状态并且上边的练习已经完成)。

a. 首先删除PD,接下来向持久化数据库添加PD,然后运行HELO交易。

b. 首先删除PD,接下来向持久化和运行时数据库添加PD,然后运行HELO交易。

c. 首先删除TD,接下来向持久化数据库添加TD,然后运行HELO交易。

7)更新PathName属性来指向其他程序。

 
 

5.    答案

1)在RGN1bin目录下通过”-e“和”-d“选项翻译、编译、连接”helloworld“程序。

#vi /var/cics_regions/RGN1/bin/helloworld.ccs

编辑程序的源代码。

#cicstcl -e -d -lC helloworld.ccs

 
 

2)向RGN1中添加名为HELLOPRGPD记录。

#cicsadd -c pd -r RGN1 HELLOPRG PathName=helloworld

3)向RGN1中添加名为HELOTD记录。

#cicsadd -c td -r RGN1 HELO ProgName=HELLOPRG

4)使用CEDF调试HELO交易并阅读EDF显示的信息。

使用cicslterm连接到region,运行CEDF交易并记录下显示的终端标识号(例如C9F2)。

在新的命令窗口使用cicslterm连接到region,运行CECI START TRANSID(HELO) TERMID(C9F2),然后回到第一个终端进行调试。

5)改变helloworld.ccs中”Hello“变量的内容以显示其他字符串。重新编译程序,运行HELO交易并观察信息是否改变。

Hello“变量中的信息已经改变为新的字符串。

6)完成下列的操作并观察会发生什么(确保region处于激活状态并且上边的练习已经完成)。

a. 首先删除PD,接下来向持久化数据库添加PD,然后运行HELO交易。

#cicsdelete -c pd -r RGN1 -B HELLOPRG

#cicsadd -c pd -r RGN1 HELLOPRG PathName=helloworld

会收到信息“ERZ014016E: Transaction ‘HELO’, Abend ‘A144’, at ‘D9F2’.”

b. 首先删除PD,接下来向持久化和运行时数据库添加PD,然后运行HELO交易。

#cicsdelete -c pd -r RGN1 HELLOPRG

#cicsadd -c pd -r RGN1 -B HELLOPRG PathName=helloworld

交易成功运行。

c. 首先删除TD,接下来向持久化数据库添加TD,然后运行HELO交易。

#cicsdelete -c td -r RGN1 -B HELO

#cicsadd -c td -r RGN1 HELO ProgName=HELLOPRG

会收到信息“ERZ033001E: Transaction ‘HELO’ rejected – ‘transaction not found'”.

 
 

7)更新PathName属性来指向其他程序。

#cicsdelete -c pd -r RGN1 -R HELLOPRG

#cicsupdate -c pd -r RGN1 -B HELLOPRG PathName=/var/bin/helloworld

 

 

TXSeries入门系列文章单元三
数据管理
一部分
文件

 
 

三单元 数据管理

关于本单元

毫无疑问,商业交易离不开大量的数据,所以数据管理是一个相当大的主题。在本单元用户将学到大量的关于TXSeries如何与来自文件、队列和数据库的数据一起工作的详细命令。为了便于理解,本单元被分为五部分来展示如何去管理文件、TDQ/TSQMQDB2Oracle。在学习本单元之前请确保已经完成了”Hello World“示例程序。

第一部分 文件

关于本部分

TXSeries可以在本地或远程文件中读取、写入、更新、删除和浏览数据。这里的文件不同于可以使用像VI这样的编辑器打开并被操作系统管理的文件。实际上,数据以文件形式被存储在例如SFSDB2Oracle这样的文件系统中,在定义了FD记录后可以被TXSeries识别。本单元将只讨论使用SFS作为文件系统的情况。

TXSeries为用户提供了一些专用的工具和API,可以通过命令行和应用程序创建和访问文件,例如”cicssdt“和”EXEC CICS READ“。用户将会学习到如何使用这些工具,并编写几个程序来管理文件中的记录。

 
 

1. 使用”cicssdt” 创建文件并编辑记录

在通过命令行或API使用文件前,用户需要创建一个文件并向其中添加一些测试数据。”cicssdt“是用于SFS文件管理的命令行工具(”cicsddt“用于DB2,”cicsodt“用于Oracle,它们的功能是相同的,在此只介绍”cicssdt“),允许用户创建和编辑位于SFS服务器中的文件。

确保在使用此命令时SFS服务器是处于激活状态的,这样”cicssdt“可以连接到SFS服务器(使用”cicscp -v start sfs_server <SFSname>“来启动一个SFS服务器)。

语法

cicssdt [-s <SFSname>] [-c <SDTcommands> …]

选项

-s                     指定连接到哪个SFS服务器。

<SFSname>     SFS服务器名称,例如: /.:/cics/sfs/OceanLinux64

-c                     指定使用的SDT命令列表。这个选项一定要在命令的最后。

<SDT commands>SDT命令列表,包括创建、列出、写入、删除、信息等。

在第一个region被创建时会自动生成一个默认的SFS服务器,以机器的主机名(可以通过”uname -n“获得)命名。本单元示例的主机名是”OceanLinux64“,SFSname是”/.:/cics/sfs/OceanLinux64“。

 
 

参阅:

http://www-01.ibm.com/support/knowledgecenter/SSAL2T_8.1.0/com.ibm.cics.tx.doc/reference/r_cicssdt.html?lang=en

 
 

上述语法是用户需要知道的最简单的用法。用户可以使用诸如”cicssdt -s /.:/cics/sfs/OceanLinux64“的命令来连接指定的SFS服务器,稍后使用SDT命令;或者在最后直接添加SDT命令,就像在cicslterm命令中指定执行一个交易(cicslterm -r <regionName> -t <transactionID>),例如,”cicssdt -s /.:/cics/sfs/OceanLinux64 –c create file1“。”create file1“是SDT命令,下面将介绍最重要的命令:

1create <filename>

这条命令允许用户在当前的SFS服务器中创建一个指定名称的文件,并决定文件的组织形式、域的属性(名称、类型、尺寸,类似一个表)、索引名称和排序方式等。

下面的示例在名为OceanLinux64SFS服务器中创建一个”file1“文件,文件组织形式设置为BtreeClusteredKSDS),有三个域(包括id,名称和年龄),id用作文件的索引并升序排列。KSDS是键序数据集,这是常用的默认类型,不同的类型在某些操作上可能会有所不同。若想了解更多的关于其他类型的信息,请参考本节的”参阅”。本部分所有的示例都是基于KSDS的。

//“之后的蓝色字体部分用于注释。

#cicssdt -s /.:/cics/sfs/OceanLinux64 -c create file1

ERZ037068I/0500: CICSSDT talking to: ‘/.:/cics/sfs/OceanLinux64’

ERZ037069I/0501: Version [2.1 : 12-07-1995]

ERZ037070I/0502: Contacting Server …

ERZ037103I/0704: (Server OK)

cicssdt: -> create

[File Name……………………………: file1ile

[SFS Server Volume Name …….: sfs_SOceanLi //automatically filled

[File Organisation [E/R/B] ………: B[treeClustered] //default type

[Field 01: Name …………………….: id

[Field 01: Type ………………………: byteArray //recommended type for flexibility in    programming

[Field 01: Size ……………………….: 3

[Field 02: Name …………………….: name

[Field 02: Type ………………………: byteArray

[Field 02: Size ……………………….: 10

[Field 03: Name …………………….: age

[Field 03: Type ………………………: byteArray

[Field 03: Size ……………………….: 3

以下文章点击率最高

Loading…

     

如果这文章对你有帮助,请扫左上角微信支付-支付宝,给于打赏,以助博客运营

发表评论

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