in src/main/csharp/MessageProducer.cs [57:94]
private MessageQueue OpenMessageQueue(Destination dest)
{
Queue queue = dest as Queue;
MessageQueue mq = queue.MSMQMessageQueue;
if(mq == null)
{
try
{
if(!Queue.Exists(dest.Path))
{
// create the new message queue and make it transactional
mq = MessageQueue.Create(dest.Path, session.Transacted);
this.destination = new Queue(mq);
}
else
{
mq = new MessageQueue(dest.Path);
this.destination = new Queue(mq);
if(!mq.CanWrite)
{
throw new NMSSecurityException("Do not have write access to: " + dest);
}
}
}
catch(Exception e)
{
if(mq != null)
{
mq.Dispose();
}
throw new NMSException(e.Message + ": " + dest, e);
}
}
return mq;
}