OSC Management Features

This chapter describes OSC management features for controlling programs and intervals.

1. Overview

The EXEC CICS interface provides the following OSC management features to handle program execution, application flow control, temporary data storage, and data sharing between programs.

2. Program Control

Each OSC application is composed of one or more programs. Program control features are used to connect OSC programs to each other or to pass control from one program to another.

  1. Refer to OpenFrame OSC Administrator’s Guide for more details about program compilation and deployment.

  2. OSC application servers provide a function to execute connected programs placed on another server. Refer to DPL for more information.

Program Control Commands

The following is a list of program control commands. For more information about each command, refer to the respective section.

Command Description

INQUIRE PROGRAM

Retrieves information about a program, map set, or partition set in a region.

LINK

Connects the active program to another program.

LOAD

Makes a copy of an application program, table, or map available for a task.

RELEASE

Releases a loaded program, table or map.

RETURN

Ends the active program and returns control to the previously active program.

SET PROGRAM

Changes the definition of a program, map set, or partition set.

XCTL

Ends the active program and transfers control to another program.

2.1. INQUIRE PROGRAM

Retrieves information about a program, map set, or partition set in a region.

  • Syntax

    EXEC CICS INQUIRE PROGRAM [option …] END-EXEC.
  • Options

    Option Description

    END

    Ends browsing.

    HOLDSTATUS

    Returns an indicator that shows whether a copy of a module is loaded or not.

    LANGUAGE

    Returns a programming language.

    NEXT

    Repeats the INQUIRE command. Only one resource definition is returned.

    PROGRAM

    Specifies the name of a program, map set, or partition set up to eight characters.

    REMOTENAME

    Returns the eight-character name of the OSC region specified in the REMOTESYSTEM option.

    REMOTESYSTEM

    Returns the four-character name of the OSC region.

    START

    Starts browsing.

    STATUS

    Returns an indicator that shows whether a module is available or not.

    TRANSID

    Returns the four-character name of the transaction that is processed by a remote module.

    The following options are not supported: APIST, CEDFSTATUS, CHANGEAGENT, CHANGEAGREL, CHANGETIME, CHANGEUSRID, COBOLTYPE, COPY, CONCURRENCY, DATALOCATION, DEFINESOURCE, DEFINETIME, DYNAMSTATUS, ENTRYPOINT, EXECKEY, EXECUTIONSET, INSTALLAGENT, INSTALLTIME, INSTALLUSRID, JVMCLASS, JVMPROFILE, JVMSERVER, LANGDEDUCED, LENGTH, LIBRARY, LIBRARYDSN, LOADPOINT, LPASTATUS, PROGTYPE, RESCOUNT, RUNTIME, SHARESTATUS and USECOUNT.

Connects the currently running program to another program.

This command connects the currently running program to another program. The target program is loaded into memory and executed automatically by the system. Program control will be given to the target program until it has finished execution; at this point, control will be returned to the program that invoked LINK. After control has been returned, program execution continues as usual. Data can be transferred to the target program by using some command options.

  • Syntax

    EXEC CICS LINK [option …] END-EXEC.
  • Options

    Option Description

    CHANNEL

    Specifies the name of the channel to pass to the target program.

    COMMAREA

    Specifies the data storage to be sent to the target program.

    DATALENGTH

    Specifies the length of data from COMMAREA to be sent.

    INPUTMSG

    Specifies the data to be sent to the target program when it first executes the RECEIVE command.

    INPUTMSGLEN

    Specifies the length of the INPUTMSG.

    LENGTH

    Specifies the length of the COMMAREA.

    PROGRAM

    Specifies the name of the target program.

    SYSID

    Specifies the identifier of the system where the target program is located.

    SYNCONRETURN

    Specifies the processing of SYNPOINT after the successful completion of a server program in a mirror transaction.

    TRANSID

    Specifies the name of a mirror transaction. The program of a mirror transaction must be set to DFHMIRS.

The following BATCH MTPBATCH command can be used to run a program instead of LINK.

LINK <program_name>

2.3. LOAD

Makes a copy of an application program, table, or map available for a task.

  • Syntax

    EXEC CICS LOAD [option …] END-EXEC.
  • Options

    Option Description

    ENTRY

    Specifies the pointer reference to be set to the address of the entry point of the program that has been loaded.

    FLENGTH

    Specifies a fullword binary area to be set to the length of the program, table, or map that has been loaded.

    HOLD

    Indicates that the loaded program, table, or map is not to be released when the task that issues the LOAD command is terminated.

    LENGTH

    Specifies a halfword binary area to be set to the length of the program, table, or map that has been loaded.

    PROGRAM

    Specifies the identifier of a program, table, or map to be loaded.

    SET

    Specifies the pointer reference to be set to the address of the program, table, or map to be loaded.

2.4. RELEASE

Releases a program, table, or map that has been loaded.

  • Syntax

    EXEC CICS RELEASE [option …] END-EXEC.
  • Option

    Option Description

    PROGRAM

    Specifies the identifier of the program, table, or map to be released.

2.5. RETURN

Ends the currently running program and returns control to the previously running program. If no program exists for control to be returned to, control will be returned to the application server.

  • Syntax

    EXEC CICS RETURN [option …] END-EXEC.
  • Options

    Option Description

    CHANNEL

    Specifies the name of a channel to be used by the next program.

    COMMAREA

    Specifies the data storage name to receive from the transaction program specified in the TRANSID.

    IMMEDIATE

    Indicates that the transaction specified in TRANSID will executed immediately, even if another transaction related to the current terminal is already waiting for execution.

    INPUTMSG

    Specifies the data passed to the next program through the first RECEIVE command.

    INPUTMSGLEN

    Specifies the length of the data to be received into INPUTMSG.

    LENGTH

    Specifies the COMMAREA length.

    TRANSID

    Indicates the transaction ID that will be executed when the corresponding terminal receives the next terminal input.

    When the OSC system connects to a new program, OSC resources are immediately loaded into memory from disk. Therefore, the LOAD and the RELEASE commands used to load and release programs are not needed in OSC.

2.6. SET PROGRAM

Changes the definition of a program, map set, or partition set.

  • Syntax

    EXEC CICS SET PROGRAM [option …] END-EXEC.
  • Options

    Option Description

    PROGRAM

    Specifies the identifier of a program, map set, or partition set to change.

    STATUS

    Specifies whether to enable a module (ENABLED) or not (DISABLED).

    1. The following options are not supported: COPY, EXECUTIONSET, JVMCLASS, JVMPROFILE, RUNTIME and SHARESTATUS.

    2. Only parsing is supported for END, NEXT, and START.

    3. The following BATCH MTPBATCH command can be used to change STATUS instead of SET PROGRAM.

    CEMT SET PROG<program_name> DIS | ENA

2.7. XCTL

Ends the currently running program and passes control to the target program. Unlike the LINK command, even if the target program invokes RETURN, control will not be returned to the program.

  • Syntax

    EXEC CICS XCTL [option …] END-EXEC.
  • Options

    Option Description

    CHANNEL

    Specifies the channel name to be sent to the target program.

    COMMAREA

    Specifies the data storage to be sent to the target program.

    LENGTH

    Specifies the COMMAREA length.

    INPUTMSG

    Specifies the data passed to the next program through the first RECEIVE command.

    INPUTMSGLEN

    Specifies the length to send to INPUTMSG.

    PROGRAM

    Specifies the program name to which control will be returned.

