User Guide


Version 4.2.424.0

1. Introduction to Raincode QIX

1.1. About the Raincode QIX User’s Guide

This section introduces the reader to this Raincode QIX User’s Guide.

Raincode® is a registered trademark. All other product and company names and marks mentioned in this document are the property of their respective owners. Note that PL/I, CICS, MVS and z/OS are registered trademarks of IBM. SQL Server, Visual Studio, and Host Integration Server are registered trademarks of Microsoft.

The purpose of this document is to explain how to use Raincode QIX to:

  • Build managers

  • PL/I or COBOL developers

1.2. Prerequisites for using Raincode QIX

Raincode QIX requires a previously installed version of:

  • .NET 48 or .NET 60

  • SQL Server

Each section in this document covers a particular aspect of Raincode QIX and, where appropriate, its interaction with Raincode’s and other vendor’s products.

1.3. About Raincode QIX

This section introduces the reader to the Raincode QIX.

1.3.1. Roles

A Raincode QIX instance is called a region, similar in concept to a virtual machine. Each region has a name and is composed of servers, each with its responsibility. This section presents the roles of the servers running in a CICS region.

Region

Every region is identified by a name (the region name). A QIX region must also specify an APPLID, if required by the underlying application. By specifying a different region name with the same APPLID multiple instances of QIX can run with the same APPLID which can be helpful in a development environment.

Region configuration

When starting, the region fetches its configuration from a database (or from the command-line if run with the appropriate command-line arguments).

Terminal server

The terminal server deals with TN3270 connections; it is the entry point for online users to be used with a 3270 terminal emulator supporting the TN3270E protocol (including IBM Personal Communication).

The terminal server handles all 3270 related features, including the primary mapping support component (BMS) equivalent in QIX, and for instance, takes care of converting CICS SEND MAP to 3270 output datastream, as well as converting input 3270 datastream into the equivalent data structure of the underlying running PL/I or COBOL program.

Processing server

As its name implies, the processing server is responsible for making the actual transactional processing.

It is queried by a terminal server when a user requests a transaction execution or from a message server when an incoming message arrives.

Logging server

If needed, an optional server can be run in order to centralize all Raincode QIX logs and traces. When a logging server is running, all other servers will automatically forward their logs to it.

1.3.2. Distributed

Raincode QIX has a distributed architecture. Its components can run on different nodes of the same local area network, as required. This architecture is scalable as there are no performance bottlenecks other than network and database bandwidth.

A distributed architecture implies that applications cannot rely on a shared memory model, as communication areas are copied between the different servers rather than shared.

1.3.3. Extensibility

Some of the behaviours of Raincode QIX can be extended using a plugin mechanism. A plugin allows the user to customize a specific component of QIX, implemented in any .Net language. Examples of such plugins is the authentication plugin in the terminal server. For more details, see the section Authentication Plugin.

1.4. Configuring Raincode QIX

Before being able to run an instance of QIX, the configuration database must be created. The configuration database is where QIX will store its configuration.

  • In your SQL Server instance, create a database named RaincodeQIXMS or whatever you prefer.

  • In the RaincodeQIXMS database, execute the T-SQL script rcqix.sql located in %RCDIR%\sql directory.

  • If your programs use Temporary Storage queues, make sure also to execute the SQL script rcqix_ts.sql, located in the same folder.

1.5. Samples

Raincode Legacy Compilers and Tools also installs QIX sample at %RCDIR%/samples/demo.

Copy the sample to a user-specific folder before being used to avoid permission issues.
Table 1. Customers contents
Customers Description

bin

Batch scripts to setup and start QIX servers.

bms

The BMS file, the user screens of the application.

ExtModules

C# project, which exposes one or more programs made callable by the PL/I code.

maps

Xml versions of the BMS, which are used by QIX. Empty at first, populated when the BMS are compiled.

programs

Compiled programs of the customers application. Empty at first, populated when the programs are compiled.

solution

The Visual Studio customers project (requires Raincode Legacy Compilers Visual Studio plugin).

sql

Setup scripts to create the customers database.

2. Using Raincode QIX

Raincode QIX is composed of many tools, located at the %RCBIN%:

  • Runners for each component of a Raincode QIX region

  • BMS compiler

  • Region creator

Help for all of these tools can be found by executing them on the command-line with no argument.

It is also provided in detail in the following sections for reference.

2.1. Region creator

The region creator (RegionCreator.exe) is a command-line tool that creates or modifies a Raincode QIX region in the Raincode QIX configuration database. When modifying a Raincode QIX region using this tool, the whole QIX region must be restarted before the changes are taken into account.

2.1.1. Region creator command line options

2.1.2. Miscellaneous

Table 2. Region-creator-command-line-options
Command-line option Default value Description

Append

True

Append the configuration to the region instead of completely recreating it. This is a boolean value.

ApplicationConnectionString

Connection string to the business database.

APPLID

CICSAPPL

The APPLID of the QIX region.

DBDriver

SqlServer

DB Target for the applications. Values can be any of the following:

  • SQLSERVER

  • DB2

  • DB2HIS

  • Oracle

  • Postgres

DotNetConfigFile

An additional app.config file.

ForwardDestination

Add a forward destination.

Help

Display the help message. This is a boolean value.

InitialTransaction

Transaction to launch on a new Terminal Connection.

LogLevel

WARNING

Values can be any of the following:

  • SILENT

  • ERROR

  • WARNING

  • INFO

  • DEBUG

  • TRACE

  • PROGRAM_OUTPUT

  • DIAGNOSTIC

MapsPaths

Semicolon separated list of paths where the terminal server will look for the BMS and MID/MOD/DIF/DOF files.

OutputDir

./

The output folder to place the .Sql files.

ParallelDestination

The name of the forward destination to use as the parallel destination.

ProgramsPaths

Semicolon separated list of paths where the processing server will look for the assemblies.

QixConnectionString

The connection string to the Raincode QIX database.

This argument is mandatory.

QIXTransactions

List of QIX transactions defined for this region.

Region

The name of the region to create. If the region already exists, it will be dropped first.

ReplaceTransactions

False

Specify whether an already existing transaction should be updated or not. This is a boolean value.

ServiceBrokerConnectionString

Service Broker Admin Connection string to create queues and services on the Service Broker Database.

ServiceBrokerUserConnectionString

Service Broker User Connection string to send and receive messages on the Service Broker Database.

StringRuntimeEncoding

ibm037

SYSID

CICS

The SYSID of the QIX region.

TDQueues

Semicolon separated list of all Transient Data queues supported by this region.

TerminalCodepage

37

The codepage to be used by the terminal server to convert data to and from the terminal emulator.

TSQueuesConnectionString

The connection string to the SQL Server database used for storing the temporary storage queues.

UserTransactions

List of users and the transactions they are allowed to execute.

Version

Display version information. This is a boolean value.

2.2. BMS compiler

The BMS compiler (rcbms.exe) is a command-line tool that will compile the original BMS screen definitions into a COBOL or PL/I symbolic map and an XML version of the map (used in due time by the terminal server to create the TN3270 data stream).

2.2.1. BMS compiler command-line options

2.2.2. Miscellaneous

Table 3. BMS compiler command-line options
Command-line option Default value Description

AlignSymbolicMap

False

Align the symbolic map fields with fillers to have the fields start on even offsets. This is a boolean value.

CobolSymbolicMapFileExtension

.cpy

Symbolic map file extension for COBOL.

CopybooksOutputDirectory

Directory where the copybooks will be created.

CSharpSymbolicMapFileExtension

.cs

Symbolic map file extension for C#.

DotNetConfigFile

An additional app.config file.

ExpandedOutputDirectory

The location where the map compiler will save the expanded version of the map. The expanded file will have the form 'filename.expanded.extension'.

FetchNameFromComment

False

Check the actual name of a field in the comment on the line before. This is a boolean value.

FileExtension

bms

When specifying a directory, only the files with the specified extension will be processed. Can be specified with or without dot. Specify an empty string for extensionless files, specify * for all files.

GenBasedSymbolicMap

False

Generate the symbolic mapset copybook in a single file, with the output structure based/redefining the input structure. This is a boolean value.

GenSymbolicMap

Generate the symbolic mapset copybook. Two different files will be created: one for the input structure, and one for the output structure. This is a boolean value.

Help

Display the help message. This is a boolean value.

IncludeDirectory

Specify the directory containing the BMS include files.

InputEncoding

utf-8

The encoding of the BMSFile.

Language

Indicate the language for the symbolic map. Values can be any of the following:

  • cobol

  • pli

  • csharp

LogLevel

INFO

Values can be any of the following:

  • SILENT

  • ERROR

  • WARNING

  • INFO

  • DEBUG

  • TRACE

  • PROGRAM_OUTPUT

  • DIAGNOSTIC

MapsOutputDirectory

Directory that will contain the physical XML maps.

OutputEncoding

The encoding of the generated include/copybooks.

PliSymbolicMapFileExtension

.plinc

Symbolic map file extension for PL/I.

TabWidth

4

The number of spaces by which a tab character will be replaced when found in the BMS file.

Version

Display version information. This is a boolean value.

2.3. Runners

Each Raincode QIX server component has its own command-line runner, allowing to specify the additional configuration.

2.3.1. Terminal Server command-line options

2.3.2. Miscellaneous

Table 4. Terminal Server command-line options
Command-line option Default value Description

ConfigConnectionString

The SQL Server connection string to the database where the region configuration will be fetched.

DotNetConfigFile

An additional app.config file.

GMText

good morning message.

Help

Display the help message. This is a boolean value.

LogLevel

WARNING

Values can be any of the following:

  • SILENT

  • ERROR

  • WARNING

  • INFO

  • DEBUG

  • TRACE

  • PROGRAM_OUTPUT

  • DIAGNOSTIC

LogsDirectory

Dump server logs in the specified directory.

OnlineValidationConnectionString

OnlineValidationLogPath

ParallelMode

User

The mode in which the parallel mode is to be run. Values can be any of the following:

  • User

  • Developer

ParallelSyncPluginConfig

Region

The name of the region to join.

ServerName

The name of the server as it will appear in the administration interface.

TcpPort

The TCP/IP port on which the terminal server will listen for incoming TN3270 connections.

TctuaSize

0

The size of the TCTUA in bytes.

Version

Display version information. This is a boolean value.

2.3.3. Plugin

Command-line option Default value Description

Plugin

Loads plugin-providing assembly.

PluginPath

Path where plugins (and other assemblies) are searched.

2.3.4. Processing Server command-line options

2.3.5. Miscellaneous

Table 5. Processing Server command-line options
Command-line option Default value Description

ConfigConnectionString

The SQL Server connection string to the database where the region configuration will be fetched.

DotNetConfigFile

An additional app.config file.

FileConfig

The path to a file configuration file.

Help

Display the help message. This is a boolean value.

LogLevel

WARNING

Values can be any of the following:

  • SILENT

  • ERROR

  • WARNING

  • INFO

  • DEBUG

  • TRACE

  • PROGRAM_OUTPUT

  • DIAGNOSTIC

LogsDirectory

Dump server logs in the specified directory.

MaxThreads

The maximum number of transactions the processing server can execute concurrently.

Region

The name of the region to join.

SafeMemoryMode

Enables safe mode in memory allocator. Works in conjunction with the :VerifyMemory flag on the compilers. This is a boolean value.

ServerName

The name of the server as it will appear in the administration interface.

TraceAll

Enable all QIX statements tracing. This is a boolean value.

Version

Display version information. This is a boolean value.

2.3.6. Plugin

Command-line option Default value Description

Plugin

Loads plugin-providing assembly.

PluginPath

Path where plugins (and other assemblies) are searched.

2.3.7. LoggingServerRunner

The LoggingServerRunner.exe does not support additional options.

3. Running the sample

This chapter describes how to execute the samples provided with Raincode QIX. The samples folder comes with an application (customers). This application contains both PL/I and COBOL codes. This application also has a C# code to demonstrate Raincode PL/I and Raincode COBOL integration with C#. The customer’s application is an online CICS application, with DB2 SQL statements, and is used to demonstrate features of the Raincode Stack:

  • Raincode PL/I compiler

  • Raincode COBOL compiler

  • Integration of C# programs

  • Visual Studio plugin for PL/I and COBOL

  • SQL rewriting facility (from DB2 to SQL Server)

  • Raincode QIX

3.1. Requirements

To run the samples, you need:

  • A running instance of SQL Server (2017 or above)

  • The Raincode PL/I compiler

  • The Raincode COBOL compiler

  • The Raincode Visual Studio plugin for PL/I and COBOL

3.2. Installation

The following steps need not be done in any specific order, but they must all be completed before the execution.

3.2.1. QIX configuration database

This procedure is not specific to the samples. For more details, refer to the Configuring Raincode QIX.

3.2.2. Customers application database

In your SQL Server instance, execute the script CustDB.sql located in the SQL folder of the sample. The script will create the customers application database. The database is called CustDB in SQL Server.

3.2.3. Creating the region

