適用於 z/OS 平台

CICS 的 Liberty 伺服器交易:BBOC、BBO$ 和 BBO#

在 CICS® 產品中,是透過 BBOC、BBO$ 和 BBO# 交易來支援 WebSphere® 最佳化本端配接器 (WOLA)。

最佳化本端配接器在 CICS 區域中,以資源管理程式形式執行。在 CICS 中,「作業相關的使用者結束程式 (TRUE)」是資源提供者所用的主要媒介。TRUE 支援提供 CICS 應用程式執行緒與外部資源管理程式執行緒之間的界限。目前 DB2®、WebSphere MQ 和 TCPIP Socket 利用 TRUE 支援在 CICS 中執行。

在 CICS 之下執行的應用程式依照下列工作流程,來使用最佳化本端配接器 API:
  1. 應用程式執行所提供的 Stub 常式。
  2. Stub 常式啟動 CICS 資源管理程式介面模組,並將最佳化本端配接器 TRUE 常式的名稱 (BBOATRUE) 和每一個 API 專用的參數傳遞給它。
  3. CICS 將 TRUE 分派到其中一個 OPENAPI 作業控制區塊 (TCB) 上,並一直執行到完成 API 呼叫為止。
  4. 呼叫隨輸出參數一起回到 CICS。

CICS 控制項交易:BBOC

BBOC 交易是 WebSphere 控制項或作業交易,用來在 CICS 之下支援配接器。您可以使用交易,來啟用和啟動 Liberty 伺服器 TRUE,以及設定追蹤層次,以便對與 Liberty 伺服器互動的 API 和程式碼進行除錯。BBOC 也會設定登錄和取消登錄,以及啟動和停止 CICS 中的鏈結伺服器作業。這些伺服器作業支援啟動現有的 CICS 程式,以及支援使用 COMMAREA 物件或儲存器,利用輸入參數透過配接器來傳遞資料。BBOC 是一項 CICS 工作站型交易,您可以在 3270 工作站執行,或是從循序或 SDSCI 類型的工作站執行。

BBOC 交易的語法是 BBOC operation_name parameters,若有多個參數,請用一或多個空格區隔。

RGN
12 個字元的登錄名稱
DGN
要加入之 WOLA 群組的第一個名稱(8 個字元)
NDN
要加入之 WOLA 群組的第二個名稱(8 個字元)
SVN
要加入之 WOLA 群組的第三個名稱(8 個字元)
LSYNC
LSYNC 控制 CICS 在鏈結至目標程式時,是否傳遞 SYNCONRETURN 選項。如果指定 LSYNC=Y,CICS 鏈結伺服器會在 EXEC CICS LINK 指令上傳遞 SYNCONRETURN 選項。當目標程式位於另一個 CICS 區域時,您可能需要指定這個選項。預設值為 LSYNC=N
SVC
最多 8 個字元的服務名稱。參數支援用星號 (*) 遮罩;例如,您可以指定 *、abc*、*abc、abc*xyz、abc*xy*z 等。
MNC
連線數下限。最小值是 0,預設值為 1
MXC
連線數上限。最大值是 9999,預設值為 10
SEC
SEC 參數控制所要傳播的使用者 ID。預設值為 SEC=N

如果指定 SEC=N,並且是從 CICS 呼叫 Liberty 伺服器,則會傳播 CICS 區域使用者 ID。如果指定 SEC=N,並且是從 Liberty 伺服器呼叫鏈結伺服器作業 (BBO$) 之下的 CICS,則會使用所啟動之鏈結伺服器的使用者 ID 來執行鏈結作業。

