欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
結合使用 CICS 和 DB2 pureXML

 

CICS 和 pureXML 簡(jiǎn)介

CICS Web 服務(wù)支持在 CICS TS V3.1 中已變得可用。該特性使得 CICS 應用程序有可能成為服務(wù)請求者、服務(wù)提供者,或者兩者都是,可使用 HTTP 傳輸或 WebSphere? MQ 傳輸。Web 服務(wù)消息通常是 XML 形式的,且合并有 SOAP 頭,所以本文稱(chēng)之為 SOAP 消息。有關(guān) CICS Web 服務(wù)支持的更多信息,請參考本文末尾 參考資料 部分的適當鏈接。

DB2 9.1 for z/OS? 增加了對 XML 數據類(lèi)型的支持(稱(chēng)為 pureXML),從而允許原生地存儲和索引 XML 數據。原生的 XML 支持意味著(zhù),XML 在存儲時(shí)就被解析了。維護有 XML 索引,因而可以通過(guò) XPath 和 SQL/XML 查詢(xún)快速訪(fǎng)問(wèn)存儲的 XML。此外,在 DB2 10.1 中(本文發(fā)表之時(shí)還處于 beta 版本),存儲的 XML 也可以通過(guò) XPath 更新。有關(guān) DB2 pureXML 的更多信息,請參考本文末尾 參考資料 部分的適當鏈接。

本文通過(guò)結合使用 CICS 和 DB2 pureXML,展示如何使用 CICS Web 服務(wù)支持來(lái)存儲和檢索 SOAP 消息。場(chǎng)景簡(jiǎn)要描述了連接 CICS Web 服務(wù)和 DB2 pureXML 后端之間的端到端所需的配置和部署。下載 部分提供了樣例代碼。樣例源代碼是用 COBOL 編寫(xiě)的,但是將代碼轉換成 PL/I 或 C 編程語(yǔ)言會(huì )更直觀(guān)。

介紹兩個(gè)場(chǎng)景

兩個(gè)場(chǎng)景共享相同的 CICS 區域,該區域運行的是 CICS TS 4.1。XML 數據存儲在 DB2 9.1 表中,其中包含單個(gè) XML 類(lèi)型的列。清單 1 包含創(chuàng )建該表的 SQL 代碼。


清單 1. 創(chuàng )建帶有單個(gè) XML 類(lèi)型的列的表
                CREATE TABLE REDBOOK.PUREXML (SOAP XML) CCSID EBCDIC IN DATABASE REDBOOK;
                

下載 部分的樣例代碼包含用于創(chuàng )建數據庫 STOGROUP、TABLESPACE 和 TABLE 的完整 SQL。

第一個(gè)場(chǎng)景展示,一個(gè)名為 WEBINST 的 COBOL CICS 程序(一個(gè)管道處理程序和服務(wù)提供程序)如何將其從 Web 服務(wù)接收的 XML 消息插入 DB2 pureXML 列中。第二個(gè)場(chǎng)景展示,一個(gè)名為 WEBSLCT 的 COBOL CICS 程序(也是一個(gè)管道處理程序和服務(wù)提供程序)如何從 DB2 pureXML 列中檢索 XML,并將之作為響應返回給 Web 服務(wù)調用。

場(chǎng)景 1:存儲通過(guò) CICS Web 服務(wù)進(jìn)來(lái)的數據

此場(chǎng)景中的步驟展示如何配置 CICS 區域,以接受入站 Web 服務(wù)請求并將 SOAP 有效負荷存儲在 DB2 中。為了簡(jiǎn)化本例,以將注意力放在設置 Web 服務(wù)的機制上,這里將輸入消息作為 Web 服務(wù)的輸出消息返回。

本例不是使用 CICS 提供的管道處理程序(DFHWS2LS0)——它將 SOAP 數據(XML)轉換成二進(jìn)制語(yǔ)言結構,而是使用一個(gè)定制的管道處理程序(名為 WEBINST)來(lái)接收 SOAP 消息并將之直接插入 DB2 中。這無(wú)需讓 CICS 解析 XML,因而改善了性能。

