Table of Contents Previous Next


Table of Contents

Oracle Tuxedo /Q Overview
General Description
Queuing System Components and Tasks
Figure 1‑1 Queued Service Invocation
Administrator Tasks
Figure 1‑2 Peer-to-Peer Communication
Programmer Tasks
Transaction Management
Figure 1‑3 Transaction Demarcation
Handling Reply Messages
Error Handling
Summary
Oracle Tuxedo /Q Administration
Introduction
Available Sample Program Called qsample
Configuration
Specifying the QM Server Group
Specifying the Message Queue Server
Operation Timeout
Queue Space Names, Queue Names, and Service Names
Data-dependent Routing
Customized Buffer Types
Buffer Subtypes
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 Spaces 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
Handling Encrypted Message Buffers
Maintenance of the Oracle Tuxedo /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
Windows Standard I/O
Oracle Tuxedo /Q C Language Programming
Introduction
Prerequisite Knowledge
Where Requests Can Originate
Emphasis on the Default Case
Enqueuing Messages
tpenqueue(3c) Arguments
tpenqueue(): The qspace Argument
tpenqueue(): The qname Argument
tpenqueue(): The data and len Arguments
tpenqueue(): The flags Arguments
TPNOTRAN
TPNOBLOCK
TPNOTIME
TPSIGRSTRT
TPQCTL Structure
Listing 3‑1 The tpqctl_t Structure
Listing 3‑1 The tpqctl_t Structure
#define TMQNAMELEN 127 #define TMMSGIDLEN 32 #define TMCORRIDLEN 32struct tpqctl_t { /* control parameters to queue primitives */ long flags; /* indicates which of the values are set */ long deq_time; /* absolute/relative time for dequeuing */ long priority; /* enqueue priority */ long diagnostic; /* indicates reason for failure */ char msgid[TMMSGIDLEN]; /* ID of message before which to queue */ char corrid[TMCORRIDLEN]; /* correlation ID used to identify message */ char replyqueue[TMQNAMELEN+1]; /* queue name for reply message */ char failurequeue[TMQNAMELEN+1]; /* queue name for failure message */ CLIENTID cltid; /* client identifier for originating client */ long urcode; /* application user-return code */ long appkey; /* application authentication client key */ long delivery_qos; /* delivery quality of service */ long reply_qos; /* reply message quality of service */ long exp_time; /* expiration time */ }; typedef struct tpqctl_t TPQCTL;
TPNOFLAGS
TPQTOP
TPQBEFOREMSGID
TPQTIME_ABS
TPQTIME_REL
TPQPRIORITY
TPQCORRID
TPQREPLYQ
TPQFAILUREQ
TPQDELIVERYQOS, TPQREPLYQOS
TPQQOSDEFAULTPERSIST
TPQQOSPERSISTENT
TPQQOSNONPERSISTENT
TPQEXPTIME_ABS
TPQEXPTIME_REL
TPQEXPTIME_NONE
TPQMSGID
[QMEINVAL]
[QMEBADRMID]
[QMENOTOPEN]
[QMETRAN]
[QMEBADMSGID]
[QMESYSTEM]
[QMEOS]
[QMEABORTED]
[QMEPROTO]
[QMEBADQUEUE]
[QMENOSPACE]
[QMERELEASE]
[QMESHARE]
Overriding the Queue Order
Overriding the Queue Priority
Setting a Message Availability Time
tpenqueue() and Transactions
Dequeuing Messages
tpdequeue(3c) Arguments
tpdequeue(): The qspace Argument
tpdequeue(): The qname Argument
tpdequeue(): The data and len Arguments
tpdequeue(): The flags Arguments
TPNOTRAN
TPNOBLOCK
TPNOTIME
TPNOCHANGE
TPSIGRSTRT
TPQCTL Structure
TPNOFLAGS
TPQGETBYMSGID
TPQGETBYCORRID
TPQWAIT
TPQPEEK
TPQPRIORITY
TPQMSGID
TPQCORRID
TPQDELIVERYQOS
TPQREPLYQOS
TPQREPLYQ
TPQFAILUREQ
[QMENOMSG]
[QMEINUSE]
Using TPQWAIT
Error Handling When Using TMQFORWARD Services
Procedure for Dequeuing Replies from Services Invoked Through TMQFORWARD
Sequential Processing of Messages
Using Queues for Peer-to-Peer Communication
Oracle Tuxedo /Q COBOL Language Programming
Introduction
Prerequisite Knowledge
Where Requests Can Originate
Emphasis on the Default Case
Enqueuing Messages
01 TPQUEDEF-REC. COPY TPQUEDEF.01 TPTYPE-REC. COPY TPTYPE.01 DATA-REC. COPY User Data.01 TPSTATUS-REC. COPY TPSTATUS.CALL "TPENQUEUE" USING TPQUEDEF-REC TPTYPE-REC DATA-REC TPSTATUS-REC.
01 TPQUEDEF-REC. COPY TPQUEDEF.01 TPTYPE-REC. COPY TPTYPE.01 DATA-REC. COPY User Data.01 TPSTATUS-REC. COPY TPSTATUS.CALL "TPENQUEUE" USING TPQUEDEF-REC TPTYPE-REC DATA-REC TPSTATUS-REC.
TPENQUEUE() Arguments
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
TPNOTRAN
TPTRAN
TPNOBLOCK
TPBLOCK
TPNOTIME
TPTIME
TPSIGRSTRT
TPNOSIGRSTRT
TPQUEDEF-REC Structure
Listing 4‑1 The TPQUEDEF-REC Structure
Listing 4‑1 The TPQUEDEF-REC Structure
TPQTOP
TPQBEFOREMSGID
TPQTIME-ABS
TPQTIME-REL
TPQPRIORITY
TPQCORRID
TPQREPLYQ
TPQFAILUREQ
TPQDELIVERYQOSTPQREPLYQOS
TPQQOSDELIVERYDEFAULTPERSISTTPQQOSREPLYDEFAULTPERSIST
TPQQOSDELIVERYPERSISTENTTPQQOSREPLYPERSISTENT
TPQQOSDELIVERYNONPERSISTENTTPQQOSREPLYNONPERSISTENT
TPQEXPTIME-ABS
TPQEXPTIME-REL
TPQEXPTIME-NONE
TPQNOEXPTIME
TPQMSGID
[QMEINVAL]
[QMEBADRMID]
[QMENOTOPEN]
[QMETRAN]
[QMEBADMSGID]
[QMESYSTEM]
[QMEOS]
[QMEABORTED]
[QMEPROTO]
[QMEBADQUEUE]
[QMENOSPACE]
[QMERELEASE]
[QMESHARE]
Overriding the Queue Order
Overriding the Queue Priority
Setting a Message Availability Time
TPENQUEUE() and Transactions
Dequeuing Messages
01 TPQUEDEF-REC. COPY TPQUEDEF.01 TPTYPE-REC. COPY TPTYPE.01 DATA-REC. COPY User Data.01 TPSTATUS-REC. COPY TPSTATUS.CALL "TPDEQUEUE" USING TPQUEDEF-REC TPTYPE-REC DATA-REC TPSTATUS-REC.
01 TPQUEDEF-REC. COPY TPQUEDEF.01 TPTYPE-REC. COPY TPTYPE.01 DATA-REC. COPY User Data.01 TPSTATUS-REC. COPY TPSTATUS.CALL "TPDEQUEUE" USING TPQUEDEF-REC TPTYPE-REC DATA-REC TPSTATUS-REC.
TPDEQUEUE() Arguments
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
TPNOTRAN
TPTRAN
TPNOBLOCK
TPBLOCK
TPNOTIME
TPTIME
TPNOCHANGE
TPCHANGE
TPSIGRSTRT
TPNOSIGRSTRT
TPQUEDEF-REC Structure
TPQGETNEXT
TPQGETBYMSGID
TPQGETBYCORRID
TPQWAIT
TPQPEEK
TPQPRIORITY
TPQMSGID
TPQCORRID
TPQDELIVERYQOS
TPQREPLYQOS
TPQREPLYQ
TPQFAILUREQ
[QMENOMSG]
[QMEINUSE]
Using TPQWAIT
Error Handling When Using TMQFORWARD Services
Procedure for Dequeuing Replies from Services Invoked Through TMQFORWARD
Sequential Processing of Messages
Using Queues for Peer-to-Peer Communication
A Sample Application
Overview
Prerequisites
What Is qsample?
Building qsample
README
setenv
crlog
crque
makefile
client.c
server.c
ubb.sample
runsample
rmipc
Suggestions for Further Exploration
setenv: Set 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

Copyright © 1994, 2017, Oracle and/or its affiliates. All rights reserved.