3. Interval Control

OSC interval control features provide time-related program control commands. The interval control features are used to start new transactions after a specific period of time or suspend them for a specific time interval. They also can be used to cancel previous interval control commands.

The interval control commands consist of time-related commands and START commands.

  • Time-related commands

    The following is a list of time-related commands. For more information about each command, refer to the respective section.

    Command Description

    ASKTIME

    Retrieves the current date and time.

    CANCEL

    Cancels a DELAY or START command.

    FORMATTIME

    Accepts a date and time retrieved from the ASKTIME command or from EIBDATE and EIBTIME and converts it into a specified format.

    RETRIEVE

    Retrieves data stored for a task that was started by the START command.

  • START-related commands

    The following is a list of START-related commands. For more information about each command, refer to the respective section.

    Command Description

    DELAY

    Delays the processing of a task until a specified time or for a specified duration of time.

    START

    Starts processing a task at a specified time.

3.1. ASKTIME

Retrieves the current date and time. The date and time are stored in the EIBTIME and EIBDATE fields in the EIB. They are retrieved in absolute system date/time format, but can be converted to a desired format using the FORMATTIME command after the ASKTIME command.

  • Syntax

    EXEC CICS ASKTIME [option …] END-EXEC.
  • Option

    Option Description

    ABSTIME

    Specifies a data area where the date and time will be stored in absolute date/time format.

3.2. CANCEL

Cancels a requested DELAY or START command. DELAY transactions that are past the delay time or START transactions that have reached the start time cannot be canceled.

  • Syntax

    EXEC CICS CANCEL [option …] END-EXEC.
  • Options

    Option Description

    REQID

    Specifies the REQID to be canceled.

    SYSID

    Specifies the remote server that will execute the CANCEL command.

    TRANSID

    Specifies the transaction name.

3.3. DELAY

Delays the processing of a task until a specified time or for a specified time period.

  • Syntax

    EXEC CICS DELAY [option …] END-EXEC.
  • Options

    Option Description

    FOR

    Specifies the duration of the delay. (Binary)

    • HOURS

    • MINUTES

    • SECONDS

    • MILLISECS

    INTERVAL

    Specifies the duration of the delay of a task. (Packed Decimal)

    REQID

    Specifies the identifier of a DELAY request. Using this option to specify the identifier of a DELAY request enables another program to cancel the DELAY request.

    TIME

    Specifies the time when the delay of a task will end. (Packed Decimal)

    UNTIL

    Specifies the time at the end of the delay. (Binary)

    • HOURS

    • MINUTES

    • SECONDS

3.4. FORMATTIME

This command accepts a date and time retrieved from the ASKTIME command or from EIBDATE and EIBTIME and converts it into a desired format.

  • Syntax

    EXEC CICS FORMATTIME [option …] END-EXEC.
  • Options

    Option Description

    ABSTIME

    Specifies the data (absolute date and time) to convert.

    DATE

    Converts the data to the DATE type.

    DATEFORM

    Returns the date as MMDDYY.

    DATESEP

    Specifies the separator to separate the YEAR, MONTH, and DAY. If the DATESEP option is included with no separator specified, a slash (/) will be used by default.

    DAYCOUNT

    Returns the number of days since Jan. 1,1900.

    DAYOFMONTH

    Returns the number of days of the current month.

    DAYOFWEEK

    Returns the day number of the week (SUNDAY is 0, MONDAY is 1,…​ SATURDAY is 6).

    DDMMYY

    Returns the date as DAY/MONTH/YEAR, with YEAR containing the last two digits of the year. A separator separates the DAY, MONTH and YEAR.

    DDMMYYYY

    Returns the date as DAY/MONTH/YEAR, with YEAR containing four digits. A separator separates the DAY, MONTH, and YEAR.

    FULLDATE

    Returns the date as MMDDYYYY.

    MILLISECONDS

    Returns milliseconds specified by ABSTIME as a binary number, ranging from 0 to 999.

    MMDDYY

    Returns the date as MONTH/DAY/YEAR, with YEAR containing the last two digits of the year. A separator separates the DAY, MONTH, and YEAR.

    MMDDYYYY

    Returns the date as MONTH/DAY/YEAR, with YEAR containing four digits. A separator separates the MONTH, DAY, and YEAR.

    MONTHOFYEAR

    Returns the number of months that have passed since the beginning of the year.

    TIME

    Returns the time in the format HH:MM:SS. The default separator, which can be changed in the TIMESEP field, is a colon (:).

    TIMESEP

    Specifies the separator to be used in the TIME option.

    YEAR

    Returns the YEAR as four digits.

    YYDDMM

    Returns the date as YEAR/DAY/MONTH, with YEAR containing the last two digits of the year. A separator separates the YEAR, DAY, and MONTH.

    YYMMDD

    Returns the date as YEAR/MONTH/DAY, with YEAR containing the last two digits of the year. A separator separates the YEAR, MONTH, and DAY.

    YYYYDDD

    Returns the date as YEAR/DAY, with YEAR containing the last two digits of the year. Day indicates the number of days of a year.A separator separates the YEAR and DAY.

    YYYYDDMM

    Returns the date as YEAR/DAY/MONTH, with YEAR containing four digits. A separator separates the YEAR, DAY, and MONTH.

    YYYYMMDD

    Returns the date as YEAR/MONTH/DAY, with YEAR containing four digits. A separator separates the YEAR, MONTH, and DAY.

    YYDDD

    Returns the date as YEAR/DAY, with YEAR containing the last two digits of the year and day containing the number of days that have passed since the beginning of the year. A separator separates the YEAR and DAY.

3.5. RETRIEVE

Retrieves data stored for a task that was started by the START command.

  • Syntax

    EXEC CICS RETRIEVE [option …] END-EXEC.
  • Options

    Option Description

    INTO

    Specifies the storage area for the retrieved data.

    LENGTH

    Specifies the length of the data storage area.

    QUEUE

    Specifies a data area that will be set to the QUEUE of the retrieved data.

    RTERMID

    Specifies a data area that will be set to the TERMID of the retrieved data.

    RTRANSID

    Specifies a data area that will be set to the TRANSID of the retrieved data.

    SET

    Specifies a pointer reference that will be set to the address of the retrieved data.

    Only parsing is supported for WAIT.

3.6. START

