EGL ofrece los siguientes componentes
de registro PCB (bloque de comunicaciones de programa):
- IO_PCBRecord
- PCB de tipo pcbType=TP que permite a un programa de telecomunicaciones
COBOL comunicarse con un usuario a través de
un terminal.
- ALT_PCBRecord
- PCB de tipo pcbType=TP que permite a un programa de telecomunicaciones COBOL
cambiar el destino de un mensaje de salida.
- DB_PCBRecord
- PCB de tipo pcbType=DB que determina el acceso de un programa COBOL
a una base de datos DL/I.
- GSAM_PCBRecord
- PCB de tipo pcbType=GSAM que determina el acceso de un programa COBOL a un conjunto
de datos secuenciales simple, como por ejemplo un archivo de cinta o SYSIN.
Para obtener más información acerca de estos componentes de registro,
incluidas sus definiciones y campos, consulte la sección
Tipos y propiedades de
registros.
Los cuatro componentes de registro comparten las
propiedades
siguientes:
- @PCB
- Esta propiedad compleja define las características básicas del PCB de tiempo de
ejecución.
La propiedad es obligatoria en los cuatro componentes de registro, a menos que el
registro sea una redefinición de un PCB anterior. Utilice un bloque de
establecimiento de valores (set-value) para
especificar alguna o la totalidad de los siguientes campos de la propiedad compleja
@PCB:
- pcbType PCBKind
- Este campo indica a EGL el tipo de PCB definido por el registro. pcbType
debe ser uno de los siguientes valores de la enumeración PCBKind:
- DB
- Un PCB de base de datos (DB_PCBRecord)
- GSAM
- Un PCB de archivo secuencial (GSAM_PCBRecord)
- TP
- Un PCB de programa de telecomunicaciones (IO_PCBRecord o ALT_PCBRecord)
El valor de pcbType es necesario si tiene previsto utilizar el PSB tanto
en el entorno IMS como
en CICS. Durante la
ejecución en el entorno
CICS, EGL comprueba
el valor de pcbType y pasa por alto los PCB GSAM o TP.
- pcbName char(8)
- Si tiene previsto utilizar la interfaz AIBTDLI, debe indicar a EGL los nombres de los
PCB del PSB DL/I. Puede hacerlo de dos maneras:
- Puede dar a los registros PCB los mismos nombres que tienen en el PSB DL/I.
- Puede utilizar el campo pcbName para asociar el nombre del
PCB DL/I
con el nombre del PCB EGL.
Si no ha dado al registro PCB el mismo nombre que el PCB de tiempo de ejecución y
utiliza la interfaz AIBTDLI, puede especificar aquí el nombre del PCB de tiempo de
ejecución. La interfaz CBLTDLI no utiliza este nombre, por lo que, si utiliza CBLTDLI,
el nombre del registro PCB EGL debe coincidir con el nombre del PCB de tiempo de
ejecución.
- secondaryIndex char(8)
- Si utiliza un índice secundario para ordenar registros de base de datos, este es el
nombre del índice en el PCB DL/I. Este nombre se utiliza en el lado izquierdo de un SSA
calificado por omisión de un segmento raíz en lugar del elemento de clave especificado
para el registro de segmento raíz.
- secondaryIndexItem FieldReference
- Si utiliza un índice secundario, este es el
nombre del campo del registro PCB asociado que contiene el valor de índice secundario. Este
es el valor de la variable de lenguaje principal del SSA calificado por omisión del
segmento raíz del PCB dado.
- hierarchy
- Este campo contiene una matriz de propiedades @Relationship
que describen las relaciones entre los segmentos de la base de datos. La estructura de
esas propiedades es la siguiente:
- @Relationship
- Cada propiedad @Relationship introduce un bloque set-value
con los siguientes campos:
- segmentRecord STRING
- El nombre de un segmento de la jerarquía
- parentRecord STRING
- El nombre del registro padre de segmentRecord. Si el segmentRecord
especifica el segmento raíz, puede establecer parentRecord
en 0 u omitir el campo parentRecord.
Si el entorno destino es
IMS y utiliza la
interfaz CBLTDLI, debe definir los siguientes PCB por orden y por nombre. EGL utiliza estos PCB para operaciones
internas:
- iopcb
- Una variable de tipo IO_PCBRecord, que representa un PCB de PCBType TP.
- elaalt
- Una variable de tipo ALT_PCBRecord, que representa un PCB de índice alternativo de
PCBType
TP.
- elaexp
- Una variable de tipo ALT_PCBRecord, que representa un PCB Express alternativo
de
PCBType TP.
Si es necesario, utilice el campo
pcbName
anterior para asociar estos PCB con sus respectivos nombres de PCB DL/I.
El
ejemplo siguiente muestra:
Record CustomerPSB type PSBRecord { defaultPSBName="STBICLG" }
// tres PCB necesarios para CBLTDLI en IMS
iopcb IO_PCBRecord { @PCB { pcbType = TP } };
elaalt ALT_PCBRecord { @PCB { pcbType = TP } };
elaexp ALT_PCBRecord { @PCB { pcbType = TP } };
// PCB de base de datos que define tres niveles de segmento
customerPCB DB_PCBRecord { @PCB {
pcbType = DB,
pcbName = "STDCDBL",
hierarchy = [
@Relationship { segmentRecord = "CustomerRecordPart" },
@Relationship {
segmentRecord = "LocationRecordPart", parentRecord = "CustomerRecordPart" },
@Relationship {
segmentRecord = "OrderRecordPart", parentRecord = "LocationRecordPart" },
@Relationship {
segmentRecord = "ItemRecordPart", parentRecord = "OrderRecordPart" },
@Relationship {
segmentRecord = "CreditRecordPart", parentRecord = "CustomerRecordPart" },
@Relationship {
segmentRecord = "HistoryRecordPart", parentRecord = "CustomerRecordPart" }]}};