Table of Contents Previous Next PDF


Migrating from OMQ to OTMQ 12c

Migrating from OMQ to OTMQ 12c
This chapter includes the following topics:
Overview
Oracle Tuxedo Message Queue (OTMQ) component improves and enhances Oracle Tuxedo queuing services. Besides the existing queuing features of the Oracle Tuxedo /Q component, OTMQ also provides richer queuing features (such as Reliable Message Delivery, Synchronous/Asynchronous Messaging, Publish/Subscribe, Message Filtering, Dynamic Queue Alias (Naming), Journal, etc.). Because OTMQ is implemented based on Oracle Tuxedo infrastructure, it can provide support for transactions, security, scalability and HA.
OMQ Architecture
Oracle MessageQ (OMQ) message queuing bus forms the data highway used to transfer messages between applications by creating a logical interconnection of message queues in a networked environment as shown in Figure B‑1.
Figure B‑1 OMQ Architecture
OTMQ Architecture
Figure B‑2 shows the system structure of an application using OTMQ.
Figure B‑2 OTMQ Architecture
Feature Compatibility
Table 1 provides a summary of key OMQ and OTMQ compatibility features.
 
Deployment
OTMQ applications can be deployed centrally or decentrally. By taking advantage of flexible Oracle Tuxedo deployment models, an OTMQ application configures and deploy resources using UBBCONFIG and DOMCONFIG files.
Migration Tasks
Application Migration
Configuration File Migration
Configuration file migration involves the following OTMQ components:
UBBCONFIG/DMCONFIG (configuration files)
tmloadcf (administration command)
OMQ application resources, OMQ groups and queues should be migrated to OTMQ QSpace and queues accordingly.
OTMQ provides a tool ("dmqclconv"), to migrate the omq.init file into OTMQ configuration files (UBBCONFIG/DMCONFIG).
For more information, see Oracle Tuxedo Message Queue Command Reference.
OTMQ Commands
OTMQ uses the "tmqadmin" command to create/manage queuing resources (Qspace and queues). OTMQ applications should also use the following commands to build clients and servers:
Used to construct an OTMQ client module
Used to construct an OTMQ load module which can run as an Oracle Tuxedo application server.
For more information, see the Oracle Tuxedo Message Queue Command Reference.
OTMQ System Services
OTMQ provides following system services:
TuxMsgQ: Message Queue Manager.
TuxMQFWD: Message Queue Off-line Trade Driver.
TMQ_NA: Message Queue Naming Server.
TMS_TMQM: TMS server for OTMQ resource manager.
TMQ_EVT: TMQ Event reporting process.
TMQFORWARDPLUS: Message Forwarding server.
TuxMsgQLD: TMQ Link Driver server.
These services can be configured and deployed in the UBBCONFIG file based on application requirements. For more information, see the Oracle Tuxedo Message Queue UBB Server Reference.
Limitation(s)
For OMQ application compatibility, OTMQ supports UMA_SAF in a revised edition. For an OMQ client, if UMA_SAF for a recoverable message is applied, the message is stored in the local DQF . If OMQ is unable to write to the local journal disk file, UMA is used. OTMQ follows this methodology; however, OTMQ stores the message in the local SAF to ensure that the message is recoverable. If the action fails, then UMA is used.
Examples
OMQ Configuration File-Setup.init
Listing 1 provides an example OMQ configuration file-Setup.init
Listing B‑1 OMQ Configure File-Setup.init
%VERSION 4.0
 
%PROFILE
 
ACCEPT_KILL_COMMAND YES ! accept kill commands from DMQ Monitor
!ACCEPT_KILL_COMMAND NO ! accept kill commands from DMQ Monitor
ENABLE_XGROUP YES ! allow cross-group communications
!ENABLE_XGROUP NO ! allow cross-group communications
!XGROUP_VERIFY YES ! verify cross group links
XGROUP_VERIFY NO ! do not verify cross group links
FIRST_TEMP_QUEUE 200 ! minimum is 101, maximum is 850
GROUP_MAX_USER_QUEUE 999
XGROUP_TABLE_SIZE 20 ! size of the group link table
GROUP_MAX_MESSAGE_SIZE 4194304 ! largest message size permitted in this group
ATTACH_TMO 600 ! timeout in seconds for locates
!RCV_MSG_QUOTA_METHOD MIN
ENABLE_MRS YES ! start recoverable messaging servers
!ENABLE_MRS NO ! start recoverable messaging servers
ENABLE_JRN YES ! enable PCJ journaling when MRS is enabled
!ENABLE_JRN NO ! enable PCJ journaling when MRS is enabled
ENABLE_SBS YES ! start selective broadcast and AVAIL/UNAVAIL
 