Starts processing a task at a specified time.

  • Syntax

    EXEC CICS START [option …] END-EXEC.
  • Options

    Option Ddescription

    AFTER

    Specifies the interval of time that must pass before the task is started.

    • HOURS

    • MINUTES

    • SECONDS

    AT

    Specifies when the new task must be started.

    • HOURS

    • MINUTES

    • SECONDS

    CHANNEL

    Specifies the name of a channel that is to be made available to the started task. This option cannot be used with the FROM option.

    FROM

    Specifies the data area that can be retrieved by using RETRIEVE in some future task.

    INTERVAL

    Specifies the interval of time that must pass before the task is started. (Packed Decimal)

    LENGTH

    Specifies the length of the data in the FROM option.

    NOCHECK

    Indicates that no response is to be received by the starting transaction. Error conditions are not returned for tasks that are started on a remote system.

    QUEUE

    Specifies the queue name to be used at the START request.

    REQID

    Specifies an identifier for the START request. This identifier can be used to cancel an unexpired START command. When the REQID option is not specified, the OSC application server creates a new request identifier. After the request is successfully performed, the OSC application server can retrieve the identifier using the EIBREQID option.

    PROTECT

    Indicates that the task will not be started until a syncpoint has been made. If the PROTECT option is used, an eight character REQID beginning with 'OxFC' is returned. If the PROTECT option is not used, an eight character REQID beginning with 'DF' is returned.

    RTERMID

    Specifies a terminal identifier that can be retrieved when the transaction is started.

    RTRANSID

    Specifies a transaction identifier that can be retrieved when the transaction is started.

    SYSID

    Specifies the ID of the remote application server that will receive the START request.

    TERMID

    Specifies the terminal name that will request the START command.

    TIME

    Specifies when the new task must be started. (Packed Decimal)

    TRANSID

    Specifies the transaction name that will executed with the START command.

    USERID

    Specifies the identification of the user under whose authority the started transaction is to run.

    1. Only parsing is supported for ATTACH.

    2. The following BATCH MTPBATCH command can be used to execute transactions instead of START.

    CEMT STAR <transaction_name> [ <terminal_name> <ll data> ]

4. Task Control

An OSC application is usually initiated by a transaction request from a client. The transaction is processed by starting a task, which is similar to a thread. The difference between transaction and task is that while several users may invoke the same transaction, each initiates a separate task.

OSC application servers use multiple server processes to process tasks in parallel. Sometimes, a task may attempt to access a resource while this is being used by another task. In this case, OSC can control the sequence in which the tasks access the resource.

The following is an example.

  1. Task T reserves resource R by issuing the ENQ command.

  2. Another task, task U, issues the ENQ command to reserve resource R.

  3. Task T is already using resource R, and therefore task U is queued.

  4. Task T issues the DEQ command to release the resource.

  5. Task U starts using resource R.

When a task ends, any resources reserved by it through the ENQ command will be automatically freed without issuing the DEQ command. The amount of time that the resource will be used can be specified with the ENQ command options. Currently, in OSC application servers, a resource reservation through the ENQ command can be made only with the resource’s name, and therefore the LENGTH option must be specified.

Task Control Commands

The following is a list of task control commands. For more information about each command, refer to the respective section.

Command Description

DEQ

Releases a resource so that it can be used by other tasks.

ENQ

Requests for a reservation of a resource.

INQUIRE TASK

Retrieves information about a specific user task.

INQUIRE TASK LIST

Retrieves a list of user tasks. User tasks are tasks associated with user-defined transactions or OSC-supplied transactions generally invoked by an operator.

INQUIRE TRANCLASS

Retrieves information about the limits defined for a transaction class and the current activity in the class.

INQUIRE TRANSACTION

Retrieves information about a specific transaction.

SET TRANCLASS

Changes the limits about tasks managed in a specific transaction class.

SET TRANSACTION

Changes some attributes set in a transaction definition.

4.1. DEQ

Releases a resource so that it can be used by other tasks.

  • Syntax

     EXEC CICS DEQ [option …] END-EXEC.
  • Options

    Option Description

    RESOURCE

    Specifies the name of the resource reserved by the ENQ command.

    LENGTH

    Specifies the length of the resource reserved with the resource’s name.

    UOW|TASK|MAXLIFETIME

    Specifies the same option that was specified when reserving the resource.

4.2. ENQ

Requests for a reservation of a resource.

  • Syntax

    EXEC CICS ENQ [option …] END-EXEC.
  • Options

    Option Description

    LENGTH

    Specifies the length of the resource name.

    NOSUSPEND

    Raises an ENQBUSY condition when the resource is used by another user, without suspending the application program.

    RESOURCE

    Specifies the name of the resource to use.

    UOW|TASK|MAXLIFETIME

    • UOW or TASK: Specifies the duration of resource usage by UOW or TASK.

    • MAXLIFETIME: Specifies the duration of resource usage with CVDA values.

4.3. INQUIRE TASK

Retrieves information about a specific user task.

  • Syntax

     EXEC CICS INQUIRE TASK [option …] END-EXEC.
  • Options

    Option Description

    ATTACHTIME

    Returns an 8-byte packed decimal value that indicates the time at which a task was attached.

    END

    Ends browsing.

    FACILITY

    Returns the name of a facility associated with the initiation of a task where the facility is a transient data queue (TDQ), a terminal, or a system.

    NEXT

    Repeats the INQUIRE command. Only one resource definition is returned.

    START

    Starts browsing.

    TASK

    Specifies the 4-byte packed decimal sequence number of the inquiry target.

    TRANSACTION

    Returns the 4-character name of the transaction whose task is running.

    PROGRAM

    Returns the 8-character name of the program executed first in this task.

    USERID

    Returns the ID of the user associated with the task.

    REMOTESYSTEM

    Returns the 4-character name specified in the REMOTESYSTEM option of the TRANSACTION definition. If the transaction definition does not specify REMOTESYSTEM, it will return a blank value.

    The following options are not supported: ACTIVITYID, BRFACILITY, BRIDGE, CMDSEC, CURRENTPROG, DB2PLAN, DTIMEOUT, DUMPING, FACILITYTYPE, IDENTIFER, INDOUBT, INDOUBTMINS, INDOUBTWAIT, IPFACILITIES, IPFLISTSIZE, ISOLATEST, PRIORITY, PROCESS, PROCESSTYPE, PROFILE, PURGEABILITY, REMOTENAME, RESNAME, RESSEC, ROUTING, RTIMEOUT, RUNAWAY, ROUTING, SCRNSIZE, STARTCODE, STORAGECLEAR, SUSPENDTIME, SUSPENDTYPE, SUSPENDVALUE, TASKDATAKEY, TASKDATALOC, TCB, TCLASS, TRACING, TRANCLASS, TRANPRIORITY, TRPROF, TWASIZE, and UOW.

4.4. INQUIRE TASK LIST

Returns a list of user tasks. User tasks are tasks that are associated with a user-defined transaction or an OSC-supplied transaction generally invoked by an operator.

  • Syntax

     EXEC CICS INQUIRE TASK LIST [option …] END-EXEC.
  • Options

    Option Description

    LISTSIZE

    Returns the size of the list of user tasks.

    SET

    Returns the address of a list of 4-byte packed decimal task numbers.

    SETTRANSID

    Returns the address of a list of 4-byte transaction identifiers.

    DISPATCHABLE

    Indicates that a task ready to run is to be included in the task list.

    RUNNING

    Indicates that a currently running task is to be included in the task list.

    SUSPENDED

    Indicates that a suspended task is to be included in the task list.

4.5. INQUIRE TRANCLASS

Retrieves information about a specific transaction or the current activity in the class.

  • Syntax

     EXEC CICS INQUIRE TRANCLASS [option …] END-EXEC.
  • Options

    Option Description

    ACTIVE

    Returns the current number of tasks in a class.

    END

    Ends browsing.

    MAXACTIVE

    Returns the maximum number of transaction classes that can run concurrently.

    NEXT

    Repeats the INQUIRE command. Only one resource definition is returned.

    PURGETHRESH

    Returns the maximum number of tasks that can be queued for an initial dispatch.

    QUEUED

    Returns the number of tasks that are queued for an initial dispatch.

    START

    Starts browsing.

    TRANCLASS

    Specifies an 8-character name of the inquiry target transaction class.

    The following options are not supported: CHANGEAGENT, CHANGEAGREL, CHANGETIME, CHANGEUSRID, DEFINESOURCE, DEFINETIME, INSTALLAGENT, INSTALLTIME and INSTALLUSRID.

