BEA Logo BEA MessageQ Release 5.0

  Corporate Info  |  News  |  Solutions  |  Products  |  Partners  |  Services  |  Events  |  Download  |  How To Buy

 

   MessageQ Doc Home   |   Programmer's Guide   |   Previous Topic   |   Next Topic   |   Contents   |   Index

Message Reference

 

This chapter contains detailed descriptions of all BEA MessageQ message-based services alphabetized by message type. Each description lists the message type code name, the name of the BEA MessageQ server performing the service, and a detailed definition of the message area and required arguments to send messages or read response and notification messages using the BEA MessageQ API or scripts. The definition of all BEA MessageQ message-based services messages is now provided in the p_msg.h include file.

BEA MessageQ message-based services are sent between a user application program that functions as a requestor and a BEA MessageQ server process that fulfills the request. For messages to be properly understood between systems, message data must be sent and returned in the endian format understood by both the requestor and the server. Most BEA MessageQ message-based services automatically perform this conversion if the endian format of the two systems is different. However, some message-based services do not perform this conversion, therefore, the user application must convert the message to the endian format of the server system to ensure that the message data is correctly interpreted. Each message-based service description notes whether the data structure is RISC aligned and whether the server performs the endian conversion automatically.

AVAIL

Applications can register to receive notification when queues become active or inactive in local and remote groups by sending an AVAIL_REG message to the Avail Server. The AVAIL notification message is sent to registered applications when a queue in the selected group becomes active. See the Obtaining the Status of a Queue topic in the Using Message-Based Services section for an explanation of how to use this message.

Applications must cancel availability notification by sending a message of type AVAIL_DEREG. The application receives a AVAIL_REG_REPLY message indicating the status of the operation. It is important to note that if the distribution queue for an AVAIL registration becomes unavailable, the registration will be automatically deleted by BEA MessageQ. A subsequent attempt to deregister AVAIL services for this distribution queue will result in an error message indicating that the registration does not exist.

Note: The Avail Server performs endian conversion when this message is received between processes that run on systems that use different hardware data formats. This message is also RISC aligned.

C Message Structure

typedef struct _AVAIL {
q_address target_q;
} AVAIL;

Message Data Fields

Field

Data Type

Script Format

Description

target_q

q_address

DL

Address of queue that is now available.

Arguments

Argument

Data Type

Mechanism

Prototype

Access

Target

Supplied by AVAIL_REG

Supplied by AVAIL_REG

Target

Supplied by AVAIL_REG

Source

AVAIL_SERVER

PAMS_AVAIL_SERVER

Source

AVAIL_SERVER

Class

PAMS

MSG_CLAS_ PAMS

Class

PAMS

Type

AVAIL

MSG_TYPE_ AVAIL

Type

AVAIL

See Also

Example

The AVAIL services example illustrates avail services, avail register, avail deregister, and getting avail messages. The complete code example called x_avail.c is contained in the examples directory.

AVAIL_DEREG

Applications can register to receive notification when queues become active or inactive in local and remote groups by sending an AVAIL_REG message to the Avail Server. When notification messages are no longer needed, the application sends an AVAIL_DEREG message to the Avail Server to cancel registration. It is important to note that if the distribution queue for an AVAIL registration becomes unavailable, the registration will be automatically deleted by BEA MessageQ. A subsequent attempt to deregister AVAIL services for this distribution queue will result in an error message indicating that the registration does not exist. See the Obtaining the Status of a Queue topic in the Using Message-Based Services section for an explanation of how to use this message.

Note: The Avail Server performs endian conversion when this message is sent between processes that run on systems that use different hardware data formats. This message is also RISC aligned.

C Message Structure

typedef struct _AVAIL_DEREG {
int16 version;
int16 filler;
q_address target_q;
q_address distribution_q;
char req_ack;
} AVAIL_DEREG;

Message Data Fields

Field

Data Type

Script Format

Description

version

word

DW

Format version number. Must be 20.

filler

word

DW

Spacing for RISC alignment.

target_q

q_address

DL

Queue being monitored for its -availability.

distribution_q

q_address

DL

Queue notified of availability.

req_ack

Boolean

DB

If response required, 1; else 0.

Arguments

Argument

Script Format

pams_get_msg Format

Target

AVAIL_SERVER

PAMS_AVAIL_SERVER

Source

Supplied by BEA MessageQ

Supplied by BEA MessageQ

Class

PAMS

MSG_CLAS_PAMS

Type

AVAIL_DEREG

MSG_TYPE_AVAIL_DEREG

See Also

Example

The AVAIL services example illustrates avail services, avail register, avail deregister, and getting avail messages. The complete code example called x_avail.c is contained in the examples directory.

AVAIL_REG

Applications can register to receive notification when queues become active or inactive in local and remote groups by sending an AVAIL_REG message to the Avail Server. See the Obtaining the Status of a Queue topic in the Using Message-Based Services section for an explanation of how to use this message. If the application detaches from the distribution queue, the AVAIL registration is automatically deleted. The application must cancel notification, regardless of queue type, by sending a message of type AVAIL_DEREG. The application receives a AVAIL_REG_REPLY message indicating the status of the operation.

Note: The Avail Server performs endian conversion when this message is sent between processes that run on systems that use different hardware data formats. This message is also RISC aligned.

C Message Structure

typedef struct _AVAIL_REG {
int16 version;
int16 filler;
q_address target_q;
q_address distribution_q;
int32 timeout;
} AVAIL_REG;

Message Data Fields

Field

Data Type

Script Format

Description

version

word

DW

Format version number. Must be 31.

filler

word

DW

Spacing for RISC alignment.

target_q

q_address

DL

Queue to be monitored for availability.

distribution_q

q_address

DL

Queue to receive availability messages.

timeout

int32

DL

Interval (specified in seconds) after which the function should timeout.

Arguments

Argument

Script Format

pams_get_msg Format

Target

AVAIL_SERVER

PAMS_AVAIL_SERVER

Source

Supplied by BEA MessageQ

Supplied by BEA MessageQ

Class

PAMS

MSG_CLAS_PAMS

Type

AVAIL_REG

MSG_TYPE_AVAIL_REG

See Also

Example

The AVAIL services example illustrates avail services, avail register, avail deregister, and getting avail messages. The complete code example called x_avail.c is contained in the examples directory.

AVAIL_REG_REPLY

Applications register to receive notification when queues become active or inactive in local and remote groups by sending an AVAIL_REG message to the Avail Server. The AVAIL_REG_REPLY message indicates whether the application has successfully registered or deregistered from receiving notification messages. See the Obtaining the Status of a Queue topic in the Using Message-Based Services section for an explanation of how to use this message.

Note: The Avail Server performs endian conversion when this message is received between processes that run on systems that use different hardware data formats. This message is also RISC aligned.

C Message Structure

typedef struct _AVAIL_REG_REPLY {
int16 status;
uint16 reg_id;
int16 number_reg;
} AVAIL_REG_REPLY;

Message Data Fields

Field

Data Type

Script Format

Description

status

word

DW

Status code:
1 = success;
0 = failure.

reg_id

unsigned word

DW

Returned subscription ID.

number_reg

word

DW

Number of registrants left on the Avail list.

Arguments

Argument

Script Format

pams_get_msg Format

Target

Sender of AVAIL_REG/DEREG

Sender of AVAIL_REG/DEREG

Source

AVAIL_SERVER

PAMS_AVAIL_SERVER

Class

PAMS

MSG_CLAS_PAMS

Type

AVAIL_REG_REPLY

MSG_TYPE_AVAIL_REG_REPLY

See Also

Example

The AVAIL services example illustrates avail services, avail register, avail deregister, and getting avail messages. The complete code example called x_avail.c is contained in the examples directory.

DISABLE_NOTIFY

Applications can register to receive notification when cross-group links are established and lost by sending an ENABLE_NOTIFY message to the Connect Server. When an application no longer needs to receive notification messages, it deregisters by sending a DISABLE_NOTIFY message to the Connect Server. The DISABLE_NOTIFY message can stop notification of cross-group link changes. See the Obtain Notification of Cross-Group Links Established and Lost topic in the Using Message-Based Services section for an explanation of how to use this message.

Note: The Connect Server performs endian conversion when this message is sent between processes that run on systems that use different hardware data formats. This message is also RISC aligned.

C Message Structure

typedef struct _ENABLE_NOTIFY {
char reserved;
char connection_flag;
} ENABLE_NOTIFY;

Message Data Fields

Field

Data Type

Script Format

Description

reserved

unsigned char

DB

Reserved for use by BEA MessageQ.

connection_flag

unsigned char

DB

Boolean flag to cancel cross-group connection notification, 1; else 0.

Arguments

Argument

Script Format

pams_get_msg Format

Target

CONNECT_SERVER

PAMS_CONNECT_SERVER

Source

Supplied by BEA MessageQ

Supplied by BEA MessageQ

Class

PAMS

MSG_CLAS_PAMS

Type

DISABLE_NOTIFY

MSG_TYPE_DISABLE_NOTIFY

See Also

DISABLE_Q_NOTIFY_REQ

Applications can register to receive notification when queue states change in local or remote groups by sending an ENABLE_Q_NOTIFY_REQ message. The DISABLE_Q_NOTIFY_REQ is sent to the Queue Server when the application no longer needs to receive notification messages. See the Receiving Attachment Notifications topic in the Using Message-Based Services section for an explanation of how to use this message.

Note: The Queue Server performs endian conversion when this message is sent between processes that run on systems that use different hardware data formats. This message is also RISC aligned.

C Message Structure

typedef struct _Q_NOTIFY_REQ {
int32 version;
int32 user_tag;
} Q_NOTIFY_REQ;

Message Data Fields

Field

Data Type

Script Format

Description

version

int32

DL

Version of request.

user_tag

int32

DL

User-specified code to identify this request.

Arguments

Argument

Script Format

pams_get_msg Format

Target

QUEUE_SERVER

PAMS_QUEUE_SERVER

Source

Requesting program

Requesting program

Class

PAMS

MSG_CLAS_PAMS

Type

DISABLE_Q_NOTIFY_REQ

MSG_TYPE_DISABLE_Q_

NOTIFY_REQ

See Also

DISABLE_Q_NOTIFY_RESP

Applications can register to receive notification when queue states change in local or remote groups by sending an ENABLE_Q_NOTIFY_REQ message. The DISABLE_Q_NOTIFY_REQ message is sent to the Queue Server when the application no longer needs to receive notification messages. The DISABLE_Q_NOTIFY_RESP message indicates whether the application is successfully deregistered from receiving notification messages. See the Receiving Attachment Notifications topic in the Using Message-Based Services section for an explanation of how to use this message.

Note: The Queue Server performs endian conversion when this message is received between processes that run on systems that use different hardware data formats. This message is also RISC aligned.

C Message Structure

#define MAX_NUMBER_Q_RECS 50
typedef struct _Q_NOTIFY_RESP {
int32 version;
int32 user_tag;
int32 status_code;
int32 last_block_flag;
int32 number_q_recs;
struct {
q_address q_num;
q_address q_owner;
int32 q_type;
int32 q_active_flag;
int32 q_attached_flag;
int32 q_owner_pid;
} q_rec [50];
} Q_NOTIFY_RESP;

Message Data Fields

Field

Data Type

Script Format

Description

version

int32

DL

Version of response.

user_tag

int32

DL

User-specified code from request.

status_code

int32

DL

0=Error
1=Success
-2=Refused

