【问题标题】:I/O error occurred when getting message queue from Websphere MQ从 Websphere MQ 获取消息队列时发生 I/O 错误
【发布时间】:2013-12-13 07:25:41
【问题描述】:

我目前正面临一个问题,其中我收到错误 I/O 错误。而且我不知道如何确定错误发生的位置。这发生在我从队列中获取消息队列时。下面是错误的堆栈跟踪。

StackTrace:    at AlertTrigger.Data.ServiceAgents.WebSphereAgent.GetMessageQueue(String queueManagerName, String queueName)
   at AlertTrigger.Business.AlertTriggerComponent.QueueListener()

下面是 GetMessageQueue 的代码:

public string GetMessageQueue(string queueManagerName, string queueName)
{
    MQQueueManager mqQueueManager;
    MQQueue storeQueue;
    string result = string.Empty;

    try
    {
        MQMessage mqMessage = new MQMessage();
        MQGetMessageOptions mqGetMessageOption = new MQGetMessageOptions();

        mqGetMessageOption.Options = MQC.MQGMO_WAIT;
        mqGetMessageOption.WaitInterval = 15000;

        mqQueueManager = new MQQueueManager(queueManagerName);

        storeQueue = mqQueueManager.AccessQueue(queueName, MQC.MQOO_INPUT_AS_Q_DEF + MQC.MQOO_FAIL_IF_QUIESCING);

        storeQueue.Get(mqMessage, mqGetMessageOption);

        result = mqMessage.ReadString(mqMessage.DataLength);

    }
    catch (MQException MQEx)
    {
        // Close request Queue if still opened
        if (storeQueue != null && storeQueue.OpenStatus)
            storeQueue.Close();
        // Close Queue manager if still opened
        if (mqQueueManager != null && mqQueueManager.OpenStatus)
            mqQueueManager.Close();

        throw new MQAdapterException(MQEx.Reason.ToString());
        //throw new MQAdapterException("Error Code: " + MQAdapterErrorReasons.GetMQFailureReasonErrorCode(MQEx.Reason));
    }
    catch (Exception ex)
    {
        throw new Exception(ex.Message);
    }
    finally
    {
        // Close request Queue if still opened
        if (storeQueue != null && storeQueue.OpenStatus)
            storeQueue.Close();
        // Close Queue manager if still opened
        if (mqQueueManager != null && mqQueueManager.OpenStatus)
            mqQueueManager.Close();
    }

    return result;
}

我希望您能在这方面帮助我,因为我是 WebSphere MQ 的新手。

【问题讨论】:

    标签: ibm-mq ioerror


    【解决方案1】:

    这是 Java 还是 C# 应用程序?如果是Java,你应该这样做:

    result = mqMessage.ReadString(mqMessage.getMessageLength());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-17
      • 2013-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多