導航:首頁 > 編程語言 > webspheremqjava

webspheremqjava

發布時間:2023-02-17 21:42:21

① 什麼是MQ

消息隊列(MQ),是一種應用程序對應用程序的通信方法。應用程序通過寫和檢索出入列隊的針對應用程序的數據(消息)來通信,而無需專用連接來鏈接它們。

消息傳遞指的是程序之間通過在消息中發送數據進行通信,而不是通過直接調用彼此來通信,直接調用通常是用於諸如遠程過程調用的技術。排隊指的是應用程序通過隊列來通信。隊列的使用除去了接收和發送應用程序同時執行的要求。

(1)webspheremqjava擴展閱讀:

MQ傳遞主幹,在世界屢獲殊榮。 它幫您搭建企業服務匯流排(ESB)的基礎傳輸層。IBM WebSphere MQ為SOA提供可靠的消息傳遞。它為經過驗證的消息傳遞主幹, 全方位、 多用途的數據傳輸, 並幫助您搭建企業服務匯流排的傳輸基礎設施。

IBM WebSphere MQ 支持兩種不同的應用程序編程介面:Java 消息服務(JMS)和消息隊列介面(MQI)。在 IBM WebSphere MQ 伺服器上,JMS 綁定方式被映射到 MQI。

應用程序直接與其本地隊列管理器通過使用 MQI 進行對話,MQI 是一組要求隊列管理器提供服務的調用。MQI 的引人之處是它只提供 13 次調用。這意味著對於應用程序編程員它是一種非常易於使用的介面,因為大部分艱苦工作都將透明完成的。

IBM WebSphere MQ 產品支持應用程序通過不同組件如處理器、子系統、操作系統以及通信協議的網路彼此進行通信。

② java怎麼將mq接收的文件消息提取出來

WebSphere MQ 接收發送
添加mq jar
類介紹:
SendMSG:消息發送類。
Main():主方法。
SendMSG():消息發送方法。
方法描述:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

package test;
public class SendMSG{
MQEnvironment.hostname = "192.168.10.201";
//通道類型為伺服器連接通道
MQEnvironment.channel = "tong";
MQEnvironment.CCSID = 1381;
//消息隊列埠號
MQEnvironment.port = 10618;
try{
//建立隊列管理器QM_SERVER為隊列管理器名稱
MQQueueManager qMgr = new MQQueueManager("test");
int openOptions = MQC.MQOO_INPUT_AS_Q_DEF|MQC.MQOO_OUTPUTMQC.MQOO_INQUIRE;//建立隊列INITQ隊列名稱INITQ為本地隊列
MQQueue queue = qMgr.accessQueue("wanghui",openOptions,null,null,null);
System.out.println("成功建立通道");
MQMessage message = new MQMessage();
message.format = MQC.MQFMT_STRING;
message.characterSet = 1381;
message.writeString("王輝");
message.expiry = -1;//設置消息用不過期
queue.put(message);//將消息放入隊列
queue.close();//關閉隊列
qMgr.disconnect();//斷開連接
}catch(EOFExceptione){
e.printStackTrace();
}catch(MQExceptione){
e.printStackTrace();
}catch(Exceptione){
e.printStackTrace();
}
}

ReceiveMSG:消息接收類。
Main():主方法。
ReceiveMSG():消息接收方法。

