public IMessageProducer CreateProducer(IDestination destination)
{
MessageProducer producer = null;
try
{
ActiveMQDestination dest = null;
if(destination != null)
{
dest = ActiveMQDestination.Transform(destination);
}
producer = new MessageProducer(this, GetNextProducerId(), dest, this.RequestTimeout);
producer.ProducerTransformer = this.ProducerTransformer;
this.AddProducer(producer);
this.Connection.Oneway(producer.ProducerInfo);
}
catch(Exception)
{
if(producer != null)
{
this.RemoveProducer(producer.ProducerId);
producer.Close();
}
throw;
}
return producer;
}