步驟 1 — 創(chuàng )建 CICS 管道配置文件

將清單 2 中所示的管道配置文件作為 /u/user/config/insert_pipeline.xml 復制到 UNIX? System Services (USS)。該配置文件通知 CICS,這個(gè)名為 WEBINST 的定制管道處理程序將被用于處理 Web 服務(wù)請求。


清單 2. CICS 管道配置文件
                <?xml version="1.0" encoding="EBCDIC-CP-US"?>
                <provider_pipeline xmlns="http://www.ibm.com/software/htp/cics/pipeline">
                <service>
                <terminal_handler>
                <handler>
                <program>WEBINST</program>
                <handler_parameter_list/>
                </handler>
                </terminal_handler>
                </service>
                </provider_pipeline>
                

步驟 2 — 創(chuàng )建和安裝 CICS 資源

在 CICS 區域中創(chuàng )建和安裝以下 CICS 資源:

  • PIPELINE(WEBINST) CONFIGFILE(/u/user/config/insert_pipeline.xml) SHELF(/u/user/shelf)
  • URIMAP(WEBINST) USAGE(PIPELINE) PIPELINE(WEBINST) HOST( * ) PATH(/pureXML/insert)
  • PROGRAM(WEBINST) DATALOCATION(ANY)
  • TCPIPSERVICE(PUREXML) PORT(xxxxx) PROTOCOL(HTTP)

以下資源是 DB2 所必需的,也可跟本文場(chǎng)景 2 中描述的 WEBSLCT 程序共享。

  • DB2ENTRY(PUREXML) ACCOUNTREC(TXid) AUTHTYPE(Userid) DRollback(Yes) PLAN(PUREXML)
  • DB2TRAN(PUREXML) ENTRY(PUREXML) TRANSID(CPIH)

將清單 3 中所示的 COBOL 程序復制到 z/OS,并用集成的 DB2/CICS/COBOL 編譯器編譯它。下載 部分的樣例代碼包含樣例編譯作業(yè)。


清單 3. COBOL 程序
                ******************************************************************
                IDENTIFICATION DIVISION.
                PROGRAM-ID. WEBINST.
                ENVIRONMENT DIVISION.
                CONFIGURATION SECTION.
                *
                DATA DIVISION.
                *
                WORKING-STORAGE SECTION.
                *
                01  WSRESP    PIC S9(8)   COMP VALUE 0.
                01  WSRESP2   PIC S9(8)   COMP VALUE 0.
                01  WSFLENGTH PIC S9(8)   COMP VALUE 1024.
                01  XMLDATA   PIC X(1024) VALUE SPACES.
                EXEC SQL INCLUDE SQLCA END-EXEC.
                LINKAGE SECTION.
                PROCEDURE DIVISION.
                MAINLINE SECTION.
                * Get the SOAP data
                EXEC CICS GET CONTAINER('DFHREQUEST')
                INTO(XMLDATA)
                FLENGTH(WSFLENGTH)
                RESP(WSRESP)
                RESP2(WSRESP2)
                END-EXEC.
                EXEC SQL
                INSERT INTO REDBOOK.PUREXML
                ( SOAP )
                VALUES ( :XMLDATA )
                END-EXEC
                * Respond with the original XML data by deleting DFHREQUEST
                * container and returning DFHRESPONSE container
                EXEC CICS DELETE CONTAINER('DFHREQUEST') END-EXEC.
                EXEC CICS PUT CONTAINER('DFHRESPONSE')
                FROM(XMLDATA)
                RESP(WSRESP)
                RESP2(WSRESP2)
                END-EXEC.
                * Exit program
                EXEC CICS RETURN END-EXEC.
                MAINLINE-EXIT.
                EXIT.
                *----------------------------------------------------------------*
                

