国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

介紹關于IBM MQSeries的使用指南

2019-11-18 12:26:19
字體:
來源:轉載
供稿:網友

  隨著計算機網絡和分布式應用的不斷發展,遠程消息傳遞越來越成為應用系統中不可缺少的組成部分。商業消息中間件的出現保證了消息傳輸的可靠性,高效率和安全性,同時也減少了系統的開發周期。目前應用最多的消息中間件產品為IBM MQSeries。本文就針對MQ的基本操作與配置進行具體的闡述,希望對讀者有所幫助。
  
  一.MQ基本操作
  
  MQ中有幾個很重要的組件:隊列治理器(QueueManager)、隊列(Queue)和通道(Channel)。其基本的操作方法如下:
  
  創建隊列治理器
  crtmqm ?q QMgrName
  -q是指創建缺省的隊列治理器
  
  刪除隊列治理器
  dltmqm QmgrName
  
  啟動隊列治理器
  strmqm QmgrName
  假如是啟動默認的隊列治理器,可以不帶其名字
  
  停止隊列治理器
  endmqm QmgrName 受控停止
  
  endmqm ?i QmgrName 立即停止
  
  endmqm ?p QmgrName 強制停止
  
  顯示隊列治理器
  dspmq ?m QmgrName
  
  運行MQSeries命令
  runmqsc QmgrName
  假如是默認隊列治理器,可以不帶其名字
  
  往隊列中放消息
  amqsput QName QmgrName
  假如隊列是默認隊列治理器中的隊列,可以不帶其隊列治理器的名字
  
  從隊列中取出消息
  amqsget QName QmgrName
  假如隊列是默認隊列治理器中的隊列,可以不帶其隊列治理器的名字
  
  啟動通道
  runmqchl ?c ChlName ?m QmgrName
  
  啟動偵聽
  runmqlsr ?t TYPE ?p PORT ?m QMgrName
  
  停止偵聽
  endmqlsr -m QmgrName
  
  MQSeries命令
  
  定義死信隊列
  DEFINE QLOCAL(QNAME) DEFPSIST(YES) REPLACE
  
  設定隊列治理器的死信隊列
  ALTER QMGR DEADQ(QNAME)
  
  定義本地隊列
  DEFINE QL(QNAME) REPLACE
  
  定義別名隊列
  DEFINE QALIAS(QALIASNAME) TARGQ(QNAME)
  
  遠程隊列定義
  DEFINE QREMOTE(QRNAME) +
  RNAME(AAA) RQMNAME(QMGRNAME) +
  XMITQ(QTNAME)
  
  定義模型隊列
  DEFINE QMODEL(QNAME) DEFTYPE(TEMPDYN)
  
  定義本地傳輸隊列
  DEFINE QLOCAL(QTNAME) USAGE(XMITQ) DEFPSIST(YES) +
  INITQ(SYSTEM.CHANNEL.INITQ)+
  PROCESS(PROCESSNAME) REPLACE
  
  創建進程定義
  DEFINE PROCESS(PRONAME) +
  DESCR(‘STRING’)+
  APPLTYPE(WINDOWSNT)+
  APPLICID(’ runmqchl -c SDR_TEST -m QM_ TEST’)
  其中APPLTYPE的值可以是:CICS、UNIX、WINDOWS、WINDOWSNT等
  
  創建發送方通道
  DEFINE CHANNEL(SDRNAME) CHLTYPE(SDR)+
  CONNAME(‘100.100.100.215(1418)’) XMITQ(QTNAME) REPLACE
  其中CHLTYPE可以是:SDR、SVR、RCVR、RQSTR、CLNTCONN、SVRCONN、CLUSSDR和CLUSRCVR。
  
  創建接收方通道
  DEFINE CHANNEL(SDR_ TEST) CHLTYPE(RCVR) REPLACE
  
  創建服務器連接通道
  DEFINE CHANNEL(SVRCONNNAME) CHLTYPE(SVRCONN) REPLACE
  
  顯示隊列的所有屬性
  DISPLAY QUEUE(QNAME) [ALL]
  
  顯示隊列的所選屬性
  DISPLAY QUEUE(QNAME) DESCR GET PUT
  DISPLAY QUEUE(QNAME)MAXDEPTH CURDEPTH
  
  顯示隊列治理器的所有屬性
  DISPLAY QMGR [ALL]
  
  顯示進程定義
  DISPLAY PROCESS(PRONAME)
  
  更改屬性
  ALTER QMGR DESCR(‘NEW DESCRipTION’)
  ALTER QLOCAL(QNAME) PUT(DISABLED)
  ALTER QALIAS(QNAME) TARGQ(TARGQNAME)
  
  刪除隊列
  DELETE QLOCAL(QNAME)
  DELETE QREMOTE(QRNAME)
  
  清除隊列中的所有消息
  CLEAR QLOCAL(QNAME)
  
  二.配置一個能夠通信的遠程連接
  
  以上講述了MQ的基本命令操作,但只知道這些是沒有實際意義的。MQ的最終目的是實現遠程通信,所以下面就以一個具體的例子來說明如何實現遠程連接。這個例子的目的是建立可以實現消息傳遞的一對MQ服務器,它們分別基于NT和UNIX平臺。
  
  首先在NT端建一隊列治理器
  crtmqm ?q QM_NT
  
  啟動隊列治理器
  strmqm QM_NT
  
  運行MQ控制臺命令
  runmqsc QM_NT
  
  創建死信隊列
  DEFINE QL(NT.DEADQ) DEFPSIST(YES) REPLACE
  
  更改隊列治理器屬性,設置其死信隊列
  ALTER QMGR DEADQ(NT.DEADQ)
  
  創建進程定義
  DEFINE PROCESS(P_NT)+
  APPLTYPE(WINDOWSNT)+
  APPLICID(’ runmqchl -c SDR_NT -m QM_NT’)
  
  創建本地傳輸隊列
  DEFINE QL(QT_NT) USAGE(XMITQ) DEFPSIST(YES) +
  INITQ(SYSTEM.CHANNEL.INITQ)+
  PROCESS(P_NT) REPLACE
  
  創建遠程隊列定義,對應于UNIX機器上的本地隊列Q_UNIX,傳輸隊列為QT_NT
  DEFINE QREMOTE(QR_NT)+
  RNAME(Q_UNIX) RQMNAME(QM_UNIX)+
  XMITQ(QT_NT)
  
  創建發送方通道,其傳輸隊列為QT_NT,遠程主機地址為10.10.10.2,偵聽端口為1414
  DEFINE CHANNEL(SDR_NT) CHLTYPE(SDR)+
  CONNAME(‘10.10.10.2(1414)’) XMITQ(QT_NT) REPLACE
  
  創建服務器連接通道
  DEFINE CHANNEL(S_NT) CHLTYPE(SVRCONN) REPLACE
  
  在UNIX端創建隊列治理器
  crtmqm ?q QM_UNIX
  
  啟動隊列治理器
  strmqm QM_UNIX
  
  添加偵聽程序
  
  修改/etc/services文件,加入一行:
  MQSeries 1414/tcp #MQSeries channel listener
  
  修改/etc/inetd.conf文件,加入一行(啟動偵聽程序)
  MQSeries stream tcp nowait mqm /usr/lpp/mqm/bin/amqcrsta amqcrsta ?m QM_UNIX
  
  運行以下命令,以使修改起作用
  refresh ?s inetd
  
  運行MQ控制臺命令
  runmqsc QM_UNIX
  
  創建死信隊列
  DEFINE QL(UNIX.DEADQ) DEFPSIST(YES) REPLACE
  
  更改隊列治理器屬性,設置其死信隊列
  ALTER QMGR DEADQ(UNIX.DEADQ)
  
  創建接收方通道,其名字必須與遠程發送方相同
  DEFINE CHANNEL(SDR_NT) CHLTYPE(RCVR) REPLACE
  
  創建本地隊列
  DEFINE QL(Q_UNIX) DEFPSIST(YES) REPLACE
  
  創建服務器連接通道
  DEFINE CHANNEL(S_UNIX) CHLTYPE(SVRCONN) REPLACE
  
  經過以上操作之后,遠程連接的配置工作完成。接下來需要驗證配置是否正確。
  
  在NT端啟動發送方通道
  runmqchl ?c SDR_NT ?m QM_NT 或 start chl(SDR_NT)
  
  從NT端發送消息到UNIX端
  amqsput QR_NT QM_NT
  
  在UNIX端接收消息
  /usr/mqm/samp/bin/amqsget Q_UNIX QM_UNIX
  
  若能收到消息,說明配置成功。
  
  另,在NT下一般情況下在建立隊列治理器時會自動建立偵聽器,啟動隊列治理器時則會自動啟動偵聽程序。當然也可以手動配置偵聽程序。
  
  修改/winnt/system32/drivers/etc/services文件,在文件中加入一行:
  
  MQSeries 1414/tcp #MQSeries channel listener
  
  啟動偵聽程序
  runmqlsr ?t tcp ?p 1414 ?m QM_NT
  
  以上說明了怎樣建立簡單的單向傳輸網絡。消息從NT端傳送到UNIX端。建立從UNIX端到NT端的遠程連接和以上相仿,要建立雙向的傳輸網絡也是同樣的道理。
  
  三.配置JNDI
  
  用JMS實現消息的發送和接收時,經常會用到JNDI。因為JNDI這種方式比較靈活,對于編程也比較簡單。
  在安裝了MQSeries Client for java之后,在/java/bin目錄下找到JMSAdmin.config文件。該文件主要用來說明Context的存儲方式及存儲地址,對應于文件中的兩個參數INITIAL_CONTEXT_FACTORY和PROVIDER_URL。典型的JMSAdmin.config文件內容如下:
  
  #INITIAL_CONTEXT_FACTORY=com.sun.jndi.ldap.LdapCtxFactory
  INITIAL_CONTEXT_FACTORY=com.sun.jndi.fscontext.RefFSContextFactory
  #INITIAL_CONTEXT_FACTORY=com.ibm.ejs.ns.jndi.CNInitialContextFactory
  #
  #PROVIDER_URL=ldap://polaris/o=ibm,c=us
  PROVIDER_URL=file:/d:/temp
  #PROVIDER_URL=iiop://localhost/
  #
  SECURITY_AUTHENTICATION=none
  
  INITIAL_CONTEXT_FACTORY表示JMSAdmin Tool使用的服務提供商。當前有三種受支持的值。com.sun.jndi.ldap.LdapCtxFactory用于LDAP,假如使用它就必須安裝一個LDAP服務器。com.sun.jndi.fscontext.RefFSContextFactory用于文件系統上下文,它只需要使用者提供存放上下文的文件路徑。com.ibm.ejs.ns.jndi.CNInitialContextFactory是專門為websphere提供的,它需要和websphere的CosNaming資源庫一起使用。
  PROVIDER_URL表示會話初始上下文的URL,由JMSAdmin tool實現的所有JNDI操作的根。它和INITIAL_CONTEXT_FACTORY一一對應。
  
  ldap://hostname/contextname 用于LDAP
  file:[drive:]/path

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 西贡区| 绥中县| 新河县| 昌黎县| 驻马店市| 平阳县| 江西省| 平罗县| 油尖旺区| 织金县| 玉山县| 郯城县| 常山县| 常德市| 南宁市| 游戏| 体育| 江北区| 潍坊市| 开鲁县| 荃湾区| 密山市| 宜春市| 辛集市| 文山县| 兴海县| 隆化县| 米林县| 察雅县| 绥德县| 桂阳县| 太康县| 荔浦县| 邵武市| 双江| 新密市| 和静县| 林口县| 临江市| 全南县| 万全县|