1
Я пытаюсь получить доступ к статистике ActiveMQ INT C# принимая этот пример:доступ к ActiveMQ статистики плагин в C# .NET
http://activemq.apache.org/statisticsplugin.html
Y перепробовал много способов, но мой получил MapMessage является недействительным или бросить исключение, как " не может конвертировать AMQMessage в MapMessage»
это мой класс:
public class Statistics
{
private readonly IConnectionFactory connectionFactory;
private readonly IConnection connection;
private readonly ISession session;
public Statistics(string brokerUri)
{
this.connectionFactory = new ConnectionFactory(brokerUri);
this.connection = connectionFactory.CreateConnection();
this.connection.Start();
this.session = connection.CreateSession();
}
public void GetStats()
{
// Crear consumidor
try
{
// Creo una cola y consumidor
IDestination queueReplyTo = session.CreateTemporaryQueue();
IMessageConsumer consumer = session.CreateConsumer(queueReplyTo);
// Crear cola y productor
ActiveMQQueue newQueue = new ActiveMQQueue("ActiveMQ.Statistics.Destination.TEST1");
IMessageProducer producer = session.CreateProducer(null);
// Crear cola monitorizada
string listeningQueue = "TEST1";
ActiveMQQueue query = new ActiveMQQueue(listeningQueue);
// Mandar mensaje vacío y replicar
IMessage msg = session.CreateMessage();
producer.Send(newQueue, msg);
msg.NMSReplyTo = queueReplyTo;
producer.Send(query, msg);
// Recibir
IMapMessage reply = (IMapMessage)consumer.ReceiveNoWait();
if (reply != null)
{
IPrimitiveMap statsMap = reply.Body;
foreach (string statKey in statsMap.Keys)
{
Console.WriteLine("{0} = {1}", statKey, statsMap[statKey]);
}
}
}
catch (Exception e)
{
var t = e.Message + " " + e.StackTrace;
}
}
}
Где моя erroris моя ошибка? Заранее спасибо
Я думаю, что сообщения в «queueReplyTo» автоматически отосланы, когда сообщение отослано к другим объявило очередь. Я не знаю, как работает «статистика», и я не нахожу информацию о том, как ее использовать в .NET. – Sem
. Мне кажется, вам нужно внимательно прочитать http://activemq.apache.org/statisticsplugin.html, чтобы понять концепцию. Я обновил свой ответ с помощью кода C# –
«CreateQueue» не находится в ISession API – Sem