Liberty-Servertransaktionen für CICS: BBOC, BBO$ und BBO#

Optimierte lokale WebSphere-Adapter (WOLA, WebSphere Optimized Local Adapters) werden im CICS-Produkt mit den BBOC-, BBO$- und BBO#-Transaktionen unterstützt.

Die optimierten lokalen Adapter werden in einer CICS-Region als Ressourcenmanager ausgeführt. In CICS ist der taskbezogene Benutzerexit (TRUE, Task Related User Exit) das primäre Mittel, das von Ressourcenprovidern verwendet wird. Die Unterstützung für den taskbezogenen Benutzerexit bildet die Grenze zwischen den CICS-Anwendungsthreads und den Threads des externen Ressourcenmanagers. Momentan werden DB2-, WebSphere MQ- und TCP/IP-Sockets in CICS mit der Unterstützung für den taskbezogenen Benutzerexit ausgeführt.

Unter CICS ausgeführte Anwendungen verwenden die APIs für optimierte lokale Adapter entsprechend dem folgenden Workflow:
  1. Die Anwendung führt die angegebenen Stubroutinen aus.
  2. Die Stubroutinen starten das Schnittstellenmodul des CICS-Ressourcenmanagers und übergeben diesem den Namen der TRUE-Routine für optimierte lokale Adapter, BBOATRUE, und die spezifischen Parameter für jede API.
  3. CICS sendet den taskbezogenen Benutzerexit an einen der OPENAPI-Tasksteuerblöcke (TCB, Task Control Block) und wird solange ausgeführt, bis der API-Aufruf abgeschlossen ist.
  4. Der Aufruf wird mit den Ausgabeparametern an CICS zurückgegeben.

Steuertransaktion für CICS: BBOC

Die BBOC-Transaktion ist die WebSphere-Steuertransaktion bzw. -Betriebstransaktion für die Adapterunterstützung unter CICS. Sie können die Transaktion verwenden, um den taskbezogenen Benutzerexit des Liberty-Servers zu aktivieren und zu starten und die Tracestufen für das Debugging der APIs festzulegen und diese Schnittstellen mit dem Liberty-Server zu codieren. BBOC definiert auch Registrierungen und Deregistrierungen und startet und stoppt Link-Server-Tasks in CICS. Diese Server-Tasks bieten Unterstützung für das Starten vorhandener CICS-Programme und die Übergabe von Daten mit COMMAREA-Objekten oder -Containern mit den Eingabeparametern über die Adapter. BBOC ist eine workstationbasierte CICS-Transaktion, die Sie auf einer 3270-Workstation oder einer sequenziellen bzw. SDSCI-Workstation ausführen können.

Die Syntax für die BBOC-Transaktion ist BBOC Operationsname Parameter, wobei mehrere Parameter durch mindestens ein Leerzeichen voneinander getrennt werden müssen.

RGN
Der zwölfstellige Registrierungsname.
DGN
Der erste achtstellige Name der WOLA-Gruppe, die verwendet werden soll
NDN
Der zweite achtstellige Name der WOLA-Gruppe, die verwendet werden soll
SVN
Der dritte achtstellige Name der WOLA-Gruppe, die verwendet werden soll
LSYNC
LSYNC steuert, ob CICS beim Verbinden mit dem Zielprogramm die Option SYNCONRETURN übergibt. Bei Angabe von LSYNC=Y übergibt der CICS-Link-Server die Option SYNCONRETURN im Befehl EXEC CICS LINK. Diese Option muss eventuell angegeben werden, wenn das Zielprogramm eine weitere CICS-Region ist. Der Standardwert ist LSYNC=N.
SVC
Der Servicename bestehend aus maximal 8 Zeichen. Der Parameter unterstützt die Verwendung eines Sterns (*) als Platzhalterzeichen. Beispielsweise können Sie *, abc*, *abc, abc*xyz, abc*xy*z usw. angeben.
MNC
Die Mindestanzahl der Verbindungen. Der Minimalwert ist 0 und der Standardwert ist 1.
MXC
Die maximale Anzahl der Verbindungen. Der Maximalwert ist 9999 und der Standardwert ist 10.
SEC
Der Parameter SEC steuert, welche Benutzer-ID weitergegeben wird. Der Standardwert ist SEC=N.

