public void CloseWMQConnections() { try { if (Queue != null) { Queue.Close(); } } finally { Queue = null; } try { if (QueueManager != null) { QueueManager.Disconnect(); QueueManager.Close(); } } finally { QueueManager = null; } }
public void PutMessage(string destination, MQMessage message, MQPutMessageOptions putOptions) { Transaction currentTx = Transaction.Current; if (currentTx != null) { putOptions.Options |= MQC.MQPMO_SYNCPOINT; currentTx.EnlistVolatile(this, EnlistmentOptions.None); } try { QueueManager.Put(destination, message, putOptions); } catch (MQException mqe) { if (mqe.ReasonCode == MQC.MQRC_CONNECTION_BROKEN) { // for some reason, the Close method on the Queue fails after // a connection has been broken. Queue = null; QueueManager.Close(); QueueManager = null; } throw; } }