DEFAULT_NAMESPACE_PATH /home/beadev/BMQ5064rp/qa/mq/ddtf ! the default namespace path for naming agent
 
%EOS
 
%MRS
MRS_JOURNAL_PATH /home/beadev/BMQ5064rp/qa/mq/ddtf ! recovery journal path
MRS_POST_CONFIRMATION_PATH /home/beadev/BMQ5064rp/qa/mq/ddtf
MRS_DEAD_LETTER_PATH /home/beadev/BMQ5064rp/qa/mq/ddtf ! dead-letter journal path
MAX_CACHE_BYTES 4194304 ! maximum number of unwritten bytes
%EOS
 
%CLS
47100 TCPIP 1
!47100 TCPIP 1
%EOS
 
%XGROUP
 
!Group Group Node/ Init Thresh- Buffer Recon- Window Trans- End-
!Name Number Host old Pool nect Delay Size port point
!G1 1 reboo Y 2000000 . 30 10 25000 TCPIP 47001
G1 1 localhost Y 2000000 . 30 10 25000 TCPIP 47001
G3 3 titan Y 2000000 . 30 10 25000 TCPIP 47001
!G1 1 gemini Y 2000000 . 30 10 25000 TCPIP 47001
!* For XGROUP DGA test
!G1 1 reboo Y 2000000 . 10 30 25000 TCPIP 47001
!G2 2 reboo Y 2000000 . 20 40 35000 TCPIP 47002
!*
G2 2 localhost Y 2000000 . 30 10 25000 TCPIP 47002
!G2 2 localhost Y 2000000 . 30 10 25000 TCPIP 47002
!G2 2 titan Y 2000000 . 30 10 25000 TCPIP 47002
!G2 2 gemini Y 2000000 . 30 10 25000 TCPIP 47002
%EOS
 
!%route
!3 2
!%EOS
%QCT
 
!Queue Queue Byte Msg Quota UCB Queue Owner Conf Perm Name
!Name Number Quota Quota Enable Send Type Queue Style Active Scope Security
TEMPLATE 0 262144 . . . P 0 II N L N
NON_QUOTA 1 . . None . P 0 II N L N
QUOTA 2 . 5 Msg . P 0 II N L N
MRQ 3 . 1000 Msg . M 0 II Y L N
NR_MRQ 4 . . None . M 0 II Y L N
R_MRQ 5 . . None . M 0 II Y L N
G_IN_QCT 6 . . None . P 0 II Y G N
New_MRQ 7 . . None . M 0 II Y L N
!QUOTA2 8 5 4 None . P 0 II N L N
!QUOTA2 8 5 4 Msg . P 0 II N L N
QUOTA2 8 5 4 Byte . P 0 II N L N
!QUOTA2 8 5 4 All . P 0 II N L N
byte_quota_q 9 64000 . Byte . P 0 II N L N
msg_quota_q 10 . 5 Msg . P 0 II N L N
all_quota_q 11 64000 5 All . P 0 II N L N
no_quota_q 12 64000 5 None . P 0 II N L N
ii_queue 13 64000 5 None . P 0 II N L N
ei_queue 14 64000 5 None . P 0 EI N L N
eo_queue 15 64000 5 None . P 0 EO N L N
QUEUE1 16 . . None . P 0 II N L N
QUEUE2 17 . . None . P 0 II Y L N
QUEUE3 18 . . None . S 16 II N L N
BIND_PQ1 20 . . None . P 0 II N L N
BIND_PQ2 21 . . None . P 0 II N L N
BIND_SQ 22 . . None . S 20 II N L N
spare1 90 . . None . P 0 II N L N
*
EXAMPLE_Q_1 193 64000 100 . . . . . N L N
EXAMPLE_Q_2 194 64000 100 . . . . . N L N
IVP_unowned_sq 195 250000 100 . . S 0 . N L N
%EOS
 
*
%GNT
 