last_block_flag

int32

DL

Last block Boolean flag.

number_q_recs

int32

DL

Number of records in this message.

q_num

q_address

DL

Queue number.

q_owner

q_address

DL

Queue owner (only for secondary queues (SQs)).

q_type

int32

DL

Queue type (numerically encoded P, S, M).

q_active_flag

int32

DL

Queue active Boolean flag.

q_attached_flag

int32

DL

Queue attached Boolean flag.

q_owner_pid

int32

DL

Queue owner process identification (PID).

Arguments

Argument

Script Format

pams_get_msg Format

Target

Requesting program

Requesting program

Source

QUEUE_SERVER

PAMS_QUEUE_SERVER

Class

PAMS

MSG_CLAS_PAMS

Type

DISABLE_Q_NOTIFY_RESP

MSG_TYPE_DISABLE_Q_ NOTIFY_RESP

See Also

ENABLE_NOTIFY

Applications can register to receive notification when cross-group links are established and lost by sending an ENABLE_NOTIFY message to the Connect Server. See the Obtain Notification of Cross-Group Links Established and Lost topic in the Using Message-Based Services section for an explanation of how to use this message.

Note: The Connect Server performs endian conversion when this message is sent between processes that run on systems that use different hardware data formats. This message is also RISC aligned.

C Message Structure

typedef struct _ENABLE_NOTIFY {
char reserved;
char connection_flag;
} ENABLE_NOTIFY;

Message Data Fields

Field

Data Type

Script Format

Description

reserved

unsigned char

DB

Reserved for use by BEA MessageQ.

connection_flag

unsigned char

DB

Boolean flag for cross-group connection notification, 1; else 0.

Arguments

Argument

Script Format

pams_get_msg Format

Target

CONNECT_SERVER

PAMS_CONNECT_SERVER

Source

Supplied by BEA MessageQ

Supplied by BEA MessageQ

Class

PAMS

MSG_CLAS_PAMS

Type

ENABLE_NOTIFY

MSG_TYPE_ENABLE_NOTIFY

See Also

ENABLE_Q_NOTIFY_REQ

Applications can register to receive notification when queue states change in local or remote groups by sending an ENABLE_Q_NOTIFY_REQ message. This message requests a list of all active queues and then subsequent notification when queues become attached or detached and active or inactive. See the Receiving Attachment Notifications topic in the Using Message-Based Services section for an explanation of how to use this message.

Note: The Queue Server performs endian conversion when this message is sent between processes that run on systems that use different hardware data formats. This message is also RISC aligned.

C Message Structure

typedef struct _Q_NOTIFY_REQ {
int32 version;
int32 user_tag;
} Q_NOTIFY_REQ;

Message Data Fields

Field

Data Type

Script Format

Description

version

int32

DL

Version of request.

user_tag

int32

DL

User-specified code to identify this request.

Arguments

Argument

Script Format

pams_get_msg Format

Target

QUEUE_SERVER

PAMS_QUEUE_SERVER

Source

Requesting program

Requesting program

Class

PAMS

MSG_CLAS_PAMS

Type

ENABLE_Q_NOTIFY_REQ

MSG_TYPE_ENABLE_Q_NOTIFY_REQ

See Also

ENABLE_Q_NOTIFY_RESP

Applications can register to receive notification when queue states change in local or remote groups by sending an ENABLE_Q_NOTIFY_REQ message. The ENABLE_Q_NOTIFY_RESP message delivers a list of all active queues and then subsequently notifies the application of attachments, detachments, and changes to active and inactive status using the Q_UPDATE message. See the Receiving Attachment Notifications topic in the Using Message-Based Services section for an explanation of how to use this message.

Note: The Queue Server performs endian conversion when this message is received between processes that run on systems that use different hardware data formats. This message is also RISC aligned.

C Message Structure

#define MAX_NUMBER_Q_RECS 50
typedef struct _Q_NOTIFY_RESP {
int32 version;
int32 user_tag;
int32 status_code;
int32 last_block_flag;
int32 number_q_recs;
struct {
q_address q_num;
q_address q_owner;
int32 q_type;
int32 q_active_flag;
int32 q_attached_flag;
int32 q_owner_pid;
} q_rec [50];
} Q_NOTIFY_RESP;

Message Data Fields

Field

Data Type

Script Format

Description

version

int32

DL

Version of response.

user_tag

int32

DL

User-specified code from request.

status_code

int32

DL

0=Error
1=Success
-2=Refused

last_block_flag

int32

DL

Last block Boolean flag.

number_q_recs

int32

DL

Number of records in this message.

q_num

q_address

DL

Queue number.

q_owner

q_address

DL

Queue owner (only for secondary queues (SQs)).

q_type

int32

DL

Queue type (numerically encoded P, S, M).

q_active_flag

int32

DL

Queue active Boolean flag.

q_attached_flag

int32

DL

Queue attached Boolean flag.

q_owner_pid

int32

DL

Queue owner process identification (PID).

Arguments

Argument

Script Format

pams_get_msg Format

Target

Requesting program

Requesting program

Source

QUEUE_SERVER

PAMS_QUEUE_SERVER

Class

PAMS

MSG_CLAS_PAMS

Type

ENABLE_NOTIFY_RESP

MSG_TYPE_ENABLE_NOTIFY_RESP

See Also

LINKMGT_REQ

Applications can use link management messages to explicitly control cross-group connections. Use the LINKMGT_REQ message to request a connection to a remote group, to disconnect from a remote group, or to obtain information about a remote BEA MessageQ group. See the Controlling Cross-Group Links topic in the Using Message-Based Services section for an explanation of how to use this message.

Note: The Connect Server performs endian conversion when this message is sent between processes that run on systems that use different hardware data formats. This message is also RISC aligned.

C Message Structure

typedef struct _TADDRESS {
int32 len;
char str [16];
} TADDRESS;

typedef struct _NODENAME {
int32 len;
char str [255];
} NODENAME;

typedef struct _LINKMGT_REQ {
int32 version;
int32 user_tag;
int32 function_code;
int32 group_number;
int32 connect_type;
int32 reconnect_timer;
int32 window_size;
int32 window_delay;
int32 reserved_space [10];

    TADDRESS transport_addr;
NODENAME node_name;
} LINKMGT_REQ;

Message Data Fields

Field

Data Type

Script Format

Description

version

int32

DL

Message version.

user_tag

int32

DL

User-specified code to identify this request.

function_code

int32

DL

Function of the message using PSYM_LINKMGT_CMD:

_ENABLE
_DISABLE

_INQUIRY
_CONNECT
_DISCONNECT

group_number

int32

DL

Group number to receive action; valid values are between 1 and 32,000; PSYM_LINKMGT_ALL_GROUPS indicates all known links.

connect_type

int32

DL

Type of transport to use, as follows:

PSYM_LINKMGT_TCPIP

reconnect_timer

int32

DL

Time it takes for the COM Server to reconnect to a communications link. Enter the number of seconds or the following values:

PSYM_LINKMGT_NO_TIMER
PSYM_LINKMGT_USE_PREVIOUS

window_size

int32

DL

Size of transmission window (cross-group protocol Version 3.0 and higher). Enter the number of messages or the following value:

PSYM_LINKMGT_USE_PREVIOUS

window_delay

int32

DL

Transmission window delay in seconds (cross-group protocol Version 3.0 and higher). Enter the number of seconds or the following value:

PSYM_LINKMGT_USE_PREVIOUS

reserved_space

10-int32 array

DL(10)

Reserved for BEA MessageQ use.

transport_addr_len

int32

DL

Length of transport address. Values 0 to 16 bytes; 0 = use previous setting.

transport_addr

char
char str *

A

Transport address string that is 16 bytes in length; the TCP/IP port ID.

node_name_len

int32

DL

Length of node name string; 0 = use previous known value.

node_name

char

A

ASCII text of node name; length determined by node_name_len up to 255 characters.

Arguments

Argument

Script Format

pams_get_msg Format

Target

CONNECT_SERVER

PAMS_CONNECT_SERVER

Source

Requesting program

Requesting program

Class

PAMS

MSG_CLAS_PAMS

Type

LINKMGT_REQ

MSG_TYPE_LINKMGT_REQ

See Also

LINKMGT_RESP

LINKMGT_RESP

Applications can use link management messages to explicitly control cross-group connections. Use the LINKMGT_REQ message to request a connection to a remote group, to disconnect from a remote group, or to obtain information about a remote BEA MessageQ group. The LINKMGT_RESP message notifies the requesting application if the connection or disconnection request was successful and supplies information about the cross-group connection. See the Controlling Cross-Group Links topic in the Using Message-Based Services section for an explanation of how to use this message.

Note: The Connect Server performs endian conversion when this message is received between processes that run on systems that use different hardware data formats. This message is also RISC aligned.

C Message Structure

typedef struct _TADDRESS {
int32 len;
char str [16];
} TADDRESS;

typedef struct _NODENAME {
int32 len;
char str [255];
} NODENAME;

typedef struct _LINKMGT_RESP {
int32 version;
int32 user_tag;
int32 status;
int32 group_number;
int32 in_link_state;
int32 out_link_state;
int32 connect_type;
int32 platform_id;
int32 reconnect_timer;
int32 window_size;
int32 window_delay;
int32 reserved_space [10];
TADDRESS transport_addr;
NODENAME node_name;
} LINKMGT_RESP;

Message Data Fields

Field

Data Type

Script Format

Description

version

int32

DL

Message version.

user_tag

int32

DL

User-specified code from request.

status

int32

DL

Completion status

group_number

int32

DL

Group number to receive action. Valid values are between 1 and 32,000; PSYM_LINKMGT_ALL_GROUPS indicates all known links.

in_link_state

int32

DL

State of inbound link at time of request. Values are:

PSYM_LINKMGT_UNKNOWN
PSYM_LINKMGT_NOCNT
PSYM_LINKMGT_CONNECTED
PSYM_LINKMGT_DISABLED

out_link_state

int32

DL

State of outbound link at time of request; same values as in_link_state.

connect_type

int32

DL

Type of transport to use as follows:

PSYM_LINKMGT_TCPIP

platform_id

int32

DL

Platform type preceded by the prefix PSYM_PLATFORM. Valid values are:

VAX_VMS
VAX_ULTRIX
RISC_ULTRIX
HP9000_HPUX
MOTOROLA_VR32
SPARC_SUNOS
IBM_RS6000_AIX
OS2
MSDOS
PDP11_RSX
VAXELN
MACINTOSH
SCO_UNIX
M68K
VMS_AXP
UNIX
WINDOWSNT
OSF1_AXP
DYNIX_X86
UNKNOWN

reconnect_timer

int32

DL

Time it takes for the COM Server to reconnect to a communications link. Enter the number of seconds or the following values:

PSYM_LINKMGT_NO_TIMER
PSYM_LINKMGT_USE_PREVIOUS

window_size

int32

DL

Size of transmission window (cross-group protocol Version 3.0 and higher).

window_delay

int32

DL

Transmission window delay in seconds (cross-group protocol Version 3.0 and higher).

reserved_space

10-int32 array

DL(10)

Reserved for BEA MessageQ use.

transport_addr_
len

int32

DL

Length of transport address. Values 0 to 16 bytes; 0 = use previous setting.

transport_addr

char

A

Transport address string 16 bytes in length, the TCP/IP port ID.

node_name_len

int32

DL

Length of node name string. 0 = use previous known value.

node_name

char

A

