以前は Tanuki Java サービス ラッパーを使用して ActiveMQ を実行していました。Windows Server 2008 R2 を実行する 64 ビット サーバーに移行した後、Java サービス ラッパーの Standard または Professional バージョンの料金を支払わない限り、ActiveMQ をサービスとしてインストールできません。
他の人が 64 ビット アーキテクチャの ActiveMQ のサービス ラッパーとして Apache Commons Daemon を使用していたことを読みましたhttp://blog.bigrocksoftware.com/2010/10/07/commons-daemon-procrun-as-a-Java-service-ラッパー-for-activemq/ . このサイトの手順に従って、ActiveMQ をサービスとしてサーバーに正常にインストールできましたが、サービスの開始時にイベント ログにエラーが記録されました。この記事の一番下にコメントしました
この記事の手順に従って ActiveMQ をサービスとしてインストールできましたが、サービス コントロール パネルから ActiveMQ を起動すると、ローカル コンピューターで Windows が ActiveMQ を起動できませんでした。詳細については、システム イベント ログを確認してください。イベント ログを確認すると、ActiveMQ サービスがサービス固有のエラーで終了しました。操作が正常に完了しました。これは私のアーキテクチャに関連している可能性があります。Windows Server 2008 R2 を実行しています。プロセッサは 64 ビット Intel Xeon です。commons-daemon パッケージにそのアーキテクチャが含まれていることはわかりませんでした。インストール時に、amd64/prunsrv.exe または ia64/prunsrv.exe の代わりに汎用の「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
これらのエラーは、procrun を介してサービスとして activemq をインストールしたオプションの 1 つが間違っている可能性があることを意味すると解釈します。ファイル システムのその場所に jvm.dll が存在することを確認しました。ブログ投稿にリストされているオプションをモデルとして使用して、これらのオプションでprocrunをインストールしました
ActiveMQ.exe //IS//ActiveMQ --DisplayName=" ActiveMQ" --Description=" ActiveMQ Java Messaging Server" --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=shutdown --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++JvmOptions=-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=false0 ++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=false0 ++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