Edit the file setenv.bat located in the bin folder of customers:

  • RCQIXCS: the connection string of the database containing the Raincode QIX configuration;

  • RCCUSTCS: the connection string of the database containing the customer’s application database

Start the launcher.bat from the customers folder and execute the region.bat in the bin directory. It will create the region QIX_CUST, in which the customers application will run.

@echo off
echo Setting QIX demo environment...
SET RCQIXCS="data source=localhost;Integrated Security=true;initial catalog=RaincodeQIXMS;multipleactiveresultsets=True;"

SET RCCUSTCS="data source=localhost;Integrated Security=true;initial catalog=CustDB;multipleactiveresultsets=True;"
RCQIXCS and RCCUSTCS have a default value that should work if there is a local SQL Server installed, but it won’t work for SQL server express; for that, you need to add \SQLEXPRESS after localhost.

3.2.4. Building the application

Following are the steps to build the application:

1. Compile the maps by executing the bat script maps.bat (from the prompt opened by launcher.bat), located in the customers directory’s bin folder. It will create the physical maps (XML files, in the maps directory ) and symbolic maps (PL/I includes and/or COBOL copybooks in the solutions/includes directory) needed by the application.

2. Build the Visual Studio© solution cust.sln, located in the solution folder. It will build the PL/I and COBOL programs and the C# project used in the application. The build process will copy all assemblies in the programs directory, where the QIX_CUST region will look for the programs.

3.3. Execution

Once all previous steps have successfully been executed:

1. Start QIX by running the start.bat script from the Explorer. It will start a single instance of a terminal server, and a single processing server.

2. Connect your 3270 terminal emulator to the machine’s IP where QIX is running, port 23. You will be prompted with a blank screen asking you to type the transaction name. The starting transaction is CUST.

Quick3270 1
Figure 1. Terminal 3270

3.4. Debugging the demo

Following are the steps to debug the demo:

1. Open the solution in the Visual Studio© from the sample folder.

2. Place the breakpoint in the program by clicking on the left margin where you want the debugger to stop.

3. Select Debug→ Attach to Process (Ctrl+Alt+P).

4. Select processingServerRunner.exe from the list of processes and click on the Attach button. Visual Studio switches to the debug mode.

5. Press F8 on the main screen of the customers demo to scroll down. It will activate the program, and the execution will stop at the breakpoint. You can interactively debug your PL/I and/or COBOL application, as well as the C# part of the application.

Make sure that QIX is running and connected.

4. Implementing a plugin

This section explains how to register a plugin in Raincode QIX and the different plugin interfaces supported by QIX. Any plugin implementation requires rccorlib, the Raincode core library provided with Raincode QIX.

4.1. First steps

When using the Raincode plugin mechanisms, a reference to rccorlib needs to be added to the project. Every plugin in Raincode QIX is exposed using a static instance of a generic class.

Plugin<T1,T2,..,R>

(the number of generic types depends on the plugin).

To register a custom implementation, call the Provide method, which takes a priority and a .Net delegate (more specifically, a class)

Func<T1,T2,..,R>

as parameters. The T1, T2 types are the parameter types that are passed to the actual plugin implementation, and R is the type of returned value.

For example, a plugin such as

Plugin<IQixTransactionLauncher,string,bool> MessageListenerPlugin

takes an IQixTransactionLauncher and a string, and returns a boolean value.

This is how such a plugin is registered:

public static void RegisterPlugin()
{
  MessageServer.MessageServer.MessageListenerPlugin.Provide(10,(tl,c)=>
  {
	new Plugin(tl,c);
	return true;
  });
}

Here, the registration method calls Provide, and the delegate will create an instance of Plugin, which is the user implementation of the message listener plugin. tl and c are the parameters that will eventually be passed when QIX calls the plugin.

To tell QIX to call that method, the assembly must be tagged with a PluginProvider attribute. In the AssemblyInfo.cs of your plugin assembly, the following attribute must be added:

[assembly:PluginProvider(typeof(NameSpace.To.Plugin.Plugin),"RegisterPlugin")]

Where the first parameter is the type of the class containing the registration method and RegisterPlugin is the name of the static method doing the actual registration. The last step is to tell QIX to load that plugin assembly, using the Plugin command-line argument or copying it in the plugins directory (see Loading a plugin).

When a plugin assembly is loaded, the plugin runtime looks for the PluginProvider attribute and calls the method specified, on the class specified, NameSpace.To.Plugin.Plugin.RegisterPlugin in this case.

4.2. Loading a plugin

As a convenience, each QIX server automatically loads all plugins in the %RCDIR%\plugins, but the Plugin and PluginPath command-line arguments can also be used.

4.3. Terminal Server Session API

As the name implies, this plugin can be plugged into the terminal server and establish a terminal session to QIX or to a remote mainframe through an API.

The plugin instance is located at

RainCode.QIX.TerminalServer.TerminalServer.SessionApiPlugin

and is of type Plugin<ISessionApi,string,bool>

The plugin is provided with an ISessionApi, a string, and returns a bool to acknowledge successful initialization.

The configuration string is unused but reserved for future use, such as passing a terminal server command-line argument.

The ISessionApi interface provides methods for initiating and terminating terminal sessions and sending and receiving messages within a session.

public interface  ISessionApi
{
	bool Send(Guid guid, byte[] dataBuffer, out string err);
	Guid Connect(ITerminalInfo terminalInfo,Encoding terminal,
				 Encoding local, out string err,
				 string hostName = null, int port = -1);
	byte[] Receive(Guid guid, out string err);
	bool Disconnect(Guid guid, out string err);
}

The ITerminalInfo interface provides methods for retrieving the IBM3270 terminal model.

All functions have an output error string parameter which is filled in case of the failure. The connect function takes the following input parameters:

  • The IBM 3270 model

  • The terminal encoding.[1]

  • The encoding used by the application programs

  • The error output character string which is filled in case of the error

  • The target hostname

  • The target port number

The last two parameters are optional; if they are not specified, the transaction’s execution in this session will be performed by the local QIX processing server.

The connect function returns the Guid.[2] of the created session, which is needed by the send, receive, and disconnect functions.

The send function takes the following input parameters:

  • A session Guid

  • An array of bytes containing the input 3270 stream

The send function returns true in case of success and false otherwise.

The receive function takes the following input parameter:

  • A session Guid

The receive function returns an array of bytes: null if no new available data has been returned by the target yet, else it returns the output 3270 stream.

This function is not blocking. If no new data is available to receive, it returns null without waiting. It is up to the calling thread to call it again after an adequate sleeping time.

The disconnect function takes the following input parameter:

  • The Guid of the session to be closed

The disconnect function returns true in case of success, false otherwise.

4.4. Authentication Plugin

This plugin can be plugged into the terminal server and allows authentication in QIX via the SIGN command.

The plugin instance is located at RainCode.QIX.TerminalServer.QixTerminalServer.SecurityManagerPlugin.

4.4.1. Active Directory Plugin (Default implementation)

The default implementations for QIX provide almost full support for SIGN commands with one exception: user groups are not supported.

The available input parameters are (mandatory parameters are designated by *, depending on the ContextType additional parameters might be required):

  1. ContextParameters: These parameters will be used to create a System.DirectoryServices.AccountManagement.PrincipalContext object. The names of these parameters map naturally to the parameters of the constructor.

    • ContextName

    • ContextType *

    • ContextContainer

    • ContextOptions

    • ContextUser

    • ContextPassword

  2. Identity parameters are used to find a System.DirectoryServices.AccountManagement.UserPrincipal object associated with the userId specified in QIX SIGN command. The default values are specified in the [].

    • IdentityType [Name]: specifies the format of the identity. For more details, see Microsoft documentation.

    • IdentityFormat [{0}]: .NET composite format string mapping a userId to the name used by the directory service. For example, if QIX user ABCDE has the Security Account Manager name U_ABCDE then the identityType=SamAccountName and identityFormat=U_{0}.

  3. User parameters are used in the PrincipalContext.ValidateCredentials method call. These parameters will have different default values, depending on the ContextType. If the ContextType=Machine, the default values for UserOptions and UserLogin are Negotiate and Name. In any other case, it will be SimpleBind and DistinguishedName.

    • UserOptions: The type is System.DirectoryServices.AccountManagement.ContextOptions

    • UserLogin: The type is System.DirectoryServices.AccountManagement.IdentityType

To pass the specified parameters to the QIX region, they should be separated by the ';' symbol, concatenated, and specified in the SecurityManagerConfig parameter.

Let’s look at some examples:

  1. ContextType=Machine: this is the minimal example.

  2. ContextType=Machine;UserOptions=Negotiate|Sealing: In the case of multiple values for ContextOptions parameter type like ContextOptions or UserOptions the values should be separated by '|'.

  3. ContextType=ApplicationDirectory;ContextName=127.0.0.1:389;ContextContainer=CN=Partition1,DC=raincode,DC=com;ContextOptions=SimpleBind;ContextUser=Me;ContextPassword=myPassword;IdentityType=Name;IdentityFormat={0};UserOptions=SimpleBind ;UserLogin=DistinguishedName; : this is a complete example, where all the parameters were specified.

4.4.2. QIX Plugin API

The ISecurityManager interface provides methods allowing authentication in the QIX system.

public interface ISecurityManager
{
	IUser Default { get;}
	IUser SignOn (IUser currentUser,
				  IUser nextUser,
				  ISignOnStatement statement);
	IUser SignOff(IUser currentUser,
				  IUser nextUser,
				  ISignOffStatement statement);
}

The currentUser is the user who executes a CESN or CESF transaction for SIGN ON and SIGN OFF, respectively, and the nextUser will be the user after the execution of SIGN ON/OFF.

To provide a custom support for authentication, a new plugin implementing the ISecurityManager interface is required. The description of helper interfaces is provided below.

public interface IUser
{
	bool IsDefault { get;}
	string Name { get;}
}
public interface ISignOnStatement
{
	string USERID { get; set; }
	string PASSWORD { get; set; }
	string NEWPASSWORD { get; set; }
	byte[] OIDCARD { get; set; }
	int ESMReason { get; set; }
	int ESMRESP { get; set; }
	string LANGINUSE { get; set; }
	string NATLANGINUSE { get; set; }
	EResp RESP { get; set; }
	int RESP2 { get; set; }
}

public interface ISignOffStatement
{
	EResp RESP { get; set; }
	int RESP2 { get; set; }
}

5. CICS supported commands

This section covers all the supported CICS API calls in our QIX environment.

The following information has been covered:

  • Function name

  • Option and arguments (supported syntax)

  • Runtime support

Description of Runtime support:

  • None: There is no runtime support for this statement. The client or the integrator code provides it. See samples or contact Raincode for details.

  • Library: The runtime support for this statement is identical with or without using the Raincode QIX product.

  • Qix Emulator: There is runtime support for this statement only when using the Raincode QIX product.

  • Library and QIX emulator: The statement is supported even without using the Raincode QIX product, but this product extends the support to more arguments/combinations.

For all statements, the support may be incomplete. Some options or combinations of options may not be implemented. Please test and/or contact Raincode for details about your use case.

5.1. ABEND

Supported syntax:

ABEND
  ABCODE(name)? CANCEL? NODUMP?

Runtime support : library

5.2. ACQUIRE PROCESS

Supported syntax:

ACQUIRE
  [ ACTIVITYID(data-value) | ( PROCESS(data-value) PROCESSTYPE(data-value) ) ]

Runtime support : none

5.3. ADDRESS

Supported syntax:

ADDRESS
  ACEE(ptr-ref)? COMMAREA(ptr-ref)? CWA(ptr-ref)? EIB(ptr-ref)?
  TCTUA(ptr-ref)? TWA(ptr-ref)?

Runtime support : library and Qix emulator

5.4. ALLOCATE (APPC)

Supported syntax:

ALLOCATE
  [ ( SYSID(systemname) PROFILE(name)? ) | PARTNER(name) ] NOQUEUE? STATE(cvda)?

Runtime support : none

5.5. ASKTIME

Supported syntax:

ASKTIME
  ABSTIME(data-area)?

Runtime support : library

5.6. ASSIGN

Supported syntax:

ASSIGN
  ABCODE(data-area)? ABDUMP(data-area)? ABPROGRAM(data-area)?
  ACTIVITY(data-area)? ACTIVITYID(data-area)? ALTSCRNHT(data-area)?
  ALTSCRNWD(data-area)? APLKYBD(data-area)? APLTEXT(data-area)?
  APPLID(data-area)? ASRAINTRPT(data-area)? ASRAKEY(cvda)?
  ASRAPSW(data-area)? ASRAREGS(data-area)? ASRASPC(cvda)? ASRASTG(cvda)?
  BRIDGE(data-area)? BTRANS(data-area)? CHANNEL(data-area)?
  CMDSEC(data-area)? COLOR(data-area)? CWALENG(data-area)?
  DEFSCRNHT(data-area)? DEFSCRNWD(data-area)? DELIMITER(data-area)?
  DESTCOUNT(data-area)? DESTID(data-area)? DESTIDLENG(data-area)?
  DS3270(data-area)? DSSCS(data-area)? EWASUPP(data-area)? EXTDS(data-area)?
  FACILITY(data-area)? FCI(data-area)? GCHARS(data-area)? GCODES(data-area)?
  GMMI(data-area)? HILIGHT(data-area)? INITPARM(data-area)?
  INITPARMLEN(data-area)? INPARTN(data-area)? INVOKINGPROG(data-area)?
  KATAKANA(data-area)? LANGINUSE(data-area)? LDCNUM(data-area)?
  LDCMNEM(data-area)? MAPCOLUMN(data-area)? MAPHEIGHT(data-area)?
  MAPLINE(data-area)? MAPWIDTH(data-area)? MSRCONTROL(data-area)?
  NATLANGINUSE(data-area)? NETNAME(data-area)? NEXTTRANSID(data-area)?
  NUMTAB(data-area)? OPCLASS(data-area)? OPERKEYS(data-area)?
  OPID(data-area)? OPSECURITY(data-area)? ORGABCODE(data-area)?
  OUTLINE(data-area)? PAGENUM(data-area)? PARTNPAGE(data-area)?
  PARTNS(data-area)? PARTNSET(data-area)? PRINSYSID(data-area)?
  PROCESS(data-area)? PROCESSTYPE(data-area)? PROGRAM(data-area)?
  PS(data-area)? QNAME(data-area)? RESSEC(data-area)? RESTART(data-area)?
  RETURNPROG(data-area)? SCRNHT(data-area)? SCRNWD(data-area)?
  SIGDATA(data-area)? SOSI(data-area)? STARTCODE(data-area)?
  STATIONID(data-area)? SYSID(data-area)? TASKPRIORITY(data-area)?
  TCTUALENG(data-area)? TELLERID(data-area)? TERMCODE(data-area)?
  TERMPRIORITY(data-area)? TEXTKYBD(data-area)? TEXTPRINT(data-area)?
  TRANPRIORITY(data-area)? TWALENG(data-area)? UNATTEND(data-area)?
  USERID(data-area)? USERNAME(data-area)? USERPRIORITY(data-area)?
  VALIDATION(data-area)? ASSIGN?

Runtime support : library and Qix emulator

5.7. BIF DEEDIT

Supported syntax:

BIF
  DEEDIT FIELD(data-area) LENGTH(data-value)?

Runtime support : library

5.8. BIF DIGEST

Supported syntax:

BIF
  DIGEST RECORD(data-value) RECORDLEN(data-value)
  [ HEX | BINARY | BASE64 | DIGESTTYPE(cvda) ]? RESULT(data-area)

Runtime support : none

5.9. BUILD ATTACH

Supported syntax:

BUILD
  ATTACH ATTACHID(name) RPROCESS(name)? RRESOURCE(name)? DATASTR(data-value)?
  RECFM(data-value)?

Runtime support : none

5.10. CANCEL

Supported syntax:

CANCEL
  REQID(name) SYSID(systemname)? TRANSID(name)??

Runtime support : none

5.11. CANCEL (BTS)

Supported syntax:

CANCEL
  [ ACTIVITY(data-value) | ACQACTIVITY | ACQPROCESS ]

Runtime support : none

5.12. CHANGE PASSWORD

Supported syntax:

CHANGE
  PASSWORD(data-value) NEWPASSWORD(data-value) USERID(data-value)
  ESMREASON(data-area)? ESMRESP(data-area)?

Runtime support : none

5.13. CHECK ACQPROCESS

Supported syntax:

CHECK
  ACQPROCESS COMPSTATUS(cvda) ABCODE(data-area)? ABPROGRAM(data-area)?
  MODE(cvda)? SUSPSTATUS(cvda)?

Runtime support : none

5.14. CHECK ACTIVITY

Supported syntax:

CHECK
  [ ACTIVITY(data-value) | ACQACTIVITY ]? COMPSTATUS(cvda) ABCODE(data-area)?
  ABPROGRAM(data-area)? MODE(cvda)? SUSPSTATUS(cvda)?

Runtime support : none

5.15. COLLECT STATISTICS

Supported syntax:

COLLECT
  STATISTICS SET(ptr-ref)
  [ TERMINAL(data-value) | MONITOR(data-value) | DB2CONN | RECOVERY | STORAGE
  | TCPIP
  ]?

Runtime support : none

5.16. CONNECT PROCESS (APPC)

Supported syntax:

CONNECT
  PROCESS [ CONVID(name) | SESSION(name) ]
  [ ( PROCNAME(data-value) PROCLENGTH(data-value)? ) | PARTNER(name) ]?
  ( PIPLIST(data-area) PIPLENGTH(data-value)? )? SYNCLEVEL(data-value)
  STATE(cvda)?

Runtime support : none

5.17. CONVERSE

Supported syntax:

CONVERSE
  [ CONVID(name) | SESSION(name) ]? FROM(data-area)
  [ FROMLENGTH(data-value) | FROMFLENGTH(data-value) ]?
  [ INTO(data-area) | SET(ptr-ref) ]
  [ STRFIELD | ( ( ERASE [ DEFAULT | ALTERNATE ]? )? CTLCHAR(data-value)? ) ]?
  [ TOLENGTH(data-area) | TOFLENGTH(data-area) ]?
  [ MAXLENGTH(data-value) | MAXFLENGTH(data-value) ]? DEFRESP? FMH?
  NOTRUNCATE? ASIS? STATE(cvda)?

Runtime support : none

5.18. DEFINE ACTIVITY

Supported syntax:

DEFINE
  ACTIVITY(data-value) EVENT(data-value)? TRANSID(data-value)
  PROGRAM(data-value)? USERID(data-value)? ACTIVITYID(data-area)?

Runtime support : none

5.19. DEFINE COUNTER

Supported syntax:

DEFINE
  COUNTER(name) POOL(name)? ( VALUE(data-value) MINIMUM(data-value)? )?
  MAXIMUM(data-value)?

Runtime support : library

5.20. DEFINE INPUT EVENT

Supported syntax:

DEFINE
  INPUT EVENT(data-value)

Runtime support : none

5.21. DEFINE PROCESS

Supported syntax:

DEFINE
  PROCESS(data-value) PROCESSTYPE(data-value) TRANSID(data-value)
  PROGRAM(data-value)? USERID(data-value)? NOCHECK?

Runtime support : none

5.22. DEFINE TIMER

Supported syntax:

DEFINE
  TIMER(data-value) EVENT(data-value)? AFTER(data-value)
  ( DAYS(data-value)? HOURS(data-value)? MINUTES(data-value)?
    SECONDS(data-value)?
  )
DEFINE
  TIMER(data-value) EVENT(data-value)? AT
  ( HOURS(data-value)? MINUTES(data-value)? SECONDS(data-value)? )
  ( ON YEAR(data-value)
    [ ( MONTH(data-value) DAYOFMONTH(data-value) ) | DAYOFYEAR(data-value) ]
  )?

Runtime support : none

5.23. DELAY

Supported syntax:

DELAY
  [ INTERVAL(hhmmss) | TIME(hhmmss)
  | ( FOR HOURS(data-value)? MINUTES(data-value)? SECONDS(data-value)?
      MILLISECS(data-value)?
    )
  | ( UNTIL HOURS(data-value)? MINUTES(data-value)? SECONDS(data-value)? )
  ]?
  REQID(name)?

Runtime support : library and Qix emulator

5.24. DELETE

Supported syntax:

DELETE
  [ FILE(filename) | DATASET(filename) ]
  [ TOKEN(data-area)
  | ( RIDFLD(data-area)
      ( KEYLENGTH(data-value) ( GENERIC NUMREC(data-area)? )? )?
    )
  ]?
  SYSID(systemname)? NOSUSPEND? [ RRN | RBA ]?

Runtime support : none

5.25. DELETE ACTIVITY

Supported syntax:

DELETE
  ACTIVITY(data-value)

Runtime support : none

5.26. DELETE CONTAINER

Supported syntax:

DELETE
  CONTAINER(data-value) CHANNEL(data-value)?

Runtime support : none

5.27. DELETE COUNTER

Supported syntax:

DELETE
  COUNTER(name) POOL(name)?

Runtime support : library

5.28. DELETE TIMER

Supported syntax:

DELETE
  TIMER(data-value)

Runtime support : none

5.29. DELETEQ TD

Supported syntax:

DELETEQ
  TD QUEUE(name) SYSID(systemname)?

Runtime support : library

5.30. DELETEQ TS

Supported syntax:

DELETEQ
  TS? [ QUEUE(name) | QNAME(name) ] SYSID(systemname)?

Runtime support : library

5.31. DEQ

Supported syntax:

DEQ
  RESOURCE(data-area) [ UOW | LUW | MAXLIFETIME(cvda) | TASK ]?
DEQ
  RESOURCE(data-area) LENGTH(data-value)
  [ UOW | LUW | MAXLIFETIME(cvda) | TASK ]?

Runtime support : Qix emulator

5.32. DOCUMENT CREATE

Supported syntax:

DOCUMENT
  CREATE DOCTOKEN(data-area)
  [ ( [ FROM(data-area) | TEXT(data-area) | BINARY(data-area) ]
      LENGTH(data-area)
    )
  | FROMDOC(data-area) | TEMPLATE(name)
  ]?
  ( SYMBOLLIST(data-area) LISTLENGTH(data-value) DELIMITER(data-value)?
    UNESCAPED?
  )?
  DOCSIZE(data-area)? HOSTCODEPAGE(name)?

Runtime support : none

5.33. DUMP TRANSACTION

Supported syntax:

DUMP
  TRANSACTION DUMPCODE(name)
  ( FROM(data-area) [ LENGTH(data-value) | FLENGTH(data-value) ] )? COMPLETE?
  TRT?
  ( SEGMENTLIST(data-area) ( LENGTHLIST(data-area)? NUMSEGMENTS(data-area)? ) )?
  TASK? STORAGE? PROGRAM? TERMINAL? TABLES? FCT? PCT? PPT? SIT? TCT?
  DUMPID(data-area)?
DUMP
  DUMPCODE(name)
  ( FROM(data-area) [ LENGTH(data-value) | FLENGTH(data-value) ] )? COMPLETE?
  TRT? TASK? STORAGE? PROGRAM? TERMINAL? TABLES? FCT? PCT? PPT? SIT? TCT?
  DUMPID(data-area)?

Runtime support : Qix emulator

5.34. ENABLE

Supported syntax:

ENABLE
  PROGRAM(data-value) EXIT(data-value)? START? GALENGTH(data-value)?

Runtime support : none

5.35. ENDBR

Supported syntax:

ENDBR
  [ FILE(filename) | DATASET(filename) ] REQID(data-value)?
  SYSID(systemname)?

Runtime support : library

5.36. ENDBROWSE ACTIVITY

Supported syntax:

ENDBROWSE
  ACTIVITY BROWSETOKEN(data-value)

Runtime support : none

5.37. ENDBROWSE CONTAINER

Supported syntax:

ENDBROWSE
  CONTAINER BROWSETOKEN(data-value)

Runtime support : none

5.38. ENQ

Supported syntax:

ENQ
  RESOURCE(data-area) [ UOW | LUW | MAXLIFETIME(cvda) | TASK ]? NOSUSPEND?
ENQ
  RESOURCE(data-area) LENGTH(data-value)
  [ UOW | LUW | MAXLIFETIME(cvda) | TASK ]? NOSUSPEND?

Runtime support : Qix emulator

5.39. ENTER TRACENUM

Supported syntax:

ENTER
  [ TRACENUM(data-value) | TRACEID(data-value) ]
  ( FROM(data-area) LENGTH(data-value)? FROMLENGTH(data-area)? )?
  RESOURCE(name)? EXCEPTION?

Runtime support : none

5.40. EXTRACT ATTACH

Supported syntax:

EXTRACT
  ATTACH SESSION(name)? RECFM(data-area)?

Runtime support : none

5.41. EXTRACT EXIT

Supported syntax:

EXTRACT
  EXIT PROGRAM(data-value) ENTRYNAME(data-value)? GALENGTH(data-area)
  GASET(ptr-ref)

Runtime support : none

5.42. EXTRACT LOGONMSG

Supported syntax:

EXTRACT
  LOGONMSG INTO(data-area) LENGTH(data-area)

Runtime support : none

5.43. EXTRACT PROCESS (APPC)

Supported syntax:

EXTRACT
  PROCESS MAXPROCLEN(data-value)? CONVID(name)? PROCNAME(data-area)?
  PROCLENGTH(data-value)? SYNCLEVEL(data-area)? PIPLIST(ptr-ref)?
  PIPLENGTH(data-area)?

Runtime support : none

5.44. EXTRACT STATISTICS

Supported syntax:

EXTRACT
  STATISTICS RESTYPE(cvda) SET(ptr-ref)

Runtime support : none

5.45. FORMATTIME

Supported syntax:

FORMATTIME
  ABSTIME(data-area) DATE(data-area)? FULLDATE(data-area)?
  DATEFORM(data-area)? DATESEP(data-value)? DAYCOUNT(data-area)?
  DAYOFMONTH(data-area)? DAYOFWEEK(data-area)? DDMMYY(data-area)?
  DDMMYYYY(data-area)? MILLISECONDS(data-area)? MMDDYY(data-area)?
  MMDDYYYY(data-area)? MONTHOFYEAR(data-area)? MONTH(data-area)?
  TIME(data-area)? TIMESEP(data-value)? YEAR(data-area)? YYDDD(data-area)?
  YYDDMM(data-area)? YYMMDD(data-area)? YYYYDDD(data-area)?
  YYYYDDMM(data-area)? YYYYMMDD(data-area)? DATESTRING(data-area)?
  STRINGFORMAT(cvda)? ( DATASTRING(data-area) STRINGZONE(cvda)? )?

Runtime support : library

5.46. FREE

Supported syntax:

FREE
  [ CONVID(name) | SESSION(name) ]? STATE(cvda)?

Runtime support : none

5.47. FREEMAIN

Supported syntax:

FREEMAIN
  [ DATA(data-area) | DATAPOINTER(ptr-value) ]

Runtime support : library

5.48. GET COUNTER

Supported syntax:

GET
  COUNTER(name) POOL(name)? VALUE(data-area)
  ( INCREMENT(data-value) REDUCE? )? WRAP? COMPAREMIN(data-value)?
  COMPAREMAX(data-value)?

Runtime support : library

5.49. GET CONTAINER

Supported syntax:

GET
  CONTAINER(data-value)
  [ ( INTO(data-area)
      ( [ FLENGTH(data-area) | LENGTH(data-area) ] BYTEOFFSET(data-area)? )?
    )
  | ( SET(ptr-ref) [ FLENGTH(data-area) | LENGTH(data-area) ]
      BYTEOFFSET(data-area)?
    )
  | ( NODATA [ FLENGTH(data-area) | LENGTH(data-area) ] )
  ]
  [ [ CHANNEL(data-value)?
    | [ INTOCCSID(data-value) | INTOCODEPAGE(data-value)
      | ( CONVERTST(cvda) CCSID(data-area)? )
      ]?
    ]
  | [ ACTIVITY(data-value) | ACQACTIVITY | PROCESS | ACQPROCESS ]?
  ]?

Runtime support : library

5.50. GETMAIN

Supported syntax:

GETMAIN
  SET(ptr-ref) [ ( FLENGTH(data-value) BELOW? ) | LENGTH(data-value) ]
  INITIMG(data-value)? SHARED? NOSUSPEND? [ USERDATAKEY | CICSDATAKEY ]?

Runtime support : library

5.51. GETNEXT ACTIVITY

Supported syntax:

GETNEXT
  ACTIVITY(data-area) BROWSETOKEN(data-value) ACTIVITYID(data-area)?
  LEVEL(data-area)?

Runtime support : none

5.52. GETNEXT CONTAINER

Supported syntax:

GETNEXT
  CONTAINER(data-area) BROWSETOKEN(data-value)

Runtime support : none

5.53. HANDLE ABEND

Supported syntax:

HANDLE
  ABEND [ CANCEL | PROGRAM(name) | LABEL(label) | RESET ]?

Runtime support : library

5.54. HANDLE AID

Supported syntax:

Runtime support : library and Qix emulator

5.55. HANDLE CONDITION

Supported syntax:

Runtime support : library

5.56. IGNORE CONDITION

Supported syntax:

Runtime support : library

5.57. INQUIRE ACTIVITYID

Supported syntax:

INQUIRE
  ACTIVITYID(data-value) ABCODE(data-area)? ABPROGRAM(data-area)?
  ACTIVITY(data-area)? COMPSTATUS(cvda)? EVENT(data-area)? MODE(cvda)?
  PROCESS(data-area)? PROCESSTYPE(data-area)? PROGRAM(data-area)?
  SUSPSTATUS(cvda)? TRANSID(data-area)? USERID(data-area)?

Runtime support : none

5.58. INQUIRE ASSOCIATION

Supported syntax:

INQUIRE
  ASSOCIATION(data-value) ( APPLID(data-area)? FACILTYPE(cvda)? )

Runtime support : none

5.59. INQUIRE CONNECTION

Supported syntax:

INQUIRE
  CONNECTION(name) ACCESSMETHOD(data-value)? ACQSTATUS(data-value)?
  AIDCOUNT(data-value)? AUTOCONNECT(data-value)? CHANGEAGENT(data-value)?
  CHANGEAGREL(data-value)? CHANGETIME(data-value)? CHANGEUSRID(data-value)?
  CONNSTATUS(data-value)? CONNTYPE(data-value)? CQP(data-value)?
  DEFINESOURCE(data-value)? DEFINETIME(data-value)? EXITTRACING(data-value)?
  GRNAME(data-value)? INSTALLAGENT(data-value)? INSTALLTIME(data-value)?
  INSTALLUSRID(data-value)? LINKSYSTEM(data-value)? MEMBERNAME(data-value)?
  NETNAME(data-value)? NQNAME(data-value)? PENDSTATUS(data-value)?
  PROTOCOL(data-value)? RECEIVECOUNT(data-value)? RECOVSTATUS(data-value)?
  REMOTENAME(data-value)? REMOTESYSNET(data-value)? REMOTESYSTEM(data-value)?
  SENDCOUNT(data-value)? SERVSTATUS(data-value)? XLNSTATUS(data-value)?
  ZCPTRACING(data-value)?

Runtime support : none

5.60. INQUIRE DB2ENTRY

Supported syntax:

INQUIRE
  DB2ENTRY(data-value) PLAN(data-area)?

Runtime support : none

5.61. INQUIRE END

Supported syntax:

INQUIRE
  TSQNAME END

Runtime support : none

5.62. INQUIRE EXITPROGRAM

Supported syntax:

INQUIRE
  EXITPROGRAM(data-value) EXIT(data-value)? ENTRYNAME(data-area)?
  APIST(cvda)? CONCURRENTST(cvda)? CONNECTST(cvda)? ENTRY(ptr-ref)?
  FORMATEDFST(cvda)? GAENTRYNAME(data-area)? GALENGTH(data-area)?
  GAUSECOUNT(data-area)? INDOUBTST(cvda)? NUMEXITS(data-area)?
  PURGEABLEST(cvda)? QUALIFIER(data-area)? SHUTDOWNST(cvda)? SPIST(cvda)?
  STARTSTATUS(cvda)? TALENGTH(data-area)? TASKSTARTST(cvda)?
  USECOUNT(data-area)?

Runtime support : none

5.63. INQUIRE FILE

Supported syntax:

INQUIRE
  [ FILE(filename) | DATASET(filename) ] ACCESSMETHOD(cvda)? ADD(cvda)?
  BASEDSNAME(data-area)? BLOCKFORMAT(cvda)? BLOCKKEYLEN(data-area)?
  BLOCKSIZE(data-area)? BROWSE(cvda)? CFDTPOOL(data-area)? CHANGEAGENT(cvda)?
  CHANGEAGREL(data-area)? CHANGETIME(data-area)? CHANGEUSRID(data-area)?
  DEFINESOURCE(data-area)? DEFINETIME(data-area)? DELETE(cvda)?
  DISPOSITION(cvda)? [ DSNAME(data-area) | OBJECTNAME(data-area) ]?
  EMPTYSTATUS(cvda)? ENABLESTATUS(cvda)? EXCLUSIVE(cvda)? FWDRECSTATUS(cvda)?
  INSTALLAGENT(cvda)? INSTALLTIME(data-area)? INSTALLUSRID(data-area)?
  JOURNALNUM(data-area)? KEYLENGTH(data-area)? KEYPOSITION(data-area)?
  LOADTYPE(cvda)? LSRPOOLNUM(data-area)? MAXNUMRECS(data-area)? OBJECT(cvda)?
  OPENSTATUS(cvda)? RBATYPE(cvda)? READ(cvda)? READINTEG(cvda)?
  RECORDFORMAT(cvda)? RECORDSIZE(data-area)? RECOVSTATUS(cvda)?
  RELTYPE(cvda)? REMOTENAME(data-area)? REMOTESYSTEM(data-area)?
  REMOTETABLE(cvda)? RLSACCESS(cvda)? STRINGS(data-area)? TABLE(cvda)?
  TABLENAME(data-area)? TYPE(cvda)? UPDATE(cvda)? UPDATEMODEL(cvda)?

Runtime support : none

5.64. INQUIRE IPCONN

Supported syntax:

INQUIRE
  IPCONN(cvda) APPLID(data-area)? AUTOCONNECT(cvda)? CERTIFICATE(data-area)?
  CHANGEAGENT(data-area)? CHANGEAGREL(data-area)? CHANGETIME(data-area)?
  CHANGEUSRID(data-area)? CIPHERS(data-area)? CLIENTLOC(data-area)?
  CONNSTATUS(cvda)? DEFINESOURCE(data-area)? DEFINETIME(data-area)? HA(cvda)?
  HOST(data-area)? HOSTTYPE(cvda)? IDPROP(cvda)? IPFAMILY(cvda)?
  IPRESOLVED(data-area)? INSTALLAGENT(cvda)? INSTALLTIME(data-area)?
  INSTALLUSRID(data-area)? LINKAUTH(cvda)? MAXQTIME(data-area)?
  MIRRORLIFE(cvda)? NETWORKID(data-area)? NUMCIPHERS(data-area)?
  PARTNER(data-area)? PENDSTATUS(cvda)? PORT(data-area)?
  QUEUELIMIT(data-area)? RECEIVECOUNT(data-area)? RECOVSTATUS(cvda)?
  SECURITYNAME(data-area)? SENDCOUNT(data-area)? SERVSTATUS(cvda)?
  SSLTYPE(cvda)? TCPIPSERVICE(data-area)? USERAUTH(cvda)?

Runtime support : none

5.65. INQUIRE NETNAME

Supported syntax:

INQUIRE
  NETNAME(data-value) REMOTESYSTEM(data-area)? MODENAME(data-area)?

Runtime support : none

5.66. INQUIRE PROGRAM

Supported syntax:

INQUIRE
  PROGRAM(name) LOADPOINT(ptr-ref)? LENGTH(data-value)? APIST(data-value)?
  CEDFSTATUS(data-value)? CHANGEAGENT(data-value)? CHANGEAGREL(data-area)?
  CHANGETIME(data-area)? CHANGEUSRID(data-value)? COBOLTYPE(data-value)?
  COPY(data-value)? CONCURRENCY(data-value)? DATALOCATION(data-value)?
  DEFINESOURCE(data-area)? DEFINETIME(data-area)? DYNAMSTATUS(data-value)?
  ENTRYPOINT(ptr-ref)? EXECKEY(data-value)? EXECUTIONSET(data-value)?
  HOLDSTATUS(data-value)? INSTALLAGENT(data-value)? INSTALLTIME(data-area)?
  INSTALLUSRID(data-value)? JVMCLASS(data-value)? JVMPROFILE(data-value)?
  LANGDEDUCED(data-value)? LANGUAGE(data-value)? LIBRARY(data-value)?
  LIBRARYDSN(data-value)? LPASTATUS(data-value)? PROGTYPE(data-value)?
  REMOTENAME(data-value)? REMOTESYSTEM(data-value)? RESCOUNT(data-value)?
  RUNTIME(data-value)? SHARESTATUS(data-value)? STATUS(data-value)?
  TRANSID(data-value)? USECOUNT(data-value)?

Runtime support : library

5.67. INQUIRE START

Supported syntax:

INQUIRE
  TSQNAME START AT(data-value)?

Runtime support : none

5.68. INQUIRE STORAGE

Supported syntax:

INQUIRE
  STORAGE
  [ ( ADDRESS(ptr-value) ELEMENT(ptr-ref)? FLENGTH(data-area)? )
  | ( NUMELEMENTS(data-area) ELEMENTLIST(ptr-ref)? LENGTHLIST(ptr-ref)?
      TASK(data-value)?
    )
  ]

Runtime support : none

5.69. INQUIRE SYSTEM

Supported syntax:

INQUIRE
  SYSTEM AKP(data-area)? APPLID(data-area)? CDSASIZE(data-area)?
  CICSSTATUS(cvda)? CICSSYS(data-area)? CMDPROTECT(cvda)?
  DATEFORM(data-area)? DFLTREMSYS(data-area)? DFLTUSER(data-area)?
  DSALIMIT(data-area)? DTRPROGRAM(data-area)? DUMPING(cvda)?
  ECDSASIZE(data-area)? EDSALIMIT(data-area)? ERDSASIZE(data-area)?
  ESDSASIZE(data-area)? EUDSASIZE(data-area)?
  [ GMMTEXT(data-area) | GMMLENGTH(data-area) ]? GMMTRANID(data-area)?
  INITSTATUS(cvda)? INTROINTVL(data-area)? JOBNAME(data-area)?
  LOCALE(data-area)? MAXREGIONPOOL(data-area)? MAXSERVER(data-area)?
  MAXTASKS(data-area)? MAXTASKSHPOOL(data-area)? MINSERVER(data-area)?
  MROBATCH(data-area)? OPREL(data-area)? OPSYS(data-area)?
  PROGAUTOCTLG(cvda)? PROGAUTOEXIT(data-area)? PROGAUTOINST(cvda)?
  PRTYAGING(data-area)? RDSASIZE(data-area)? REENTPROTECT(cvda)?
  REGIONTHRESH(data-area)? RELEASE(data-area)? RUNAWAY(data-area)?
  SCANDELAY(data-area)? SDSASIZE(data-area)? SDTRAN(data-area)?
  SECURITYMGR(cvda)? SHUTSTATUS(cvda)? SOSSTATUS(cvda)? STARTUP(cvda)?
  STARTUPDATE(data-area)? STOREPROTECT(cvda)? SYSID(data-area)?
  TASKSHTHRESH(data-area)? TIME(data-area)? TRANISOLATE(cvda)?
  UDSASIZE(data-area)? XPRECVTIMEOUT(ptr-ref)? XRFSTATUS(cvda)?
  MEMLIMIT(data-area)? ETDSASIZE(data-area)? GCDSASIZE(data-area)?
  GSDSASIZE(data-area)? GUDSASIZE(data-area)? CICSTSLEVEL(data-area)?
  OSLEVEL(data-area)? RLSSTATUS(cvda)? ACTOPENTCBS(data-area)?
  AIDCOUNT(data-area)? COLDSTATUS(cvda)? DB2CONN(data-area)? DEBUGTOOL(cvda)?
  DSRTPROGRAM(data-area)? FORCEQR(cvda)? LASTCOLDTIME(data-area)?
  LASTEMERTIME(data-area)? LASTINITTIME(data-area)? LASTWARMTIME(data-area)?
  LOGDEFER(data-area)? MAXOPENTCBS(data-area)? MESSAGECASE(cvda)?
  MQCONN(data-area)? MVSSMFID(data-area)? MVSSYSNAME(data-area)?
  PLTPIUSR(data-area)? REGIONUSERID(data-area)? SOSABOVEBAR(cvda)?
  SOSABOVELINE(cvda)? SOSBELOWLINE(cvda)?

Runtime support : none

5.70. INQUIRE TASK

Supported syntax:

INQUIRE
  TASK(data-value) ACTIVITY(data-area)? ACTIVITYID(data-area)?
  ATTACHTIME(data-value)? BRFACILITY(data-area)? BRIDGE(data-value)?
  CMDSEC(data-value)? CURRENTPROG(name)? DB2PLAN(data-area)?
  DTIMEOUT(data-value)? DUMPING(data-value)? FACILITY(data-value)?
  FACILITYTYPE(data-value)? IDENTIFIER(data-value)? INDOUBT(data-value)?
  INDOUBTMINS(data-value)? INDOUBTWAIT(data-value)? IPFACILITIES(ptr-ref)?
  IPFLISTSIZE(data-value)? ISOLATEST(data-value)? PRIORITY(data-value)?
  PROCESS(data-value)? PROCESSTYPE(data-value)? PROFILE(data-value)?
  PROGRAM(data-value)? PURGEABILITY(data-value)? REMOTENAME(data-value)?
  REMOTESYSTEM(data-value)? RESSEC(data-value)? ROUTING(data-value)?
  RTIMEOUT(data-value)? RUNAWAY(data-value)? RUNSTATUS(data-value)?
  SCRNSIZE(data-value)? STARTCODE(data-value)? STORAGECLEAR(data-value)?
  SUSPENDTIME(data-value)? SUSPENDTYPE(data-value)? SUSPENDVALUE(data-value)?
  TASKDATAKEY(data-value)? TASKDATALOC(data-value)? TCB(data-value)?
  TCLASS(data-value)? TRACING(data-value)? TRANCLASS(data-value)?
  TRANPRIORITY(data-value)? TRANSACTION(data-value)? TRPROF(data-value)?
  TWASIZE(data-value)? UOW(data-area)? USERID(data-value)?
  RECUNITID(data-area)?

Runtime support : none

5.71. INQUIRE TASK LIST

Supported syntax:

INQUIRE
  TASK LIST? LISTSIZE(data-area) DISPATCHABLE? RUNNING? SUSPENDED?
  ( SET(ptr-ref) SETTRANSID(ptr-ref)? )?

Runtime support : none

5.72. INQUIRE TDQUEUE

Supported syntax:

INQUIRE
  TDQUEUE(data-value) ATITRANID(data-area)? RECORDLENGTH(data-area)?
  RECORDFORMAT(cvda)?

Runtime support : none

5.73. INQUIRE TERMINAL

Supported syntax:

INQUIRE
  TERMINAL(data-value) NETNAME(data-area)? ACCESSMETHOD(cvda)?
  ACQSTATUS(cvda)? AIDCOUNT(data-area)? ALTPAGEHT(data-area)?
  ALTPAGEWD(data-area)? ALTPRINTER(data-area)? ALTPRTCOPYST(cvda)?
  ALTSCRNHT(data-area)? ALTSCRNWD(data-area)? ALTSUFFIX(data-area)?
  APLKYBDST(cvda)? APLTEXTST(cvda)? ASCII(cvda)? ATISTATUS(cvda)?
  AUDALARMST(cvda)? AUTOCONNECT(cvda)? BACKTRANSST(cvda)? COLORST(cvda)?
  CONSOLE(data-area)? COPYST(cvda)? CORRELID(data-area)? CREATESESS(cvda)?
  DATASTREAM(cvda)? DEFPAGEHT(data-area)? DEFPAGEWD(data-area)?
  DEFSCRNHT(data-area)? DEFSCRNWD(data-area)? DEVICE(cvda)? DISCREQST(cvda)?
  DUALCASEST(cvda)? EXITTRACING(cvda)? EXTENDEDDSST(cvda)? FMHPARMST(cvda)?
  FORMFEEDST(cvda)? GCHARS(data-area)? GCODES(data-area)? HFORMST(cvda)?
  HILIGHTST(cvda)? KATAKANAST(cvda)? LIGHTPENST(cvda)? LINKSYSTEM(data-area)?
  MAPNAME(data-area)? MAPSETNAME(data-area)? MODENAME(data-area)?
  MSRCONTROLST(cvda)? NATLANG(data-area)? NATURE(cvda)?
  NEXTTRANSID(data-area)? NQNAME(data-area)? OBFORMATST(cvda)?
  OBOPERIDST(cvda)? OPERID(data-area)? OUTLINEST(cvda)? PAGEHT(data-area)?
  PAGESTATUS(cvda)? PAGEWD(data-area)? PARTITIONSST(cvda)?
  PRINTADAPTST(cvda)? PRINTER(data-area)? PROGSYMBOLST(cvda)?
  PRTCOPYST(cvda)? QUERYST(cvda)? RELREQST(cvda)? REMOTENAME(data-area)?
  REMOTESYSNET(data-area)? REMOTESYSTEM(data-area)? SCRNHT(data-area)?
  SCRNWD(data-area)? SECURITY(cvda)? SERVSTATUS(cvda)? SESSIONTYPE(cvda)?
  SIGNONSTATUS(cvda)? SOSIST(cvda)? TASKID(data-area)?
  TCAMCONTROL(data-area)? TERMMODEL(data-area)? TERMPRIORITY(data-area)?
  TERMSTATUS(cvda)? TEXTKYBDST(cvda)? TEXTPRINTST(cvda)? TRACING(cvda)?
  TRANSACTION(data-area)? TTISTATUS(cvda)? UCTRANST(cvda)? USERAREA(ptr-ref)?
  USERAREALEN(data-area)? USERID(data-area)? USERNAME(data-area)?
  VALIDATIONST(cvda)? VFORMST(cvda)? ZCPTRACING(cvda)?

Runtime support : Qix emulator

5.74. INQUIRE TRANDUMPCODE

Supported syntax:

INQUIRE
  TRANDUMPCODE(data-value) CHANGEAGENT(cvda)? CHANGEAGREL(data-area)?
  CHANGETIME(data-area)? CHANGEUSRID(data-area)? CURRENT(data-area)?
  DEFINESOURCE(data-area)? DEFINETIME(data-area)? DUMPSCOPE(cvda)?
  INSTALLAGENT(cvda)? INSTALLTIME(data-area)? INSTALLUSRID(data-area)?
  MAXIMUM(data-area)? SHUTOPTION(cvda)? SYSDUMPING(cvda)? TRANDUMPING(cvda)?

Runtime support : none

5.75. INQUIRE TRANSACTION

Supported syntax:

INQUIRE
  TRANSACTION(data-value) CMDSEC(cvda)? DTIMEOUT(data-area)? DTB(cvda)?
  DUMPING(cvda)? ISOLATEST(cvda)? PRIORITY(data-area)? PROFILE(data-area)?
  PROGRAM(data-area)? PURGEABILITY(cvda)? REMOTENAME(data-area)?
  REMOTESYSTEM(data-area)? RESSEC(cvda)? ROUTING(cvda)? RTIMEOUT(data-area)?
  RUNAWAY(data-area)? RUNAWAYTYPE(cvda)? SCRNSIZE(cvda)? SHUTDOWN(cvda)?
  STATUS(cvda)? STORAGECLEAR(cvda)? TASKDATAKEY(cvda)? TASKDATALOC(cvda)?
  TCLASS(data-area)? TRANCLASS(data-area)? TRACING(cvda)? TRPROF(data-area)?
  TWASIZE(data-area)?

Runtime support : none

5.76. INQUIRE TSQUEUE

Supported syntax:

INQUIRE
  [ TSQUEUE(data-area) | TSQNAME(data-area) ] NEXT LASTUSEDINT(data-area)?
  LOCATION(data-area)? NUMITEMS(data-area)?
INQUIRE
  [ TSQUEUE(data-area) | TSQNAME(data-area) ] LASTUSEDINT(data-area)?
  LOCATION(data-area)? NUMITEMS(data-area)?

Runtime support : none

5.77. INQUIRE UOW

Supported syntax:

INQUIRE
  UOW(data-area) AGE(data-area)? LINK(data-area)? NETNAME(data-area)?
  NETUOWID(data-area)? OTSTID(data-area)? SYSID(data-area)?
  TASKID(data-area)? TERMID(data-area)? TRANSID(data-area)? UOWSTATE(cvda)?
  USERID(data-area)? WAITCAUSE(cvda)? WAITSTATE(cvda)?

Runtime support : none

5.78. INQUIRE URIMAP

Supported syntax:

INQUIRE
  URIMAP(data-value) WEBSERVICE(data-area)?

Runtime support : none

5.79. INQUIRE WEBSERVICE

Supported syntax:

INQUIRE
  WEBSERVICE(name) BINDING(data-area)?

Runtime support : none

5.80. INVOKE SERVICE

Supported syntax:

INVOKE
  [ SERVICE(data-value) | WEBSERVICE(data-value) ] CHANNEL(data-value)
  OPERATION(data-value) [ URI(data-value) | URIMAP(data-value) ]?
  ( SCOPE(data-value) SCOPELEN(data-value)? )?

Runtime support : none

5.81. ISSUE (APPC)

Supported syntax:

ISSUE
  [ PRINT | EODS ]
ISSUE
  [ ABEND | ERROR | CONFIRMATION | PREPARE ] CONVID(name)? STATE(cvda)?
ISSUE
  DISCONNECT SESSION(name)?
ISSUE
  ERASEAUP WAIT?
ISSUE
  SIGNAL [ ( CONVID(name)? STATE(cvda)? ) | SESSION(name) ]

Runtime support : none

Supported syntax:

LINK
  PROGRAM(name)
  [ ( COMMAREA(data-area) LENGTH(data-value)? DATALENGTH(data-value)? )
  | CHANNEL(name)
  ]?
  [ ( INPUTMSG(data-area) INPUTMSGLEN(data-value)? )
  | ( SYSID(systemname)? SYNCONRETURN? TRANSID(name)? )
  ]?
  ( RETCODE(data-area) APPLID(name) )?

Runtime support : library

5.83. LOAD

Supported syntax:

LOAD
  PROGRAM(name) SET(ptr-ref)? [ LENGTH(data-area) | FLENGTH(data-area) ]?
  ENTRY(ptr-ref)? HOLD?

Runtime support : none

5.84. MONITOR

Supported syntax:

MONITOR
  POINT(data-value) DATA1(data-area)? DATA2(data-area)? ENTRYNAME(data-area)?

Runtime support : library

5.85. MOVE CONTAINER

Supported syntax:

MOVE
  CONTAINER(data-value)? AS(data-value)? CHANNEL(data-value)?
  TOCHANNEL(data-value)?

Runtime support : none

5.86. POP HANDLE

Supported syntax:

POP
  HANDLE

Runtime support : library

5.87. POST

Supported syntax:

POST
  [ TIME(data-value) | INTERVAL(data-value)
  | ( AFTER HOURS(data-value)? MINUTES(data-value)? SECONDS(data-value)? )
  | ( AT HOURS(data-value)? MINUTES(data-value)? SECONDS(data-value)? )
  ]?
  SET(ptr-ref) REQID(name)?

Runtime support : none

5.88. PURGE MESSAGE

Supported syntax:

PURGE
  MESSAGE

Runtime support : none

5.89. PUSH HANDLE

Supported syntax:

PUSH
  HANDLE

Runtime support : library

5.90. PUT CONTAINER

Supported syntax:

PUT
  CONTAINER(data-value) CHANNEL(data-value)? FROM(data-area)
  [ FLENGTH(data-value) | LENGTH(data-value) ]?
  [ BIT | DATATYPE(cvda) | CHAR ]?
  [ FROMCCSID(data-value) | FROMCODEPAGE(data-value) ]? APPEND?

Runtime support : library

5.91. PUT CONTAINER (BTS)

Supported syntax:

PUT
  CONTAINER(data-value)
  [ ACTIVITY(data-value) | ACQACTIVITY | PROCESS | ACQPROCESS ]?
  FROM(data-area) FLENGTH(data-value)?

Runtime support : none

5.92. QUERY COUNTER

Supported syntax:

QUERY
  COUNTER(name) POOL(name)? VALUE(data-area)? MINIMUM(data-area)?
  MAXIMUM(data-area)?

Runtime support : none

5.93. QUERY SECURITY

Supported syntax:

QUERY
  SECURITY RESTYPE(data-value) RESID(data-value) LOGMESSAGE(cvda)?
  READ(cvda)? UPDATE(cvda)? CONTROL(cvda)? ALTER(cvda)? NOLOG?
QUERY
  SECURITY RESCLASS(data-value) RESIDLENGTH(data-value) RESID(data-value)
  LOGMESSAGE(cvda)? READ(cvda)? UPDATE(cvda)? CONTROL(cvda)? ALTER(cvda)?
  NOLOG?

Runtime support : none

5.94. READ

Supported syntax:

READ
  [ FILE(filename) | DATASET(filename) ]
  [ UNCOMMITTED | CONSISTENT | REPEATABLE | ( UPDATE TOKEN(data-area)? ) ]?
  [ INTO(data-area) | SET(ptr-ref) ] RIDFLD(data-area)
  ( KEYLENGTH(data-value) GENERIC? )? SYSID(systemname)? LENGTH(data-area)?
  [ DEBKEY | DEBREC | RBA | RRN | XRBA ]? [ EQUAL | GTEQ ]? NOSUSPEND?

Runtime support : none

5.95. READNEXT

Supported syntax:

READNEXT
  [ FILE(filename) | DATASET(filename) ] [ INTO(data-area) | SET(ptr-ref) ]
  [ UNCOMMITTED | CONSISTENT | REPEATABLE | ( UPDATE TOKEN(data-area)? ) ]?
  RIDFLD(data-area)? KEYLENGTH(data-value)? REQID(data-value)?
  SYSID(systemname)? LENGTH(data-area)? [ RBA | RRN | XRBA ]? NOSUSPEND?

Runtime support : none

5.96. READPREV

Supported syntax:

READPREV
  [ FILE(filename) | DATASET(filename) ] [ INTO(data-area) | SET(ptr-ref) ]
  [ UNCOMMITTED | CONSISTENT | REPEATABLE | ( UPDATE TOKEN(data-area)? ) ]?
  RIDFLD(data-area)? KEYLENGTH(data-value)? REQID(data-value)?
  SYSID(systemname)? LENGTH(data-area)? [ RBA | RRN | XRBA ]? NOSUSPEND?

Runtime support : none

5.97. READQ TD

Supported syntax:

READQ
  TD QUEUE(name) [ INTO(data-area) | SET(ptr-ref) ] LENGTH(data-area)?
  SYSID(systemname)? NOSUSPEND?

Runtime support : library

5.98. READQ TS

Supported syntax:

READQ
  TS? [ QUEUE(name) | QNAME(name) ] [ INTO(data-area) | SET(ptr-ref) ]
  LENGTH(data-area)? NUMITEMS(data-area)? [ NEXT | ITEM(data-value) ]?
  SYSID(systemname)?

Runtime support : library

5.99. RECEIVE (APPC)

Supported syntax:

RECEIVE
  [ CONVID(name) | SESSION(name) ]? INTO(data-area)?
  [ LENGTH(data-area) | FLENGTH(data-area) ]?
  [ MAXLENGTH(data-value) | MAXFLENGTH(data-value) ]? BUFFER? ASIS?
  NOTRUNCATE? STATE(cvda)?
RECEIVE
  [ CONVID(name) | SESSION(name) ]? SET(ptr-ref)
  [ LENGTH(data-area) | FLENGTH(data-area) ]
  [ MAXLENGTH(data-value) | MAXFLENGTH(data-value) ]? BUFFER? ASIS?
  NOTRUNCATE? STATE(cvda)?

Runtime support : none

5.100. RECEIVE MAP

Supported syntax:

RECEIVE
  MAP(name) MAPSET(name)? INTO(data-area)?
  [ ( TERMINAL? ASIS? INPARTN(name)? ) | ( FROM(data-area) LENGTH(data-value)? ) ]
RECEIVE
  MAP(name) MAPSET(name)? SET(ptr-ref)
  [ ( TERMINAL? ASIS? INPARTN(name)? ) | ( FROM(data-area) LENGTH(data-value)? ) ]

Runtime support : Qix emulator

5.101. RECEIVE MAP MAPPINGDEV

Supported syntax:

RECEIVE
  MAP(name) MAPPINGDEV(data-value) FROM(data-area) LENGTH(data-area)?
  MAPSET(name)? INTO(data-area)?
RECEIVE
  MAP(name) MAPPINGDEV(data-value) FROM(data-area) LENGTH(data-area)?
  MAPSET(name)? SET(ptr-ref)

Runtime support : none

5.102. RECEIVE PARTN

Supported syntax:

RECEIVE
  PARTN(data-area) [ INTO(data-area) | SET(ptr-ref) ] LENGTH(data-area) ASIS?

Runtime support : none

5.103. RELEASE

Supported syntax:

RELEASE
  PROGRAM(name)

Runtime support : none

5.104. RESET ACQPROCESS

Supported syntax:

RESET
  ACQPROCESS

Runtime support : none

5.105. RESET ACTIVITY

Supported syntax:

RESET
  ACTIVITY(data-value)

Runtime support : none

5.106. RESETBR

Supported syntax:

RESETBR
  [ FILE(filename) | DATASET(filename) ] RIDFLD(data-area)
  ( KEYLENGTH(data-value) GENERIC? )? SYSID(systemname)? [ EQUAL | GTEQ ]?
  [ RBA | RRN | XRBA ]?

Runtime support : library

5.107. RESUME

Supported syntax:

RESUME
  [ ACTIVITY(data-value) | ACQACTIVITY | ACQPROCESS ]

Runtime support : none

5.108. RETRIEVE

Supported syntax:

RETRIEVE
  [ INTO(data-area) | SET(ptr-ref) ] LENGTH(data-area)? RTRANSID(data-area)?
  RTERMID(data-area)? QUEUE(data-area)? WAIT?

Runtime support : Qix emulator

5.109. RETRIEVE REATTACH EVENT

Supported syntax:

RETRIEVE
  REATTACH EVENT(data-area) EVENTTYPE(cvda)?

Runtime support : none

5.110. RETURN

Supported syntax:

RETURN
  ( TRANSID(name)
    [ ( COMMAREA(data-area) LENGTH(data-value)? ) | CHANNEL(name) ]?
    IMMEDIATE?
  )?
  ( INPUTMSG(data-area) INPUTMSGLEN(data-value)? )? ENDACTIVITY?

Runtime support : library and Qix emulator

5.111. REWIND COUNTER

Supported syntax:

REWIND
  COUNTER(name) POOL(name)? INCREMENT(data-value)?

Runtime support : none

5.112. REWRITE

Supported syntax:

REWRITE
  [ FILE(filename) | DATASET(filename) ] TOKEN(data-area)? FROM(data-area)
  LENGTH(data-value)? SYSID(systemname)? NOSUSPEND?

Runtime support : none

5.113. ROUTE

Supported syntax:

ROUTE
  [ INTERVAL(hhmmss) | TIME(hhmmss)
  | ( AFTER HOURS(data-value)? MINUTES(data-value)? SECONDS(data-value)? )
  | ( AT HOURS(data-value)? MINUTES(data-value)? SECONDS(data-value)? )
  ]?
  ERRTERM(name)? TITLE(data-area)? LIST(data-area)? OPCLASS(data-area)?
  REQID(name)? LDC(name)? NLEOM?

Runtime support : none

5.114. RUN

Supported syntax:

RUN
  [ ACTIVITY(data-value) | ACQACTIVITY | ACQPROCESS ]
  [ SYNCHRONOUS | ( ASYNCHRONOUS FACILITYTOKN(data-value)? ) ]
  INPUTEVENT(data-value)?

Runtime support : none

5.115. SEND

Supported syntax:

SEND
  FROM(data-area)? [ CONVID(name) | SESSION(name) | DEST(name) ]?
  [ LENGTH(data-value) | FLENGTH(data-value) ]? [ CONFIRM | WAIT ]?
  [ INVITE | LAST ]? ATTACHID(name)?
  ( ( ERASE [ DEFAULT | ALTERNATE ]? )? CTLCHAR(data-value)? STRFIELD? )
  DEFRESP? FMH?

Runtime support : Qix emulator

5.116. SEND CONTROL

Supported syntax:

SEND
  CONTROL CURSOR(data-value)? FORMFEED?
  [ ( ERASE [ DEFAULT | ALTERNATE ]? ) | ERASEAUP ]? PRINT? FREEKB? ALARM?
  FRSET? MSR(data-value)? [ LDC(name) | ( OUTPARTN(name)? ACTPARTN(name)? ) ]
  ACCUM? [ SET(ptr-ref) | PAGING | ( TERMINAL WAIT? LAST? ) ]? REQID(name)?
  [ HONEOM | L40 | L64 | L80 ]?

Runtime support : Qix emulator

5.117. SEND MAP

Supported syntax:

SEND
  MAP(name) MAPSET(name)?
  [ ( FROM(data-area)? DATAONLY? LENGTH(data-value)? ) | MAPONLY ]
  CURSOR(data-value)? FORMFEED?
  [ ( ERASE? [ ALTERNATE | DEFAULT ]? ) | ERASEAUP ] PRINT? FREEKB? ALARM?
  FRSET? NLEOM? MSR(data-value)? FMHPARM(name)?
  [ [ OUTPARTN(name) | ACTPARTN(name) ]? | LDC(name) ] ACCUM? TERMINAL? WAIT?
  LAST? NOFLUSH? [ HONEOM | L40 | L64 | L80 ]? PAGING?
SEND
  MAP(name) MAPSET(name)?
  [ ( FROM(data-area)? DATAONLY? LENGTH(data-value)? ) | MAPONLY ]
  CURSOR(data-value)? FORMFEED?
  [ ( ERASE? [ ALTERNATE | DEFAULT ]? ) | ERASEAUP ] PRINT? FREEKB? ALARM?
  FRSET?
SEND
  MAP(name) MAPSET(name)?
  [ ( FROM(data-area)? DATAONLY? LENGTH(data-value)? ) | MAPONLY ]
  CURSOR(data-value)? FORMFEED?
  [ ( ERASE? [ ALTERNATE | DEFAULT ]? ) | ERASEAUP ] PRINT? FREEKB? ALARM?
  FRSET? NLEOM? MSR(data-value)? FMHPARM(name)?
  [ [ OUTPARTN(name) | ACTPARTN(name) ]? | LDC(name) ]

Runtime support : Qix emulator

5.118. SEND MAP MAPPINGDEV

Supported syntax:

SEND
  MAP(name) MAPSET(name)? MAPPINGDEV(data-value) MAPONLY? FROM(data-area)?
  DATAONLY? CURSOR(data-value)? FORMFEED? ERASE? ERASEAUP? PRINT? FREEKB?
  ALARM? FRSET? SET(ptr-ref)?

Runtime support : none

5.119. SEND PAGE

Supported syntax:

SEND
  PAGE [ ( RELEASE TRANSID(name)? ) | RETAIN ]? TRAILER(data-area)?
  SET(ptr-ref)? [ ( AUTOPAGE [ CURRENT | ALL ]? ) | NOAUTOPAGE ]? OPERPURGE?
  FMHPARM(name)? LAST?

Runtime support : Qix emulator

5.120. SEND PARTNSET

Supported syntax:

SEND
  PARTNSET(name)

Runtime support : none

5.121. SEND TEXT

Supported syntax:

SEND
  TEXT FROM(data-area) LENGTH(data-value)? CURSOR(data-value)? FORMFEED?
  ( ERASE [ DEFAULT | ALTERNATE ]? )? PRINT? FREEKB? ALARM? NLEOM?
  FMHPARM(name)? [ LDC(name) | ( OUTPARTN(name)? ACTPARTN(name)? ) ]
  MSR(data-value)? ( [ PAGING | TERMINAL ]? WAIT? LAST? ) REQID(name)?
  HEADER(data-area)? TRAILER(data-area)?
  [ JUSTIFY(data-value) | JUSFIRST | JUSLAST ]? ACCUM?
  [ HONEOM | L40 | L64 | L80 ]?

Runtime support : Qix emulator

5.122. SEND TEXT MAPPED

Supported syntax:

SEND
  TEXT MAPPED FROM(data-area)? TERMINAL? PAGING? WAIT? LAST? REQID(name)?

Runtime support : none

5.123. SEND TEXT NOEDIT

Supported syntax:

SEND
  TEXT NOEDIT ( FROM(data-area) LENGTH(data-value)? )? ERASE? DEFAULT?
  ALTERNATE? PRINT? FREEKB? ALARM? OUTPARTN(name)? TERMINAL? PAGING? WAIT?
  LAST? REQID(name)? HONEOM? L40? L64? L80?

Runtime support : none

5.124. SET CONNECTION

Supported syntax:

SET
  CONNECTION(data-value)
  [ CONNSTATUS(cvda) | ACQSTATUS(cvda) | ACQUIRED | RELEASED ]?
  [ AFFINITY(cvda) | ENDAFFINITY ]?
  [ EXITTRACING(cvda) | EXITTRACE | NOEXITTRACE ]?
  [ PENDSTATUS(cvda) | NOTPENDING ]?
  [ PURGETYPE(cvda) | CANCEL | FORCECANCEL | FORCEPURGE | KILL | PURGE ]?
  [ RECOVSTATUS(cvda) | NORECOVDATA ]?
  [ SERVSTATUS(cvda) | INSERVICE | OUTSERVICE ]?
  [ UOWACTION(cvda) | BACKOUT | COMMIT | FORCEUOW | FORCE | RESYNC ]?

Runtime support : none

5.125. SET DUMPDS

Supported syntax:

SET
  DUMPDS SWITCH?

Runtime support : none

5.126. SET FILE

Supported syntax:

SET
  [ FILE(data-value) | DATASET(data-value) ]?
  [ ADD(cvda) | ADDABLE | NOTADDABLE ]?
  [ BROWSE(cvda) | BROWSABLE | NOTBROWSABLE ]?
  [ BUSY(cvda) | WAIT | FORCE | NOWAIT ]? CFDTPOOL(data-value)?
  [ DELETE(cvda) | DELETABLE | NOTDELETABLE ]?
  [ DISPOSITION(cvda) | OLD | SHARE ]?
  [ DSNAME(data-value) | OBJECTNAME(data-value) ]?
  [ EMPTYSTATUS(cvda) | EMPTY | EMPTYREQ | NOEMPTYREQ ]?
  [ ENABLESTATUS(cvda) | DISABLED | ENABLED ]?
  [ OPENSTATUS(cvda) | CLOSED | OPEN ]?
  [ EXCLUSIVE(cvda) | EXCTL | NOEXCTL ]? KEYLENGTH(data-value)?
  [ LOADTYPE(cvda) | LOAD | NOLOAD ]? LSRPOOLNUM(data-value)?
  MAXNUMRECS(data-value)? [ READ(cvda) | NOTREADABLE | READABLE ]?
  RECORDSIZE(data-value)?
  [ READINTEG(cvda) | UNCOMMITTED | CONSISTENT | REPEATABLE ]?
  [ RLSACCESS(cvda) | RLS | NOTRLS ]? STRINGS(data-value)?
  [ TABLE(cvda) | CFTABLE | CICSTABLE | NOTTABLE | USERTABLE ]?
  TABLENAME(data-value)? [ UPDATE(cvda) | NOTUPDATABLE | UPDATABLE ]?
  [ UPDATEMODEL(cvda) | CONTENTION | LOCKING ]?

Runtime support : none

5.127. SET PROGRAM

Supported syntax:

SET
  PROGRAM(data-value) [ STATUS(cvda) | ENABLED | DISABLED ]?
  [ CEDFSTATUS(cvda) | CEDF | NOCEDF ]? [ COPY(cvda) | NEWCOPY | PHASEIN ]?
  [ EXECUTIONSET(cvda) | DPLSUBSET | FULLAPI ]?
  [ REPLICATION(cvda) | REPLICATOR | NOREPLICATOR ]?
  [ SHARESTATUS(cvda) | PRIVATE | SHARED ]? VERSION(cvda)?
  OPERATION(data-value)?

Runtime support : none

5.128. SET TASK

Supported syntax:

SET
  TASK(data-value) PRIORITY(data-value)?
  [ PURGETYPE(cvda) | PURGE | KILL | FORCEPURGE ]?

Runtime support : none

5.129. SET TDQUEUE

Supported syntax:

SET
  TDQUEUE(data-value) [ ATIFACILITY(cvda) | NOTERMINAL | TERMINAL ]?
  ATITERMID(data-value)? ATITRANID(data-value)? ATIUSERID(data-value)?
  [ ENABLESTATUS(cvda) | DISABLED | ENABLED ]?
  [ OPENSTATUS(cvda) | CLOSED | OPEN ]? TRIGGERLEVEL(data-value)?

Runtime support : none

5.130. SET TERMINAL

Supported syntax:

SET
  TERMINAL(data-value)
  [ TERMSTATUS(cvda) | ACQSTATUS(cvda) | ACQUIRED | COLDACQ | RELEASED ]?
  ALTPRINTER(data-value)? [ ALTPRTCOPYST(cvda) | ALTPRTCOPY | NOALTPRTCOPY ]?
  [ ATISTATUS(cvda) | ATI | NOATI ]?
  [ CREATESESS(cvda) | CREATE | NOCREATE ]?
  [ DISCREQST(cvda) | DISCREQ | NODISCREQ ]?
  [ EXITTRACING(cvda) | EXITTRACE | NOEXITTRACE ]? MAPNAME(data-value)?
  MAPSETNAME(data-value)? NEXTTRANSID(data-value)?
  [ OBFORMATST(cvda) | OBFORMAT | NOOBFORMAT ]? OPERID(data-value)?
  [ PAGESTATUS(cvda) | AUTOPAGEABLE | PAGEABLE ]? PRINTER(data-value)?
  [ PRTCOPYST(cvda) | PRTCOPY | NOPRTCOPY ]?
  [ PURGETYPE(cvda) | FORCEPURGE | KILL | CANCEL ]?
  [ RELREQST(cvda) | RELREQ | NORELREQ ]?
  [ SERVSTATUS(cvda) | INSERVICE | OUTSERVICE ]? TERMPRIORITY(data-value)?
  [ TRACING(cvda) | SPECTRACE | STANTRACE ]?
  [ TTISTATUS(cvda) | NOTTI | TTI ]?
  [ UCTRANST(cvda) | UCTRAN | NOUCTRAN | TRANIDONLY ]?
  [ ZCPTRACING(cvda) | NOZCPTRACE | ZCPTRACE ]?

Runtime support : Qix emulator

5.131. SET TRANDUMPCODE

Supported syntax:

SET
  TRANDUMPCODE(data-value) [ ACTION(cvda) | ADD | REMOVE | RESET ]?
  [ DUMPSCOPE(cvda) | LOCAL | RELATED ]? MAXIMUM(data-value)?
  [ SHUTOPTION(cvda) | NOSHUTDOWN | SHUTDOWN ]?
  [ SYSDUMPING(cvda) | NOSYSDUMP | SYSDUMP ]?
  [ TRANDUMPING(cvda) | NOTRANDUMP | TRANDUMP ]?

Runtime support : none

5.132. SET TRANSACTION

Supported syntax:

SET
  TRANSACTION(data-value) [ DUMPING(cvda) | TRANDUMP | NOTRANDUMP ]?
  PRIORITY(data-value)? [ PURGEABILITY(cvda) | NOTPURGEABLE | PURGEABLE ]?
  RUNAWAY(data-value)? [ RUNAWAYTYPE(cvda) | SYSTEM | USER ]?
  [ SHUTDOWN(cvda) | SHUTDISABLED | SHUTENABLED ]?
  [ STATUS(cvda) | DISABLED | ENABLED ]?
  [ TCLASS(data-value) | TRANCLASS(data-value) ]?
  [ TRACING(cvda) | SPECTRACE | SPRSTRACE | STANTRACE ]?

Runtime support : none

5.133. SIGNOFF

Supported syntax:

  SIGNOFF
null

Runtime support : Qix emulator

5.134. SIGNON

Supported syntax:

SIGNON
  USERID(data-value) ESMREASON(data-area)? ESMRESP(data-area)?
  GROUPID(data-value)? [ LANGUAGECODE(data-value) | NATLANG(data-value) ]?
  LANGINUSE(data-area)? NATLANGINUSE(data-area)?
  ( PASSWORD(data-value) NEWPASSWORD(data-value)? )? OIDCARD(data-value)?

Runtime support : Qix emulator

5.135. SOAPFAULT CREATE

Supported syntax:

SOAPFAULT
  CREATE [ FAULTCODE(cvda) | CLIENT | SERVER | SENDER | RECEIVER ]?
  FAULTCODESTR(data-value)? FAULTCODELEN(data-value)?
  ( FAULTSTRING(data-value) FAULTSTRLEN(data-value)? ) NATLANG(data-value)?
  ( ROLE(data-value) ROLELENGTH(data-value)? )?
  ( FAULTACTOR(data-value) FAULTACTLEN(data-value)? )?
  ( DETAIL(data-value) DETAILLENGTH(data-value)? )? FROMCCSID(data-value)?

Runtime support : none

5.136. SPOOLCLOSE

Supported syntax:

SPOOLCLOSE
  TOKEN(data-area) [ KEEP | DELETE ]?

Runtime support : none

5.137. SPOOLOPEN

Supported syntax:

SPOOLOPEN
  INPUT TOKEN(data-area) USERID(data-value) CLASS(data-value)?
SPOOLOPEN
  OUTPUT TOKEN(data-area) USERID(data-value) NODE(data-value)
  CLASS(data-value)? OUTDESCR(ptr-ref)? [ NOCC | ASA | MCC ]?
  [ ( PRINT RECORDLENGTH(data-value)? ) | PUNCH ]?

Runtime support : none

5.138. SPOOLREAD

Supported syntax:

SPOOLREAD
  TOKEN(data-area)? MAXLENGTH(data-value)? NOHANDLE? RESP? RESP2?
  INTO(data-area)? TOLENGTH(data-area)?

Runtime support : none

5.139. SPOOLWRITE

Supported syntax:

SPOOLWRITE
  TOKEN(data-area) FROM(data-area) FLENGTH(data-value)? [ LINE | PAGE ]?

Runtime support : none

5.140. START

Supported syntax:

START
  [ TRANSID(name) | TRANS(name) ]
  [ INTERVAL(hhmmss) | TIME(hhmmss)
  | ( AFTER HOURS(data-value)? MINUTES(data-value)? SECONDS(data-value)? )
  | ( AT HOURS(data-value)? MINUTES(data-value)? SECONDS(data-value)? )
  ]?
  REQID(name)? ( FROM(data-area) LENGTH(data-value)? FMH? )?
  [ TERMID(name) | USERID(data-value) ]? SYSID(systemname)? RTRANSID(name)?
  RTERMID(name)? QUEUE(name)? NOCHECK? PROTECT?

Runtime support : Qix emulator

5.141. START ATTACH

Supported syntax:

START
  ATTACH TRANSID(name) ( FROM(data-area) LENGTH(data-value)? )?

Runtime support : none

5.142. START CHANNEL

Supported syntax:

START
  TRANSID(name) CHANNEL(name) [ TERMID(name) | USERID(data-value) ]?
  SYSID(systemname)?

Runtime support : none

5.143. STARTBR

Supported syntax:

STARTBR
  [ FILE(filename) | DATASET(filename) ] RIDFLD(data-area)
  ( KEYLENGTH(data-value) GENERIC? )? REQID(data-value)? SYSID(systemname)?
  [ DEBKEY | DEBREC | RBA | RRN | XRBA ]? [ EQUAL | GTEQ ]?

Runtime support : library

5.144. STARTBROWSE ACTIVITY

Supported syntax:

STARTBROWSE
  ACTIVITY
  [ ACTIVITYID(data-value) | ( PROCESS(data-value) PROCESSTYPE(data-value) ) ]?
  BROWSETOKEN(data-area)

Runtime support : none

5.145. STARTBROWSE CONTAINER

Supported syntax:

STARTBROWSE
  CONTAINER
  [ ACTIVITY(data-value) | ( PROCESS(data-value) PROCESSTYPE(data-value) )
  | CHANNEL(data-value)
  ]?
  BROWSETOKEN(data-area)

Runtime support : none

5.146. SUSPEND

Supported syntax:

SUSPEND
  [ ACTIVITY(data-value) | ACQACTIVITY | ACQPROCESS ]?

Runtime support : none

5.147. SYNCPOINT

Supported syntax:

  SYNCPOINT
null

Runtime support : library and Qix emulator

5.148. SYNCPOINT ROLLBACK

Supported syntax:

SYNCPOINT
  ROLLBACK

Runtime support : library and Qix emulator

5.149. UNLOCK

Supported syntax:

UNLOCK
  [ FILE(filename) | DATASET(filename) ] TOKEN(data-area)? SYSID(systemname)?

Runtime support : none

5.150. UPDATE COUNTER

Supported syntax:

UPDATE
  COUNTER(name) POOL(name)? VALUE(data-value) COMPAREMIN(data-value)?
  COMPAREMAX(data-value)?

Runtime support : none

5.151. VERIFY PASSWORD

Supported syntax:

VERIFY
  PASSWORD(data-value) USERID(data-value) CHANGETIME(data-area)?
  DAYSLEFT(data-area)? ESMREASON(data-area)? ESMRESP(data-area)?
  EXPIRYTIME(data-area)? INVALIDCOUNT(data-area)? LASTUSETIME(data-area)?

Runtime support : none

5.152. WAIT EVENT

Supported syntax:

WAIT
  EVENT ECADDR(ptr-value) NAME(name)?

Runtime support : none

5.153. WAIT JOURNAL

Supported syntax:

WAIT
  JOURNAL JOURNALNAME(data-value)? REQID(data-value)? JOURNALNUM(data-value)?

Runtime support : none

5.154. WAIT TERMINAL

Supported syntax:

WAIT
  TERMINAL [ CONVID(name) | SESSION(name) ]?

Runtime support : none

5.155. WEB CLOSE

Supported syntax:

WEB
  CLOSE SESSTOKEN(data-value)

Runtime support : none

5.156. WEB EXTRACT

Supported syntax:

WEB
  EXTRACT SESSTOKEN(data-area)? SCHEME(cvda)?
  ( HOST(data-area) HOSTLENGTH(data-value) HOSTTYPE(cvda)? )?
  ( HTTPMETHOD(data-area) METHODLENGTH(data-area) )?
  ( HTTPVERSION(data-area) VERSIONLEN(data-area) )?
  ( PATH(data-area) PATHLENGTH(data-area) )? PORTNUMBER(data-area)?
  ( QUERYSTRING(data-area) QUERYSTRLEN(data-area) )? REQUESTTYPE(cvda)?
  URIMAP(data-area)? ( REALM(data-area) REALMLEN(data-area) )?

Runtime support : none

5.157. WEB OPEN

Supported syntax:

WEB
  OPEN
  [ URIMAP(data-value)
  | ( HOST(data-value) HOSTLENGTH(data-value) PORTNUMBER(data-value)
      [ SCHEME(cvda) | HTTP | HTTPS ]?
    )
  ]
  CERTIFICATE(data-value)? ( CIPHERS(data-value) NUMCIPHERS(data-value) )?
  CODEPAGE(data-value)? SESSTOKEN(data-area)
  ( HTTPVNUM(data-area) HTTPRNUM(data-area) )?

Runtime support : none

5.158. WEB READ HTTPHEADER

Supported syntax:

WEB
  READ HTTPHEADER(data-area) NAMELENGTH(data-value) SESSTOKEN(data-area)?
  VALUE(data-area) VALUELENGTH(data-area)

Runtime support : none

5.159. WEB RECEIVE (client)

Supported syntax:

WEB
  RECEIVE SESSTOKEN(data-value) MEDIATYPE(data-area)?
  ( STATUSCODE(data-value) STATUSTEXT(data-area) STATUSLEN(data-value) )?
  [ INTO(data-area) | SET(ptr-ref) ] LENGTH(data-area) MAXLENGTH(data-value)?
  NOTRUNCATE? [ CLIENTCONV(cvda) | CLICONVERT | NOCLICONVERT ]?
  BODYCHARSET(data-area)?

Runtime support : none

5.160. WEB RECEIVE (container client)

Supported syntax:

WEB
  RECEIVE SESSTOKEN(data-value) MEDIATYPE(data-area)? STATUSCODE(data-value)?
  ( STATUSTEXT(data-area) STATUSLEN(data-value) )? TOCONTAINER(data-value)
  TOCHANNEL(data-value)? BODYCHARSET(data-area)?

Runtime support : none

5.161. WEB RECEIVE (container server)

Supported syntax:

WEB
  RECEIVE TOCONTAINER(data-value) TOCHANNEL(data-value)? TYPE(cvda)?
  CHARACTERSET(data-value)? BODYCHARSET(data-area)? MEDIATYPE(data-value)?

Runtime support : none

5.162. WEB RECEIVE (server)

Supported syntax:

WEB
  RECEIVE [ INTO(data-area) | SET(ptr-ref) ] LENGTH(data-area)
  MAXLENGTH(data-value)? NOTRUNCATE? TYPE(cvda)?
  [ SERVERCONV(cvda) | SRVCONVERT | NOSRVCONVERT ]? CHARACTERSET(data-value)?
  HOSTCODEPAGE(data-value)? BODYCHARSET(data-area)? MEDIATYPE(data-value)?

Runtime support : none

5.163. WEB SEND (client)

Supported syntax:

WEB
  SEND SESSTOKEN(data-value)
  [ GET | HEAD | POST | PUT | TRACE | OPTIONS | DELETE | METHOD(cvda) ]
  [ ( PATH(data-area) PATHLENGTH(data-value) ) | URIMAP(data-value) ]?
  ( QUERYSTRING(data-area) QUERYSTRLEN(data-value) )?
  [ ( DOCTOKEN(data-value) [ NODOCDELETE | DOCDELETE | DOCSTATUS(cvda) ]? )
  | ( FROM(data-area) FROMLENGTH(data-value) )
  | ( CONTAINER(data-value) CHANNEL(data-value)? )
  ]
  MEDIATYPE(data-value)? [ CLICONVERT | NOCLICONVERT | CLIENTCONV(cvda) ]?
  CHARACTERSET(data-value)? [ EXPECT | ACTION(cvda) ]?
  [ NOCLOSE | CLOSE | CLOSESTATUS(cvda) ]?
  [ NONE | BASICAUTH | AUTHENTICATE(cvda) ]?
  ( USERNAME(data-value) USERNAMELEN(data-value)? )?
  ( PASSWORD(data-value) PASSWORDLEN(data-value)? )?
  [ CHUNKNO | CHUNKYES | CHUNKEND | CHUNKING(cvda) ]?

Runtime support : none

5.164. WEB SEND (server)

Supported syntax:

WEB
  SEND
  [ ( DOCTOKEN(data-value) [ NODOCDELETE | DOCDELETE | DOCSTATUS(cvda) ]? )
  | CHUNKEND
  | ( FROM(data-area) FROMLENGTH(data-value)
      [ CHUNKNO | CHUNKYES | CHUNKEND | CHUNKING(cvda) ]?
      HOSTCODEPAGE(data-value)?
    )
  | ( CONTAINER(data-value) CHANNEL(data-value)? )
  ]
  MEDIATYPE(data-value)? [ SRVCONVERT | NOSRVCONVERT | SERVERCONV(cvda) ]?
  CHARACTERSET(data-value)?
  ( STATUSCODE(data-value) STATUSTEXT(data-area)
    [ STATUSLEN(data-value) | LENGTH(data-value) ]
  )?
  [ IMMEDIATE | EVENTUAL | ACTION(cvda) ]?
  [ NOCLOSE | CLOSE | CLOSESTATUS(cvda) ]?

Runtime support : none

5.165. WEB WRITE HTTPHEADER

Supported syntax:

WEB
  WRITE HTTPHEADER(data-area) NAMELENGTH(data-value)? SESSTOKEN(data-value)?
  VALUE(data-area) VALUELENGTH(data-value)?

Runtime support : none

5.166. WRITE

Supported syntax:

WRITE
  [ FILE(filename) | DATASET(filename) ] MASSINSERT? FROM(data-area)
  RIDFLD(data-area) KEYLENGTH(data-value)? SYSID(systemname)?
  LENGTH(data-value)? [ RBA | RRN | XRBA ]? NOSUSPEND?

Runtime support : none

5.167. WRITE JOURNAL

Supported syntax:

WRITE
  [ JOURNALNAME(data-value) | ( JOURNALNUM(data-value) STARTIO? ) ]
  JTYPEID(data-value) FROM(data-area)
  [ LENGTH(data-value) | FLENGTH(data-value) ]? REQID(data-value)?
  ( PREFIX(data-value) PFXLENG(data-value)? )? WAIT? NOSUSPEND?

Runtime support : none

5.168. WRITE OPERATOR

Supported syntax:

WRITE
  OPERATOR TEXT(data-value) TEXTLENGTH(data-value)?
  ( ROUTECODES(data-value) NUMROUTES(data-value) )?
  [ EVENTUAL | ACTION(cvda) | CRITICAL | IMMEDIATE
  | ( REPLY(data-area) MAXLENGTH(data-value) REPLYLENGTH(data-area)?
      TIMEOUT(data-value)?
    )
  ]?

Runtime support : none

5.169. WRITEQ TD

Supported syntax:

WRITEQ
  TD QUEUE(name) FROM(data-area) LENGTH(data-value)? SYSID(systemname)?

Runtime support : library

5.170. WRITEQ TS

Supported syntax:

WRITEQ
  TS? [ QUEUE(name) | QNAME(name) ] FROM(data-area) LENGTH(data-value)?
  ITEM(data-area)? [ NUMITEMS(data-area) | REWRITE ]? SYSID(systemname)?
  [ AUXILIARY | MAIN ]? NOSUSPEND?

Runtime support : library

5.171. XCTL

Supported syntax:

XCTL
  PROGRAM(name) [ ( COMMAREA(data-area) LENGTH(data-value)? ) | CHANNEL(name) ]?
  ( INPUTMSG(data-area) INPUTMSGLEN(data-value)? )?

Runtime support : library

6. Limitations

QIX comes with a few limitations intrinsic to its distributed architecture.

6.1. Common Work Area

Due to the distributed nature of QIX, allowing multiple processing servers to run simultaneously, running transactions accessing the same piece of shared memory in the QIX region is a bit tricky and is only supported in a limited way.

The Common Work Area (CWA) is more or less supported, depending on how the application uses it:

  • Without resource locking: when starting a new transaction, QIX allocates a copy of the CWA in the address space of the new task. When the task ends, QIX checks if this task’s CWA changed, and if it did, propagates it to other running processing servers. Each task has its own copy of the CWA, and it is not updated for a running task when another task writes in its own copy. Only tasks started after a task writing in the CWA will get a fresh copy. There is no guarantee as to which CWA will be used by subsequent tasks when two or more tasks update their copy of the CWA and get propagated simultaneously.

  • With resource locking: the previous paragraph still holds; with the addition, QIX can propagate the CWA even to running tasks. When issuing the ENQ command on a location inside the CWA, QIX can better keep track of changes and propagate the updated CWA to all running tasks, including tasks running on other processing servers, but only when the resource is released. When issuing the corresponding DEQ to release the lock, QIX takes care of propagating the CWA and copies it in the address space of every running task. Tasks waiting on the same lock will therefore get the most up-to-date version of the CWA.

Using a name lock (as opposed to an address lock) will not protect the CWA, as QIX only propagates on DEQ when a location inside the CWA is locked.

Appendix A: Lists of tables and figures in document

This appendix includes the automated lists of the tables and figures available in this document; placed in this location, to allow you to gain access to core information regarding Raincode QIX more readily up front, and as an aide-memoire.

A.1. List of Tables

A.2. List of Figures

Glossary

Item Description

.NET

The .NET Framework (pronounced dot net) is a software framework developed by Microsoft that runs primarily on Microsoft Windows. It includes a large library and provides language interoperability (each language can use code written in other languages) across several programming languages.

COBOL

COBOL is one of the oldest programming languages. Its name is an acronym for COmmon Business-Oriented Language, defining its primary domain in business, finance, and administrative systems for companies and governments.

DB2

IBM DB2 is a relational model database server developed by IBM.

DLL

Dynamic-link library, or DLL, is Microsoft’s implementation of the shared library concept in the Microsoft Windows and OS/2 operating systems. These libraries usually have the file extension .dll.

PL/I

PL/I (Programming Language One) is a procedural, imperative computer programming language designed for scientific, engineering, business and systems programming applications.

SQL

SQL (Structured Query Language) is a special-purpose programming language designed for managing data held in a relational database management system (RDBMS).

TSQL

Transact-SQL (T-SQL) is Microsoft’s proprietary extension to SQL. SQL, often expanded to Structured Query Language, is a standardized computer language, altering and defining relational databases, using declarative statements.


1. http://msdn.microsoft.com/en-us/library/system.text.encoding.aspx
2. http://msdn.microsoft.com/en-us/library/system.guid.newguid.aspx