步驟 3 — 從 Rational Developer for System z 測試 Web 服務(wù)

在基于 Eclipse 的 IDE(例如,Rational? Developer for System z?)中創(chuàng )建一個(gè)項目,并將樣例代碼中的 SWITCH.wsdl 文件導入到項目中。

右鍵單擊樣例 WSDL 文件并選擇 Web Services > Test with Web Services Explorer,如圖 1 所示。


圖 1. Test with Web Services Explorer

從 Endpoints 對話(huà)框(圖 2),使用 CICS TCPIPSERVICE 資源中指定的 TCP/IP 服務(wù)更新 URI 以指向您的 z/OS 映像,并單擊 Go。


圖 2. 添加新的 Endpoint

在 Invoke a WSDL Operation 窗體(圖 3)的字段中輸入測試數據,并單擊 Go。


圖 3. 輸入測試數據以產(chǎn)生 SOAP 消息

Eclipse 基于您在窗體中輸入的數據產(chǎn)生一個(gè) SOAP 消息,并將之發(fā)送到 CICS。CICS 將 SOAP 傳遞到步驟 1 中創(chuàng )建的 WEBINST 定制管道處理程序。WEBINST 將數據插入到名為 REDBOOK.PUREXML 的 DB2 表的 XML 列中。WEBINST 應用程序也返回初始的 SOAP 消息作為響應,如圖 4 中的 Web Services Explorer 屏幕截圖所示。


圖 4. 請求和響應 SOAP 消息

步驟 4 — 展示數據真正存儲在數據庫中

這最后一步證實(shí)數據被插入到了 DB2 表中。從一個(gè)諸如 DB2 SPUFI 之類(lèi)的工具,執行清單 4 所示的 SQL 語(yǔ)句。


清單 4. 展示數據存儲在數據庫中的 SQL 語(yǔ)句
                SELECT * FROM REDBOOK.PUREXML
                

清單 5 展示上面 SQL 語(yǔ)句返回的 DB2 數據。


清單 5. SQL 語(yǔ)句返回的數據
                ---------+---------+---------+---------+---------+---------+---------+---------+
                SELECT * FROM REDBOOK.PUREXML;                                00010000
                ---------+---------+---------+---------+---------+---------+---------+---------+
                ....
                ---------+---------+---------+---------+---------+---------+---------+---------+
                <?xml version="1.0" encoding="IBM285"?><soapenv:Envelope xmlns:soapenv="http://s
                DSNT400I SQLCODE = 000,  SUCCESSFUL EXECUTION
                DSNT418I SQLSTATE   = 01004 SQLSTATE RETURN CODE
                DSNT415I SQLERRP    = DSN SQL PROCEDURE DETECTING ERROR
                DSNT416I SQLERRD    = 0 0  0  -1  0  0 SQL DIAGNOSTIC INFORMATION
                DSNT416I SQLERRD    = X'00000000'  X'00000000'  X'00000000'  X'FFFFFFFF'
                X'00000000'  X'00000000' SQL DIAGNOSTIC INFORMATION
                DSNT417I SQLWARN0-5 = W,W,,,, SQL WARNINGS
                DSNT417I SQLWARN6-A = ,,,,   SQL WARNINGS
                DSNE610I NUMBER OF ROWS DISPLAYED IS 1
                DSNE612I DATA FOR COLUMN HEADER .... COLUMN NUMBER 1 WAS TRUNCATED
                DSNE616I STATEMENT EXECUTION WAS SUCCESSFUL, SQLCODE IS 100
                ---------+---------+---------+---------+---------+---------+---------+---------+
                ---------+---------+---------+---------+---------+---------+---------+---------+
                DSNE617I COMMIT PERFORMED, SQLCODE IS 0
                DSNE616I STATEMENT EXECUTION WAS SUCCESSFUL, SQLCODE IS 0
                ---------+---------+---------+---------+---------+---------+---------+---------+
                DSNE601I SQL STATEMENTS ASSUMED TO BE BETWEEN COLUMNS 1 AND 72
                DSNE620I NUMBER OF SQL STATEMENTS PROCESSED IS 1
                DSNE621I NUMBER OF INPUT RECORDS READ IS 1
                DSNE622I NUMBER OF OUTPUT RECORDS WRITTEN IS 26
                ********************************************************** Bottom of Data ******
                