4.6. INQUIRE TRANSACTION

Retrieves information about a specific transaction.

  • Syntax

     EXEC CICS INQUIRE TRANSACTION [option …] END-EXEC.
  • Options

    Option Description

    END

    Ends browsing.

    NEXT

    Repeats the INQUIRE command. Only one resource definition is returned.

    PROGRAM

    Returns the name of the first program called by a task executing the transaction.

    REMOTENAME

    Returns an 8-character name of an OSC region specified in the REMOTESYSTEM option.

    REMOTESYSTEM

    Returns a 4-character name of an OSC region.

    RESSEC

    Returns an indicator that shows whether the resource-level security checking is to be performed for a task executing the transaction.

    SHUTDOWN

    Returns an indicator that shows whether the transaction can be executed during OSC shutdown by a task that processes non-requested input.

    START

    Starts browsing.

    TCLASS

    Returns the number of the transaction class that the transaction belongs to if the task belongs to a numbered class.

    TRANCLASS

    Returns an 8-character name of the transaction class that the transaction belongs to.

    TRANSACTION

    Specifies a 4-character name of the target transaction definition.

    TWASIZE

    Returns the size of the transaction work area (TWA).

    STATUS

    Returns the transaction status (either ENABLED or DISABLED).

    The following options are not supported: BREXIT, CHANGEAGENT, CHANGEAGREL, CHANGETIME, CHANGEUSRID, CMDSEC, DEFINESOURCE, DEFINETIME, DTIMEOUT, DUMPING, FACILITYLIKE, INDOUBTWAIT, INSTALLAGENT, INSTALLTIME, INSTALLUSRID, ISOLATEST, PRIORITY, OTSTIMEOUT, PROFILE, PURGEABILITY, ROUTING, ROUTESTATUS, RTIMEOUT, RUNAWAY, RUNAWAYTYPE, SCRNSIZE, STORAGECLEAR, TASKDATAKEY, TASKDATALOC, TRACING, TRPROF, INDOUBT and INDOUBTMINS.

4.7. SET TRANCLASS

Changes the limits of tasks that can be managed in a specific transaction class.

  • Syntax

     EXEC CICS SET TRANCLASS [option …] END-EXEC.
  • Options

    Option Description

    TRANCLASS

    Specifies the 8-character name of a transaction class to change.

    MAXACTIVE

    Specifies the maximum number of tasks to be run by a transaction class.

    PURGETHRESH

    Specifies the number greater than the maximum number of tasks that are queued for an initial dispatch by 1.

    Only parsing is supported for END, NEXT, and START.

4.8. SET TRANSACTION

Changes some attributes set in a transaction definition.

  • Syntax

     EXEC CICS SET TRANSACTION [option …] END-EXEC.
  • Options

    Option Description

    SHUTDOWN

    Specifies whether a transaction can be run during OSC shutdown by a task that processes an unsolicited input.

    STATUS

    Specifies whether the transaction is to be available for use.

    TRANSACTION

    Specifies a 4-character name of the transaction to be changed.

    TCLASS

    Specifies a fullword binary value of the transaction class to which the transaction will belong.

    TRANCLASS

    Specifies the 8-character name of the transaction class to which the transaction will belong.

    1. DUMPING, PRIORITY, PURGEABILITY, RUNAWAY, RUNAWAYTYPE, and TRACING are not supported.

    2. Only parsing is supported for END, NEXT, and START.

    3. The following BATCH MTPBATCH command can be used to change STATUS instead of SET TRANSACTION.

    CEMT SET TRAN<transaction_name> DIS | ENA

4.9. CREATE TRANSACTION

Dynamically creates transaction resources.

  • Syntax

    EXEC CICS CREATE TRANSACTION [option …] END-EXEC.
  • Options

    Option Description

    TRANSACTION

    Specifies the four-letter name of the transaction to be created.

    ATTRIBUTES

    Specifies the properties of the transaction to be created.

    ATTRIBUTES creates the properties in the System Definition as they are and creates them in the RTSD of OSC.

    ATTRLEN

    Specifies the length of ATTRIBUTES.

    LOG

    Sets to leave logs.

    NOLOG

    Sets not to leave logs.

    LOGMESSAGE

    Sets whether or not to leave logs.

    LOG, NOLOG, and LOGMESSAGE are not supported options.

5. Dynamic Area Control

While OSC application servers allocate a fixed-size program local area (WORKING-STORAGE SECTION for COBOL programs) for application logic processing, it is often more efficient to use dynamically allocated areas instead. OSC application server supports dynamic memory allocation. The size of the memory allocated can be from one byte to the maximum integer value, or be limited according to the size of the system memory currently available.

By default, the allocated space is returned to the system at the end of the task that requested the space. However, if the SHARED option is specified, the space will not be returned after the task is completed and can be used to send and receive data between tasks. The SHARED option is different from the one used in CICS. For more information, refer to Memory Sharing between Tasks.

Dynamic Area Control Commands

The following is a list of dynamic area control commands. For more information about each command, refer to the respective section.

Command Description

FREEMAIN

Frees the space allocated by the GETMAIN command.

GETMAIN

Requests dynamic memory allocation.

5.1. FREEMAIN

Allows the user to explicitly free the space allocated by the GETMAIN command.

  • Syntax

    EXEC CICS FREEMAIN [option …] END-EXEC.
  • Options

    Option Description

    DATA|DATAPOINTER

    Set to one of the following.

    • DATA: Specifies the data area to be returned.

    • DATAPOINTER: Specifies the address of the memory to be returned.

5.2. GETMAIN

Requests dynamic memory allocation. The SHARED option controls when the allocated memory will be released. If SHARED is not specified, the memory will be automatically returned when the task is completed. If SHARED is specified, however, the memory must be released explicitly using the FREEMAIN command.

  • Syntax

    EXEC CICS GETMAIN [option …] END-EXEC.
  • Options

    Option Description

    FLENGTH|LENGTH

    Specifies the size of the allocated memory.

    INITIMG

    Specifies a value to which the memory area will be initialized.

    SET

    Specifies the pointer reference to the address of the allocated memory.

    SHARED

    Specifies that the user must invoke FREEMAIN to release the allocated space.

    1. BELOW is not supported.

    2. Only parsing is supported for CICSDATAKEY, NOSUSPEND, and USERDATAKEY.

Memory Sharing between Tasks

When space is allocated by specifying the SHARED option of the GETMAIN command, the space can be used for transferring data between tasks.