ASCII text of node name; length determined by node_name_len up to 255 characters.

Status Codes

Status Code

Description

PSYM_LINKMGT_ALREADYUP

Link already connected.

PSYM_LINKMGT_MSGCONTENT

Message incomplete or content inconsistent with dialog.

PSYM_LINKMGT_MSGFMT

Format error in dialog.

PSYM_LINKMGT_NOGROUP

Group is unknown.

PSYM_LINKMGT_NOPRIV

No privilege for attempted operation.

PSYM_LINKMGT_NOTRANSPORT

Requested transport is not available.

PSYM_LINKMGT_NOTSUPPORTED

Feature not supported.

PSYM_LINKMGT_OPERATIONFAIL

Requested operation failed.

PSYM_LINKMGT_SUCCESS

Normal successful return.

Arguments

Argument

Script Format

pams_get_msg Format

Target

Requesting program

Requesting program

Source

CONNECT_SERVER

PAMS_CONNECT_SERVER

Class

PAMS

MSG_CLAS_PAMS

Type

LINKMGT_RESP

MSG_TYPE_LINKMGT_RESP

See Also

LINK_COMPLETE

Applications can register to receive notification when cross-group links are established and lost by sending an ENABLE_NOTIFY message to the Connect Server. Registered applications receive a LINK_COMPLETE message each time a cross-group connection occurs. See the Obtain Notification of Cross-Group Links Established and Lost topic in the Using Message-Based Services section for an explanation of how to use this message.

Note: The Connect Server does not perform endian conversion when this message is received between processes that run on systems that use different hardware data formats. The sender program must convert the message to the endian format of the target system to ensure that the message data is correctly interpreted. This message is RISC aligned.

C Message Structure

typedef struct _LINK_NOTIFICATION {
int16 group_number;
int16 filler1;
char os_type;
char filler2;
} LINK_NOTIFICATION;

Message Data Fields

Field

Data Type

Script Format

Description

group_number

word

DW

Group address associated with link.

filler1

word

DW

Reserved for BEA MessageQ.

os_type

byte

A(1)

Code indicating operating system of remote node.

filler2

byte

XB

Reserved for BEA MessageQ.

Arguments

Argument

Script Format

pams_get_msg Format

Target

Requesting program

Requesting program

Source

CONNECT_SERVER

PAMS_CONNECT_SERVER

Class

PAMS

MSG_CLAS_PAMS

Type

LINK_COMPLETE

MSG_TYPE_LINK_COMPLETE

See Also

LINK_LOST

Applications can register to receive notification when cross-group links are established and lost by sending an ENABLE_NOTIFY message to the Connect Server. Registered applications receive a LINK_LOST message each time a cross-group connection is lost. See the Obtain Notification of Cross-Group Links Established and Lost topic in the Using Message-Based Services section for an explanation of how to use this message.

Note: The Connect Server does not perform endian conversion when this message is received between processes that run on systems that use different hardware data formats. The sender program must convert the message to the endian format of the target system to ensure that the message data is correctly interpreted. This message is RISC aligned.

C Message Structure

typedef struct _LINK_NOTIFICATION {
int16 group_number;
int16 filler1;
char os_type;
char filler2;
} LINK_NOTIFICATION;

Message Data Fields

Field

Data Type

Script Format

Description

group_number

word

DW

Group address associated with link.

filler1

word

DW

Reserved for BEA MessageQ.

os_type

byte

A(1)

Code indicating operating system of remote node.

filler2

byte

XB

Reserved for BEA MessageQ.

Arguments

Argument

Script Format

pams_get_msg Format

Target

Requesting program

Requesting program

Source

CONNECT_SERVER

PAMS_CONNECT_SERVER

Class

PAMS

MSG_CLAS_PAMS

Type

LINK_LOST

MSG_TYPE_LINK_LOST

See Also

LIST_ALL_CONNECTIONS (Request)

An application can request a listing of all active and configured cross-group connections by sending a LIST_ALL_CONNECTIONS message to the Connect Server. The reply to this request is a variable-length message of the same type and class containing the cross-group connection information. See the Listing Cross-Group Connections, Entries, and Groups topic in the Using Message-Based Services section for an explanation of how to use this message.

Note: This message is RISC aligned.

C Message Structure

None.

Message Data Fields

None.

Arguments

Argument

Script Format

pams_get_msg Format

Target

CONNECT_SERVER

PAMS_CONNECT_SERVER

Source

Requesting program

Requesting program

Class

PAMS

MSG_CLAS_PAMS

Type

LIST_ALL_CONNECTIONS

MSG_TYPE_LIST_ALL_ -CONNECTIONS

See Also

LIST_ALL_CONNECTIONS (Response)

An application can request a listing of all active and configured cross-group connections by sending a LIST_ALL_CONNECTIONS message to the Connect Server. The reply to this request is a variable length-message of the same type and class containing the cross-group connection information. To read the information returned, the application must total the number of bytes in the reply and divide by the cross-group entry length, which is 20 bytes, to determine the number of records returned. See the Listing Cross-Group Connections, Entries, and Groups topic in the Using Message-Based Services section for an explanation of how to use this message.

This message does not return any information on groups with no link connection. The state field for LIST_ALL_CONNECTIONS should always be 3 (linked).

Note: The Connect Server does not perform endian conversion when this message is received between processes that run on systems that use different hardware data formats. The sender program must convert the message to the endian format of the target system to ensure that the message data is correctly interpreted. This message is RISC aligned.

C Message Structure

typedef struct _GROUP_RECORD {
int16 group_number;
char group_name[4];
char uic[3];
char os_type;
char node[6];
char state;
char reserved[3];
} GROUP_RECORD;

Message Data Fields

Field

Data Type

Script Format

Description

group_number

word

DW

Group address number.

group_name

4-char array

A(4)

Name truncated to 4 characters.

uic

3-char array

A(3)

Octal group user identification code (UIC).

os_type

char

A(1)

Operating system type of group.

node

6-char array

A(6)

Network node name.

state

char

A(1)

1=No link
2=Pending
3=Linked

reserved

3-char

ZB 3

Reserved for BEA MessageQ.

Arguments

Argument

Script Format

pams_get_msg Format

Target

Supplied by BEA MessageQ

Supplied by BEA MessageQ

Source

CONNECT_SERVER

PAMS_CONNECT_SERVER

Class

PAMS

MSG_CLAS_PAMS

Type

LIST_ALL_CONNECTIONS

MSG_TYPE_LIST_ALL_ -CONNECTIONS

See Also

LIST_ALL_ENTRIES (Request)

An application can request a listing of all attached and configured queues in a group by sending a LIST_ALL_ENTRIES message to the Connect Server. The reply to this request is a variable-length message of the same type and class containing the queue information. See the Listing Cross-Group Connections, Entries, and Groups topic in the Using Message-Based Services section for an explanation of how to use this message.

Note: This message is RISC aligned.

C Message Structure

None.

Message Data Fields

None.

Arguments

Argument

Script Format

pams_get_msg Format

Target

CONNECT_SERVER

PAMS_CONNECT_SERVER

Source

Supplied by BEA MessageQ

Supplied by BEA MessageQ

Class

PAMS

MSG_CLAS_PAMS

Type

LIST_ALL_ENTRIES

MSG_TYPE_LIST_ALL_

ENTRIES

See Also

LIST_ALL_ENTRIES (Response)

An application can request a listing of all attached and configured queues in a group by sending a LIST_ALL_ENTRIES message to the Connect Server. The reply to this request is a variable length message of the same type and class containing the queue information. To read the information returned, the application must total the number of bytes in the reply and divide by the queue entry length, which is 24 bytes, to determine the number of records returned. See the Listing Cross-Group Connections, Entries, and Groups topic in the Using Message-Based Services section for an explanation of how to use this message.

Note: The Connect Server does not perform endian conversion when this message is received between processes that run on systems that use different hardware data formats. The sender program must convert the message to the endian format of the target system to ensure that the message data is correctly interpreted. This message is RISC aligned.

C Message Structure

typedef struct _QLIST_RECORD {
char q_name [20];
int16 q_number;
char attach_flag;
char reserved;
} QLIST_RECORD;

Message Data Fields

Field

Data Type

Script Format

Description

q_name

20-char array

A(20)

Queue name, truncated to fit.

q_number

word

DW

Local queue address number.

attach_flag

Boolean

DB

1=Attached
0=Unattached

reserved

byte

ZB

Reserved for BEA MessageQ.

Arguments

Argument

Script Format

pams_get_msg Format

Target

Requesting program

Requesting program

Source

CONNECT_SERVER

PAMS_CONNECT_SERVER

Class

PAMS

MSG_CLAS_PAMS

Type

LIST_ALL_ENTRIES

MSG_TYPE_LIST_ALL_ENTRIES

See Also

LIST_ALL_GROUPS (Request)

An application can request a listing of all groups on a message queuing bus by sending a LIST_ALL_GROUPS message to the Connect Server. The reply to this request is a variable-length message of the same type and class containing the group information. See the Listing Cross-Group Connections, Entries, and Groups topic in the Using Message-Based Services section for an explanation of how to use this message.

Note: This message is RISC aligned.

C Message Structure

None.

Message Data Fields

None.

Arguments

Argument

Script Format

pams_get_msg Format

Target

CONNECT_SERVER

PAMS_CONNECT_SERVER

Source

Supplied by BEA MessageQ

Supplied by BEA MessageQ

Class

PAMS

MSG_CLAS_PAMS

Type

LIST_ALL_GROUPS

MSG_TYPE_LIST_ALL_GROUPS

See Also

LIST_ALL_GROUPS (Response)

An application can request a listing of all groups, connected and unconnected, on a message queuing bus by sending a LIST_ALL_GROUPS message to the Connect Server. The reply to this request is a variable-length message of the same type and class containing the group information. To read the information returned, the application must total the number of bytes in the reply and divide by the group entry length, which is 18 bytes, to determine the number of records returned. See the Listing Cross-Group Connections, Entries, and Groups topic in the Using Message-Based Services section for an explanation of how to use this message.

Note: The Connect Server does not perform endian conversion when this message is received between processes that run on systems that use different hardware data formats. The sender program must convert the message to the endian format of the target system to ensure that the message data is correctly interpreted. This message is RISC aligned.

C Message Structure

typedef struct _LIST_ALL_RESP {
int16 group_number;
char group_name [4];
char uic_number [3];
char operating_system;
char decnet_node [6];
char connection_state;
char reserved[3];
} LIST_ALL_RESP;

Message Data Fields

Field

Data Type

Script Format

Description

group_number

word

DW

Group address number.

group_name

4-char array

A(4)

Name truncated to 4 characters.

uic_number

3-char array

A(3)

Octal group user identification code (UIC).

operating_system

char

A(1)

Operating system type of group.

decnet_node

6-char array

A(6)

Current DECnet node name. This can also be the TCP/IP node name. TCP/IP node names longer than 6 characters are truncated.

connection_state

char

A(1)

1=No link
2=Pending
3=Linked

reserved

3-char (VMS)
1-char (UNIX)

ZB

Reserved for BEA MessageQ.

Arguments

Argument

Script Format

pams_get_msg Format

Target

Requesting program

Requesting program

Source

CONNECT_SERVER

PAMS_CONNECT_SERVER

Class

PAMS

MSG_CLAS_PAMS

Type

LIST_ALL_GROUPS

MSG_TYPE_LIST_ALL_GROUPS

See Also

LIST_ALL_Q_REQ