public class ReceiveMSG {
MQEnvironment.hostname="192.168.10.201";//通道類型為伺服器連接通道
MQEnvironment.channel="tong";
MQEnvironment.CCSID=1381;
MQEnvironment.port=10618;
try{
//建立隊列管理器QM_SERVER為隊列管理器名稱
MQQueueManager qMgr = new MQQueueManager("test");
int openOptions=MQC.MQOO_INPUT_AS_Q_DEF|MQC.MQOO_OUTPUT|MQC.MQOO_INQUIRE;//建立隊列INITQ隊列名稱INITQ為本地隊列
MQQueue queue=qMgr.accessQueue("wanghui",openOptions,null,null,null);
System.out.println("成功建立通道");
MQMessage message= new MQMessage();
message.format=MQC.MQFMT_STRING;
message.characterSet=1381;
//從隊列中獲取消息
MQGetMessage Optionspmo=new MQGetMessageOptions();
queue.get(message,pmo);
Stringchars=message.readLine();
System.out.println(chars);
queue.close();//關閉隊列
qMgr.disconnect();//斷開連接
}catch(EOFExceptione){
e.printStackTrace();
}catch(MQExceptione){
e.printStackTrace();
}catch(Exceptione){
e.printStackTrace();
}
}

③ websphere mq Java編程出現這樣的問題怎麼解決

MQJE001: MQException 出現:完成代碼是 2,原因為 2195
MQJE007: 讀取消息數據時出現 IO 錯誤
MQJE001: MQException 出現:完成代碼是 2,原因為 2009
MQJE003: 傳輸消息緩沖區時出現 IO 錯誤
MQJE001: MQException 出現:完成代碼是 2,原因為 2195
MQJE018: 協議錯誤 - 接收到意外的段類型

④ mq java 怎麼判斷隊列為空

MQException
該類包含WebSphere MQ 完成代碼和錯誤代碼常量的定義。以MQCC_開始的常量是WebSphere MQ 完成代碼,而以MQRC_開始的常量則是WebSphere MQ 原因代碼。只要出現WebSphere MQ
錯誤,就會給出MQException。
MQGetMessageOptions
該類包含控制MQQueue.get()方法行為的選項。
MQManagedObject
該類是MQQueueManager、MQQueue 和MQProcess 類的超類。它提供查詢並設置這些資源屬性的能力。

------解決方案--------------------
去取一次,得到 2033 錯誤就是沒有消息符合你的條件。

使用 PCF 查詢隊列資料:

/**
* @return current depth of queue connected currently.
* @throws Exception
*/
public QueueInfo queryQueueInfo() throws Exception {
if (!checkStatus2(this.queueManager)) {
throw new IllegalStateException("Not Connected to queue manager.");
}

PCFMessageAgent agent = null;

try {
agent = new PCFMessageAgent(this.queueManager);

// Inquiry Queue Name & Current Depth.
int[] attrs = {
CMQC.MQCA_Q_NAME, CMQC.MQIA_CURRENT_Q_DEPTH,
CMQC.MQIA_OPEN_INPUT_COUNT, CMQC.MQIA_OPEN_OUTPUT_COUNT,
CMQC.MQIA_Q_TYPE, CMQC.MQIA_DEFINITION_TYPE, CMQC.MQIA_INHIBIT_GET,
CMQC.MQIA_INHIBIT_PUT };

PCFParameter[] parameters = {
new MQCFST(CMQC.MQCA_Q_NAME , getInputQueue().getText().trim()),
new MQCFIL(CMQCFC.MQIACF_Q_ATTRS , attrs) };

// logger.log("Querying current depth of current queue.");
MQMessage[] responses = agent.send(CMQCFC.MQCMD_INQUIRE_Q, parameters);

QueueInfo info = new QueueInfo();

for (int i = 0; i < responses.length; i++) {
MQCFH cfh = new MQCFH(responses[i]);

// Check the PCF header (MQCFH) in the response message

if (cfh.reason == 0) {
String name = "";
Integer depth = new Integer(0);

for (int j = 0; j < cfh.parameterCount; j++) { // Extract what we want from the returned attributes

PCFParameter p = PCFParameter.nextParameter(responses[i]);

switch (p.getParameter()) {
case CMQC.MQCA_Q_NAME:
name = (String) p.getValue();
info.name = name;
break;
case CMQC.MQIA_CURRENT_Q_DEPTH:
depth = (Integer) p.getValue();
info.depth = depth.intValue();
break;
case CMQC.MQIA_OPEN_INPUT_COUNT:
Integer inputCount = (Integer) p.getValue();
info.inputCount = inputCount.intValue();
break;
case CMQC.MQIA_OPEN_OUTPUT_COUNT:
Integer outputCount = (Integer) p.getValue();
info.outputCount = outputCount.intValue();
break;
case CMQC.MQIA_Q_TYPE:
info.type = ((Integer) p.getValue()).intValue();
break;
case CMQC.MQIA_DEFINITION_TYPE:
info.definitionType = ((Integer) p.getValue()).intValue();
break;
case CMQC.MQIA_INHIBIT_PUT:
info.putNotAllowed = ((Integer) p.getValue()).intValue() == 1;
break; case CMQC.MQIA_INHIBIT_GET:
info.getNotAllowed = ((Integer) p.getValue()).intValue() == 1;
default:
}
}

// System.out.println("Queue " + name + " curdepth " + depth);

return info;

} else {
System.out.println("PCF error:\n" + cfh);

// Walk through the returned parameters describing the error

for (int j = 0; j < cfh.parameterCount; j++) {
System.out.println(PCFParameter.nextParameter(responses[0]));
}

throw new Exception("PCF Error [reason :" + cfh.reason + "]");
}
}

return null;

} catch (Exception e) {
throw e;
} finally {
if (agent != null) {
try {
agent.disconnect();
} catch (Exception e) {
logger.log(e);
}
}
}

⑤ 如何使用Web方式監控IBM WebSphere MQ-liu1rui2-ITPUB博客

監控IBM WebSphere MQ是一個長久以來的熱門話題。老式的telnet加runmqsc的方法以及資源管理器的方法對客戶機都有過多的要求,並且步驟繁瑣,資源消耗大。商品 級的監控系統(比如ITCAM)配置復雜功能強大,但是有些客戶可能不願意支付相關費用。
我這里提供一個我製作的開源、免費的基於Web的監控工具,配置極其簡單,且不需要除了WMQ本身以及Java Runtime Environment v1.5(或更高版本)以外的任何產品,可謂是超超輕量級的監控工具。此產品支持Web方式和多並發,資源消耗極低。

⑥ mq java client 方式和mq java binding方式的區別

MQ Java Binding方式使用JNI(Java Native Interface)類似於MQ 伺服器應用程序。

MQSeries Java客戶機伺服器連接最快的方式是MQ Java Binding方式,這種方式要求MQ Java應用和MQ Server在同一台機器上。使用MQ Java Binding方式避免了建立網路連接的開銷,因此,當連接對性能影響很大時,應當選用MQ Java Binding方式。

MQ Java Client方式通過Server端定義的伺服器連接通道連接,伺服器方需要啟動偵聽程序。MQ Java Client方式用於Java客戶程序和伺服器不在同一台機器時進行連接。

客戶端連接,建立MQEnvironment類

MQEnvironment.hostname

以下是,客戶端連接例子

// ===========================================================================
//
// Licensed Materials - Property of IBM
//
// 5639-C34
//
// (c) Copyright IBM Corp. 1995,1999
//
// ===========================================================================
// WebSphere MQ M'z Java f sample applet
//
// This sample runs as an applet using the appletviewer and HTML file,
// using the command :-
// appletviewer MQSample.html
// Output is to the command line, NOT the applet viewer window.
//
// Note. If you receive WebSphere MQ error 2 reason 2059 and you are sure your
// WebSphere MQ and TCP/IP setup is correct,
// you should click on the "Applet" selection in the Applet viewer window
// select properties, and change "Network access" to unrestricted.
import com.ibm.mq.*; // Include the WebSphere MQ classes for Java package
public class MQSample extends java.applet.Applet
{
private String hostname = "your_hostname"; // define the name of your
// host to connect to
private String channel = "server_channel"; // define name of channel
// for client to use
// Note. assumes WebSphere MQ Server
// is listening on the default
// TCP/IP port of 1414
private String qManager = "your_Q_manager"; // define name of queue
// manager object to
// connect to.
private MQQueueManager qMgr; // define a queue manager object
// When the class is called, this initialization is done first.
public void init()
{
// Set up WebSphere MQ environment
MQEnvironment.hostname = hostname; // Could have put the
// hostname & channel
MQEnvironment.channel = channel; // string directly here!
MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY,//Set TCP/IP or server
MQC.TRANSPORT_MQSERIES);//Connection
} // end of init

public void start()
{
try {
// Create a connection to the queue manager
qMgr = new MQQueueManager(qManager);
// Set up the options on the queue we wish to open...
// Note. All WebSphere MQ Options are prefixed with MQC in Java.
int openOptions = MQC.MQOO_INPUT_AS_Q_DEF |
MQC.MQOO_OUTPUT ;
// Now specify the queue that we wish to open, and the open options...
MQQueue system_default_local_queue =
qMgr.accessQueue("SYSTEM.DEFAULT.LOCAL.QUEUE",
openOptions);
// Define a simple WebSphere MQ message, and write some text in UTF format..
MQMessage hello_world = new MQMessage();
hello_world.writeUTF("Hello World!");
// specify the message options...
MQPutMessageOptions pmo = new MQPutMessageOptions(); // accept the defaults,
// same as
// MQPMO_DEFAULT
// constant
// put the message on the queue
system_default_local_queue.put(hello_world,pmo);
// get the message back again...
// First define WebSphere MQ message buffer to receive the message into..
MQMessage retrievedMessage = new MQMessage();
retrievedMessage.messageId = hello_world.messageId;
// Set the get message options..
MQGetMessageOptions gmo = new MQGetMessageOptions(); // accept the defaults
// same as
// MQGMO_DEFAULT
// get the message off the queue..
system_default_local_queue.get(retrievedMessage, gmo);
// And prove we have the message by displaying the UTF message text
String msgText = retrievedMessage.readUTF();
System.out.println("The message is: " + msgText);
// Close the queue
system_default_local_queue.close();
// Disconnect from the queue manager
qMgr.disconnect();
}
// If an error has occurred in the above, try to identify what went wrong.
// Was it WebSphere MQ error?
< 1. WebSphere MQ classes for Java >} applet (2/3)
>}zk
62 WebSphere MQ 9C Java
>}&CLrzk
TBzkN]>;vr%D&CLr,|9Cs(==:
1. ,S=SP\mw
2. +{"Ek SYSTEM.DEFAULT.LOCAL.QUEUE
3. YN!5XD{"
catch (MQException ex)
{
System.out.println("WebSphere MQ error occurred : Completion code " +
ex.completionCode +
" Reason code " + ex.reasonCode);
}
// Was it a Java buffer space error?
catch (java.io.IOException ex)
{
System.out.println("An error occurred whilst writing to the
message buffer: " + ex);
}
} // end of start
} // end of sample

⑦ 跪求:IBM WebSphere的MQ開發包(.jar)下載地址

如果你安裝了MQ,就在IBM\WebSphere MQ\Java\lib目錄下的3個jar文件:
com.ibm.mq.jar
com.ibm.mqbind.jar
com.ibm.mqjms.jar

MQ在IBM的網站上有試用版本下載

⑧ 第三方中間件MQ、websphere、webSphere的作用和應用場景

MQ處理消息的,在分布環境下擴展進程間的通信,並支持多通訊協議、語言、應用程序、硬體和軟體平台。如果消息隊列較多可以用這個

WebLogic是用於開發、集成、部署和管理大型分布式Web應用、網路應用和資料庫應用的Java應用伺服器,基於J2EE,一般用在電子商務系統。
WebSphere 是一個模塊化的平台,可以在許多平台上運行,包括 Intel、Linux 和 z/OS。它可以創建高效的電子商務站點提高了網上交易的質量和數量。 把應用擴展到聯合的移動設備上使銷售人員可以為客戶提供更方便、更快捷的服務。 整合已有的應用並提供自動簡捷的業務流程。

⑨ Spring Boot 與 IBM WebSphere MQ集成配置

[TOC]

Spring Boot作為簡化Spring開發的框架,已經為我們集成了ActiveMQ和RabbitMQ。只需在Spring Boot配置幾個MQ的連接方式即可開箱即用。大大簡化了開發配置過程。
Spring的JavaConfig相比傳統的XML的配置方式使得配置更加的可靠和方便。
本文將會說明如何用JavaConfig的方式將Spring與IBM WebSphere MQ(以下簡稱IBM MQ)集成配置,也可以作為其他MQ的配置參考。

17年後官方maven倉庫以有相關依賴

IBM MQ相關的連接依賴包為 com.ibm.mq.allclient.jar ,該包不存在於公共Maven倉庫,所以我們需要找到該依賴包並手動安裝到我們本機的Maven倉庫中。
該依賴包位於 [IBM MQ 安裝路徑]javalib 下,Windows下的默認安裝路徑為 C:Program FilesIBMWebSphere MQ ,Linux下的默認安裝路徑為 /opt/mqm/ 。可以將該包復制到開發機上。
通過以下命令安裝該包到本地倉庫

在Idea中可以按四次Shift鍵調出全局搜索框,鍵入Execute Maven Goal,等待搜索結果後按回車,即可執行Maven命令, 在此執行命令時不需要鍵入命令開頭的 mvn

編輯項目pom.xml文件,添加以下三個依賴,分別為

配置Spring Boot配置文件,application.yml,此處用的是yaml格式配置文件,application.properties的配置方法可以參考Spring Boot的說明。

建立 JmsConfig 類,添加註解 @Configuration ,並將以上屬性注入到此類。

在JmsConfig類添加以下方法。

不配置該類則每次與MQ交互都需要重新創建連接,大幅降低速度。

不使用事務可以跳過該步驟。如需使用事務,可添加註解 @EnableTransactionManagement 到程序入口類中,事務的具體用法可參考Spring Trasaction。

JmsOperations為JmsTemplate的實現介面。

重要:不設置setReceiveTimeout時,當隊列為空,從隊列中取出消息的方法將會一直掛起直到隊列內有消息

可直接使用jmsOperations的convertAndSend(String, Object)方法,第一個參數為隊列名稱,第二個參數為需發送的對象。

重要:發送的對象需實現序列化介面

可直接使用jmsOperations的receiveAndConvert(String)方法,第一個參數為隊列名稱。

如需使用事務,只需在方法添加註解 @Transactional(value = "jmsTransactionManager") 即可。

有問題請留言

閱讀全文

與webspheremqjava相關的資料

熱點內容
加密晶元的計算方法 瀏覽:187
手機存儲為什麼找不到微信文件夾 瀏覽:695
msf埠遷移命令 瀏覽:880
工商app積分怎麼查詢 瀏覽:143
鐵路app怎麼買火車票 瀏覽:309
移魅族除的app怎麼添加 瀏覽:240
兔籠子大號加密 瀏覽:171
單片機程序燒錄操作成功 瀏覽:878
指標高拋低吸點位源碼 瀏覽:205
25匹壓縮機銅管 瀏覽:570
單片機單燈左移05 瀏覽:150
買伺服器練手什麼配置 瀏覽:783
伺服器被毀該怎麼辦 瀏覽:939
python私有庫 瀏覽:514
Python有中文嗎 瀏覽:736
麥塊的伺服器為什麼都進不去 瀏覽:474
新買的伺服器如何打開 瀏覽:35
安卓軟體游戲怎麼開發 瀏覽:319
用撲克擺愛心解壓神器怎麼擺 瀏覽:70
松下製冷壓縮機 瀏覽:275