Because each task running on the server is executed in a distinct server process, sending a memory address used by one task to another does not guarantee access to the same memory space by the destination task. To ensure that a task has access to the memory space used by another task, the memory address must be sent with the ENCODEMAIN and DECODEMAIN functions.

  • ENCODEMAIN

    The ENCODEMAIN function receives two arguments: an absolute memory block address and an integer reference variable. It then converts the absolute memory block address into a relative memory block address and stores it in the integer reference variable. This relative memory address is then passed to another task so that it can access the information stored at that memory address.

    The following example uses the ENCODEMAIN function.

    . . .
           WORKING-STORAGE SECTION.
           01  PTR USAGE IS POINTER.
           01  OFFSET PIC S9(9) COMP.
    
           PROCEDURE DIVISION.
    . . .
           CALL "cics_encodemain" USING BY VALUE PTR
           BY REFERENCE OFFSET.
    . . .
  • DECODEMAIN

    The DECODEMAIN function receives two arguments: an integer reference variable and a relative memory block address. It then converts the relative memory block address back into an absolute memory block address and stores it as memory address reference. This absolute memory address allows the task to access the memory occupied by another task.

    The following example uses the DECODEMAIN function.

    . . .
           WORKING-STORAGE SECTION.
           01  PTR USAGE IS POINTER.
           01  OFFSET PIC S9(9) COMP.
    
           PROCEDURE DIVISION.
    . . .
           CALL "cics_decodemain" USING BY REFERENCE PTR
           BY VALUE OFFSET.
    . . .

6. Temporary Storage Queue (TSQ)

The Temporary Storage Queue (TSQ) allows data to be saved in a queue-type data structure.

TSQs are not prepared in advance by the OSC application server; instead, they are created when the first queue data record is written. Therefore, unlike most resources, the storage and recovery status properties of a queue can be defined when it is created.

  • Storage

    One characteristic of the TSQ is that it is managed by another storage destination. Although TSQ can be managed by main or auxiliary storage, both storage locations are used in the same way by applications. The storage properties can be set by specifying the MAIN or AUXILIARY option for the EXEC CICS WRITEQ TS command, or by modifying the TSMODEL resource definition. Even if the default setting for a TSQ is AUXILIARY, it can be changed by setting the VALUE of the DFLTDEST key to MAIN, in the TSQ section of the osc.{servername} subject under OpenFrame Configuration.

    Storage Characteristics

    MAIN

    The contents of the queue are managed by the shared memory area specified in the server settings. Because it uses the main memory, this storage method provides much faster I/O performance than the AUXILIARY method.

    The queue contents can be stored in the database instead of in the shared memory area, by setting the VALUE of the MAINDEST key to DB, in the TSQ section of the osc.{servername} subject under OpenFrame Configuration. This feature is available for multi-node clustering.

    AUXILIARY

    The queue contents are managed by two TSAM data sets: QINFO and QDATA. In this case, performance may be slower, but a transaction-level recovery is possible and all the existing data can remain intact. (Default value)

    For more information about how to configure the osc.{servername} subject, refer to OpenFrame Configuration Guide.

  • Recovery status

    The recovery status is defined in the TSMODEL resource definition; if this definition does not exist, recovery status is set to NON-RECOVERABLE. Since TSQ resources are subject to function shipping, they can be accessed by applications on a remote server.

    Storage Applicable Queue Type

    RECOVERABLE

    AUXILIARY

    NON-RECOVERABLE

    MAIN, AUXILIARY

    For more information about TSQ resources, refer to Function Shipping.

TSQ and TSMODEL Commands

An application program can read, write, and delete TSQ data. A TSQ name can be up to 16 bytes long. To specify names up to 8 bytes long, use the QUEUE option. To specify names longer than 8 bytes, use the QNAME option.

The following is a list of TSQ and TSMODEL access commands. For more information about each command, refer to the respective section.

Commands Description

DELETEQ TS

Deletes a TSQ. All information in the TSQ will be deleted as well.

INQUIRE TSQUEUE|TSQNAME

Retrieves information about a TSQ.

INQUIRE TSMODEL

Retrieves resource information for TSMODEL.

READQ TS

Reads data from a TSQ.

SET TSQUEUE|TSQNAME

Manages a TSQ.

WRITEQ TS

Writes data to a TSQ.

6.1. DELETEQ TS

Deletes a TSQ and all of its contents. All information in the TSQ will be deleted as well.

  • Syntax

    EXEC CICS DELETEQ TS [option …] END-EXEC.
  • Options

    Option Description

    QUEUE

    Specifies the queue name as a 1-8 byte character string.

    QNAME

    Specifies the queue name as a 1-16 byte character string.

    SYSID

    Specifies the SYSID for function shipping.

6.2. INQUIRE TSMODEL

Retrieves resource information about a TSMODEL.

  • Syntax

    EXEC CICS INQUIRE TSMODEL [option …] END-EXEC.
  • Options

    Option Description

    LOCATION

    Returns the default storage location (AUXILIARY or MAIN) for queues that use the specified TSMODEL.

    POOLNAME

    Returns the name of the shared pool.

    PREFIX

    Returns a prefix for a TSMODEL.

    REMOTEPREFIX

    Returns a character string to be used as the prefix name of a remote system.

    REMOTESYSTEM

    Specifies a identifier of a remote system for which TSMODEL is defined.

    TSMODEL

    Specifies the name of a TSMODEL to view.

    1. For more information about TSMODEL, refer to OpenFrame OSC Resource Definition Guide.

    2. The following options are not supported: CHANGEAGENT, CHANGEAGREL, CHANGETIME, CHANGEUSRID, DEFINESOURCE, DEFINETIME, EXPIRYINT, INSTALLAGENT, INSTALLTIME, INSTALLUSRID, RECOVSTATUS, SECURITYST.

6.3. INQUIRE TSQUEUE|TSQNAME

Retrieves information about a TSQ.

  • Syntax

    EXEC CICS INQUIRE TSQUEUE|TSQNAME [option …] END-EXEC.
  • Options

    Option Description

    FLENGTH

    Returns the total length of the queue.

    LASTUSEDINT

    Returns the difference between the current time and the time when the queue was last accessed.

    LOCATION

    Returns the storage location (AUXILIARY or MAIN) of the TSQ.

    MAXITEMLEN

    Returns the length of the longest record in the queue.

    MINITEMLEN

    Returns the length of the shortest record in the queue.

    NUMITEMS

    Returns the total number of records in the queue.

    RECOVSTATUS

    Returns the recovery status.

    TRANSID

    Returns the ID of the transaction that created the TSQ.

    TSQNAME

    Specifies the queue name as a 1-16 byte character string.

    TSQUEUE

    Specifies the queue name as a 1-8 byte character string.

    The following options are not supported: POOLNAME and SYSID.

6.4. SET TSQUEUE|TSQNAME

Manages a TSQ. Unlike DELETEQ TS, this command can delete a queue based on the time it was last used.

  • Syntax

    EXEC CICS SET TSQUEUE|TSQNAME [option …] END-EXEC.
  • Options

    Option Description

    ACTION

    Specifies the CVDA value of the action to be taken. Currently only the DELETE value is supported.

    DELETE

    Specifies a queue to be deleted instead of CVDA value.

    LASTUSEDINT

    Deletes the TSQ if the amount of time since the TSQ was last used is over the specified value.

    TSQNAME

    Specifies the queue name as a 1-16 byte character string.

    TSQUEUE

    Specifies the queue name as a 1-8 byte character string.

    The following options are not supported: POOLNAME and SYSID.

6.5. READQ TS

