❶ 什麼是消息中間件,例如IBM MQ,能否用通俗的語言幫忙解釋一下。。
先給你講一下什麼叫中間件再舉個例子
1.網路中中間件含義的鏈接 我就不粘貼了
http://ke..com/view/23710.htm
2.舉個簡單的例子,
有這樣一個需求,sap有一組hr的相關信息,比如姓名,工號等等要求顯示到一個portal上面,供user使用 查看信息。
數據怎麼從sap到portal呢,可能的一種情況是,使用一個中間件,通過rfc或者idoc把相關信息從sap取出來,整合以後在通過jdbc插入到 portal的後台db里去。
這就是一個中間件參與數據整合 協同的簡單過程。這樣一個過程是由中間件完成的。所以簡單的說,中間件就是在異構系統間起數據傳輸,整合作用的一個軟體。
3.還是以剛才的例子為例,看看什麼是消息中間件
如果是消息中間件,就要把剛才例子中的hr數據看成一個消息,具體的數據結構可以根據需要和開發平台自己來定義。
把從rfc出來的數據,先形成一個消息,然後發布到一個消息隊列裡面,然後再通過一定規則去取這個消息解析再使用jdbc插入資料庫
這個過程可以是一對一,以可以是多對多。
也許上面這個簡單的例子並不能體現消息中間件的優點,但是在復雜的網路環境下,例如多個通訊方式,多個業務系統之間進行消息交互,他的優點是顯而易見的。
❷ MQ是什麼怎檢查具體說明
MQ
IBM MQ 介紹
消息隊列(MQ)是一種應用程序對應用程序的通信方法。應用程序通過寫和檢索出入列隊的針對應用程序的數據(消息)來通信,而無需專用連接來鏈接它們。消息傳遞指的是程序之間通過在消息中發送數據進行通信,而不是通過直接調用彼此來通信,直接調用通常是用於諸如遠程過程調用的技術。排隊指的是應用程序通過隊列來通信。隊列的使用除去了接收和發送應用程序同時執行的要求。
IBM WebSphere MQ 產品支持應用程序通過不同組件如處理器、子系統、操作系統以及通信協議的網路彼此進行通信。例如,IBM WebSphere MQ 支持 35 種以上的不同操作系統。
IBM WebSphere MQ 支持兩種不同的應用程序編程介面:java 消息服務(JMS)和消息隊列介面(MQI)。在 IBM WebSphere MQ 伺服器上,JMS 綁定方式被映射到 MQI。如圖 3 所示,應用程序直接與其本地隊列管理器通過使用 MQI 進行對話,MQI 是一組要求隊列管理器提供服務的調用。MQI 的引人之處是它只提供 13 次調用。這意味著對於應用程序編程員它是一種非常易於使用的介面,因為大部分艱苦工作都將透明完成的。
圖形 2. IBM WebSphere MQ 編程
圖 2 顯示了 IBM WebSphere MQ 編程的原理。第一步是讓應用程序與隊列管理器連接。它通過 MQConnect 調用來進行此連接。下一步使用 MQOpen 調用為輸出打開一個隊列。然後應用程序使用 MQPut 調用將其數據放到隊列上。要接收數據,應用程序調用 MQOpen 調用打開輸入隊列。應用程序使用 MQGet 調用從隊列上接收數據。
圖中還顯示了消息通道代理(MCA)、通道出口和對象許可權管理器(OAM)。MCA 是 IBM WebSphere MQ 程序,它使用現有傳輸服務諸如 TCP/IP 與 SNA 將消息從本地傳輸隊列移到目標隊列管理器。這些傳輸服務即通道。通道出口是用戶寫入庫,可以在通道運作期間,從已定義位置號之一進入這些庫。OAM 是命令和對象管理的預設授權服務(針對操作系統)。這三個組件對 IBM WebSphere MQ 的現有安全性解決方案非常重要。
❸ ibm主機系統常用命令
那如果說需要配置對應這些常用的命令的話,就可以通過相關設置裡面達到對應的一些主題的編輯,一般情況下的話裡面有可以通過相關系統裡面找到對應的一些命令的編輯狀態。
❹ ibmmq svrconn 伺服器連接通道 能幹什麼用
伺服器連接通道就是給MQ客戶端連接進來的一個標識入口,它和其他通道不一樣,它是不需要啟動的,如果有MQ客戶端成功地通過這個伺服器連接通道連接進來,它的狀態就是活動的了.
其他的通道類型可能需要執行啟動命令來變成活動,這種通道活動以後,有一個真實的通道進程啟動起來,伺服器連接通道是沒有相應的通道進程的.
❺ 如何關閉ibm mq 隊列管理器許可權認證
1、選中隊列管理器名稱,滑鼠右鍵菜單-【屬性】。
❻ linux系統如何啟動mq
開篇之前奉上幾條黃金鏈接:
MQ參考文檔
http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0m0/index.jsp?topic=%2Fcom.ibm.mq.doc%2Fhelp_home_wmq.htm
http://www-01.ibm.com/support/docview.wss?uid=swg27006467
MQ下載地址:http://www-03.ibm.com/software/procts/us/en/wmq/
安裝的MQ軟體包為WMQv600Trial-x86_linux_2.tar.gz. 將WMQv600Trial-x86_linux_2.tar.gz解壓至某一目錄。
(1)執行接受許可腳本: ./mqlicense.sh –accept 這個腳本是要安裝WebSphere MQ 軟體包的MQ許可程序. 至關重要,這個腳本沒有正確配置的話將導致MQ安裝失敗.–accept是不啟動圖形直接接受許可。
(2) 安裝 WebSphere MQ for Linux 伺服器:
[root@localhost mq]# rpm-ivh MQSeriesRuntime-6.0.0-0.i386.rpm
[root@localhost mq]# rpm-ivh MQSeriesSDK-6.0.0-0.i386.rpm
[root@localhost mq]# rpm-ivh MQSeriesServer-6.0.0-0.i386.rpm
注:安裝完成後,相關文件會被自動安裝在/opt/mqm下,在安裝
MQSeriesRuntime-6.0.0-0.i386.rpm時候,安裝程序為系統自動創建了一個mqm用戶和mqm組,安裝完畢後,需要使用該用戶來進行MQ的配置。
(3) 安裝 WebSphere MQ for Linux 客戶端:
[root@localhost mq]# rpm-ivh MQSeriesClient-6.0.0-0.i386.rpm
(4) 安裝 WebSphere MQ 樣本程序(其中包括amqsput、amqsget、amqsgbr和amqsbcg等)
[root@localhost mq]# rpm-ivh MQSeriesSamples-6.0.0-0.i386.rpm 樣本程序安裝在/opt/mqm/samp/bin 中。
(5)安裝MQ其他軟體包
[root@localhost mq]# rpm-ivh MQSeriesMan-6.0.0-0.i386.rpm
[root@localhost mq]# rpm-ivh MQSeriesJava-6.0.0-0.i386.rpm
[root@localhost mq]# rpm-ivh IBMJava2-SDK-1.4.2-0.0.i386.rpm
上面最後一步安裝的是JDK運行環境,如果已經有相同或更高版本的JDK,不需要再安裝。 (6) 安裝過程創建了一個名為mqm 的用戶和一個同樣名為mqm 的組,此時,新用戶是被鎖定的,必須設置一個密碼來解鎖,這樣才能正常使用該用戶。用passwd 命令:
[root@localhost mq]# passwd mqm 以上操作均在root用戶下操作,至此MQ6.0安裝結束。MQ的配置相關命令操作均在mqm用戶下。
注意:
如果執行crtmqm命令時提示
-bash-3.2$ crtmqm
-bash: crtmqm: command not found
則需要配置mqm用戶的環境變數,編輯如下文件,並添加下面的內容,如下:
第一種方法: 相對第二種較安全 僅對 mqm用戶有效
1)-bash-3.2$ vi /var/mqm/.bash_profile
PATH=$PATH:/opt/mqm/samp/bin:/opt/mqm/bin:bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin
2)執行「.」命令,使這個文件生效
-bash-3.2$ . .bash_profile
3)再次嘗試實行crtmqm或是dspmqm命令,即可發現已經生效。
第二種方法:
1、su root
2、vim /etc/profile
3、在最後面加上:PATH=$PATH:/opt/mqm/samp/bin:/opt/mqm/bin:bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin
4、關閉遠程終端重新打開,無需重啟伺服器
5、ok了!!
了解更多開源相關,去LUPA社區看看吧。
❼ IBM MQ是什麼
IBM MQ
消息隊列(MQ)是一種應用程序對應用程序的通信方法。應用程序通過寫和檢索出入列隊的針對應用程序的數據(消息)來通信,而無需專用連接來鏈接它們。消息傳遞指的是程序之間通過在消息中發送數據進行通信,而不是通過直接調用彼此來通信,直接調用通常是用於諸如遠程過程調用的技術。排隊指的是應用程序通過隊列來通信。隊列的使用除去了接收和發送應用程序同時執行的要求。
IBM WebSphere MQ 產品支持應用程序通過不同組件如處理器、子系統、操作系統以及通信協議的網路彼此進行通信。例如,IBM WebSphere MQ 支持 35 種以上的不同操作系統。
IBM WebSphere MQ 支持兩種不同的應用程序編程介面:Java 消息服務(JMS)和消息隊列介面(MQI)。在 IBM WebSphere MQ 伺服器上,JMS 綁定方式被映射到 MQI。如圖 3 所示,應用程序直接與其本地隊列管理器通過使用 MQI 進行對話,MQI 是一組要求隊列管理器提供服務的調用。MQI 的引人之處是它只提供 13 次調用。這意味著對於應用程序編程員它是一種非常易於使用的介面,因為大部分艱苦工作都將透明完成的
❽ 使用ibm MQ 在JAVA類中報: NoClassDefFoundError:com/ibm/mq/headers/internal/trace/Names
1.相關jar包:
com.ibm.mq.commonservices.jar
com.ibm.mq.headers.jar
com.ibm.mq.jar
com.ibm.mq.jmqi.jar
connector.jar
junit-4.4.jar
相關jar可以在ibm mq的安裝目錄下找到:
2.在mq伺服器上創建相應的隊列管理器,和隊列,以及伺服器傳輸通道。附上操作命令:
--啟動隊列管理器
strmqm QMEMBFE
--啟動監聽
runmqlsr -m QMEMBFE -p 1414 -t tcp &
--用戶交互管理界面程序
runmqsc QMEMBFE
--創建本地隊列
DEFINE QLOCAL (Q1)
--創建名稱為DC.SVRCONN的伺服器連接通道
DEFINE CHANNEL(DC.SVRCONN) CHLTYPE (SVRCONN) REPLACE
--刪除通道
DELETE CHANNEL(DC.SVRCONN)
3.使用java編寫調用程序:
運行方法:單元測試運行:testMQ
MessageByMQ
[java]view plain
importorg.junit.After;
importorg.junit.Before;
importorg.junit.Test;
importcom.ibm.mq.MQC;
importcom.ibm.mq.MQEnvironment;
importcom.ibm.mq.MQException;
importcom.ibm.mq.MQGetMessageOptions;
importcom.ibm.mq.MQMessage;
importcom.ibm.mq.MQPutMessageOptions;
importcom.ibm.mq.MQQueue;
importcom.ibm.mq.MQQueueManager;
/**
*列出常用的錯誤碼:如下:
*2540:通道定義有錯誤:</p>
*解決方式如下:</p>
*1.進入用戶交互界面:runmqscQMEMBFE(QMEMBFE為隊列管理器名稱)
*2.創建相應的伺服器連接通道:DEFINECHANNEL(DC.SVRCONN)CHLTYPE(SVRCONN)REPLACE
*2035:授權相關錯誤:解決方式如下:
*進入用戶交互界面:(同上):
*ALTERCHANNEL(DC.SVRCONN)CHLTYPE(SVRCONN)MCAUSER('mqm')
*說明:DC.SVRCONN伺服器連接通道名稱mqm為ibmmq用戶名稱
*
*
*
*
*@authorkefan
*
*/
publicclassMessageByMQ{
/**
*隊列管理器的名稱
*/
privateStringqManagerName="QMEMBFE";
/**
*隊列管理器
*/
privateMQQueueManagerqMgr;
/**
*隊列名稱
*/
privateStringqueueName="Q1";
/**
*隊列
*/
privateMQQueueqQueue;
/**
*mq伺服器所在的主機名稱
*/
privateStringhostname="192.168.233.134";
/**
*伺服器連接通道名稱
*/
privateStringchannelName="DC.SVRCONN";
/**
*監聽器監聽的埠
*/
privateintport=1414;
/**
*傳輸的編碼類型
*/
privateintCCSID=1381;
@Before
publicvoidinit(){
try{
MQEnvironment.hostname=this.hostname;//安裝MQ所在的ipaddress
MQEnvironment.port=this.port;//TCP/IPport
MQEnvironment.channel=this.channelName;
MQEnvironment.CCSID=CCSID;
qMgr=newMQQueueManager(this.qManagerName);
intqOptioin=MQC.MQOO_INPUT_AS_Q_DEF|MQC.MQOO_INQUIRE
|MQC.MQOO_OUTPUT;
qQueue=qMgr.accessQueue(queueName,qOptioin);
}catch(MQExceptione){
e.printStackTrace();
}
}
/**
*發送信息
*/
publicvoidSendMsg(byte[]qByte){
try{
MQMessageqMsg=newMQMessage();
qMsg.write(qByte);
MQPutMessageOptionspmo=newMQPutMessageOptions();
qQueue.put(qMsg,pmo);
System.out.println("Themessageissent!");
System.out.println(" Themessageis"+newString(qByte,"GBK"));
}catch(MQExceptione){
e.printStackTrace();
System.out
.println("AWebSphereMQerroroccurred:Completioncode"
+e.completionCode+"ReasonCodeis"
+e.reasonCode);
}catch(java.io.IOExceptione){
e.printStackTrace();
System.out
.println(""
+e);
}
}
/**
*從消息隊列取數據
*/
publicvoidGetMsg(){
try{
MQMessageretrievedMessage=newMQMessage();
MQGetMessageOptionsgmo=newMQGetMessageOptions();
gmo.options+=MQC.MQPMO_SYNCPOINT;
qQueue.get(retrievedMessage,gmo);
intlength=retrievedMessage.getDataLength();
byte[]msg=newbyte[length];
retrievedMessage.readFully(msg);
StringsMsg=newString(msg,"GBK");
System.out.println(sMsg);
}catch(RuntimeExceptione){
e.printStackTrace();
}catch(MQExceptione){
e.printStackTrace();
if(e.reasonCode!=2033)//沒有消息
{
e.printStackTrace();
System.out
.println("AWebSphereMQerroroccurred:Completioncode"
+e.completionCode
+"ReasonCodeis"
+e.reasonCode);
}
}catch(java.io.IOExceptione){
System.out
.println(""
+e);
}
}
/**
*單元測試方法
*/
@Test
publicvoidtestMQ(){
MessageByMQmqst=newMessageByMQ();
mqst.init();
try{
mqst.SendMsg("你好,WebshpereMQ7.5!".getBytes("GBK"));
mqst.GetMsg();
}catch(Exceptione){
e.printStackTrace();
}
}
/**
*釋放資源
*/
@After
publicvoidrelease(){
try{
qQueue.close();
qMgr.disconnect();
}catch(MQExceptione){
System.out
.println("AWebSphereMQerroroccurred:Completioncode"
+e.completionCode+"ReasonCodeis"
+e.reasonCode);
}
}
}
❾ ibm mq 8.0 怎樣打開命令控制台
這個例子的目的是建立可以實現消息傳遞的一對MQ伺服器,它們分別基於NT和UNIX平台。
運行MQ控制台命令
runmqsc QM_NT
運行MQ控制台命令
runmqsc QM_UNIX
❿ mq錯誤碼2030
解決方法:
(1)登錄伺服器 進入 IBM mq 所在目錄 (linux一般在/opt/mqm下),再進入bin目錄 切換到mqm用戶(su mqm),輸入runmqsc QM1 (QM1 是你的隊列管理器的名字),進入命令模式,輸入 dis qmgr 查看 資源管理器的屬性CHLAUTH默認值是ENABLED的改成DISABLED的 輸入命令 ALTER QMGR CHLAUTH(DISABLED) ,然後測試是否可用,如果還不可以請看第二步。
(2)
輸入 ALTER CHL(SYSTEM.DEF.SVRCONN) CHLTYPE(SVRCONN) MCAUSER('mqm')
SYSTEM.DEF.SVRCONN 是通道的名字
SVRCONN 是通道的類型
mqm 是mq的用戶
一般linux安裝完mq後 都會自動出現mqm用戶。
如果你是使用 IBM WebSphere MQ Explorer 進行設置創建的隊列管理器,那麼你需要修改隊列管理器的屬性-->通信-->通道認證記錄改為禁用(默認是啟用的)。