For Oracle MessageQ (OMQ) application compatibility, PAMS APIs are supported. OMQ applications can run with OTMQ after they are recompiled and relinked. For more information, see Oracle Tuxedo Message Queue PAMS Programming Guide.
•
•
• OTMQ can have multiple attributes, which define its behaviors. For more information, see tmqadmin in the Oracle Tuxedo Message Queue Command Reference Guide.For more information, see Using Recoverable Messaging in the Oracle Tuxedo Message Queue Programming Guide.
• SAF: when a recoverable message is stored in the local queue space storage
• DQF: when a recoverable message is stored in the target queue space storage
• MEM: when a non-recoverable message is stored in the target queue
• DEQ: when a non-recoverable message is dequeued from the target queue
• ACK: when the receiver explicitly acknowledge the non-recoverable message by sending back the ACK notification message using tpqconfirmmsg(3c)
• CONF: when a recoverable message is successfully delivered from DQF to the target queue, and explicitly acknowledged using tpqconfirmmsg(3c)The application doesn't wait after sending messages, but should explicitly call tpdeqplus(3c) to get ACK notification message to verify if the message has been successfully delivered to target.
Table 1 OTMQ UMA Options Messages are read from queues in FIFO order unless another order is defined for the queue. OTMQ also provides message filter that allow user to read message that matching the selection criteria defined by the message filter. For more information, see Using Filter in the Oracle Tuxedo Message Queue Programming Guide.OTMQ application can send a broadcast message using the standard tpqpublish function. The sending application can generate broadcast messages without knowing the location or number of recipient programs.OTMQ application can selectively receive a broadcast message by first subscribing to a broadcast stream. To subscribe to a message stream, the receiving application first use tpqsubscribe to subscribe a message stream. Broadcast messages are then enabled for the application and flow into the receiver's queue for processing using the standard tpdeqplus function.OTMQ provides the tpqreadjrn function to dump messages from these journal queues.For more information, see Using Recoverable Messaging in the Oracle Tuxedo Message Queue Programming Guide.In WS mode, OTMQ messages that are sent using a recoverable delivery mode are written to the local store-and-forward (SAF) journal file (tmqsaf.jrn), when the connection to the server system is not available.
Note: In tmqadmin, sub-command "crdl" will create persistent device for qspace. The maximum value of this command is 2147483647, which is a system value, and the unit is system block size. So, the maximum size of persistent QSpace is 2147483647*block (bytes).The tmqadmin->qspacecreate command has a -n optional, which indicates the size of the area that reserved in shared memory for non-persistent messages for all queues in the queue space. The size may be specified in bytes (b) or blocks (B), where the block size is equivalent to the disk block size. For both "block (B)" and "byte (b)" argument of qspacecreate -n command, the max value is 2147483647. If using block (B) argument, the maximum size for non-persistent messages reserved is 2147483647*block.
Notes: For HPUX ia 64-bit platform, in hpux_ma.h, defined _TMSIGNLESHM as 1, which means one process creates a shared memory segment and attaches it to its address space. So, if need to create over 2G share memory using the tmqadmin command, set Oracle Tuxedo environment variable TM_ENGINE_TMSHMSEGSZ to a larger value, which should less than or equal to the SHMAX value that the system defines.There is another environment variable TM_QM_NAPTIME that defines the thread sleeping time in nanosecs. Note that using this variable may expand the time window of the racing condition of queue dead lock.The Oracle Tuxedo API tpinit has two modes of operation: single-context mode and multicontext mode. For OTMQ, if an application calls tpinit explicitly, OTMQ does not go into multi-context mode automatically.If application does not call tpinit, then following calling of tpqattach OTMQ goes into mulitcontext mode automatically. For WS client, the automation of multicontext mode association is not available.
•
• To support the queuing service, OTMQ provides a new Transaction Management Server TMS_TMQM as the X/OPEN XA-compliant resource manager interface to manage the OTMQ queue space.
• TMS server for the OTMQ resource manager. It must be configured in the server group for TuxMsgQ and TuxMQFWD.
•
• OTMQ Event Broker. It is used to notifies when topics are published using tpqpublish. Use tpqsubscribe(3c) to subscribe a topic.Message forwarding server. It forwards messages that have been stored using tpenqueue(3c)/tpenqplus(3c) for later processing. The application administrator enables automated message processing for the application servers by specifying this server as an application server in the *SERVERS section.
•