Contents

Title Page

Copyright Page

1. Introduction and Overview of BEA TUXEDO System/Q

General Description

A Picture that Explains Everything . . . Almost

Administrative Tasks

Programmer's Tasks

Transaction Management

Handling Reply Messages

Error Handling

Summary

2. BEA TUXEDO System /Q Administration

Introduction

Sample Program in Appendix A

Configuration

Specifying the QM Server Group

Specifying the Message Queue Server

Transaction Timeout

Queue Space Names, Queue Names, and Service Names

Data-Dependent Routing

Customized Buffer Types

Specifying the Message Forwarding Server

Queue Names and Service Names: the -q option

Controlling Transaction Timeout: the -t option

Controlling Idle Time: the -i option

Controlling Server Exit: the -e option

Delete Message after Service Failure: the -d option

Customized Buffer Types

Dynamic Configuration

Creating Queue Space and Queues

Working with qmadmin Commands

Creating an Entry in the Universal Device List: crdl

Creating a Queue Space: qspacecreate

Creating a Queue: qcreate

Specifying Queue Order

Enabling Out-of-order Enqueuing

Specifying Retry Parameters

Using Queue Capacity Limits

Reply and Failure Queues

Error Queues

Maintenance of the BEA TUXEDO System/Q Feature

Adding Extents to a Queue Space

Backing Up or Moving Queue Space

Moving the Queue Space to a Different Type of Machine

TMQFORWARD and Non-Global Transactions

TMQFORWARD and Commit Control

Handling Transaction Timeout

TMQFORWARD and Retries for an Unavailable Service

3. BEA TUXEDO System/Q C Language Programming

Prerequisite Knowledge

Where Requests Can Originate

Emphasis on the Default Case

Enqueuing Messages

Command Line Arguments, tpenqueue(3)

tpenqueue(): the qspace Argument

tpenqueue(): the qname Argument

tpenqueue(): the data and len Arguments

tpenqueue(): the flags Arguments

The TPQCTL Structure

Overriding the Queue Order

Overriding the Queue Priority

Setting a Dequeuing Time

tpenqueue() and Transactions

Dequeuing Replies

Command Line Arguments, tpdequeue

tpdequeue(): the qspace Argument

tpdequeue(): the qname Argument

tpdequeue(): the data and len Arguments

tpdequeue(): the flags Arguments

Using TPQWAIT

Error Handling

A Procedure for Dequeuing Replies

Sequential Processing of Messages

Using Queues to Transfer Anything

4. BEA TUXEDO System/Q COBOL Language Programming

Prerequisite Knowledge

Where Requests Can Originate

Emphasis on the Default Case

Enqueuing Messages

Command Line Arguments, TPENQUEUE(3)

TPENQUEUE: the QSPACE-NAME in TPQUEDEF-REC
Argument

TPENQUEUE: the QNAME in TPQUEDEF-REC Argument

TPENQUEUE: the DATA-REC and LEN in TPTYPE-REC
Arguments

TPENQUEUE: the Settings in TPQUEDEF-REC

The TPQUEDEF-REC Structure

Overriding the Queue Order

Overriding the Queue Priority

Setting a Dequeuing Time

TPENQUEUE and Transactions

Dequeuing Replies

Command Line Arguments, TPDEQUEUE(3)

TPDEQUEUE: the QSPACE-NAME in TPQUEDEF-REC Argument

TPDEQUEUE: the QNAME in TPQUEDEF-REC Argument

TPDEQUEUE: the DATA-REC and LEN in TPTYPE-REC
Arguments

TPDEQUEUE: the Settings in TPQUEDEF-REC

Using TPQWAIT

Error Handling

A Procedure for Dequeuing Replies

Sequential Processing of Messages

Using Queues to Transfer Anything

A. A Sample Application

What This Appendix Is About

Some Preliminaries

The qsample Application

Suggestions for Further Exploration

setenv: Setting the Environment

makefile: Make Your Application

ubb.sample: The ASCII Configuration File

crlog: Create the Transaction Log

crque: Create the Queue Space and Queues

Boot, Run, and Shut Down the Application

Clean Up