! Name Address Scope
AVAIL_TARGET 1.1 L
INTEROP_TARGET 1.1 L
REMOTE_NON_QUOTA 1.1 L
REMOTE_QUOTA 1.2 L
REMOTE_MRQ 1.3 L
LOCAL_NR_RCVR 0.4 L
LOCAL_R_RCVR 0.5 L
G1_NR_RCVR 1.4 L
G1_R_RCVR 1.5 L
G2_NR_RCVR 2.4 L
G2_R_RCVR 2.5 L
MY_GRP_Q_1 0.0 L
MY_GRP_Q_2 0.0 L
MY_BUS_Q_1 0.0 G
MY_BUS_Q_2 0.0 G
MY_Q_1 0.0 L
MY_Q_2 0.0 L
IVP_test_bindq1 0.0 L
IVP_test_bindq2 0.0 L
IVP_private_MOT1 4999 L
IVP_universal_MOT1 5001 L
%EOS
 
%NAM
!NA_GROUP 0
NA_GROUP 1
!NA_GROUP 2
%EOS
 
%END
 
Converter Results
After running the OTMQ dmqclconv command as follows:
dmqclconv -g 1 -f dmq.ini, the converted results are shown in Listing 2.
Listing B‑2 Converted Results
UBB:
*RESOURCES
MASTER SITE1
IPCKEY @IPCKEY@
MAXACCESSERS 25
MAXSERVERS 30
MODEL SHM
MAXSERVICES 102
 
*MACHINES
"localhost" LMID="SITE1"
MAXACCESSERS=100
MAXWSCLIENTS=50
TUXCONFIG="@TUXCONFIG@"
TUXDIR="@TUXDIR@"
APPDIR="@APPDIR@"
TLOGDEVICE="@TLOGDEVICE@"
TLOGNAME="TLOG"
 
*GROUPS
"OTMQ1" LMID="SITE1" GRPNO=1
OPENINFO="TUXEDO/TMQM:@QMCONFIG@:1"
TMSNAME="TMS_TMQM"
TMSCOUNT=2
 
"OTMQ2" LMID="SITE1" GRPNO=2
OPENINFO="TUXEDO/TMQM:@QMCONFIG@:2"
TMSNAME="TMS_TMQM"
TMSCOUNT=2
 
"GRPDM" LMID="SITE1" GRPNO=3
"GRPGW" LMID="SITE1" GRPNO=4
"GRPEVT" LMID="SITE1" GRPNO=5
"WSLGROUP" LMID="SITE1" GRPNO=6
 
*SERVERS
"TuxMsgQ" SRVGRP="OTMQ1" SRVID=1
CLOPT="-s 1:TuxMsgQ -- -i 10"
"TuxMQFWD" SRVGRP="OTMQ1" SRVID=2
CLOPT="-- -i 2"
"TMQ_NA" SRVGRP="OTMQ1" SRVID=3
CLOPT="-- -g 1"
"TuxMsgQ" SRVGRP="OTMQ2" SRVID=4
CLOPT="-s 2:TuxMsgQ -- -i 10"
"TuxMQFWD" SRVGRP="OTMQ2" SRVID=5
CLOPT="-- -i 2"
"TMQ_NA" SRVGRP="OTMQ2" SRVID=6
CLOPT="-- -g 1"
"DMADM" SRVGRP="GRPDM" SRVID=7
CLOPT="-A"
"GWADM" SRVGRP="GRPGW" SRVID=8
CLOPT="-A"
"GWTDOMAIN" SRVGRP="GRPGW" SRVID=9
CLOPT="-A"
"TMQEVT" SRVGRP="GRPEVT" SRVID=10
CLOPT="-A"
"WSL" SRVGRP="WSLGROUP" SRVID=12
CLOPT="-A -- -n //localhost:47100 -M 1"
 
*SERVICES
"TuxMQATH1" BLOCKTIME=60
"1_LOCAL_NA" BLOCKTIME=60
"TuxMQATH2" BLOCKTIME=60
"2_LOCAL_NA" BLOCKTIME=60
 
*SERVICES
 
DUBB:
*DM_RESOURCES
*DM_LOCAL
"DOM1" GWGRP="GRPGW"
ACCESSPOINTID="DOM1"
CONNECTION_POLICY=ON_STARTUP
RETRY_INTERVAL=30
##gnumber is 1,gname is G1,node is localhost,port is 47001
 