如果指定 SEC=Y,並且是從 CICS 呼叫 Liberty 伺服器,則會將作業層次的使用者 ID 傳播到 Liberty 伺服器。如果指定 SEC=Y,並且是從 Liberty 伺服器呼叫 CICS,鏈結伺服器會嘗試使用傳播自 Liberty 伺服器的使用者 ID,來啟動鏈結作業 (BBO#)。您必須已建立「系統授權機能 (SAF)」SURROGAT 類別定義,允許使用鏈結伺服器的使用者 ID 來發出 EXEC CICS START TRAN('BBO#') USERID(<propagated_id>) 指令,傳播才會發揮作用。

STX
要使用的鏈結伺服器 CICS 交易 ID 名稱(4 個字元)。預設值為 BBO$
註: 如果您所定義的交易名稱不同於預設值,您也必須在主要 CICS 系統定義 (CSD) 檔 DFHCSD 中,使用與 BBO$ 相同的程式名稱和屬性來定義交易。
LTX
要使用的鏈結目標程式 CICS 交易 ID 名稱(4 個字元)。預設值為 BBO#
註: 如果您所定義的交易名稱不同於預設值,您也必須在主要 CICS 系統定義 (CSD) 檔 DFHCSD 中,使用與 BBO# 相同的程式名稱和屬性來定義交易。
TRC
當您為這個參數定義一值時,會啟用下列層次的追蹤:
  • 設為 0:不追蹤;僅錯誤訊息
  • 設為 1:基本追蹤
  • 設為 2:詳細追蹤
TDQ
要寫入配接器訊息的 CICS 額外分割區暫時資料佇列 (TDQ) 名稱(4 個字元)。如果您沒有指定這個參數,預設值為 BBOQ 和 DD BBOUT。如果訊息無法寫入至指定的 TDQ,則會寫入至 CICS 區域 stdout, tdq CESO dd CEEOUT。
REU
REU 控制鏈結伺服器是否在程式呼叫要求之間,重複使用程式鏈結呼叫作業(BBO# 交易)。預設值是 N
重要: 如果您在執行鏈結伺服器時,指定了 SEC=NREU=Y,最佳化本端配接器 JCA 不再支援傳遞個別的鏈結交易 ID。如果要求個別的交易 ID,會在應用程式中造成 ResourceException。如果您嘗試在執行鏈結伺服器時指定 SEC=YREU=Y,會將重複使用選項強制設為 No,這是因為鏈結伺服器必須為每一項要求啟動新的程式鏈結作業,並且主張所傳播的身分。
REUC
使 CICS 鏈結作業 (BBO#) 維持作用中和重複使用的要求數目。當到達這個計數時,鏈結作業就會停止。最大值是 2147483648
重要: 就交易式實務來說,鏈結作業會在到達計數之後結束,並從 Liberty 伺服器接收下一項確定。
REUT
使 CICS 鏈結作業 (BBO#) 維持作用中和重複使用的秒數。一旦過了這個時間間隔,鏈結作業會在接收並處理下一項要求之後結束。最大值是 2147483648
重要: 就交易式實務來說,鏈結作業會在到達所要求的時間之後結束,並從 Liberty 伺服器接收下一項確定。
適用於 z/OS 平台RETRY
適用於 z/OS 平台指出如果啟動伺服器或登錄要求無法連接所要求的目標伺服器,則應該重試。如果未指定 RETCNTRETINT,則重試預設次數為 10,重試的預設間隔時間為 30 秒。
適用於 z/OS 平台RETCNT
適用於 z/OS 平台提供 RETRY=Y 時,RETCNT 表示不再嘗試要求之前,指令失敗後的重試次數。 最小值是 1,最大值是 99999999。值為 0 表示最大值。如果未提供值,但提供 RETRY=Y 選項,則重試預設次數為 10。
適用於 z/OS 平台RETINT
適用於 z/OS 平台提供 RETRY=Y 時,RETINT 表示重試的間隔時間秒數。最小值是 1,最大值是 359000。值為 0 表示最大值。如果未提供值,但提供 RETRY=Y 選項,則重試的預設間隔秒數為 30。
適用於 z/OS 平台RTXP
適用於 z/OS 平台RTXP=(Y|N) 表示鏈結呼叫作業 (BBO#) 所執行的 EXEC CICS LINK PROGRAM() 應該包含 TRANSID() 選項。 提供這個選項但未提供 RTX(遠端交易)參數時,TRANSID() 參數中會放入現行 EIBTRNID 值。
適用於 z/OS 平台RTX
適用於 z/OS 平台RTXRTXP 參數一起使用時,表示鏈結呼叫作業 (BBO#) 所執行的 EXEC CICS LINK PROGRAM() 應該包含 TRANSID() 選項。 這個選項的值來自 RTX 參數。未傳遞這個值但提供 RTXP=Y 時,TRANSID() 參數中會使用現行 EIBTRNID 值。
TXN
TXN 說明 BBOC 交易所產生之登錄的交易式行為。只有在登錄至 WebSphere 傳統版伺服器實例時,才支援這個選項。

當 BBOC 使用 REGISTER 作業建立 WOLA 登錄時,TXN=Y 表示在 WebSphere Application Server 中啟動且使用這個登錄的任何 Java Platform Enterprise Edition 應用程式,都加入現行 CICS 工作單元。 當 TXN=Y 時,CICS 和 WebSphere Application Server 之間會建立廣域交易,當 CICS 應用程式發出 EXEC CICS SYNCPOINT 時,或隱含有同步點時(例如 CICS 作業結束時),廣域交易就會利用兩段式確定通訊協定而完成。

使用 BBOC 並利用 START_SRVR 函數建立鏈結伺服器時,TXN=Y 表示當服務啟動時,CICS 鏈結伺服器作業會加入現行 WebSphere Application Server 交易。 比方說,如果 Java Platform Enterprise Edition 應用程式啟動資源管理程式區域交易 (RMLT),並使用最佳化本端配接器 JCA 連接器啟動 CICS 程式,鏈結作業會加入區域交易,然後啟動目標 CICS 程式。 直到 Java Platform Enterprise Edition 應用程式利用確定或回復 API 來完成 RMLT,CICS 程式中所做的更新才會確定或取消。

表 1. BBOC. 下表彙總 BBOC 作業名稱、說明和參數。
作業名稱 縮寫 說明 參數
START_TRUE STR 啟動 Liberty 伺服器 TRUE TRC=<0|1|2>

TDQ=<tdqname>

STOP_TRUE PTR 停止 Liberty 伺服器 TRUE TRC=<0|1|2>

TDQ=<tdqname>

REGISTER REG 向 Liberty 伺服器 WOLA 群組登錄 RGN=<name>

DGN=<name>

NDN=<name>

SVN=<name>

MNC=<minimum_number_ of_connections>

MXC=<maximum_number_ of_connections>

SEC=<Y|N>

TRC=<0|1|2>

TDQ=<tdqname>

適用於 z/OS 平台RTXP=<Y|N>

適用於 z/OS 平台RTX=<remote_transaction_ID>

適用於 z/OS 平台RETRY=<Y|N>

適用於 z/OS 平台RETCNT=<number_of_requests>

適用於 z/OS 平台RETINT=<number_of_seconds>

TXN=<Y|N>

UNREGISTER   向 Liberty 伺服器最佳化本端配接器取消登錄 RGN=<name>
START_SRVR STA 針對所傳遞的登錄名稱,啟動 Liberty 伺服器作業。 RGN=<name>

DGN=<name>

NDN=<name>

SVC=<name>

SVN=<name>

MNC=<minimum_number_ of_connections>

MXC=<maximum_number_ of_connections>

SEC=<Y|N>

STX=<CICS_link_server_ transaction_ID>

LTX=<CICS_link_server_ transaction_ID>

TRC=<0|1|2>

TDQ=<tdqname>

REU=<Y|N>

REUC=<number_of_requests>

REUT=<number_of_seconds>

適用於 z/OS 平台RTXP=<Y|N>

適用於 z/OS 平台RTX=<remote_transaction_ID>

適用於 z/OS 平台RETRY=<Y|N>

適用於 z/OS 平台RETCNT=<number_of_requests>

適用於 z/OS 平台RETINT=<number_of_seconds>

TXN=<Y|N>

STOP_SRVR STP 針對登錄名稱,停止 Liberty 伺服器作業。 RGN=<name>

TRC=<0|1|2>

TDQ=<tdqname>

適用於 z/OS 平台DOCTEMPLATE DOC DOCTEMPLATE (DOC) 指出應該從 CICS 文件範本來源讀取指令字串(BBOC 指令及所有引數)。 指定 BBOC DOC NAME=<template_name> 表示整個要求都位於具有所提供名稱的文件範本中的一行上。 如需定義文件範本的相關資訊,請參閱 CICS 說明文件。這可讓您在 CICS 區域的檔案系統中,從資料集、資料集成員及檔案讀取較長的指令字串(最多 500 個字元)。 不支援在文件範本原始檔內指定 BBOC DOC NAME=<> 要求。 NAME=<CICS_document_template_name>TRC=<0|1|2>

範例 BBOC 指令

以下是 BBOC 呼叫範例,示範如何利用 CICS 配接器程式鏈結支援,來達成各項不同的作業和配置。
  • 啟動配接器的 CICS TRUE 程式。

    bboc start_true

  • 停止配接器的 CICS TRUE 程式。

    bboc stop_true

  • 以 CICS-HR1 名稱登錄在名稱是 LIB1、LIB2 和 LIB3 的 WOLA 群組中,且連線數上限是 10,連線數下限是 5,並進行安全延伸。

    bboc register rgn=CICS-HR1 dgn=LIB1 ndn=LIB2 svn=LIB3 mnc=5 mxc=10 sec=y

  • 以 CICS-HR1 名稱取消登錄。

    bboc unregister rgn=CICS-HR1

  • 針對 WOLA 群組中登錄名稱 CICSPAYR 之下的所有服務和程式名稱,啟動一項作為 BBO$ 的伺服器交易,其連線數上限是 10,連線數下限是 5,並進行安全延伸。

    bboc start_srvr rgn=CICSPAYR dgn=LIB1 ndn=LIB2 svn=LIB3 mnc=5 mxc=10 sec=y

  • 停止以登錄名稱 CICSPAYR 執行的 BBO$ 伺服器交易。

    bboc stop_srvr rgn=CICSPAYR

  • 針對 WOLA 群組中登錄名稱 CICSPAY1 之下開頭是 PAYR 的服務和程式名稱,啟動一項作為 BBO$ 的伺服器交易,且連線數上限是 10,連線數下限是 5,並進行安全延伸。

    bboc start_srvr rgn=CICSPAY1 dgn=LIB1 ndn=LIB2 svn=LIB3 mnc=5 mxc=10 sec=y svc=PAYR*

  • 針對 WOLA 群組中的所有服務和程式名稱,使用交易 ID PAY2 啟動一項伺服器交易,並以 PAYROLL2 名稱登錄,且連線數上限是 10,連線數下限是 5,並進行基本追蹤和安全延伸。

    bboc start_srvr rgn=PAYROLL2 dgn=LIB1 ndn=LIB2 svn=LIB3 mnc=5 mxc=10 sec=y stx=PAY2 trc=1

  • 使用交易 ID PAY3 和鏈結交易 ID PY3L,啟動一項伺服器交易。針對開頭是 PAYRL3 的服務和程式名稱,以 PAYROLL3 名稱登錄在 WOLA 群組中,且連線數上限是 10,連線數下限是 5,並進行基本追蹤和安全延伸。

    bboc start_srvr rgn=PAYROLL3 dgn=LIB1 ndn=LIB2 svn=LIB3 mnc=5 mxc=10 sec=y svc=PAYRL3* stx=PAY3 ltx=PY3L trc=1

  • 啟動鏈結伺服器交易,並從名為 LONGCMD 的 CICS 文件範本來源讀取所有參數

    bboc doc name=LONGCMD

在 CICS 啟動期間,自動執行 BBOC 指令

GitHub 上提供兩個 CICS 程式清單表後置起始設定 (PLTPI) 程式作為範例:BBOACPLT 和 BBOACPL2。如需相關資訊,請參閱Liberty 的最佳化本端配接器範例
  • 如果要在 CICS 啟動時,啟動最佳化本端配接器 TRUE,請在您的 CICS PLT 中,新增 BBOACLPT 作為階段 2 或階段 3 項目。
  • 如果要在 CICS 啟動時,使用 INITPARM 資料發出 BBOC 指令,請在您的 CICS PLT 中,新增 BBOACLP2 作為階段 2 或階段 3 項目。
您可以將指令字串傳遞到 INITPARM 內,CICS 限制該字串最多可以有 60 個字元。下列範例 INITPARM 字串會呼叫 BBOACPL2,並傳遞要求,以便使用登錄名稱 PAYROLL 啟動鏈結伺服器,且其 WOLA 群組名稱是 LIB1、LIB2 和 LIB3。由於指定 SVC=*,這部鏈結伺服器會接收所有服務名稱的要求。
INITPARM=(BBOACPL2='STA RGN=PAYROLL DGN=LIB1 NDN=LIB2 SVN=LIB3 SVC=*')
指令字串可以是任何 BBOC 指令,例如,下列範例 INITPARM 字串中的 REG。當 CICS 啟動時,字串會使用 LIBAPP 名稱建立登錄,且這個名稱由連線數下限 10 和連線數上限 100 組成。
INITPARM=(BBOACPL2='REG RGN=LIBAPP DGN=LIB1 NDN=LIB2 SVN=LIB3 MNC=10 MXC=100')

如果您在 CICS 啟動時建立登錄,請勿在您的應用程式中使用「登錄 API」。請立即改用其他 API,例如「呼叫」或「取得連線」。

重要: 每一個 BBOACPL2 程式,只能使用一個 INITPARM 字串。
如果您使用 PLT 程式來自動建立登錄或鏈結伺服器,在關閉 CICS 之前,請務必先取消登錄或停止伺服器,以免在 CICS 取消任何剩餘的最佳化本端配接器交易時發生延遲。移除最佳化本端配接器資源的方式如下:
  • 針對所有 CICS 鏈結伺服器執行 BBOC STOP_SERVER,或針對所有登錄執行 BBOC URG。
  • 清除 BBO$ 作業。
  • 針對傳遞 STOP_SERVER 字串的每一部鏈結伺服器,將執行 EXEC CICS LINK 指令的程式清單表 (PLT) 關機程式寫入至 BBOACNTL。
  • 發出下列指令:CEMT P SHUT,IMMED

CICS 鏈結伺服器交易:BBO$

BBO$ CICS 交易支援從 Liberty 伺服器呼叫 CICS。BBO$ 交易是一項非工作站交易,它代表一個針對特定登錄名稱和服務名稱,以 BBOC START_SRVR 作業啟動的一個伺服器作業實例。這個伺服器作業提供程式鏈結呼叫功能,藉以從 Liberty 伺服器,透過最佳化本端配接器 API 來啟動現有的 CICS 程式。

您可以在 BBOC START_SRVR 指令中指定 STX=name,來置換交易名稱 BBO$。將新的交易名稱定義到 CICS 時,必須使用與 BBO$ 相同的程式名稱和屬性。如需相關資訊,請參閱CICS 最佳化本端配接器定義

CICS 程式鏈結呼叫交易:BBO#

BBO# CICS 交易支援從 Liberty 伺服器呼叫 CICS。BBO# 交易是一項非工作站交易,它代表鏈結伺服器作業 BBO$ 所啟動以呼叫程式鏈結的一個作業實例。BBO$ 交易會針對 Liberty 伺服器應用程式所發出的每一項 CICS 程式鏈結要求,起始一項 BBO#。

您可以在 BBOC START_SRVR 指令中指定 LTX=name,來置換交易名稱 BBO#。將新的交易名稱定義到 CICS 時,必須使用與 BBO# 相同的程式名稱和屬性。如需相關資訊,請參閱CICS 最佳化本端配接器定義。或者,Liberty 伺服器應用程式可以利用 JCA setLinkTaskTransid 方法,將新的交易名稱傳遞給 CICS。


指示主題類型的圖示 參照主題

檔名:rwlp_dat_cics.html