Writing ACI Servers for the RPC-ACI Bridge in COBOL

The RPC-ACI Bridge is prepared for ACI servers written in COBOL. This document covers the following topics:


Tasks

Writing an ACI server consists of two tasks:

  • implement the Broker calls

  • implement the processing of the received buffer and the response for the send buffer

Using Arrays of Groups

If your programs use arrays of groups, you have to adjust the marshalling.

Start of instruction setTo adjust the marshalling for arrays of groups

  1. Use the property entirex.rpcacibridge.marshalling for the configuration.

  2. Set the property to "cobol".

If your programs do not use arrays of groups, you do not need to set entirex.rpcacibridge.marshalling.

Data Types

Data Type Description Format Note
Anumber Alphanumeric number bytes, encoding the characters.  
AV Alphanumeric variable length Bytes up to the end of the buffer. 1
AV[number] Alphanumeric variable length with maximum length Bytes up to the end of the buffer, maximal length number. 1
Knumber Kanji Same as data type A.  
KV Kanji variable length Same as data type AV. 1
KV[number] Kanji variable length with maximum length Same as data type AV[number]. 1
I1 Integer (small) sign (+, -) and 3 bytes (digits).  
I2 Integer (medium) sign (+, -) and 5 bytes (digits).  
I4 Integer (large) sign (+, -) and 10 bytes (digits).  
Nnumber1[.number2] Unpacked decimal sign (+, -), number1 bytes (digits) [number2] bytes (digits), no decimal point.  
NUnumber1[.number2] Unpacked decimal unsigned number1 bytes (digits) [number2] bytes (digits), no decimal point.  
Pnumber1[.number2] Packed decimal sign (+, -), number1 bytes (digits) [number2] bytes (digits), no decimal point.  
PUnumber1[.number2] Packed decimal unsigned number1 bytes (digits) [number2] bytes (digits), no decimal point.  
L Logical 1 byte: X for true, all other false.  
D Date YYYYMMDD. 2
T Time YYYYMMDDhhmmssS. 3

Notes:

  1. Only as last value.
  2. YYYY year, MM month, DD day.
  3. YYYY year, MM month, DD day, hh hour, mm minute, ss second, S tenth of a second.

Data Types not supported:

  • Binary (B[n],BV, BV[n])

  • Floating point (F4, F8)

Declaring the Variables for the Data Types

This section describes how to declare the variables for the data types. Use these declarations to map the receive buffer and the send buffer to variables.

Data Type Description Declaration and Marshalling
Anumber Alphanumeric Declaration for receive and send buffer: PIC X(n)
AV Alphanumeric variable length Declaration for receive and send buffer: PIC X(n)
AV[number] Alphanumeric variable length with maximum length Declaration for receive and send buffer: PIC X(n)
Knumber Kanji Declaration for receive and send buffer: PIC X(n)
KV Kanji variable length Declaration for receive and send buffer: PIC X(n)
KV[number] Kanji variable length with maximum length Declaration for receive and send buffer: PIC X(n)
I1 Integer (small) Declaration for receive and send buffer: PIC S9(3)
I2 Integer (medium) Declaration for receive and send buffer: PIC S9(5)
I4 Integer (large) Declaration for receive and send buffer: PIC S9(10)
Nnumber1[.number2] Unpacked decimal Declaration for receive and send buffer: PIC S9(number1)V(number2) SIGN LEADING SEPARATE
NUnumber1[.number2] Unpacked decimal unsigned Declaration for receive and send buffer: PIC 9(number1)V(number2)
Pnumber1[.number2] Packed decimal Declaration for receive and send buffer: PIC S9(number1)V(number2) SIGN LEADING SEPARATE
Declare local variable PIC S9(number1)V(number2) PACKED DECIMAL
Move from receive buffer to local variable before computation and from local variable to send buffer afterwards.
PUnumber1[.number2] Packed decimal unsigned Declaration for receive and send buffer: PIC 9(number1)V(number2)
Declare local variable PIC 9(number1)V(number2)PACKED DECIMAL
Move from receive buffer to local variable before computation and from local variable to send buffer afterwards.
L Logical Declaration for receive and send buffer: PIC X(1)
D Date Declaration for receive and send buffer: PIC X(8)
T Time Declaration for receive and send buffer: PIC X(15)