Reads data from a TSQ. Specifies the ITEM address to read records, or uses the NEXT option to read records sequentially. Data read from the queue are not deleted.

  • Syntax

    EXEC CICS READQ TS [option …] END-EXEC.
  • Options

    Option Description

    ITEM

    Specifies the record address to read.

    INTO

    Specifies the location where the data to read will be stored.

    LENGTH

    Specifies the length of the storage of the data to read.

    NEXT

    Reads the next record sequentially.

    NUMITEMS

    Returns the number of records in the queue.

    QNAME

    Specifies the queue name as a 1-16 byte character string.

    QUEUE

    Specifies the queue name as a 1-8 byte character string.

    SET

    Specifies a pointer reference to contain the address of the data to be read. The storage is allocated by the system.

    SYSID

    Specifies the SYSID for function shipping.

6.6. WRITEQ TS

Writes data to a TSQ. If the specified TSQ does not exist, it will be dynamically created and store data.

  • Syntax

    EXEC CICS WRITEQ TS [option …] END-EXEC.
  • Options

    Option Description

    AUXILIARY

    Stores TSQ to a data set.

    FROM

    Specifies the storage area to write data.

    ITEM

    Specifies the address to write data.

    LENGTH

    Specifies the length of the data to write.

    MAIN

    Stores TSQ in a memory.

    NOSUSPEND

    Specifies that the application program is not suspended if there is not enough memory to execute the WRITEQ TS command.

    NUMITEMS

    Returns the number of data records in the queue.

    QUEUE

    Specifies the queue name as a 1-8 byte character string.

    QNAME

    Specifies the queue name as a 1-16 byte character string.

    REWRITE

    Overwrites a record from a specific address. If this option is not specified, data records are added to the queue. If specified, an existing record is overwritten by a new record.

    SYSID

    Specifies the SYSID for function shipping.

7. Transient Data Queue (TDQ)

The Transient Data Queue (TDQ) is used for the following purposes:

  • Data communication between OSC applications

  • Temporary data storage while connecting OSC to another system

  • Data storage as UNIX file log type

There are five types of TDQ: intra-partition, extra-partition, log (functional), indirect and remote (administrative).

  • Intra-partition TDQ

    To specify an intra-partition TDQ, enter INTRA in the TYPE field in the TDQ resource definition. This type of TDQ is used to send and receive data between OSC applications. The records stored in an intra-partition TDQ are managed through a TSAM data set.

    In the resource definition for an intra-partition TDQ, the RECOVSTATUS option is set, meaning that if an error occurs, the TDQ can be recovered. A feature provided for intra-partition TDQs, the Automatic Transaction Initiation (ATI) function, automatically starts a specified transaction when the number of records in the queue reaches a number specified in the resource definition.

    If ATIFACILITY is set to TERMINAL but the TERMINAL field has not been registered, automatic initiation will fail. If TERMINAL has been registered but no connection exists, the record will be queued in the internal scheduling queue. As soon as the terminal is reconnected, a new transaction will be initiated.

    If the number of entries created by WRITEQ TD commands is greater than the specified TRIGGERLEVEL, a transaction will not be initiated. If this happens, you can use the oscadmin tool to remove the TDQ with the issue. If RECOVSTATUS is set to LOGICAL, ATI will not be invoked even if the number of entries created by WRITEQ TD command is greater than TRIGGERLEVEL. Instead, ATI will be invoked when executing the SYNCPOINT or RETURN command.

  • Extra-partition TDQ

    This type of TDQ is used to send data from one system to another. To specify an extra-partition TDQ, set TYPE to EXTRA in the TDQ resource definition.

  • Log TDQ

    An extra-partition TDQ can be used as a log in OSC application programs. Because they deal with frequent read and write operations, log TDQs have improved file I/O functions. To specify a log TDQ, set TYPE to LOG in the resource definition.

    The OSC TDQ log server, one of the OSC auxiliary servers, processes the I/O commands sent to log TDQs. When an application program writes data to the TDQ, log data will be appended to a file with the same name as DDNAME. This file is stored in the SPOOL directory named after the server. Then, the OSC TDQ log server buffers the stored data and writes it all to the file at once, minimizing the amount of write operations and lessening the load on the system.

    Communication between the application server and the OSC TDQ log server uses the TCP/IP protocol.

  • Indirect TDQ

    Indirect TDQs are used for system management. An indirect TDQ points to another queue (either intra-partition, extra-partition, remote, or another indirect TDQ) so that all requests directed to the indirect TDQ are routed to the other queue. To specify this type of TDQ, set TYPE to INDIRECT in the TDQ resource definition and enter the name of the other queue in the INDIRECTNAME element.

  • Remote TDQ

    Application programs may need to access a TDQ that resides on a remote application server. To specify a TDQ that will be used as the target of function shipping commands, set the TYPE to REMOTE in the resource definition. Function Shipping is described in detail in Function Shipping. If set to REMOTE, nothing is specified to the TYPE of the resource definition and a remote application server is specified to REMOTESYSTEM.

TDQ Access Commands

Although methods of accessing a TDQ are slightly varying depending on the TDQ type, there are common commands to delete, read and write data from and to a TDQ, such as DELETEQ TD, READQ TD, WRITEQ TD.

The following is a list of TDQ access commands. For more information about each command, refer to the respective section.

Command Description

DELETEQ TD

Deletes a TDQ.

INQUIRE TDQUEUE

Inquires information about TDQ.

READQ TD

Reads records from a TDQ.

SET TDQUEUE

Changes some attributes of a TDQ.

WRITEQ TD

Writes records to a TDQ.

CREATE TDQUEUE

Creates a TDQ dynamically.

DISCARD TDQUEUE

Discards a dynamically created TDQ.

7.1. DELETEQ TD

Deletes an intra-partition, indirect, or remote TDQ.

  • Syntax

    EXEC CICS DELETEQ TD [option …] END-EXEC.
  • Options

    Option Description

    QUEUE

    Specifies the name of the queue to delete.

    SYSID

    Specifies the ID of the system where the remote queue is located.

7.2. INQUIRE TDQUEUE