注意數據開(kāi)始部分的 XML 聲明。它指出 XML 是 IBM285 (UK EBCDIC) 編碼類(lèi)型的。關(guān)于它的重要性將在場(chǎng)景 2 中詳細介紹。

場(chǎng)景 2:查詢(xún) pureXML 數據并返回 CICS Web 服務(wù)

此場(chǎng)景中的步驟展示如何創(chuàng )建一個(gè) COBOL CICS 程序,它充當一個(gè)管道處理程序和服務(wù)提供程序,用于從 DB2 pureXML 列檢索 XML,并將之作為響應返回給 Web 服務(wù)調用。

步驟 1 — 創(chuàng )建 CICS 管道配置文件

將清單 6 中所示的 CICS 管道配置文件作為 /u/user/config/select_pipeline.xml 復制到 Unix System Services (USS)。該配置文件通知 CICS:名為 WEBSLCT 的定制管道處理程序將被用于處理 Web 服務(wù)請求。


清單 6. CICS 管道配置文件
                <?xml version="1.0" encoding="EBCDIC-CP-US"?>
                <provider_pipeline xmlns="http://www.ibm.com/software/htp/cics/pipeline">
                <service>
                <terminal_handler>
                <handler>
                <program>WEBSLCT</program>
                <handler_parameter_list/>
                </handler>
                </terminal_handler>
                </service>
                </provider_pipeline>
                

步驟 2 — 創(chuàng )建和安裝 CICS 資源

在 CICS 區域中創(chuàng )建和安裝以下資源:

  • PIPELINE(WEBSLCT) CONFIGFILE(/u/user/config/select_pipeline.xml) SHELF(/u/user/shelf)
  • URIMAP(WEBSLCT) USAGE(PIPELINE) PIPELINE(WEBSLCT) HOST(*) PATH(/pureXML/select)
  • PROGRAM(WEBSLCT) DATALOCATION(ANY)

對于此場(chǎng)景,可以重用在場(chǎng)景 1 中為 WEBINST 定義的 TCPIPSERVICE、DB2ENTRY 和 DB2TRAN 資源。

將清單 7 中所示的 COBOL 程序復制到 z/OS,并利用集成的 DB2/CICS/COBOL 編譯器編譯它。下載 部分的樣例代碼包含樣例編譯作業(yè)。


清單 7. COBOL 程序
                ******************************************************************
                IDENTIFICATION DIVISION.
                PROGRAM-ID. WEBSLCT.
                ENVIRONMENT DIVISION.
                CONFIGURATION SECTION.
                *
                DATA DIVISION.
                *
                WORKING-STORAGE SECTION.
                *
                01  WSRESP    PIC S9(8)   COMP VALUE 0.
                01  WSRESP2   PIC S9(8)   COMP VALUE 0.
                01  WSFLENGTH PIC S9(8)   COMP VALUE 1024.
                01  XMLDATA   PIC X(1024) VALUE SPACES.
                EXEC SQL INCLUDE SQLCA END-EXEC.
                LINKAGE SECTION.
                PROCEDURE DIVISION.
                MAINLINE SECTION.
                * Get DB2 data
                EXEC SQL
                SELECT XMLSERIALIZE(SOAP AS CLOB)
                INTO :XMLDATA
                FROM REDBOOK.PUREXML
                END-EXEC.
                * Respond with the XML data by deleting DFHREQUEST
                * container and returning DFHRESPONSE container
                EXEC CICS DELETE CONTAINER('DFHREQUEST') END-EXEC.
                EXEC CICS PUT CONTAINER('DFHRESPONSE')
                FROM(XMLDATA)
                FLENGTH(WSFLENGTH)
                RESP(WSRESP)
                RESP2(WSRESP2)
                END-EXEC.
                * Exit program
                EXEC CICS RETURN END-EXEC.
                MAINLINE-EXIT.
                EXIT.
                *----------------------------------------------------------------*
                

