簡體   English   中英

對於使用 JMeter 的 IBM MQ 測試,需要將 JMS_IBM_LAST_MSG_IN_GROUP 屬性設置為 true

[英]Need to set JMS_IBM_LAST_MSG_IN_GROUP property to true for IBM MQ testing using JMeter

我正在使用 JMeter 測試 IBM MQ,並且能夠與隊列建立連接以通過它發送請求。 但是,我需要將其中一條消息的“JMS_IBM_LAST_MSG_IN_GROUP”屬性設置為 true,但無法這樣做。 我在發送請求或嘗試將屬性設置為 true 時使用下面的一段代碼,但在我檢查后端時它仍然設置為默認值,即 false。 任何線索我在這里失蹤。

注意:正在另一個采樣器中建立連接並在此處使用該連接。 此代碼可以正常發送任何請求,只是該屬性未設置為 true。

import java.time.Instant
import com.ibm.msg.client.jms.JmsConstants

def sess = System.getProperties().get("Session") 
def destination = System.getProperties().get("Destination")
def producer = sess.createProducer(destination)
def rnd = new Random(System.currentTimeMillis())
def payload = String.format('${groupid}|${sequencenumber}|rest of the payload|')

def msg = sess.createTextMessage(payload) 
println('Payload --> ' + payload)
msg.setBooleanProperty(JmsConstants.JMS_IBM_LAST_MSG_IN_GROUP,true)

def start = Instant.now()
producer.send(msg)
def stop = Instant.now()
producer.close()
SampleResult.setResponseData(msg.toString())
SampleResult.setDataType( org.apache.jmeter.samplers.SampleResult.TEXT) 
SampleResult.setLatency( stop.toEpochMilli() - start.toEpochMilli())

您的代碼不包含任何用於設置組 ID 或序列號的內容。 我假設我們已經顯示了所有相關代碼,在這種情況下,我認為您缺少以下代碼:

msg.setStringProperty("JMSXGroupID", groupid);
msg.setIntProperty("JMSXGroupSeq", sequencenumber);

根據 IBMMQ 文檔的JMS_IBM_LAST_MSG_IN_GROUP章節

此屬性在發布/訂閱域中被忽略,並且在應用程序連接到服務集成總線時不相關。

一般來說,沒有必要使用這個屬性,你可以想出你自己的自定義屬性,即生產者:

msg.setBooleanProperty("X_CUSTOM_PROPERTY_LAST_MESSAGE",true)

對於消費者:

msg.getBooleanProperty("X_CUSTOM_PROPERTY_LAST_MESSAGE")

更多信息: 使用 JMeter 進行 IBM MQ 測試 - 了解方法

分享,因為它可能會幫助別人。 能夠通過進行以下更改將屬性設置為 true,其余代碼與原始問題中提到的相同

import com.ibm.msg.client.wmq.WMQConstants

def gid=String.format('${groupid}')
def msg = sess.createTextMessage()
println('Payload --> ' + payload)
msg.setStringProperty(WMQConstants.JMSX_GROUPID,gid)
msg.setBooleanProperty(WMQConstants.JMS_IBM_LAST_MSG_IN_GROUP,true)
msg.text=payload

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM