public QueueMessage Dequque() { QueueMessage queueMessage = null; MQQueue destination = null; try { destination = _mqClient.GetResilientQueue(queueMessage?.QueueName, MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_FAIL_IF_QUIESCING); MQMessage receivedMsg = new MQMessage(); destination.Get(receivedMsg, _messageGetOptions); queueMessage = ToQueueMessage(receivedMsg); } catch (MQException ex) { if (ex.ReasonCode == MQC.MQRC_NO_MSG_AVAILABLE) { ReportQueueEmpty(ex); } else { _logger.LogError(ex, $"Error getting message from IBM MQ {ex.ToString()} {ex.GetErrorCodeDescription()}"); throw; } } catch (Exception ex) { _logger.LogError(ex, $"Error getting message from IBM MQ {ex.ToString()} "); } finally { destination?.Close(); ((IDisposable)destination)?.Dispose(); } return(queueMessage); }
public void Enqueue(QueueMessage queueMessage) { var _messagePutOptions = new MQPutMessageOptions(); MQQueue destination = null; MQMessage mqMessage = CreateMQMessage(queueMessage); try { destination = _mqClient.GetResilientQueue(queueMessage.QueueName, MQC.MQOO_OUTPUT | MQC.MQOO_FAIL_IF_QUIESCING); destination.Put(mqMessage, _messagePutOptions); mqMessage = null; } catch (MQException ex) { _logger.LogError(ex, $"Exception occurred while trying to PUT message on IBM MQ: {queueMessage} {ex.Message}"); throw; } finally { destination?.Close(); ((IDisposable)destination)?.Dispose(); } }