The LIST_ALL_Q_REQ message is sent to the Queue Server to request a list of all attached permanent and temporary queues for a local or remote group. See the Listing Attached Queues in a Group topic in the Using Message-Based Services section for an explanation of how to use this message.

Note: The Queue Server performs endian conversion when this message is sent between processes that run on systems that use different hardware data formats. This message is also RISC aligned.

C Message Structure

typedef struct _Q_NOTIFY_REQ {
int32 version;
int32 user_tag;
} Q_NOTIFY_REQ;

Message Data Fields

Field

Data Type

Script Format

Description

version

int32

DL

Version of request.

user_tag

int32

DL

User-specified code to identify this request.

Arguments

Argument

Script Format

pams_get_msg Format

Target

QUEUE_SERVER

PAMS_QUEUE_SERVER

Source

Requesting program

Requesting program

Class

PAMS

MSG_CLAS_PAMS

Type

LIST_ALL_Q_REQ

MSG_TYPE_LIST_ALL_Q_REQ

See Also

LIST_ALL_Q_RESP

The LIST_ALL_Q_RESP message provides a list of all permanent queues and all attached temporary queues for a local or remote group. This information is requested by sending a LIST_ALL_Q_REQ message to the Queue Server. Because the response message may contain a long list of queue names, the application must allocate a sufficient buffer size to store the information returned. See Listing Attached Queues in a Group in Chapter 5, "Using Message-Based Services" for an explanation of how to use this message.

Note: The Queue Server performs endian conversion when this message is received between processes that run on systems that use different hardware data formats. This message is also RISC aligned.

C Message Structure

#define MAX_NUMBER_Q_RECS 50
typedef struct _Q_NOTIFY_RESP {
int32 version;
int32 user_tag;
int32 status_code;
int32 last_block_flag;
int32 number_q_recs;
struct {
q_address q_num;
q_address q_owner;
int32 q_type;
int32 q_active_flag;
int32 q_attached_flag;
int32 q_owner_pid;
} q_rec [50];
} Q_NOTIFY_RESP;

Message Data Fields

Field

Data Type

Script Format

Description

version

int32

DL

Version of response.

user_tag

int32

DL

User-specified code from request.

status_code

int32

DL

0=Error
1=Success
-2=Refused

last_block_flag

int32

DL

Last block Boolean flag.

number_q_recs

int32

DL

Number of records in this message.

q_num

q_address

DL

Queue number.

q_owner

q_address

DL

Queue owner (only for secondary queues (SQs)).

q_type

int32

DL

Queue type (numerically encoded P, S, M).

q_active_flag

int32

DL

Queue active Boolean flag.

q_attached_flag

int32

DL

Queue attached Boolean flag.

q_owner_pid

int32

DL

Queue owner process identification (PID). On Windows NT systems, thread identifier is returned.

Arguments

Argument

Script Format

pams_get_msg Format

Target

Requesting program

Requesting program

Source

QUEUE_SERVER

PAMS_QUEUE_SERVER

Class

PAMS

MSG_CLAS_PAMS

Type

LIST_ALL_Q_RESP

MSG_TYPE_LIST_ALL_Q_RESP

See Also

LOCATE_Q_REP

The pams_locate_q function requests the queue address for a queue name. When this function is performed asynchronously, the results are returned in the LOCATE_Q_REP message. This message provides the location in the search list where the name is found, the status of the operation, a tag that can be set by the user, and the queue address associated with the name.

Note: This message is RISC aligned.

C Message Structure

typedef struct _LOCATE_Q_REP {
int32 version;
int32 search_loc;
q_address object_handle;
int32 status;
int32 trans_id;
char q_name [256];
} LOCATE_Q_REP;

Message Data Fields

Field

Data Type

Script Format

Description

version

int32

DL

Format version number.

search_loc

int32

DL

Location in which name is found.

object_handle

q_address

DL

Queue address associated with name.

status

int32

DL

Return code from pams_locate_q.

trans_id

int32

DL

User-specified tag.

q_name

256-character
array

A(256)

Name to locate.

Arguments

Argument

Script Format

pams_get_msg Format

Target

Supplied by BEA MessageQ

Supplied by BEA MessageQ

Source

Supplied by BEA MessageQ

Supplied by BEA MessageQ

Class

PAMS

MSG_CLAS_PAMS

Type

LOCATE_Q_REP

MSG_TYPE_LOCATE_Q_REP

MRS_ACK

The MRS_ACK message acknowledges the delivery of a recoverable message at the delivery interest point when a nonblocking request is issued. It responds to a pams_put_msg request when delivery modes of PDEL_MODE_AK_DQF, PDEL_MODE_AK_SAF, or PDEL_MODE_AK_CONF are specified. Status codes for the send operation are extracted from the PAMS Status Block (PSB), an argument value which is returned to the pams_get_msg, pams_get_msga, and pams_get_msgw function when the recoverable message is read. The status codes for the psb and uma arguments are listed in the Status Codes section of this description.

Note: This message is RISC aligned.

C Message Structure

None.

Message Data Fields

None.

Arguments

Argument

Script Format

pams_get_msg Format

Target

Sender program

Sender program

Source

MRS_SERVER

PAMS_MRS_SERVER

Class

MRS

MSG_CLAS_MRS

Type

MRS_ACK

MSG_TYPE_MRS_ACK

Status Code

Message

PSB Status

PAMS__DQF_DEVICE_FAIL

Message is not recoverable; destination queue file (DQF) I/O failed.

PAMS__ENQUEUED

Message is recoverable.

PAMS__MRS_RES_EXH

Message is not recoverable; MRS resource exhaustion.

PAMS__NO_DQF

Message is not recoverable; no DQF for target queue.

PAMS__NO_SAF

Message is not recoverable; no SAF file for target queue.

PAMS__SAF_DEVICE_FAIL

Message is not recoverable; SAF I/O failed.

PAMS__SAF_FORCED

Message is written to SAF file to maintain first-in/first-out (FIFO) order.

PAMS__SENDER_TMOEXPIRED

Send timeout expired prior to completion of MRS actions.

PAMS__STORED

Message is recoverable in store and forward (SAF) file. (Delivery mode was PDEL_MODE_AK_SAF.)

UMA Status

Message

UMA Status

PAMS__DISC_SUCCESS

Message is not recoverable in DQF; UMA was PDEL_UMA_DISC; message discarded.

PAMS__DISC_FAILED

Message is not recoverable in DQF; UMA was PDEL_UMA_DISC; message could not be discarded.

PAMS__DISCL_SUCCESS

Message is not recoverable in DQF; UMA was PDEL_UMA_DISC; message discarded after logging recoverability failure.

PAMS__DISCL_FAILED

Message is not recoverable in DQF; UMA was PDEL_UMA_DISC; recoverability failure could not be logged or message could not be discarded.

PAMS__DLJ_SUCCESS

Message is not recoverable in DQF; UMA was PDEL_UMA_DLJ; message written to dead letter journal (DLJ).

PAMS__DLJ_FAILED

Message is not recoverable in DQF; UMA was PDEL_UMA_DLJ; dead letter journal write failed.

PAMS__DLQ_SUCCESS

Message is not recoverable in DQF; UMA was PDEL_UMA_DLQ; message queued to dead letter queue.

PAMS__DLQ_FAILED

Message is not recoverable in DQF; UMA was PDEL_UMA_DLQ; message could not be queued to dead letter queue.

PAMS__NO_UMA

Message is recoverable; undeliverable message action (UMA) not executed.

PAMS__RTS_SUCCESS

Message is not recoverable in DQF; UMA was PDEL_UMA_RTS; message returned to sender.

PAMS__RTS_FAILED

Message is not recoverable in DQF; UMA was PDEL_UMA_RTS; message could not be returned to sender.

PAMS__SAF_SUCCESS

Message is not recoverable in DQF; UMA was PDEL_UMA_SAF; message recoverable from SAF file.

PAMS__SAF_FAILED

Message is not recoverable in DQF; UMA was PDEL_UMA_SAF; SAF write failed.


MRS_DQF_SET

Applications can request to open, close, or fail over a destination queue file (DQF) by sending an MRS_DQF_SET message to the MRS Server. The failover function renames a DQF file, associating it with another target queue that does not currently have a DQF associated with it. See the Opening, Closing, and Failing Over SAF and DQF Files topic in the Using Message-Based Services section for an explanation of how to use this message. This service is available on OpenVMS systems only.

Note: The MRS Server does not perform endian conversion when this message is sent between processes that run on systems that use different hardware data formats. The sender program must convert the message to the endian format of the target system to ensure that the message data is correctly interpreted. This message is RISC aligned.

C Message Structure

/*****************************************/
/* ACTION VALUES FOR MRS_DQF_SET message */
/*****************************************/
#define DQF_SET_OPEN 1
#define DQF_SET_CLOSE 2
#define DQF_SET_FAILOVER 3

/*****************************************/
/* STATUS VALUES FOR MRS_DQF_SET message */
/*****************************************/
#define DQF_SET_ERROR 0
#define DQF_SET_SUCCESS 1
#define DQF_SET_REFUSED 2

typedef struct _MRS_DQF_SET {
int16 version;
int16 action;
int32 status;
q_address original_target;
q_address new_target;
int32 original_mrs_area_len;
char original_mrs_area [256];
} MRS_DQF_SET;

Message Data Fields

Field

Data Type

Script Format

Description

version

word

DW

Format version number. Must be 0.

action

word

DW

1 = Open
2 = Close
3 = Fail over

status

int32

DL

0 = Error
1 = Success
2 = Refused

original_target

q_address

DL

Queue address of DQF.

new target

q_address

DL

Queue address of new DQF for failover.

original_mrs_area_len

int32

DL

Number of bytes in original MRS area specification for failover.

original_mrs_area

256-byte array

A(256)

MRS original area specification for failover.

Arguments

Argument

Script Format

pams_get_msg Format

Target

MRS_SERVER

PAMS_MRS_SERVER

Source

Supplied by BEA MessageQ

Supplied by BEA MessageQ

Class

MRS

MSG_CLAS_MRS

Type

MRS_DQF_SET

MSG_TYPE_MRS_DQF_SET

See Also

MRS_DQF_SET_REP

Applications can request to open, close, or fail over a destination queue file (DQF) by sending an MRS_DQF_SET message to the MRS Server. The failover function renames a DQF file, associating it with another target queue that does not currently have a DQF associated with it. The MRS_DQF_SET_REP message returns the status of the request. See the Opening, Closing, and Failing Over SAF and DQF Files topic in the Using Message-Based Services section for an explanation of how to use this message. This service is available on OpenVMS systems only.

Note: The MRS Server does not perform endian conversion when this message is received between processes that run on systems that use different hardware data formats. The sender program must convert the message to the endian format of the target system to ensure that the message data is correctly interpreted. This message is RISC aligned.

C Message Structure

/*****************************************/
/* ACTION VALUES FOR MRS_DQF_SET message */
/*****************************************/
#define DQF_SET_OPEN 1
#define DQF_SET_CLOSE 2
#define DQF_SET_FAILOVER 3

/*****************************************/
/* STATUS VALUES FOR MRS_DQF_SET message */
/*****************************************/
#define DQF_SET_ERROR 0
#define DQF_SET_SUCCESS 1
#define DQF_SET_REFUSED 2

typedef struct _MRS_DQF_SET {
int16 version;
int16 action;
int32 status;
q_address original_target;
q_address new_target;
int32 original_mrs_area_len;
char original_mrs_area [256];
} MRS_DQF_SET;

