Мы использовали оболочку Java-службы Tanuki для запуска ActiveMQ ранее. После перехода на 64-разрядный сервер под управлением Windows Server 2008 R2 мы не сможем установить ActiveMQ в качестве службы, если не заплатим за стандартную или профессиональную версию оболочки службы Java.
Я читал, что другие использовали Apache Commons Daemon в качестве оболочки службы для ActiveMQ на 64-битных архитектурах http://blog.bigrocksoftware.com/2010/10/07/commons-daemon-procrun-as-a-java-service-wrapper-for-activemq/. Инструкции на этом сайте позволили мне успешно установить ActiveMQ в качестве службы на нашем сервере, но мы получили ошибки в журнале событий при запуске службы. Я прокомментировал этот пост внизу страницы
Мне удалось установить ActiveMQ в качестве службы, используя инструкции в этой статье, однако, когда я запускаю его через панель управления службами, я получаю
Windows не может запустить ActiveMQ на локальном компьютере. Для получения дополнительной информации просмотрите журнал системных событий.
Когда я проверяю журнал событий, я вижу
Служба ActiveMQ прервана с ошибкой, специфичной для службы. Операция успешно завершена.
Я думаю, что это может быть связано с моей архитектурой. Я использую Windows Server 2008 R2, мои процессоры - 64-битный Intel Xeon. Я не видел эту архитектуру, включенную в пакет commons-daemon. Когда я установил, я использовал общий файл 'prunsrv.exe' вместо amd64 / prunsrv.exe или ia64 / prunsrv.exe - я получал ошибки, когда пытался использовать эти exe-файлы во время установки, и мог только установить с помощью универсального prunsrv.exe.
Есть ли способ заставить это работать с моей архитектурой? или я что-то пропустил?
Мне было интересно, есть ли у кого-нибудь какие-либо предложения для меня в этом списке? Возможно, я что-то пропустил при установке через procrun или другую служебную оболочку, которая работает на 64-битной Windows. Любые комментарии приветствуются.
Спасибо.
Редактировать 011312:
Спасибо за ваш ответ. В журналах activemq-daemon перечислены эти ошибки
[2012-01-11 09:45:43] [error] %1 is not a valid Win32 application.
[2012-01-11 09:45:43] [error] ServiceStart returned 1
[2012-01-11 09:45:43] [error] %1 is not a valid Win32 application.
[2012-01-11 09:45:43] [info] Run service finished.
[2012-01-11 09:45:43] [info] Commons Daemon procrun finished
[2012-01-11 09:46:05] [info] Commons Daemon procrun (1.0.8.0 32-bit) started
[2012-01-11 09:46:05] [info] Running 'ActiveMQ' Service...
[2012-01-11 09:46:05] [info] Starting service...
[2012-01-11 09:46:05] [error] %1 is not a valid Win32 application.
[2012-01-11 09:46:05] [error] Failed creating java C:\Program Files\Java\jdk1.6.0_29\jre\bin\server\jvm.dll
Я понимаю, что эти ошибки означают, что, возможно, одна из опций, с которой я установил activemq через procrun как службу, неверна - я проверил, существует ли jvm.dll в этом месте в моей файловой системе. Я установил procrun с этими параметрами, используя параметры, перечисленные в сообщении в блоге в качестве модели
ActiveMQ.exe // IS // ActiveMQ --DisplayName = "ActiveMQ" --Description = "Сервер обмена сообщениями Java ActiveMQ" --Startup = auto --LogPath = D: \ apache-activemq-5.5.0-bin \ apache-activemq-5.5.0-bin \ apache-activemq-5.5.0 \ data --LogLevel = INFO --LogPrefix = activemq-daemon --StdOutput = auto --StdError = auto --StartPath = D: \ apache -activemq-5.5.0-bin \ apache-activemq-5.5.0-bin \ apache-activemq-5.5.0 --StartClass = org.apache.activemq.console.Main --StartMethod = main --StartParams = start - -StartMode = jvm --StopPath = D: \ apache-activemq-5.5.0-bin \ apache-activemq-5.5.0-bin \ apache-activemq-5.5.0 --StopClass = org.apache.activemq.console. Main --StopMethod = main --StopParams = завершение --StopMode = jvm --Jvm = C: \ Program Files \ Java \ jdk1.6.0_29 \ jre \ bin \ server \ jvm.dll --Classpath = D: \ apache -activemq-5.5.0-bin \ apache-activemq-5.5.0-bin \ apache-activemq-5.5.0 \ bin \ run.jar --JvmOptions = -Xmx512M ++ JvmOptions = -Dorg.apache.activemq.UseDedicatedTaskRunner = true ++ JvmOptions = -Djava.util.logging.config.file = logging.properties ++ Jvm Параметры = -Dactivemq.home = D: \ apache-activemq-5.5.0-bin \ apache-activemq-5.5.0-bin \ apache-activemq-5.5.0 ++ JvmOptions = -Dactivemq.base = C: \ Java \ apache-activemq-5.4.1 ++ JvmOptions = -Dactivemq.classpath = D: \ apache-activemq-5.5.0-bin \ apache-activemq-5.5.0-bin \ apache-activemq-5.5.0 \ conf + + JvmOptions = -Dcom.sun.management.jmxremote.port = 9004 ++ JvmOptions = -Dcom.sun.management.jmxremote.authenticate = false ++ JvmOptions = -Dcom.sun.management.jmxremote.ssl = false