Wenn Sie SEC=N angeben und einen Aufruf von CICS an den Liberty-Server ausführen, wird die Benutzer-ID der CICS-Region weitergegeben. Wenn Sie SEC=N angeben und einen Aufruf vom Liberty-Server an CICS unter der Link-Server-Task (BBO$) ausführen, wird die Link-Task unter der Benutzer-ID des gestarteten Link-Servers ausgeführt.

Wenn Sie SEC=Y angeben und einen Aufruf von CICS zum Liberty-Server ausführen, wird die Benutzer-ID der Taskebene an den Liberty-Server weitergegeben. Wenn Sie SEC=Y angeben und einen Aufruf vom Liberty-Server an CICS ausführen, versucht der Link-Server, die Link-Task (BBO#) mit der vom Liberty-Server weitergegebenen Benutzer-ID zu starten. Die Weitergabe funktioniert nur dann, wenn Sie eine SAF-SURROGAT-Klassendefinition (SAF = System Authorization Facility) erstellt haben, um zuzulassen, dass die Benutzer-ID des Link-Servers den CICS-Befehl START TRAN('BBO#') USERID(<weitergegebene_ID>) absetzt.

STX
Der vierstellige Name der zu verwendenden CICS-Transaktions-ID des Link-Servers. Der Standardwert ist BBO$.
Anmerkung: Wenn Sie einen vom Standard abweichenden Transaktionsnamen definieren, müssen Sie auch die Transaktion in der primären CICS-Systemdefinitionsdatei DFHCSD mit demselben Programmnamen und denselben Attributen wie BBO$ definieren.
LTX
Der vierstellige Name der zu verwendenden CICS-Transaktions-ID für den Link zum Programm. Der Standardwert ist BBO#.
Anmerkung: Wenn Sie einen vom Standard abweichenden Transaktionsnamen definieren, müssen Sie auch die Transaktion in der primären CICS-Systemdefinitionsdatei DFHCSD mit demselben Programmnamen und denselben Attributen wie BBO# definieren.
TRC
Wenn Sie einen Wert für diesen Parameter definieren, wird das Tracing auf folgenden Ebenen aktiviert:
  • Bei Angabe von 0: Kein Tracing, nur Fehlernachrichten.
  • Bei Angabe von 1: Grundlegendes Tracing.
  • Bei Angabe von 2: Ausführliches Tracing.
TDQ
Der vierstellige Name der partitionsübergreifenden CICS-Warteschlange mit transienten Daten, in die Adapternachrichten geschrieben werden. Wenn Sie diesen Parameter nicht angeben, wird die Standardeinstellung BBOQ und DD BBOUT verwendet. Wenn die Nachrichten nicht in die angegebene Warteschlange mit transienten Daten (Transient Data Queue, TDQ) geschrieben werden können, werden sie in die Standardausgabe der CICS-Region, tdq CESO dd CEEOUT, geschrieben.
REU
REU steuert, ob der Link-Server die Tasks zum Aufruf eines Programmlinks (BBO#-Transaktionen) für Programmaufrufanforderungen wiederverwendet. Der Standardwert ist N.
Wichtig: Wenn Sie den Link-Server mit SEC=N und REU=Y ausführen, wird die Übergabe einer separaten Linktransaktions-ID von der JCA der optimierten lokalen Adapter nicht mehr unterstützt. Anforderungen nach separaten Transaktions-IDs lösen in der Anwendung eine Ausnahme des Typs ResourceException aus. Wenn Sie versuchen, den Link-Server mit SEC=Y und REU=Y auszuführen, wird die Option für Wiederverwendung auf No gesetzt, weil der Link-Server für jede Anforderung eine neue Programmlink-Task starten und die weitergegebene Identität bestätigen muss.
REUC
Die Anzahl der Anforderungen, bei denen die CICS-Link-Task (BBO#) aktiv bleibt und wiederverwendet wird. Wenn diese Anzahl erreicht ist, wird die Link-Task beendet. Der Maximalwert ist 2147483648.
Wichtig: In einem transaktionsorientierten Szenario wird die Link-Task beendet, nachdem diese Anzahl erreicht und die nächste Festschreibung (Commit) vom Liberty-Server empfangen wurde.
REUT
Die Anzahl Sekunden, während der die CICS-Link-Task (BBO#) aktiv bleibt und wiederverwendet wird. Nach Ablauf dieses Zeitintervalls wird die Link-Task beendet, nachdem die nächste Anforderung empfangen und verarbeitet wurde. Der Maximalwert ist 2147483648.
Wichtig: In einem transaktionsorientierten Szenario wird die Link-Task beendet, nachdem das Zeitintervall erreicht und die nächste Festschreibung (Commit) vom Liberty-Server empfangen wurde.
RETRY
Gibt an, dass eine Anforderung zum Starten oder Registrieren eines Server wiederholt werden soll, wenn sie keine Verbindung zum angeforderten Zielserver herstellen kann. Wenn RETCNT und RETINT nicht angegeben werden, ist die Standardhäufigkeit für die Wiederholung 10 Mal und die Standardzeit zwischen den Wiederholungen 30 Sekunden.
RETCNT
Wenn RETRY=Y angegeben ist, gibt RETCNT die Häufigkeit an, mit der der Befehl nach dem Fehlschlagen wiederholt wird, bevor nicht weiter versucht wird, die Anforderung abzusetzen. Der Minimalwert ist 1 und der Maximalwert ist 99999999. Ein Wert von 0 gibt den Maximalwert an. Wenn der Wert nicht bereitgestellt wird und die Option RETRY=Y verwendet wird, ist die Standardhäufigkeit für die Wiederholung 10 Mal.
RETINT
Wenn RETRY=Y angegeben wird, gibt RETINT die Anzahl von Sekunden als Zeitintervall zwischen den Wiederholungsversuchen an. Der Minimalwert ist 1 und der Maximalwert ist 359000. Ein Wert von 0 gibt den Maximalwert an. Wenn der Wert nicht bereitgestellt wird und die Option RETRY=Y verwendet wird, ist die Standardanzahl von Sekunden zwischen den Wiederholungsversuchen 30 Sekunden.
RTXP
RTXP=(Y|N) gibt an, dass das von der Linkaufruftask (BBO#) ausgeführte EXEC CICS LINK PROGRAM() die Option TRANSID() enthalten sollte. Wenn dies ohne den RTX-Parameter (fern ausgeführte Transaktion) angegeben wird, wird der aktuelle EIBTRNID-Wert mit dem Parameter TRANSID() übergeben.
RTX
RTX mit dem Parameter RTXP gibt an, dass das von der Linkaufruftask (BBO#) ausgeführte EXEC CICS LINK PROGRAM() die Option TRANSID() enthalten sollte. Der Wert für diese Option wird über den RTX-Parameter bereitgestellt. Wenn dieser Wert nicht übergeben und RTXP=Y bereitgestellt wird, wird der aktuelle EIBTRNID-Wert im Parameter TRANSID() verwendet.
TXN
TXN beschreibt das Transaktionsverhalten der Registrierung, die über die BBOC-Transaktion generiert wird. Diese Option wird nur von Registrierungen in WebSphere Traditional-Serverinstanzen unterstützt.

Wenn BBOC eine WOLA-Registrierung mit der Operation REGISTER erstellt, bedeutet die Angabe TXN=Y, dass alle in WebSphere Application Server gestartete Java EE-Anwendungen, die diese Registrierung verwenden, zur aktuellen CICS-Arbeitseinheit hinzugefügt werden. Bei Angabe von TXN=Y wird eine globale Transaktion zwischen CICS und WebSphere Application Server erstellt, die mit dem Protokoll für zweiphasige Festschreibung ausgeführt wird, wenn die CICS-Anwendung einen Synchronisationspunkt EXEC CICS SYNCPOINT ausgibt oder wenn ein Synchronisationspunkt impliziert, wie z. B. wenn die CISC-Task endet.

Wenn BBOC verwendet wird, um einen Link-Server über die Funktion START_SRVR zu erstellen, bedeutet die Angabe TXN=Y, dass die CICS-Link-Server-Task die aktuelle WebSphere Application Server-Transaktion verknüpft, wenn ein Service gestartet wird. Wenn beispielsweise eine Java EE-Anwendung eines RMLT-Transaktion (Resource Manager Local Transaktion) und ein CICS-Programm startet, das den OLA-JCA-Connector verwendet, verknüpft die Linktask die lokale Transaktion und startet anschließend das CICS-Zielprogramm. Aktualisierungen, die im CICS-Programm durchgeführt wurden, werden erst mit der API für Festschreiben festgeschrieben oder mit der API für Rollback zurückgesetzt, wenn die Java EE-Anwendung die RMLT-Transaktion abgeschlossen hat.

Tabelle 1. BBOC. Die folgende Tabelle enthält eine Zusammenfassung der BBOC-Operationsnamen, -Beschreibungen und -Parameter.
Operationsname Abkürzung Beschreibung Parameter
START_TRUE STR Taskbezogenen Benutzerexit (TRUE) des Liberty-Servers starten TRC=<0|1|2>

TDQ=<TDQ-Name>

STOP_TRUE PTR Taskbezogenen Benutzerexit (TRUE) des Liberty-Servers stoppen TRC=<0|1|2>

TDQ=<TDQ-Name>

REGISTER REG Liberty-Server mit der WOLA-Gruppe registrieren RGN=<Name>

DGN=<Name>

NDN=<Name>

SVN=<Name>

MNC=<minimale_Anzahl_von_Verbindungen>

MXC=<maximale_Anzahl_von_Verbindungen>

SEC=<Y|N>

TRC=<0|1|2>

TDQ=<TDQ-Name>

RTXP=<Y|N>

RTX=<Ferne_Transaktions-ID>

RETRY=<Y|N>

RETCNT=<Anzahl_von_Anforderungen>

RETINT=<Anzahl_von_Sekunden>

TXN=<Y|N>

UNREGISTER   Registrierung mit den optimierten lokalen Adaptern des Liberty-Servers aufheben RGN=<Name>
START_SRVR STA Liberty-Server-Task für den übergebenen Registernamen starten RGN=<Name>

DGN=<Name>

NDN=<Name>

SVC=<Name>

SVN=<Name>

MNC=<minimale_Anzahl_von_Verbindungen>

MXC=<maximale_Anzahl_von_Verbindungen>

SEC=<Y|N>

STX=<Transaktions-ID_des_CICS-Link-Servers>

LTX=<Transaktions-ID_des_CICS-Link-Servers>

TRC=<0|1|2>

TDQ=<TDQ-Name>

REU=<Y|N>

REUC=<Anzahl_von_Anforderungen>

REUT=<Anzahl_von_Sekunden>

RTXP=<Y|N>

RTX=<Ferne_Transaktions-ID>

RETRY=<Y|N>

RETCNT=<Anzahl_von_Anforderungen>

RETINT=<Anzahl_von_Sekunden>

TXN=<Y|N>

STOP_SRVR STP Liberty-Server-Task für den Registername stoppen RGN=<Name>

TRC=<0|1|2>

TDQ=<TDQ-Name>

DOCTEMPLATE DOC DOCTEMPLATE (DOC) gibt an, dass die Befehlszeichenfolge (BBOC-Befehl und alle Argumente) aus einer CICS-Dokumentvorlagenquelle gelesen werden sollen. Die Angabe BBOC DOC NAME=<Vorlagenname> gibt an, dass sich die vollständige Anforderung in einer einzelnen Zeile in einer Dokumentvorlage mit dem angegebenen Namen befindet. Weitere Informationen zur Definition von Dokumentvorlagen finden Sie in der CICS-Dokumentation. Auf diese Weise ist es möglich, lange Befehlszeichenfolge (bis zu maximal 500 Zeichen) aus Datasets, Dataset-Membern und Dateien im Dateisystem der CICS-Region zu lesen. Die Angabe einer BBOC DOC NAME=<>-Anforderung in einer Dokumentvorlagendatei wird nicht unterstützt. NAME=<Name_der_CICS-Dokumentvorlage>TRC=<0|1|2>

BBOC-Beispielbefehle

Die folgenden Beispiele für BBOC-Aufrufe veranschaulichen, wie verschiedene Tasks und Konfigurationen mit der Programmlinkunterstützung des CICS-Adapters ausgeführt werden können.
  • Start des Adapter-CICS-TRUE-Programms.

    bboc start_true

  • Stopp des Adapter-CICS-TRUE-Programms.

    bboc stop_true

  • Registrierung mit dem Namen CICS-HR1 in der WOLA-Gruppe mit den Namen LIB1, LIB2 und LIB3 mit maximal 10 Verbindungen, minimal 5 Verbindungen und mit Sicherheitsweitergabe.

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

  • Registrierung mit dem Namen CICS-HR1 aufheben.

    bboc unregister rgn=CICS-HR1

  • Start einer Servertransaktion als BBO$ für alle Service- und Programmnamen unter dem registrierten Namen CICSPAYR mit einer WOLA-Gruppe mit maximal 10 Verbindungen, minimal 5 Verbindungen und Sicherheitsweitergabe.

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

  • Stopp der Servertransaktion BBO$, die unter dem registrierten Namen CICSPAYR ausgeführt wird.

    bboc stop_srvr rgn=CICSPAYR

  • Start einer Servertransaktion als BBO$ für die Service- und Programmnamen, die mit PAYR beginnen, unter dem registrierten Namen CICSPAY1 mit einer WOLA-Gruppe mit maximal 10 Verbindungen, minimal 5 Verbindungen und Sicherheitsweitergabe.

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

  • Start einer Servertransaktion unter der Transaktions-ID PAY2 und Registrierung mit dem Namen PAYROLL2 für alle Service- und Programmnamen in einer WOLA-Gruppe mit maximal 10 Verbindungen, minimal 5 Verbindungen, grundlegendem Tracing und Sicherheitsweitergabe.

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

  • Start einer Servertransaktion unter der Transaktions-ID PAY3 und der Linktransaktions-ID PY3L. Registrierung mit dem Namen PAYROLL3 für die Service- und Programmnamen, die mit PAYRL3 beginnen, in einer WOLA-Gruppe mit maximal 10 Verbindungen, minimal 5 Verbindungen, grundlegendem Tracing und Sicherheitsweitergabe.

    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

  • Startet eine Link-Server-Transaktion, bei der alle Parameter aus einer CICS-Dokumentvorlagenquelle mit dem Namen LONGCMD gelesen werden.

    bboc doc name=LONGCMD

BBOC-Befehl während des CICS-Starts automatisch ausführen

Die zwei CICS-PLTPI-Programme (Program List Table Post-Initialization) BBOACPLT und BBOACPL2 werden als Beispiele im GitHub bereitgestellt. Weitere Informationen finden Sie im Artikel Beispiele für optimierte lokale Adapter für Liberty.
  • Damit der taskbezogene Benutzerexit (TRUE) der optimierten lokalen Adapter beim Start von CICS ebenfalls gestartet wird, nehmen Sie BBOACLPT als Einträge der Phase 2 oder 3 in Ihre CICS-PLT (PLT = Programmlistentabelle) auf.
  • Damit beim Starten von CICS ein BBOC-Befehl mit INITPARM-Daten abgesetzt wird, nehmen Sie BBOACLP2 als Einträge der Phase 2 oder 3 in Ihre CICS-PLT auf.
Sie können in INITPARM eine Befehlsfolge mit einer Länge bis zu maximal 60 Zeichen (CICS-Begrenzung) übergeben. Die folgende INITPARM-Beispielzeichenfolge ruft BBOACPL2 auf und übergibt eine Anforderung, die einen Link-Server unter dem registrierten Namen PAYROLL mit den WOLA-Gruppennamen LIB1, LIB2 und LIB3 startet. Durch Angabe von SVC=* erhält dieser Link-Server Anforderungen für alle Servicenamen.
INITPARM=(BBOACPL2='STA RGN=PAYROLL DGN=LIB1 NDN=LIB2 SVN=LIB3 SVC=*')
Die Befehlsfolge kann ein beliebiger BBOC-Befehl sein, z. B. REG in der folgenden INITPARM-Beispielzeichenfolge. Wenn CICS gestartet wird, erstellt die Zeichenfolge eine Registrierung unter dem Namen LIBAPP, die aus minimal 10 und maximal 100 Verbindungen besteht.
INITPARM=(BBOACPL2='REG RGN=LIBAPP DGN=LIB1 NDN=LIB2 SVN=LIB3 MNC=10 MXC=100')

Wenn Sie beim Starten von CICS eine Registrierung erstellen, verwenden Sie nicht die Registrierungs-API in Ihren Anwendungen. Verwenden Sie stattdessen andere APIs, z. B. Invoke (Aufrufen) oder Connection Get (Verbindungsanforderung).

Wichtig: Sie können nur eine einzige INITPARM-Zeichenfolge pro BBOACPL2-Programm verwenden.
Wenn Sie die PLT-Programme verwenden, um automatisch eine Registrierung oder einen Link-Server zu erstellen, achten Sie darauf, dass Sie die Registrierung aufheben oder den Server stoppen, bevor Sie CICS beenden, um zu vermeiden, dass eine Verzögerung entsteht, während CICS die übrigen Transaktionen der optimierten lokalen Adapter abbricht. Sie können die Ressourcen für optimierten lokalen Adapter wie folgt entfernen:
  • Führen Sie für alle CICS-Link-Server BBOC STOP_SERVER aus oder führen Sie für alle Registrierungen BBOC URG aus.
  • Löschen Sie die BBO$-Tasks.
  • Schreiben Sie ein PLT-Beendigungsprogramm, das den Befehl EXEC CICS LINK für BBOACNTL für jeden Link-Server ausführt, der die Zeichenfolge STOP_SERVER übergibt.
  • Setzen Sie den folgenden Befehl ab: CEMT P SHUT,IMMED

Link-Server-Transaktion für CICS: BBO$

Die CICS-Transaktion BBO$ unterstützt Aufrufe vom Liberty-Server an CICS. Die Transaktion BBO$ ist eine nicht-workstationbasierte Transaktion, die eine Instanz einer Server-Task darstellt, die mit der Operation BBOC START_SRVR für einen bestimmten registrierten Namen und Servicenamen gestartet wurde. Diese Server-Task ermöglicht Programmlinkaufrufe, d. h. sie ermöglicht den Start eines vorhandenen CICS-Programms aus dem Liberty-Server über die APIs der optimierten lokalen Adapter.

Sie können den Namen der Transaktion, BBO$, überschreiben, indem Sie im Befehl BBOC START_SRVR den Parameter STX=Name angeben. Der neue Transaktionsname muss für CICS mit demselben Programmnamen und denselben Attributen wie BBO$ definiert sein. Weitere Informationen finden Sie unter Definitionen optimierter lokaler Adapter für CICS.

Transaktion zum Aufruf eines Programmlinks für CICS: BBO#

Die CICS-Transaktion BBO# unterstützt Aufrufe vom Liberty-Server an CICS. Die Transaktion BBO# ist eine nicht-workstationbasierte Transaktion, die eine Instanz einer Task darstellt, die von der Link-Server-Task BBO$ zum Aufruf eines Programmlinks gestartet wird. Die Transaktion BBO$ startet für jede CICS-Programmlinkanforderung von einer Anwendung auf dem Liberty-Server eine BBO#-Transaktion.

Sie können den Namen der Transaktion, BBO#, überschreiben, indem Sie im Befehl BBOC START_SRVR den Parameter LTX=Name angeben. Der neue Transaktionsname muss für CICS mit demselben Programmnamen und denselben Attributen wie BBO# definiert sein. Weitere Informationen finden Sie unter Definitionen optimierter lokaler Adapter für CICS. Alternativ dazu kann die Anwendung auf dem Liberty-Server den neuen Transaktionsnamen mit der JCA-Methode setLinkTaskTransid an CICS übergeben.


Symbol das den Typ des Artikels anzeigt. Referenzartikel

Dateiname: rwlp_dat_cics.html