Message Data Fields

Field

Data Type

Script Format

Description

version

word

DW

Format version number. Must be 0.

action

word

DW

1 = Open
2 = Close
3 = Fail over

status

int32

DL

0 = Error
1 = Success
2 = Refused

original_

target

q_address

DL

Queue address of DQF.

new_target

q_address

DL

Queue address of new DQF for failover.

original_mrs_area_len

int32

DL

Number of bytes in original MRS area specification for failover.

original_mrs_area

256-byte array

A(256)

MRS original area specification for failover.

Arguments

Argument

Script Format

pams_get_msg Format

Target

Requesting program

Requesting program

Source

MRS_SERVER

PAMS_MRS_SERVER

Class

MRS

MSG_CLAS_MRS

Type

MRS_DQF_SET_REP

MSG_TYPE_MRS_DQF_SET_REP

See Also

MRS_DQF_TRANSFER

Applications can request the transfer of the contents of one DQF to another by sending a MRS_DQF_TRANSFER message to the Qtransfer Server. Using this failover method, when a node fails, the Qtransfer Server can transfer messages from a recoverable queue on a node that has failed to a recoverable queue on a node that is currently processing messages. See the Transferring the Contents of a Destination Queue File topic in the Using Message-Based Services section for an explanation of how to use this message. This service is available on OpenVMS systems only.

Note: The Qtransfer Server does not perform endian conversion when this message is sent between processes that run on systems that use different hardware data formats. The sender program must convert the message to the endian format of the target system to ensure that the message data is correctly interpreted.

C Message Structure

typedef struct _MRS_DQF_TRANSFER {
int16 version;
int32 user_tag;
int16 status;
int32 send_count;
int16 from_dqf_len;
char from_dqf_file [256];
int16 to_q;
} MRS_DQF_TRANSFER;

Message Data Fields

Field

Data Type

Script Format

Description

version

word

DW

Format version number.

user_tag

int32

XL

User-defined tag.

status

word

DW

Not used.

send_count

int32

DL

Count of successful transfers.

from_dqf_len

word

DW

Number of bytes in DQF file specification.

from_dqf_file

256-byte array

A(256)

File specification of DQF.

to_q

word

DW

Local address of queue to receive transfer.

Arguments

Argument

Script Format

pams_get_msg Format

Target

QTRANSFER

PAMS_QTRANSFER

Source

Supplied by BEA MessageQ

Supplied by BEA MessageQ

Class

MRS

MSG_CLAS_MRS

Type

MRS_DQF_TRANSFER

MSG_TYPE_MRS_DQF_TRANSFER

See Also

MRS_DQF_TRANSFER_ACK

Applications can request the transfer of the contents of one DQF file to another by sending an MRS_DQF_TRANSFER message to the Qtransfer Server. Using this failover method, when a node fails, the Qtransfer Server can transfer messages from a recoverable queue on a node that has failed to a recoverable queue on a node that is currently processing messages. The MRS_DQF_TRANSFER_ACK message is returned to the sender to acknowledge the receipt of the request. See the Transferring the Contents of a Destination Queue File topic in the Using Message-Based Services section for an explanation of how to use this message. This service is available on OpenVMS systems only.

Note: The Qtransfer Server does not perform endian conversion when this message is received between processes that run on systems that use different hardware data formats. The sender program must convert the message to the endian format of the target system to ensure that the message data is correctly interpreted.

C Message Structure

typedef struct _MRS_DQF_TRANSFER {
int16 version;
int32 user_tag;
int16 status;
int32 send_count;
int16 from_dqf_len;
char from_dqf_file [256];
int16 to_q;
} MRS_DQF_TRANSFER;

Message Data Fields

Field

Data Type

Script Format

Description

version

word

DW

Format version number.

user_tag

int32

XL

User-defined tag.

status

word

DW

0=Error
1=Success
2=Refused

send_count

int32

DW

Count of successful transfers.

from_dqf_len

word

DW

Number of bytes in DQF file specification.

from_dqf_file

256-byte array

A(256)

File specification of DQF file to read.

to_q

word

DW

Local address of queue to receive transfer.

Arguments

Argument

Script Format

pams_get_msg Format

Target

QTRANSFER

PAMS_QTRANSFER

Source

Supplied by BEA MessageQ

Supplied by MessaqeQ

Class

MRS

MSG_CLAS_MRS

Type

MRS_DQF_TRANSFER_ACK

MSG_TYPE_DQF_TRANSFER_ ACK

See Also

MRS_DQF_TRANSFER_REP

Applications can request the transfer of the contents of one destination queue file to another by sending an MRS_DQF_TRANSFER message to the Qtransfer Server. Using this failover method, when a node fails, the Qtransfer Server can transfer messages from a recoverable queue on a node that has failed to a recoverable queue on a node that is currently processing messages. The MRS_DQF_TRANSFER_REP message is returned to the sender to indicate the completion status of the request. See the Transferring the Contents of a Destination Queue File topic in the Using Message-Based Services section for an explanation of how to use this message. This service is available on OpenVMS systems only.

Note: The Qtransfer Server does not perform endian conversion when this message is received between processes that run on systems that use different hardware data formats. The sender program must convert the message to the endian format of the target system to ensure that the message data is correctly interpreted.

C Message Structure

typedef struct _MRS_DQF_TRANSFER {
int16 version;
int32 user_tag;
int16 status;
int32 send_count;
int16 from_dqf_len;
char from_dqf_file [256];
int16 to_q;
} MRS_DQF_TRANSFER;

Message Data Fields

Field

Data Type

Script Format

Description

version

word

DW

Format version number.

user_tag

int32

XL

User-defined tag.

status

word

DW

0=Error
1=Success
2=Refused

send_count

int32

DL

Count of successful transfers.

from_dqf_len

word

DW

Number of bytes DQF file specification.

from_dqf_file

256-byte array

A(256)

File specification of DQF file to read.

to_q

word

DW

Local address of queue to receive transfer.

Arguments

Argument

Script Format

pams_get_msg Format

Target

QTRANSFER

PAMS_QTRANSFER

Source

Supplied by BEA MessageQ

Supplied by BEA MessageQ

Class

MRS

MSG_CLAS_MRS

Type

MRS_DQF_TRANSFER_REP

MSG_TYPE_MRS_DFQ_

TRANSFER_REP

See Also

MRS_JRN_DISABLE

Disables journaling for a running message queuing group. This service is used to disable journaling before failing over auxiliary journals. See the Controlling Journaling to the PCJ File topic in the Using Message-Based Services section for an explanation of how to use this message. This service is available on OpenVMS systems only.

Note: The MRS Server does not perform endian conversion when this message is sent between processes that run on systems that use different hardware data formats. The sender program must convert the message to the endian format of the target system to ensure that the message data is correctly interpreted. This message is RISC aligned.

C Message Structure

/******************************************/
/* STATUS VALUES FOR JRN_ENABLE message */
/******************************************/
#define JRN_SET_ERROR 0
#define JRN_SET_SUCCESS 1
#define JRN_SET_REFUSED 2
#define JRN_SET_ALREADY_DISABLED 3
#define JRN_SET_ALREADY_ENABLED 4
#define JRN_SET_SERVER_NOTUP 5

typedef struct _MRS_JRN_SET_ALL {
int32 version;
int32 dqf_status;
int32 saf_status;
int32 pcj_status;
int32 dlj_status;
} MRS_JRN_SET_ALL;

Message Data Fields

Field

Data Type

Script Format

Description

version

int32

DL

Format version number. Must be 0.

dqf_status

int32

DL

0 = Error
1 = Success
2 = Refused
3 = Already Disabled

saf_status

int32

DL

0 = Error
1 = Success
2 = Refused
3 = Already Disabled

pcj_status

int32

DL

0 = Error
1 = Success
2 = Refused
3 = Already Disabled
5 = Server Not Available

dlj_status

int32

DL

0 = Error
1 = Success
2 = Refused
3 = Already Disabled
5 = Server Not Available

Arguments

Argument

Script Format

pams_get_msg Format

Target

MRS_SERVER

PAMS_MRS_SERVER

Source

Supplied by BEA MessageQ

Supplied by BEA MessageQ

Class

MRS

MSG_CLAS_MRS

Type

MRS_JRN_DISABLE

MSG_TYPE_MRS_JRN_DISABLE

See Also

MRS_JRN_DISABLE_REP

Applications can request to disable journaling for a running message queuing group by sending an MRS_JRN_DISABLE message to the MRS Server. The MRS_JRN_DISABLE_REP message returns the status of the request. This service is used before failing over auxiliary journals. See the Controlling Journaling to the PCJ File topic in the Using Message-Based Services section for an explanation of how to use this message. This service is available on OpenVMS systems only.

Note: The MRS Server does not perform endian conversion when this message is received between processes that run on systems that use different hardware data formats. The sender program must convert the message to the endian format of the target system to ensure that the message data is correctly interpreted. This message is RISC aligned.

C Message Structure

/******************************************/
/* STATUS VALUES FOR JRN_ENABLE message */
/******************************************/
#define JRN_SET_ERROR 0
#define JRN_SET_SUCCESS 1
#define JRN_SET_REFUSED 2
#define JRN_SET_ALREADY_DISABLED 3
#define JRN_SET_ALREADY_ENABLED 4
#define JRN_SET_SERVER_NOTUP 5

typedef struct _MRS_JRN_SET_ALL {
int32 version;
int32 dqf_status;
int32 saf_status;
int32 pcj_status;
int32 dlj_status;
} MRS_JRN_SET_ALL;

Message Data Fields

Field

Data Type

Script Format

Description

version

int32

DL

Format version number. Must be 0.

dqf_status

int32

DL

0 = Error
1 = Success
2 = Refused
3 = Already Disabled

saf_status

int32

DL

0 = Error
1 = Success
2 = Refused
3 = Already Disabled

pcj_status

int32

DL

0 = Error
1 = Success
2 = Refused
3 = Already Disabled
5 = Server Not Available

dlj_status

int32

DL

0 = Error
1 = Success
2 = Refused
3 = Already Disabled
5 = Server Not Available

Arguments

Argument

Script Format

pams_get_msg Format

Target

Requesting program

Requesting program

Source

MRS_SERVER

PAMS_MRS_SERVER

Class

MRS

MSG_CLAS_MRS

Type

MRS_JRN_DISABLE_REP

MSG_TYPE_MRS_JRN_

DISABLE_REP

See Also

MRS_JRN_ENABLE

Enables journaling for a running message queuing group after it has been disabled using the MRS_JRN_DISABLE message. This service is used before failing over auxiliary journals. See the Controlling Journaling to the PCJ File topic in the Using Message-Based Services section for an explanation of how to use this message. This service is available on OpenVMS systems only.

Note: The MRS Server does not perform endian conversion when this message is sent between processes that run on systems that use different hardware data formats. The sender program must convert the message to the endian format of the target system to ensure that the message data is correctly interpreted. This message is RISC aligned.

C Message Structure

/******************************************/
/* STATUS VALUES FOR JRN_ENABLE message */
/******************************************/
#define JRN_SET_ERROR 0
#define JRN_SET_SUCCESS 1
#define JRN_SET_REFUSED 2
#define JRN_SET_ALREADY_DISABLED 3
#define JRN_SET_ALREADY_ENABLED 4
#define JRN_SET_SERVER_NOTUP 5

