•
•
• Oracle 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.
•
• 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. Oracle 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.Oracle 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.Oracle 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.Oracle 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.
Note: In tmqadmin, sub-command "crdl" will create persistent device for qspace. The maximun value of this command is 2147483647, which is a system value, and the unit is system block size. So, the maximun 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 maximun 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 thru 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 no tcall tpinit(), then following calling of tpqattach() OTMQ goes into mulitcontext mode automatically. For WS client, the automation of multicontext mode association is not available.
• TMS_TMQM(), is the TMS server for the Oracle OTMQ resource manager. It must be configured in the server group for TuxMsgQ() and TuxMQFWD().
• TMQ_NA(), is the Oracle OTMQ Naming Server. It provides naming service which allows runtime queue alias binding and lookup.
• TMQEVT(), is the Oracle OTMQ Event Broker, which is used to notify subscriber when topics are published using tpqpublish(). The subscriber uses tpqsubscribe(3c) to subscribe a topic.
• TMQFORWARDPLUS(), is the 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.
• TuxMsgQLD(), is the Oracle OTMQ Link Driver Server. It is the bridge for Oracle OTMQ to interoperate with another messaging product, Oracle Message Queue (OMQ). For more information, see Interoperablity in the Oracle Tuxedo Message Queue Release Notes.
• TuxCls(), is the Oracle OTMQ Client Library Server. It acts as a remote agent to perform queuing operations base on Oracle OTMQ queue space and queues on behalf of the existing Oracle Message Queue clients. For more information, see Interoperablity in the Oracle Tuxedo Message Queue Release Notes.