Inquires information about a specific TDQ.

  • Syntax

    EXEC CICS INQUIRE TDQUEUE [option …] END-EXEC.
  • Options

    Option Description

    ATIFACILITY

    Returns an indicator that shows whether the queue has a terminal or a session associated with it.

    BLOCKFORMAT

    Returns an indicator that shows whether a data set associated with the queue is in block record format.

    BLOCKSIZE

    Returns the length of the block in bytes.

    DDNAME

    Returns an 8-character identifier that can refer to the data set used in the startup JCL.

    DISPOSITION

    Returns the status of an associated data set.

    DSNAME

    Returns a name, ranging from 1-44 bytes, that represents an associated DUMMY data set.

    ENABLESTATUS

    Returns an indicator that shows whether an application program can access the queue.

    END

    Ends browsing.

    INDIRECTNAME

    Returns a 4-character name of the queue that the indirect queue points to.

    NEXT

    Repeats the INQUIRE command. Only one resource is returned.

    OPENSTATUS

    Returns an indicator that shows whether the queue is open or not.

    PRINTCONTROL

    Returns an indicator that shows the type of print control defined for the queue.

    RECORDFORMAT

    Returns an indicator that shows whether the queue contains a fixed-length record or a variable-length record.

    RECORDLENGTH

    Returns the record length for queues. If the queue type is other than EXTRA, -1 is returned.

    RECOVSTATUS

    Returns the type of recovery defined for the queue.

    REMOTENAME

    Returns an 8-character name of the OSC region specified in the REMOTESYSTEM option.

    REMOTESYSTEM

    Returns a 4-character name of the OSC region.

    SYSOUTCLASS

    Returns a character that indicates the class property of the SYSOUT data set. This option returns a blank if DSNAME is used.

    START

    Starts browsing. No data is returned.

    TRIGGERLEVEL

    Returns the number of items on the queue to be reached before automatic transaction initiation (ATI).

    TYPE

    Returns the type of the queue.

    TDQUEUE

    Specifies a 4-character name of the transient data queue.

    The following options are not supported: ATITERMID, ATITRANID, ATIUSERID, CHANGEAGENT, CHANGEAGREL, CHANGETIME, CHANGEUSRID, DATABUFFERS, DEFINESOURCE, DEFINETIME, EMPTYSTATUS, ERROROPTION, INDOUBT, INDOUBTWAIT, INSTALLAGENT, INSTALLTIME, INSTALLUSRID, IOTYPE, MEMBER, NUMITEMS, and REWIND.

7.3. READQ TD

Reads records from an intra-partition TDQ, indirect TDQ, or remote TDQ.

  • Syntax

    EXEC CICS READQ TD [option …] END-EXEC.
  • Options

    Option Description

    INTO

    Specifies the location where the data to read will be stored.

    LENGTH

    Specifies the maximum length of the storage of the INTO data to be read.

    NOSUSPEND

    Specifies that a task is not suspended until the queue becomes available if an application program tries to read the queue being used for output.

    QUEUE

    Specifies the queue name.

    SET

    Specifies a pointer reference that will contain the address of the data to be read.

    SYSID

    Specifies the ID of the system where the remote queue is located when reading from a remote TDQ.

7.4. SET TDQUEUE

Changes some attributes of TDQ.

  • Syntax

    EXEC CICS SET TDQUEUE [option …] END-EXEC.
  • Options

    Option Description

    ATIFACILITY

    Specifies whether the queue is to have a terminal or session associated with it.

    ENABLESTATUS

    Specifies whether an application can access the queue.

    • DISABLED

    • ENABLED

    OPENSTATUS

    Specifies whether to open or close a data set associated with the queue.

    • CLOSED

    • OPEN

    TDQUEUE

    Specifies a 4-character name of the transient data queue.

    TRIGGERLEVEL

    Specifies a fullword binary value that represents the number of items that have to be reached to trigger an automatic transaction initiation. To disable ATI, specify 0.

    1. The following options are not supported: ATITERMID, ATITRANID and ATIUSERID.

    2. Only parsing is supported for END, NEXT and START.

    3. The following BATCH MTPBATCH command can be used to change OPENSTATUS instead of SET TDQUEUE.

    CEMT SET TD<TDQ_name> CLOSED | OPEN

7.5. WRITEQ TD

Writes records to any type of TDQ. This command is supported for all TDQ types.

  • Syntax

    EXEC CICS WRITEQ TD [option …] END-EXEC.
  • Options

    Option Description

    FROM

    Specifies the data storage where the source data is stored.

    LENGTH

    Specifies the length of the data to write.

    QUEUE

    Specifies the queue name.

    SYSID

    When writing to a remote TDQ, this specifies the ID of the system where the remote queue is located.

7.6. CREATE TDQUEUE

Creates an extra-partition TDQ dynamically.

  • Syntax

    EXEC CICS CREATE TDQUEUE [option …] END-EXEC.
  • Options

    Option Description

    TDQUEUE

    Specifies a 4-character name of the temporary data queue to create.

    ATTRIBUTES

    Specifies attributes of the temporary data queue to create. Specify the attributes in System Definition as they are to create them in OSC RTSD. The following ATTRIBUTES are currently available.

    • TYPE ( { EXTRA } )

    • TYPEFILE ( { INPUT | OUTPUT | RDBACK } )

    • DISP ( { SHR | OLD | MOD } )

    • DD or DDNAME ( ddname )

    • DSN or DSNAME ( dsname )

    ATTRLEN

    Specifies the length of ATTRIBUTES.

    LOG

    Creates logs.

    NOLOG

    Does not create any logs.

    LOGMESSAGE

    Specifies whether to create logs.

    The following options are not supported: LOG, NOLOG and LOGMESSAGE.

7.7. DISCARD TDQUEUE

Discards TDQ created dynamically.

  • Syntax

    EXEC CICS DISCARD TDQUEUE [option …] END-EXEC.
  • Option

    Option Description

    TDQUEUE

    Specifies a 4-character name of a dynamically created TDQ.

8. Channels and Containers

Channels and containers are structures for sending and receiving data between application programs. A container is much like a COMMAREA with a specified name, and a channel is a set of containers.

The OSC application programs generally use the COMMAREA area, which is limited to 32 KB of storage, to send and receive data. However, channels and containers, which have no storage limits, are more flexible methods of transferring data.

Channels and containers:

  • can be accessed only by the program that created them or a program that receives them with a LINK or XCTL command. The set of containers that is passed to the active program is called the current channel.

  • are automatically deleted, along with the data they contain, after the program terminates.

  • cannot be recovered in the event of a failure, including the data they contain.

Channel and Container Commands

The following is a list of channel and container commands. For more information about each command, refer to the respective section.

Command Description

DELETE CONTAINER

Deletes a container and the data it contains.

GET CONTAINER

Reads data from a container.

MOVE CONTAINER

Moves a container from one channel to another.

PUT CONTAINER

Stores data in a container of a specific channel.

8.1. DELETE CONTAINER

Deletes a container and the data it contains.

  • Syntax

    EXEC CICS DELETE CONTAINER [option …] END-EXEC.
  • Options

    Option Description

    CHANNEL

    Specifies the channel to which the container belongs to. If the CHANNEL option is not specified, the current channel will be selected.

    CONTAINER

    Specifies the name of the container to delete.

8.2. GET CONTAINER

Reads data from a container. If CHANNEL option is not specified, data will be read from the current channel.

  • Syntax

    EXEC CICS GET CONTAINER [option …] END-EXEC.
  • Options

    Option Description

    CONTAINER

    Specifies the name of a container.

    CHANNEL

    Specifies the channel where the container is located. If the CHANNEL option is not specified, the current channel will be selected.

    FLENGTH

    Specifies the length of the data to read.

    INTO

    Specifies a data area where data will be stored.

    SET

    Specifies a pointer reference that will contain the address of the data to be read.

    Only parsing is supported for NODATA.

8.3. MOVE CONTAINER

Copies a container from one channel to another or changes the name of a container in a channel. After a copy of a container is made in another channel, the original container will be removed from the original channel. If the CHANNEL and TOCHANNEL options are not specified, the current channel will be selected by the server. The MOVE CONTAINER command can be used to move a container from one channel to another or to rename a container in a channel.

  • Syntax

    EXEC CICS MOVE CONTAINER [option …] END-EXEC.
  • Options

    Option Description

    AS

    Specifies the new name of the container.

    CHANNEL

    Specifies the channel which the container belongs to.

    CONTAINER

    Specifies the name of the container to move.

    TOCHANNEL

    Specifies the name of the destination channel.

    Only parsing is supported for FROMACTIVITY, FROMPROCESS, TOACTIVITY, and TOPROCESS.