typedef struct _MRS_JRN_SET_ALL {
int32 version;
int32 dqf_status;
int32 saf_status;
int32 pcj_status;
int32 dlj_status;
} MRS_JRN_SET_ALL;

Message Data Fields

Field

Data Type

Script Format

Description

version

int32

DL

Format version number. Must be 0.

dqf_status

int32

DL

0 = Error
1 = Success
2 = Refused
4 = Already Enabled

saf_status

int32

DL

0 = Error
1 = Success
2 = Refused
4 = Already Enabled

pcj_status

int32

DL

0 = Error
1 = Success
2 = Refused
4 = Already Enabled
5 = Server Not Available

dlj_status

int32

DL

0 = Error
1 = Success
2 = Refused
4 = Already Enabled
5 = Server Not Available

Arguments

Argument

Script Format

pams_get_msg Format

Target

MRS_SERVER

PAMS_MRS_SERVER

Source

Supplied by BEA MessageQ

Supplied by BEA MessageQ

Class

MRS

MSG_CLAS_MRS

Type

MRS_JRN_ENABLE

MSG_TYPE_MRS_JRN_ENABLE

See Also

MRS_JRN_DISABLE

MRS_JRN_DISABLE_REP

MRS_JRN_ENABLE_REP

MRS_JRN_ENABLE_REP

Applications can request to reenable journaling for a running message queuing group after it has been disabled by sending an MRS_JRN_ENABLE message to the MRS Server. The MRS_JRN_ENABLE_REP message returns the status of the request. This service is used with MRS before failing over auxiliary journals. See the Controlling Journaling to the PCJ File topic in the Using Message-Based Services section for an explanation of how to use this message. This service is available on OpenVMS systems only.

Note: The MRS Server does not perform endian conversion when this message is received between processes that run on systems that use different hardware data formats. The sender program must convert the message to the endian format of the target system to ensure that the message data is correctly interpreted. This message is RISC aligned.

C Message Structure

/******************************************/
/* STATUS VALUES FOR JRN_ENABLE message */
/******************************************/
#define JRN_SET_ERROR 0
#define JRN_SET_SUCCESS 1
#define JRN_SET_REFUSED 2
#define JRN_SET_ALREADY_DISABLED 3
#define JRN_SET_ALREADY_ENABLED 4
#define JRN_SET_SERVER_NOTUP 5

typedef struct _MRS_JRN_SET_ALL {
int32 version;
int32 dqf_status;
int32 saf_status;
int32 pcj_status;
int32 dlj_status;
};
typedef struct MRS_JRN_SET_ALL;

Message Data Fields

Field

Data Type

Script Format

Description

version

int32

DL

Format version number. Must be 0.

dqf_status

int32

DL

0 = Error
1 = Success
2 = Refused
4 = Already Enabled

saf_status

int32

DL

0 = Error
1 = Success
2 = Refused
4 = Already Enabled

pcj_status

int32

DL

0 = Error
1 = Success
2 = Refused
4 = Already Enabled
5 = Server Not Available

dlj_status

int32

DL

0 = Error
1 = Success
2 = Refused
4 = Already Enabled
5 = Server Not Available

Arguments

Argument

Script Format

pams_get_msg Format

Target

Requesting program

Requesting program

Source

MRS_SERVER

PAMS_MRS_SERVER

Class

MRS

MSG_CLAS_MRS

Type

MRS_JRN_ENABLE_REP

MSG_TYPE_MRS_JRN_ENABLE_REP

See Also

MRS_JRN_DISABLE

MRS_JRN_DISABLE_REP

MRS_JRN_ENABLE

MRS_SAF_SET

Applications can request to open, close, or failover (redirect) a store-and-forward file (SAF) by sending an MRS_SAF_SET message to the MRS Server. The failover function renames a SAF file, associating it with another target queue that does not currently have a SAF associated with it. See the Opening, Closing, and Failing Over SAF and DQF Files topic in the Using Message-Based Services section for an explanation of how to use this message. This service is available on OpenVMS systems only.

Note: The MRS Server does not perform endian conversion when this message is sent between processes that run on systems that use different hardware data formats. The sender program must convert the message to the endian format of the target system to ensure that the message data is correctly interpreted. This message is RISC aligned.

C Message Structure

/*****************************************/
/* ACTION VALUES FOR MRS_SAF_SET message */
/*****************************************/
#define SAF_SET_OPEN 4
#define SAF_SET_CLOSE 5
#define SAF_SET_FAILOVER 6

/*****************************************/
/* STATUS VALUES FOR MRS_SAF_SET message */
/*****************************************/
#define JRN_SET_ERROR 0
#define JRN_SET_SUCCESS 1
#define JRN_SET_REFUSED 2

typedef struct _MRS_SAF_SET {
int16 version;
int16 action;
int32 status;
q_address original_target;
q_address new_target;
int32 original_mrs_area_len;
char original_mrs_area [256];
int16 original_owner_group;
int16 new_owner_group;
} MRS_SAF_SET;

Message Data Fields

Field

Data Type

Script Format

Description

version

word

DW

Format version number. Must be 0.

action

word

DW

4 = Open
5 = Close
6 = Failover

status

int32

DL

0 = Error
1 = Success
2 = Refused

original_target

q_address

DL

Queue address of SAF.

new_target

q_address

DL

Queue address of new SAF for failover.

original_mrs_ area_len

int32

DL

Number of bytes in original MRS area specification for failover.

original_mrs_ area

256-byte array

A(256)

MRS original area specification for failover.

original_owner_group

word

DW

The current group that owns the SAF.

new_owner_ group

word

DW

The new group that will assume ownership of the SAF after failover is complete.

Arguments

Argument

Script Format

pams_get_msg Format

Target

MRS_SERVER

PAMS_MRS_SERVER

Source

Supplied by BEA MessageQ

Supplied by BEA MessageQ

Class

MRS

MSG_CLAS_MRS

Type

MRS_SAF_SET

MSG_TYPE_MRS_SAF_SET

See Also

MRS_SAF_SET_REP

Applications can request to open, close, or failover (redirect) a store-and-forward file (SAF) by sending an MRS_SAF_SET message to the MRS Server. The failover function renames a SAF file, associating it with another target queue that does not currently have a SAF associated with it. The MRS_SAF_SET_REP message returns the status of the request. See the Opening, Closing, and Failing Over SAF and DQF Files topic in the Using Message-Based Services section for an explanation of how to use this message. This service is available on OpenVMS systems only.

Note: The MRS Server does not perform endian conversion when this message is received between processes that run on systems that use different hardware data formats. The sender program must convert the message to the endian format of the target system to ensure that the message data is correctly interpreted. This message is RISC aligned.

C Message Structure

/*****************************************/
/* ACTION VALUES FOR MRS_SAF_SET message */
/*****************************************/
#define SAF_SET_OPEN 4
#define SAF_SET_CLOSE 5
#define SAF_SET_FAILOVER 6

/*****************************************/
/* STATUS VALUES FOR MRS_SAF_SET message */
/*****************************************/
#define JRN_SET_ERROR 0
#define JRN_SET_SUCCESS 1
#define JRN_SET_REFUSED 2

typedef struct _MRS_SAF_SET {
int16 version;
int16 action;
int32 status;
q_address original_target;
q_address new_target;
int32 original_mrs_area_len;
char original_mrs_area [256];
int16 original_owner_group;
int16 new_owner_group;
} MRS_SAF_SET;

Message Data Fields

Field

Data Type

Script Format

Description

version

word

DW

Format version number. Must be 0.

action

word

DW

4 = Open
5 = Close
6 = Failover

status

int32

DL

0 = Error
1 = Success
2 = Refused

original_target

q_address

DL

Queue address of SAF.

new_target

q_address

DL

Queue address of new SAF for failover.

original_mrs_ area_len

int32

DL

Number of bytes in original MRS area specification for failover.

original_mrs_ area

256-byte array

A(256)

MRS original area specification for failover.

original_owner_group

word

DW

The current group that owns the SAF.

new_owner_ group

word

DW

The new group that will assume ownership of the SAF after failover is complete.

Arguments

Argument

Script Format

pams_get_msg Format

Target

Requesting program

Requesting program

Source

MRS_SERVER

PAMS_MRS_SERVER

Class

MRS

MSG_CLAS_MRS

Type

MRS_SAF_SET_REP

MSG_TYPE_MRS_SAF_SET_REP

See Also

MRS_SET_DLJ

Applications can request to close a dead letter journal (DLJ) file and open a new one by sending an MRS_SET_DLJ message to the MRS Server. Because the DLJ file cannot be simultaneously open for read and write access, an application must close the current file to read from it and open a new file to continue collecting messages. See the Managing Message Recovery Files topic in the Using Message-Based Services section for an explanation of how to use this message. This service is available on OpenVMS systems only.

Note: The MRS Server does not perform endian conversion when this message is sent between processes that run on systems that use different hardware data formats. The sender program must convert the message to the endian format of the target system to ensure that the message data is correctly interpreted.

C Message Structure

typedef struct _MRS_SET_DLJ {
int16 version;
int32 user_tag;
int32 status;
char dlj_file [64];
} MRS_SET_DLJ;

Message Data Fields

Field

Data Type

Script Format

Description

version

word

DW

Format version number.

user_tag

int32

XL

User-defined tag.

status

int32

XL

0=Error
1=Success
2=Refused

dlj_file

64-char array

A(64)

File specification of DLJ file.

Arguments

Argument

Script Format

pams_get_msg Format

Target

MRS_SERVER

PAMS_MRS_SERVER

Source

Supplied by BEA MessageQ

Supplied by BEA MessageQ

Class

MRS

MSG_CLAS_MRS

Type

MRS_SET_DLJ

MSG_TYPE_MRS_SET_DLJ

See Also

MRS_SET_DLJ_REP

Applications can request to close a dead letter journal (DLJ) file and open a new one by sending a MRS_SET_DLJ message to the MRS Server. Because the DLJ file cannot be simultaneously open for read and write access, an application must close the current file to read from it and open a new file to continue collecting messages. The MRS_SET_DLJ_REP message returns the status of the request. See the Managing Message Recovery Files topic in the Using Message-Based Services section for an explanation of how to use this message. This service is available on OpenVMS systems only.

Note: The MRS Server does not perform endian conversion when this message is received between processes that run on systems that use different hardware data formats. The sender program must convert the message to the endian format of the target system to ensure that the message data is correctly interpreted.

C Message Structure

typedef struct _MRS_SET_DLJ {
int16 version;
int32 user_tag;
int32 status;
char dlj_file [64];
} MRS_SET_DLJ;

Message Data Fields

Field

Data Type

Script Format

Description

version

word

DW

Format version number.

user_tag

int32

XL

User-defined tag.

status

int32

XL

0=Error
1=Success
2=Refused

dlj_file

64-char array

A(64)

File specification of DLJ file.

Arguments

Argument

Script Format

pams_get_msg Format

Target

Requesting program

Requesting program

Source

MRS_SERVER

PAMS_MRS_SERVER

Class

MRS

MSG_CLAS_MRS

Type

MRS_SET_DLJ_REP

MSG_TYPE_MRS_SET_DLJ_REP

See Also

MRS_SET_PCJ

