Oracle Tuxedo Message Queue (OTMQ)コンポーネントは、Oracle Tuxedoのキューイング・サービスを改善および拡張します。Oracle Tuxedo /Qコンポーネントの既存のキューイング機能に加え、OTMQでは、信頼性の高いメッセージ配信、同期/非同期メッセージング、パブリッシュ/サブスクライブ、メッセージ・フィルタリング、動的キュー・エイリアス(ネーミング)、ジャーナルなどの、より豊富なキュー機能が提供されます。OTMQはOracle Tuxedoインフラストラクチャに基づいて実装されているため、トランザクション、セキュリティ、スケーラビリティおよびHAのサポートを提供できます。
Oracle MessageQ (OMQ)のメッセージ・キューイング・バスは、図B-1に示すように、ネットワーク化された環境でメッセージ・キューの論理的な相互接続を作成することによって、アプリケーション間のメッセージの転送に使用されるデータ・ハイウェイを形成します。
図B-2は、OTMQを使用したアプリケーションのシステム構造を示します。
表 1は、OMQおよびOTMQの主要な機能の互換性を示します。
OTMQアプリケーションは、一元的にデプロイするか、または分散してデプロイできます。柔軟なOracle Tuxedoデプロイメント・モデルを利用して、OTMQアプリケーションでは、UBBCONFIG
ファイルとDOMCONFIG
ファイルを使用してリソースを構成およびデプロイします。
ファイル移行の構成では、次のOTMQコンポーネントを使用します。
OMQアプリケーション・リソース、OMQグループおよびキューは、それぞれOTMQ QSpaceおよびキューに移行する必要があります。
OTMQでは、omq.init
ファイルをOTMQ構成ファイル(UBBCONFIG
/DMCONFIG
)に移行するツール("dmqclconv
")が提供されます。
詳細は、「Oracle Tuxedo Message Queueコマンド・リファレンス」を参照してください。
OTMQでは、tmqadmin
コマンドを使用してキュー・リソースを作成および管理します(Qspaceおよびキュー)。また、OTMQアプリケーションでは、クライアントおよびサーバーを構築する場合に次のコマンドを使用することも必要となります。
詳細は、「Oracle Tuxedo Message Queueコマンド・リファレンス」を参照してください。
これらのサービスは、アプリケーション要件に基づき、UBBCONFIG
ファイルで構成およびデプロイできます。詳細は、「Oracle Tuxedo Message Queue UBBサーバー・リファレンス」を参照してください。
リスト 1に、OMQ構成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
dmqclconv -g 1 -f dmq.ini
を実行した後の変換結果をリスト 2に示します。
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
リスト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
リストB-4に、CRTLOG
の例を示します。
echo
crdl -b 200 -z @TLOGDEVICE@
crlog -m SITE1
q