注意,XMLSERIALIZE 函數在 SQL 語(yǔ)句中被用于 SELECT。這是為了讓 XML 聲明不被添加到返回的 XML 有效負荷的開(kāi)頭。如果不帶 XMLSERIALIZE 使用 SELECT *SELECT SOAP,那么返回的 XML 在開(kāi)頭部分將有一個(gè) XML 聲明。此聲明宣稱(chēng) XML 被編碼在 CICS 系統的本地代碼頁(yè)。此本地代碼頁(yè)通常是一個(gè) EBCDIC 代碼頁(yè)。在有些情況下,這會(huì )導致接收 XML 的應用程序由于不支持 EBCDIC 代碼頁(yè)而拒絕接收它。

步驟 3 — 從瀏覽器測試 Web 服務(wù)

將瀏覽器指向 WEBINST Web 服務(wù)的 URL。例如,在用于構建此場(chǎng)景的樣例案例中,此 URL 是:http://winmvsa1.hursley.ibm.com:12345/pureXML/select。

場(chǎng)景 1 中 WEBINST 程序插入的 SOAP 消息被檢索到并顯示在瀏覽器中,如圖 5 所示。


圖 5. WEBINST 程序插入的 SOAP 消息

其他場(chǎng)景

本文中描述的兩個(gè)場(chǎng)景所演示的例子有很多可能的變體。例子包括:

  • 使用 SQL XML 更新修改 DB2 中存儲的 XML,以響應一個(gè)請求;例如,更改地址。
  • 在存儲之前,使用 SQL XMLTABLE 刪除 XML 部分;例如,出于安全原因。
  • 除了將數據存儲為 XML 或等價(jià)形式之外,使用 SQL XMLTABLE 將 XML 轉換成關(guān)系列。

這些場(chǎng)景可以支持各種各樣的應用程序和服務(wù),比如基于應用程序日志或窗體(例如,XHTML、XFORMS 或 Lotus Forms)的應用程序。

也可以確保 CICS Web 服務(wù)是安全的。本文末尾 參考資料 部分提供了到有關(guān)該主題詳細信息的鏈接。

結束語(yǔ)和展望

本文演示了,從一個(gè)通過(guò) CICS Web 服務(wù)調用的 CICS COBOL 應用程序,在 DB2 pureXML 中插入和檢索 XML 內容的基本步驟。插入和檢索時(shí)無(wú)需在 CICS 應用程序中解析或構造 XML 數據。輸入的 XML 消息直接存儲在 DB2 中。輸出的 XML 消息是從查詢(xún) DB2 中的 XML 數據創(chuàng )建的。使用 DB2 pureXML 作為存儲數據庫的 CICS Web 服務(wù)可以很容易變成大型分布式應用程序(例如,XML 窗體應用程序或消息傳遞應用程序)的一部分。pureXML 數據庫也可以為入站和出站 CICS Web Services XML 消息形成一個(gè)可查詢(xún)的審計或應用程序日志。

致謝

感謝 Maj-Britt Risager(及同事)和 Lars Andersen Hylleberg(及同事)審閱了本文并提供了反饋意見(jiàn)。



本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
IBM Mashup Center 初探: 第二部分
IBM developerWorks 中國 : 數據庫性能調優(yōu)專(zhuān)題
SOA 案例研究,第 2 部分: 服務(wù)創(chuàng )建
Mainframe面試題集
用 WebSphere Studio Enterprise Developer 開(kāi)發(fā) CICS COBOL 應用程式
DB2 pureXML的食譜 掌握IBM的混合數據服務(wù)器力量
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久