Applications can request to close a postconfirmation journal (PCJ) file and open a new one by sending an MRS_SET_PCJ message to the MRS Server. Because the PCJ file cannot be simultaneously open for read and write access, an application must close the current file to read from it and open a new file to continue collecting messages. If default journaling is enabled, all recoverable messages are written to the PCJ file after confirmation unless the confirming process overrides the default. If default journaling is disabled, only those messages that are explicitly confirmed with PDEL_FORCE_J are written to the PCJ file. See the Managing Message Recovery Files topic in the Using Message-Based Services section for an explanation of how to use this message. This service is available on OpenVMS systems only.

Note: The MRS Server does not perform endian conversion when this message is sent between processes that run on systems that use different hardware data formats. The sender program must convert the message to the endian format of the target system to ensure that the message data is correctly interpreted.

C Message Structure

typedef struct _MRS_SET_PCJ {
int16 version;
int32 user_tag;
int32 force_j;
int32 status;
char pcj_file [64];
} MRS_SET_PCJ;

Message Data Fields

Field

Data Type

Script Format

Description

version

word

DW

Format version number.

user_tag

int32

XL

User-defined tag.

force_j

int32

DL

0 = Disable
1 = Enable default journaling

status

int32

XL

0=Error
1=Success
2=Refused

pcj_file

64-char array

A(64)

File specification of PCJ file.

Arguments

Argument

Script Format

pams_get_msg Format

Target

MRS_SERVER

PAMS_MRS_SERVER

Source

Supplied by BEA MessageQ

Supplied by BEA MessageQ

Class

MRS

MSG_CLAS_MRS

Type

MRS_SET_PCJ

MSG_TYPE_MRS_SET_PCJ

See Also

MRS_SET_PCJ_REP

Applications can request to close a postconfirmation journal (PCJ) and open a new one by sending an MRS_SET_PCJ message to the MRS Server. Because the PCJ file cannot be simultaneously open for read and write access, an application must close the current file to read from it and open a new file to continue collecting messages. The MRS_SET_PCJ_REP message returns the status of the request. See the Managing Message Recovery Files topic in the Using Message-Based Services section for an explanation of how to use this message. This service is available on OpenVMS systems only.

Note: The MRS Server does not perform endian conversion when this message is received between processes that run on systems that use different hardware data formats. The sender program must convert the message to the endian format of the target system to ensure that the message data is correctly interpreted.

C Message Structure

typedef struct _MRS_SET_PCJ {
int16 version;
int32 user_tag;
int32 force_j;
int32 status;
char pcj_file [64];
} MRS_SET_PCJ;

Message Data Fields

Field

Data Type

Script Format

Description

version

word

DW

Format version number.

user_tag

int32

XL

User-defined tag.

force_j

int32

DL

0 = Disable
1 = Enable default journaling

status

int32

XL

0=Error
1=Success
2=Refused

pcj_file

64-char array

A(64)

File specification of the PCJ.

Arguments

Argument

Script Format

pams_get_msg Format

Target

Requesting program

Requesting program

Source

MRS_SERVER

PAMS_MRS_SERVER

Class

MRS

MSG_CLAS_MRS

Type

MRS_SET_PCJ_REP

MSG_TYPE_MRS_SET_PCJ_REP

See Also

Q_UPDATE

Applications can register to receive notification when queue states change in local or remote groups by sending an ENABLE_Q_NOTIFY_REQ message. The ENABLE_Q_NOTIFY_RESP message delivers a list of all active queues and then subsequently notifies the application of attachments, detachments, and changes to active and inactive status using the Q_UPDATE message. See the Receiving Attachment Notifications topic in the Using Message-Based Services section for an explanation of how to use this message.

Note: The Queue Server performs endian conversion when this message is received between processes that run on systems that use different hardware data formats. This message is also RISC aligned.

C Message Structure

#define MAX_NUMBER_Q_RECS 50

typedef struct _Q_NOTIFY_RESP {
int32 version;
int32 user_tag;
int32 status_code;
int32 last_block_flag;
int32 number_q_recs;
struct {
q_address q_num;
q_address q_owner;
int32 q_type;
int32 q_active_flag;
int32 q_attached_flag;
int32 q_owner_pid;
} q_rec [50];
} Q_NOTIFY_RESP;

Message Data Fields

Field

Data Type

Script Format

Description

version

int32

DL

Version of response.

user_tag

int32

DL

User-specified code from request.

status_code

int32

DL

0=Error
1=Success
2=Refused

last_block_flag

int32

DL

Last block Boolean flag.

number_q_recs

int32

DL

Number of records in this message.

q_num

q_address

DL

Queue number.

q_owner

q_address

DL

Queue owner (only for secondary queues (SQs)).

q_type

int32

DL

Queue type (numerically encoded P, S, M).

q_active_flag

int32

DL

Queue active Boolean flag.

q_attached_flag

int32

DL

Queue attached Boolean flag.

q_owner_pid

int32

DL

Queue owner process identification (PID).

Arguments

Argument

Script Format

pams_get_msg Format

Target

Requesting program

Requesting program

Source

QUEUE_SERVER

PAMS_QUEUE_SERVER

Class

PAMS

MSG_CLAS_PAMS

Type

Q_UPDATE

MSG_TYPE_Q_UPDATE

See Also

SBS_DEREGISTER_REQ

Requests SBS deregistration by exact match of MOT and distribution queue or by registration ID.

This service replaces the SBS_DEREG service.

Note: The SBS Server performs endian conversion when this message is sent between processes that run on systems that use different hardware data formats. This message is also RISC aligned.

C Message Structure

typedef struct _SBS_DEREGISTER_REQ {
int32 version;
int32 user_tag;
int32 mot;
q_address distribution_q;
int32 reg_id;
int32 req_ack;
} SBS_DEREGISTER_REQ;

Message Data Fields

Field

Data Type

Script Format

Description

version

int32

DL

Message format version number. Must be 40.

user_tag

int32

DL

User-specified code to identify this request.

mot

int32

DL

The MOT broadcast stream from which the program wants to deregister. 0 if unused.

distribution_q

q_address

DW, DW

The BEA MessageQ address of the distribution queue of the registration. A zero in the group number portion of the queue address automatically is replaced with the group number of the sender.

reg_id

int32

DL

The ID of the registration request to deregister. 0 if unused.

req_ack

int32

DL

1 if registration acknowledgment message is required; 0 otherwise.

Arguments

Argument

Script Format

pams_get_msg Format

Target

SBS_SERVER

PAMS_SBS_SERVER

Source

Source queue address of the requester.

Source queue address of the requester.

Class

PAMS

MSG_CLAS_PAMS

Type

SBS_DEREGISTER_REQ

MSG_TYPE_SBS_

DEREGISTER_REQ

See Also

SBS_DEREGISTER_RESP

This response message acknowledges the SBS server deregistration of all entries matching the given MOT queue and distribution queue.

This service replaces the SBS_DEREG_ACK service.

Note: The SBS Server performs endian conversion when this message is received between processes that run on systems that use different hardware data formats. This message is also RISC aligned.

C Message Structure

typedef struct _SBS_DEREGISTER_RESP {
int32 version;
int32 status;
int32 user_tag;
int32 number_reg;
} SBS_DEREGISTER_RESP;

Message Data Fields

Field

Data Type

Script Format

Description

version

int32

DL

Message format version number. Must be 40.

status

int32

DL

Returned status code. Valid codes are as follows:
PSYM_SBS_SUCCESS = Success
PSYM_SBS_BADPARAM = Bad parameter
PSYM_SBS_NOMATCH = No match

user_tag

int32

DL

User-specified code from the request message.

number_reg

int32

DL

The number of registrants left on this MOT or target.

Arguments

Argument

Script Format

pams_get_msg Format

Target

Requesting program

Requesting program

Source

SBS_SERVER

PAMS_SBS_SERVER

Class

PAMS

MSG_CLAS_PAMS

Type

SBS_DEREGISTER_RESP

MSG_TYPE_SBS_

DEREGISTER_RESP

See Also

SBS_REGISTER_REQ

This request message requests registration for reception of broadcast messages. It can specify from 0 to 255 distribution rules, which must be satisfied for the message to be distributed to the distribution queue. If a sequence gap notification is requested, an SBS_SEQUENCE_GAP message is sent to the distribution queue every time a .message sequence gap is detected.

This service replaces the SBS_REG and SBS_REG_EZ services.

Note: The SBS Server performs endian conversion when this message is sent between processes that run on systems that use different hardware data formats. This message is also RISC aligned.

C Message Structure

typedef struct _SBS_REGISTER_HEAD {
int32 version;
int32 user_tag;
int32 mot;
q_address distribution_q;
int32 req_ack;
int32 seq_gap_notify;
int32 auto_dereg;
int32 rule_count;
int32 rule_conjunct;
} SBS_REGISTER_HEAD;

typedef struct _SBS_REGISTER_RULE {
int32 offset;
int32 data_operator;
int32 length;
int32 operand;
} SBS_REGISTER_RULE;

#define MAX_SEL_RULES 256
typedef struct _SBS_REGISTER_REQ {
SBS_REGISTER_HEAD head;
SBS_REGISTER_RULE rule [256];
} SBS_REGISTER_REQ;

Message Data Fields

Field

Data Type

Script Format

Description

version

int32

DL

Message format version number. Must be 40.

user_tag

int32

DL

User-specified code to identify this request.

mot

int32

DL

The MOT broadcast stream to which the program attempts to register.

distribution_q

q_address

DW, DW

The BEA MessageQ address that receives any messages that are selected from the broadcast stream.

A zero in the group number portion of the queue address is automatically replaced with the group number of the sender.

req_ack

int32

DL

1 if registration acknowledgment message is required; 0 otherwise.

seq_gap_notify

int32

DL

1 if broadcast stream sequence gap notification is required; 0 otherwise.

auto_dereg

int32

DL

1 if registration request is to be purged on distribution queue detach; 0 otherwise.

rule_count

int32

DL

Number of distribution rules in the request (0, ..., 255).

rule_conjunct

int32

DL

Valid values are:
PSEL_ALL_RULES if all rules must be true for distribution to succeed;
PSEL_ANY_RULE if any rule being true can trigger distribution.

* Following items are repeated "rule_count" times *

data_offset

int32

DL

Valid values are:
PSEL_TYPE
PSEL_CLAS
SDM tag ID
Integer in the range 0, ..., MAX_MSG_SIZE, specifying an offset in the data

data_operator

int32

DL

Valid values are:
PSEL_OPER_ANY (always match)
PSEL_OPER_EQ (equal)
PSEL_OPER_NEQ (not equal)
PSEL_OPER_GTR (greater than)
PSEL_OPER_LT (less than)
PSEL_OPER_GTRE (greater than or equal)
PSEL_OPER_LTE (less than or equal)
PSEL_OPER_AND ("operand" field AND data at "data offset" is non-zero)

data_length

int32

DL

Specifies the size of comparison to be performed: One of 0, 1, 2, or 4 bytes.

operand

int32

DL

Value used for comparison with data at the "data offset".

Arguments

Argument

Script Format

pams_get_msg Format

Target

SBS_SERVER

PAMS_SBS_SERVER

Source

Requesting program

Requesting program

Class

PAMS

MSG_CLAS_PAMS

Type

SBS_REGISTER_REQ

MSG_TYPE_SBS_REGISTER_REQ

See Also

SBS_REGISTER_RESP

This message provides a response to an SBS_REGISTER_REQ subscriber registration. The response contains a status field, which is 1 on success. The message also contains the user tag, specified in the request message, the registration ID and the number of registered entries for the MOT address.

This service replaces the SBS_REG_REPLY and SBS_REG_EZ_REPLY services.

