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…

     

如果這文章對你有幫助,請掃左上角微信支付-支付寶,給於打賞,以助博客運營