"DOM2" GWGRP="GRPGW"
ACCESSPOINTID="DOM2"
CONNECTION_POLICY=ON_STARTUP
RETRY_INTERVAL=30
##gnumber is 2,gname is G2,node is localhost,port is 47002
 
*DM_REMOTE
"DOM3" ACCESSPOINTID="DOM3"
##gnumber is 3,gname is G3,node is titan,port is 47001
 
*DM_TDOMAIN
"DOM1" NWADDR="//localhost:47001"
##gnumber is 1,gname is G1
 
"DOM2" NWADDR="//localhost:47002"
##gnumber is 2,gname is G2
 
"DOM3" NWADDR="//titan:47001"
##gnumber is 3,gname is G3
 
*DM_EXPORT
"1" LACCESSPOINT="DOM1"
"GLOBAL_NA" LACCESSPOINT="DOM1"
"2" LACCESSPOINT="DOM2"
 
*DM_IMPORT
"3" RACCESSPOINT="DOM3"
TYPE="QSPACE"
 
CRQUE:
crdl @QMCONFIG@ 0 40000
echo
 
qspacecreate -n 8192B -Q 100 -T 200 -N @QALIAS@
1
@QIPCKEY1@
16384
200
100
100
100
errque
y
16
y
y
 
qopen 1
qcreate -t PQ -a N -c II -f
0
fifo
none
0
30
100%
0%
 
qcreate -t PQ -a N -c II -f
1
fifo
none
0
30
100%
0%
 
qcreate -t PQ -a N -c II -f
2
fifo
none
0
30
100%
0%
 
qcreate -t MRQ -a Y -c II -f
3
fifo
none
0
30
100%
0%
 
qcreate -t MRQ -a Y -c II -f
4
fifo
none
0
30
100%
0%
 
qcreate -t MRQ -a Y -c II -f
5
fifo
none
0
30
100%
0%
 
qcreate -t PQ -a Y -c II -f
6
fifo
none
0
30
100%
0%
 
qcreate -t MRQ -a Y -c II -f
7
fifo
none
0
30
100%
0%
 
qcreate -t PQ -a N -c II -f
8
fifo
none
0
30
100%
0%
 
qcreate -t PQ -a N -c II -f
9
fifo
none
0
30
100%
0%
 
qcreate -t PQ -a N -c II -f
10
fifo
none
0
30
100%
0%
 
qcreate -t PQ -a N -c II -f
11
fifo
none
0
30
100%
0%
 
qcreate -t PQ -a N -c II -f
12
fifo
none
0
30
100%
0%
 
qcreate -t PQ -a N -c II -f
13
fifo
none
0
30
100%
0%
 
qcreate -t PQ -a N -c EI -f
14
fifo
none
0
30
100%
0%
 
qcreate -t PQ -a N -c EO -f
15
fifo
none
0
30
100%
0%
 
qcreate -t PQ -a N -c II -f
16
fifo
none
0
30
100%
0%
 
qcreate -t PQ -a Y -c II -f
17
fifo
none
0
30
100%
0%
 
qcreate -t SQ -a N -c II -f -o 16
18
fifo
none
0
30
100%
0%
 
qcreate -t PQ -a N -c II -f
20
fifo
none
0
30
100%
0%
 
qcreate -t PQ -a N -c II -f
21
fifo
none
0
30
100%
0%
 
qcreate -t SQ -a N -c II -f -o 20
22
fifo
none
0
30
100%
0%
 
qcreate -t PQ -a N -c II -f
90
fifo
none
0
30
100%
0%
 
qcreate -t PQ -a N -c EO -f
193
fifo
none
0
30
100%
0%
 
qcreate -t PQ -a N -c EO -f
194
fifo
none
0
30
100%
0%
 
qcreate -t SQ -a N -c EO -f -o 0
195
fifo
none
0
30
100%
0%
 
qspacecreate -n 8192B -Q 100 -T 200 -N @QALIAS@
2
@QIPCKEY2@
16384
200
100
100
100
errque
y
16
y
y
 
qopen 2
qcreate -t PQ -a N -c II -f
0
fifo
none
0
30
100%
0%
 
qcreate -t PQ -a N -c II -f
1
fifo
none
0
30
100%
0%
 
qcreate -t PQ -a N -c II -f
2
fifo
none
0
30
100%
0%
 