Note: The SBS Server performs endian conversion when this message is received between processes that run on systems that use different hardware data formats. This message is also RISC aligned.

C Message Structure

typedef struct _SBS_REGISTER_RESP {
int32 version;
int32 user_tag;
int32 status;
int32 reg_id;
int32 number_reg;
} SBS_REGISTER_RESP;

Message Data Fields

Field

Data Type

Script Format

Description

version

int32

DL

Message format version number. Must be 40.

user_tag

int32

DL

User-specified code from the request message.

status

int32

DL

Returned status code. Valid codes are as follows:
PSYM_SBS_SUCCESS = Success
PSYM_SBS_BADPARAM = Bad parameter
PSYM_SBS_RESRCFAIL = Failed to allocate resource

reg_id

int32

DL

Returned registration ID.

number_reg

int32

DL

Number of entries currently registered for this MOT or target.

Arguments

Argument

Script Format

pams_get_msg Format

Target

Source of registrant

Source of registrant

Source

SBS_SERVER

PAMS_SBS_SERVER

Class

PAMS

MSG_CLAS_PAMS

Type

SBS_SEQUENCE_RESP

MSG_TYPE_SBS_SEQUENCE_ RESP

See Also

SBS_SEQUENCE_GAP

This message indicates that a sequence gap occurred in a broadcast stream. Sequence gaps can occur when the sender is broadcasting at a higher rate than the receiver can handle.

This service replaces the SBS_BS_SEQGAP service.

Note: The SBS Server performs endian conversion when this message is sent between processes that run on systems that use different hardware data formats. This message is also RISC aligned.

C Message Structure

typedef struct _SBS_SEQUENCE_GAP {
int32 num_msgs_missing;
int32 sender_group;
int32 mot;
int32 channel;
} SBS_SEQUENCE_GAP;

Message Data Fields

Field

Data Type

Script Format

Description

num_msgs_ missing

int32

DL

Number of lost messages in sequence gap.

sender_group

int32

DL

Group number of sending SBS server.

mot

int32

DL

MOT address in which broadcast stream gap occurred.

channel

in32

DL

Source address of MOT; either SBS server or Ethernet channel.

Arguments

Argument

Script Format

pams_get_msg Format

Target

Registrant

Registrant

Source

SBS_SERVER

PAMS_SBS_SERVER

Class

PAMS

MSG_CLAS_PAMS

Type

SBS_SEQUENCE_GAP

MSG_TYPE_SBS_SEQUENCE_ GAP

See Also

SBS_STATUS_REQ

The SBS server supports a message-based status request. This request details the current condition of each MOT being used by the server and its activity with other BEA MessageQ groups, which are also running the SBS server.

The request message is targeted to the SBS_SERVER with message class PAMS and message type SBS_STATUS_REQ. Upon receipt of the message, the SBS server validates the request. If the request is incorrect, the response message contains an error status. The SBS server responds with the reply message of type SBS_STATUS_RESP.

Note: The SBS Server performs endian conversion when this message is sent between processes that run on systems that use different hardware data formats. This message is also RISC aligned.

C Message Structure

typedef struct _SBS_STATUS_REQ {
int32 version;
int32 user_tag;
int32 start_mot;
int32 end_mot;
int32 reset;
} SBS_STATUS_REQ;

Message Data Fields

Field

Data Type

Script Format

Description

version

int32

DL

Message format version number. Must be 40.

user_tag

int32

DL

User-specified code to identify this request.

start_mot

int32

DL

Lowest MOT for which statistics are desired.

end_mot

int32

DL

Highest MOT for which statistics are desired.

reset

int32

DL

0: Do not reset counters for the remote server data after constructing the reply message.

1: Reset counters for the remote server data after constructing the reply message.

Arguments

Argument

Script Format

pams_get_msg Format

Target

SBS_SERVER

PAMS_SBS_SERVER

Source

Requesting program's primary or reply queue

Requesting program's primary or reply queue

Class

PAMS

MSG_CLAS_PAMS

Type

SBS_STATUS_REQ

MSG_TYPE_SBS_STATUS_REQ

See Also

SBS_STATUS_RESP

This message is returned following the successful processing of the SBS_STATUS_REQ request message. It is a variable format message and is made up of a variable number of fixed length parts. To parse the message, each variable length section has a count.

Note: The SBS Server performs endian conversion when this message is received between processes that run on systems that use different hardware data formats. This message is also RISC aligned.

C Message Structure

typedef struct _SBS_STATUS_RESP {
int32 version;
int32 user_tag;
int32 status;
int32 num_rec;
int32 last_block;
char data [31980];
} SBS_STATUS_RESP;

typedef struct _SBS_STATUS_RESP_MOT {
int32 mot;
union {
struct {
union {
struct {
char s_b1;
char s_b2;
char s_b3;
char s_b4;
} S_un_b;
struct {
uint16 s_w1;
uint16 s_w2;
} S_un_w;
uint32 S_addr;
} inet_addr;
uint16 inet_port;
} udp;
struct {
char mca_addr [12];
char protocol [4];
} eth;
struct {
char unused [20];
} dmq;
int32 filler [5];
} transport;
int32 heartbeat_timer;
int32 xmit_silo;
int32 rcv_silo;
int32 rcv_silo_max;
int32 num_reg;
int32 complete_rcvd;
int32 complete_bytes;
int32 seq_gaps;
int32 whole_msg_gaps;
int32 whole_silo_gap;
struct {
char device_name [16];
struct {
uint32 tv_sec;
uint32 tv_usec;
} fail_tod;
int32 msgs_sent;
int32 bytes_sent;
int32 pkts_sent;
int32 pkts_rcvd;
int32 dupl_pkts_disc;
} rail [2];
} SBS_STATUS_RESP_MOT;

typedef struct _SBS_STATUS_REP_REG_Q {
q_address reg_q;
} SBS_STATUS_REP_REG_Q;

typedef struct _SBS_STATUS_REP_NUM_GROUPS {
int32 num_groups;
} SBS_STATUS_REP_NUM_GROUPS;

typedef struct _SBS_STATUS_RESP_GROUP {
int32 group;
int32 rexmit_reqs_to_remote;
int32 rexmit_sat_by_remote;
int32 late_rexmit;
int32 rexmit_reqs_from_remote;
int32 rexmit_sat_by_local;
} SBS_STATUS_RESP_GROUP;

Message Data Fields

Field

Data Type

Script Format

Description

version

int32

DL

Message format version number. Must be 40.

user_tag

int32

DL

User-specified code to identify this request.

Status

int32

DL

Returned status code. Valid codes are as follows:

PSYM_SBS_SUCCESS = Success
PSYM_SBS_BADPARAM = Bad parameter
PSYM_SBS_NOMATCH = No match

num_rec

int32

DL

Number of MOTs reported in this message.

last_block

int32

DL

1 if this is the last message; 0 otherwise.

* Remainder of message repeated "num_rec" times up to a maximum of 50 records per Local SBS Server data *

mot

int32

DL

MOT for which statistics are being reported.

transport

A(20)

Transport specific address information associated with the MOT. The format is dependant on the type of transport referred to.

heartbeat_timer

int32

DL

Heartbeat timer setting.

xmit_silo

int32

DL

Transmit silo size (MABs).

rcv_silo

int32

DL

Receiver silo size (MABs).

rcv_silo_max

int32

DL

Maximum occupancy of receive silo (MABs).

num_reg

int32

DL

Number of registrants for this MOT.

complete_rcvd

int32

DL

Number of complete messages received.

complete_bytes

int32

DL

Number bytes contained in "complete_rcvd" messages.

seq_gaps

int32

DL

Total sequence gaps reported on this MOT.

whole_msg_gaps

int32

DL

Number complete messages detected missed initially.

whole_silo_gap

int32

DL

Number times sequence gap caused entire silo flush.

* Transport rail information repeated two times *

device_name

char

A(16)

Optimized device address.

fail_tod

DL(2)

Shutdown timestamp in seconds.

msgs_sent

int32

DL

Number of messages sent on this rail.

bytes_sent

int32

DL

Number of bytes sent on this rail.

pkts_sent

int32

DL

Number of packets sent on this rail.

pkts_rcvd

int32

DL

Number of packets received on rail.

dupl_pkts_disc

int32

DL

Number of duplicate packets discarded from this rail.

* Registrant data: repeated "num_reg" times *

reg_q

q_address

DW, DW

Queue address of registrant.

* End of registrant data *

num_groups

int32

DL

Number of remote SBS servers communicating with the local SBS server.

* Remote SBS server data: Following fields repeated "num_groups" times *

group

int32

DL

Group number of remote SBS server.

rexmit_reqs_to_ remote

int32

DL

Number of retransmission requests from the local SBS server to the remote SBS server.

rexmit_sat_by_ remote

int32

DL

Number of retransmission requests satisfied by the remote SBS server.

late_rexmit

int32

DL

Number of retransmission requests that were received too late to prevent a sequence gap.

rexmit_reqs_ from_remote

int32

DL

Number of retransmission requests from the remote SBS server.

rexmit_sat_by _local

int32

DL

Number of retransmission requests satisfied by the local SBS server for the remote server.

* End of remote server data *

Arguments

Argument

Script Format

pams_get_msg Format

Target

Requesting program's primary or reply queue

Requesting program's primary or reply queue

Source

SBS_SERVER

PAMS_SBS_SERVER

Class

PAMS

MSG_CLAS_PAMS

Type

SBS_STATUS_RESP

MSG_TYPE_SBS_STATUS_RESP

See Also

TIMER_EXPIRED

TIMER_EXPIRED is a response message to the pams_set_timer function. This message is sent to the timer queue associated with sender program's primary queue. Each call to the pams_set_timer function generates one message of type TIMER_EXPIRED when the timer expires.

Note: This message is RISC aligned.

C Message Structure

typedef struct _TIMER_EXPIRED {
int32 timer_id;
char reserved [20];
} TIMER_EXPIRED;

Message Data Fields

Field

Data Type

Script Format

Description

timer_id

int32

DL

Timer ID specified in the pams_set_timer call.

reserved

20-byte array

A(20)

Reserved for BEA MessageQ.

Arguments

Argument

Script Format

pams_get_msg Format

Target

primary queue

primary queue

Source

TIMER_QUEUE

PAMS_TIMER_QUEUE

Class

PAMS

MSG_CLAS_PAMS

Type

TIMER_EXPIRED

MSG_TYPE_TIMER_EXPIRED

UNAVAIL

Applications register to receive notification when queues become active or inactive in local and remote groups by sending an AVAIL_REG message to the Avail Server. The UNAVAIL notification message is sent to the registered application when a queue in the selected group becomes inactive. See the Obtaining the Status of a Queue topic in the Using Message-Based Services section for an explanation of how to use this message.

Note: The Avail Server performs endian conversion when this message is received between processes that run on systems that use different hardware data formats. This message is also RISC aligned.

C Message Structure

typedef struct _UNAVAIL {
q_address target_q;
} UNAVAIL;

Message Data Fields

Field

Data Type

Script Format

Description

target_q

q_address

DL

Address of unavailable queue.

Arguments

Argument

Script Format

pams_get_msg Format

Target

Supplied by AVAIL_REG

Supplied by AVAIL_REG

Source

AVAIL_SERVER

AVAIL_SERVER

Class

PAMS

MSG_CLAS_PAMS

Type

UNAVAIL

MSG_TYPE_UNAVAIL

See Also