我試圖從Websphere MQ隊列讀取100 MB文件。文件應該包含約。 800.000條記錄。但是在一定的行數(通常在90.000左右)後,我只得到空的(或者可能是&#65533,這取決於我如何查看文件)。Websphere MQ,收到大量(100 MB)消息
我被告知隊列應該允許100 MB的消息。
我的代碼:
var mqQueueManager = getMqQueueManager(ConfigurationManager.AppSettings["MQ_QueueManager"]);
var mqQueue = mqQueueManager.AccessQueue(mqReceiveQueueName,
MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_FAIL_IF_QUIESCING);
MQGetMessageOptions gmo = new MQGetMessageOptions();
gmo.Options = MQC.MQGMO_NO_WAIT;
for (int i = 0; i < maxMessagesToRead; i++)
{
var mqMessage = new MQMessage();
mqQueue.Get(mqMessage, gmo);
messageTexts.Add(mqMessage.ReadString(mqMessage.MessageLength));
}
蹊蹺的代碼?或者是發送端的錯誤?
是,MQ確實允許100MB的郵件大小。隊列管理器,隊列和通道所需的配置更改。你完成了嗎? – Shashi
請檢查MAXMSGL屬性。它定義了最大的消息大小。此屬性存在於隊列,隊列管理器和通道級別,如@Shashi所示 – siarheib
MQ設置顯示正確。是mqQueue.Get(mqMessage,gmo)是否正確或應該使用mqQueue.Get(mqMessage,gmo,maxMsgSize)重載?是mqMessage.ReadString(mqMessage.MessageLength)是否正確,或者我應該使用例如mqMessage.ReadFully(...)?還有什麼值得嘗試的? – Poppert