В настоящее время мы используем JDK 8u131 для Windows x64 и все работает нормально. Наша установка состоит из двух серверов Windows, работающих в режиме «главный/подчиненный». В идеале я хотел бы избежать каких-либо сбоев в работе службы, и обновление ActiveMQ на данный момент не представляется возможным.
Мой план состоит в том, чтобы главный сервер (amq1) оставался доступным, пока я обновляю подчиненный сервер (amq2). Как только amq2 будет обновлен и запущен, я переключу его в активный режим, а затем обновлю amq1.
Вот шаги, которые я выполнил для обновления amq2:
[*]Остановлена служба amq2.
[*]Удалены старые JRE и JDK.
[*]Установлена новая версия Java. >
[*]Перезапустил сервер.
[*]Проверено, что служба запущена и работает.
[*]Остановлен amq1, чтобы сделать amq2 активным.
< /ol>
Однако я столкнулся с проблемой: несмотря на то, что служба работает, веб-портал недоступен, а обработчик очереди истекает по времени.
Вот это мой тестовый код, который работает до и по истечении времени после шага 6. Все остальные мои проекты время истекло.
Код: Выделить всё
private static void Main(string[] args)
{
List brokerUris = new List();
if (args.Length > 0)
{
brokerUris.AddRange(args);
}
var queueName = "ActiveMQ.Testing.is.available";
// Create a connection factory
foreach (var brokerUri in brokerUris)
{
IConnectionFactory factory = new ConnectionFactory(brokerUri);
// Create a connection
using (var connection = factory.CreateConnection())
{
connection.Start();
// Create a session
using (var session = connection.CreateSession(AcknowledgementMode.AutoAcknowledge))
{
// Create a queue
IDestination destination = session.GetQueue(queueName);
// Create a producer
using (var producer = session.CreateProducer(destination))
{
// Create a message
var message = producer.CreateTextMessage("Hello, ActiveMQ!");
// Send the message
producer.Send(message);
Console.WriteLine("Message sent: " + message.Text);
}
// Create a consumer
using (var consumer = session.CreateConsumer(destination))
{
// Receive the message
var receivedMessage = consumer.Receive() as ITextMessage;
if (receivedMessage != null) Console.WriteLine("Message received: " + receivedMessage.Text);
}
}
}
}
}
Будем очень признательны за любую информацию или предложения о том, что может быть причиной этой проблемы.
Спасибо!
Подробнее здесь: https://stackoverflow.com/questions/792 ... eue-issues
Мобильная версия