qcreate -t MRQ -a Y -c II -f
3
fifo
none
0
30
100%
0%
 
qcreate -t MRQ -a Y -c II -f
4
fifo
none
0
30
100%
0%
 
qcreate -t MRQ -a Y -c II -f
5
fifo
none
0
30
100%
0%
 
qcreate -t PQ -a Y -c II -f
6
fifo
none
0
30
100%
0%
 
qcreate -t MRQ -a Y -c II -f
7
fifo
none
0
30
100%
0%
 
qcreate -t PQ -a N -c II -f
8
fifo
none
0
30
100%
0%
 
qcreate -t PQ -a N -c II -f
9
fifo
none
0
30
100%
0%
 
qcreate -t PQ -a N -c II -f
10
fifo
none
0
30
100%
0%
 
qcreate -t PQ -a N -c II -f
11
fifo
none
0
30
100%
0%
 
qcreate -t PQ -a N -c II -f
12
fifo
none
0
30
100%
0%
 
qcreate -t PQ -a N -c II -f
13
fifo
none
0
30
100%
0%
 
qcreate -t PQ -a N -c EI -f
14
fifo
none
0
30
100%
0%
 
qcreate -t PQ -a N -c EO -f
15
fifo
none
0
30
100%
0%
 
qcreate -t PQ -a N -c II -f
16
fifo
none
0
30
100%
0%
 
qcreate -t PQ -a Y -c II -f
17
fifo
none
0
30
100%
0%
 
qcreate -t SQ -a N -c II -f -o 16
18
fifo
none
0
30
100%
0%
 
qcreate -t PQ -a N -c II -f
20
fifo
none
0
30
100%
0%
 
qcreate -t PQ -a N -c II -f
21
fifo
none
0
30
100%
0%
 
qcreate -t SQ -a N -c II -f -o 20
22
fifo
none
0
30
100%
0%
 
qcreate -t PQ -a N -c II -f
90
fifo
none
0
30
100%
0%
 
qcreate -t PQ -a N -c EO -f
193
fifo
none
0
30
100%
0%
 
qcreate -t PQ -a N -c EO -f
194
fifo
none
0
30
100%
0%
 
qcreate -t SQ -a N -c EO -f -o 0
195
fifo
none
0
30
100%
0%
 
q
 
Listing 3 shows a QALIAS example
Listing B‑3 QALIAS
TEMPLATE 0.0 L
NON_QUOTA 0.1 L
QUOTA 0.2 L
MRQ 0.3 L
NR_MRQ 0.4 L
R_MRQ 0.5 L
G_IN_QCT 0.6 G
New_MRQ 0.7 L
QUOTA2 0.8 L
byte_quota_q 0.9 L
msg_quota_q 0.10 L
all_quota_q 0.11 L
no_quota_q 0.12 L
ii_queue 0.13 L
ei_queue 0.14 L
eo_queue 0.15 L
QUEUE1 0.16 L
QUEUE2 0.17 L
QUEUE3 0.18 L
BIND_PQ1 0.20 L
BIND_PQ2 0.21 L
BIND_SQ 0.22 L
spare1 0.90 L
EXAMPLE_Q_1 0.193 L
EXAMPLE_Q_2 0.194 L
IVP_unowned_sq 0.195 L
AVAIL_TARGET 1.1 L
INTEROP_TARGET 1.1 L
REMOTE_NON_QUOTA 1.1 L
REMOTE_QUOTA 1.2 L
REMOTE_MRQ 1.3 L
LOCAL_NR_RCVR 0.4 L
LOCAL_R_RCVR 0.5 L
G1_NR_RCVR 1.4 L
G1_R_RCVR 1.5 L
G2_NR_RCVR 2.4 L
G2_R_RCVR 2.5 L
MY_GRP_Q_1 0.0 L
MY_GRP_Q_2 0.0 L
MY_BUS_Q_1 0.0 G
MY_BUS_Q_2 0.0 G
MY_Q_1 0.0 L
MY_Q_2 0.0 L
IVP_test_bindq1 0.0 L
IVP_test_bindq2 0.0 L
IVP_private_MOT1 4999 L
IVP_universal_MOT1 5001 L
 
Listing 4 shows a CRTLOG example.
Listing B‑4 CRTLOG
echo
crdl -b 200 -z @TLOGDEVICE@
crlog -m SITE1
q
 

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