8.4. PUT CONTAINER

Stores data in a container.

  • Syntax

    EXEC CICS PUT CONTAINER [option …] END-EXEC.
  • Options

    Option Description

    APPEND

    Specifies to append the data to the existing data in the container.

    BIT

    Bit data. This is the default data type unless FROMCCSID is specified.

    CONTAINER

    Specifies the container name.

    CHANNEL

    Specifies the channel of the container. If the CHANNEL option is not specified, the current channel will be selected.

    CHAR

    Specifies a character data.

    DATATYPE

    Specifies the type of the data.

    FLENGTH

    Specifies the length of the data.

    FROM

    Specifies the location to read the data from.

    FROMCCSID

    Specifies the current CCSID.

9. Journal Control

A journal can store any data that helps a system recover from some event or data changes, as needed by the user. For example, database changes or transaction history can be recorded in a journal. The WRITE and WAIT commands, which create a journal record and synchronize the journal results, are used by CICS to manage the journal..

OSC supports the WRITE command, but not WAIT. In order to synchronize journal results, the user must specify the WAIT option of a WRITE command.

The following BATCH MTPBATCH command can be used to write all the current records to a log stream before handling a stream.

CEMT SET JO<journal_name> FLUSH
Journal Control Commands

The following is a list of journal control commands. For more information about each command, refer to the respective section.

Command Description

JOURNAL

Creates a journal record.

INQUIRE JOURNALMODEL

Returns information about a specific journal model that has been installed, to obtain the corresponding log stream name.

WRITE JOURNALNAME

Creates a journal record. This is the same as JOURNAL but with different options.

WRITE JOURNALNUM

Creates a journal record. Specifies a journal number, while WRITE JOURNALNAME specifies a journal name.

9.1. JOURNAL

Creates a journal record. The JOURNAL command is provided only for compatibility with earlier versions, and it is recommended to use the WRITE JOURNALNAME command instead.

  • Syntax

    EXEC CICS JOURNAL [option …] END-EXEC.
  • Options

    Option Description

    FROM

    Specifies the data area where the user data is stored.

    JFILEID

    Specifies a journal ID. A journal ID can range from 1 to 99.

    JTYPEID

    Specifies the origin of the journal record. This is a 2 byte ID.

    LENGTH

    Specifies the length of the user data.

    PREFIX

    Specifies the path to which the prefix data is stored.

    PFXLENG

    Specifies the length of the prefix data.

    WAIT

    Specifies whether synchronization will occur when creating a journal record.

    Only parsing is supported for NOSUSPEND, REQID, and STARTIO.

9.2. INQUIRE JOURNALMODEL

Returns information about a specific journal model that has been installed, to obtain the corresponding log stream name.

  • Syntax

    EXEC CICS INQUIRE JOURNALMODEL [option …] END-EXEC.
  • Options

    Option Description

    END

    Ends browsing.

    JOURNALMODEL

    Returns a 1-8 character name of an installed journal model.

    JOURNALNAME

    Returns a 1-8 character name of a journal.

    NEXT

    Repeats the INQUIRE command. Only one resource is returned.

    STREAMNAME

    Returns the log stream name associated with JOURNALMODEL.

    START

    Starts browsing.

    TYPE

    Returns the log stream type.

    The following options are not supported: CHANGEAGENT, CHANGEAGREL, CHANGETIME, CHANGEUSRID, DEFINESOURCE, DEFINETIME, INSTALLAGENT, INSTALLTIME and INSTALLUSRID.

9.3. WRITE JOURNALNAME

Creates a journal record.

  • Syntax

    EXEC CICS WRITE JOURNALNAME [option …] END-EXEC.
  • Options

    Option Description

    FROM

    Specifies the path to which the user data is stored.

    FLENGTH

    Specifies the length of the user data.

    JOURNALNAME

    Specifies the journal name.

    JTYPEID

    Specifies the origin of the journal record. This is a 2 byte ID.

    PREFIX

    Specifies the path to which the prefix data is stored.

    PFXLENG

    Specifies the length of the prefix data.

    WAIT

    Specifies whether synchronization will occur when creating a journal record.

    Specifies whether synchronization will occur when creating a journal record.

9.4. WRITE JOURNALNUM

Creates a journal record. The WRITE JOURNALNUM command is provided for compatibility with earlier versions; WRITE JOURNALNAME is recommended instead.

  • Syntax

    EXEC CICS WRITE JOURNALNUM [option …] END-EXEC.
  • Options

    Option Description

    FROM

    Specifies the path to which the user data is stored.

    FLENGTH

    Specifies the length of the user data.

    JOURNALNUM

    Specifies a journal ID that ranges from 1 to 99.

    JTYPEID

    Specifies the origin of the journal record. This is a 2 byte ID.

    PREFIX

    Specifies the path to which the prefix data is stored.

    PFXLENG

    Specifies the length of the prefix data.

    WAIT

    Specifies synchronous journal output that cause the requesting task to wait until the journal output has been completed.

    Only parsing is supported for NOSUSPEND, REQID and STARTIO.

10. Document Control

Allows the user to document specific data. The users can use the documented data by specifying DOCTOKEN in commands that support DOCTOKEN.

Document Control Command

The following is a list of document control commands. For more information about each command, refer to the respective section.

Command Description

DOCUMENT CREATE

Creates a document.

DOCUMENT INSERT

Inserts text, bookmarks or documents to a document.

10.1. DOCUMENT CREATE

Creates a document.

  • Syntax

    EXEC CICS DOCUMENT CREATE [option …] END-EXEC.
  • Options

    Option Description

    DOCTOKEN

    After creating the document, issues TOKEN for reuse and returns it.

    FROM

    Specifies the data to use when creating a document.

    HOSTCODEPAGE

    Specifies CODEPAGE of the document.

    LENGTH

    Specifies the size of data to use.

    LISTLENGTH

    Specifies the length of the symbol list.

    SYMBOLLIST

    Specifies a buffer which contains a symbol list. A symbol list is a character string consisting of one or more symbol definitions separated by ampersands.

    TEMPLATE

    Specifies the 48-byte name of a template.

    TEXT

    Specifies a buffer of data which is to be used as the contents of the new documnet being created.

10.2. DOCUMENT INSERT

Inserts text, bookmarks or documents to a document.

  • Syntax

    EXEC CICS DOCUMENT INSERT [option …] END-EXEC.
  • Options

    Option Description

    DOCTOKEN

    Adds content to a returned document.

    TEXT

    Specifies the text to add.

    TEMPLATE

    Specifies the 48-byte name of a template.

    LENGTH

    Specifies the length of the text to add.

    FROMDOC

    Specifies DOCTOKEN of the document to add.

    BOOKMARK

    Specifies the name of the bookmark to add.

    AT

    Specifies the location to add TEXT, DOCUMENT and BOOKMARK. A BOOKMARK that has been previously added becomes the target of AT.

    If the AT options is omitted, the specified content is added to the bottom of the document and if not, the content is added to the top of the document, by default. Otherwise, AT can be specified through BOOKMARK.