プロジェクトでApache derbyを使用しています。毎回、derby のサーバーを手動で起動する必要があります。つまり、 startnetworkserver.bat を実行します。Windows Web サービスとしてインストールすることは可能ですか? また、Windowsのスタートアップリストにサービスを追加したいと思います。システムを起動するたびに自動的に起動するように、サーバーを手動で起動する必要はありません。Windows サービスとして apache tomcat を使用しています。ダービーもやりたい。
5 に答える
Apache Procrunを見てください。Java プログラムを Windows サービスとしてインストール/アンインストールできる Windows 実行可能ファイルです。
サービスのインストールは次のようになります (プロジェクト サイトから)。
prunsrv //IS//TestService --DisplayName="Test Service" \
--Install=prunsrv.exe --Jvm=auto --StartMode=jvm --StopMode=jvm \
--StartClass=org.apache.SomeStartClass --StartParams=arg1;arg2;arg3 \
--StopClass=org.apache.SomeStopClass --StopParams=arg1#arg2
その後、次を使用してサービスを開始/停止します。
net start TestService
net stop TestService
またはマイ コンピュータのサービス ビューを使用します。
ああ、そしてそれは無料です!;-)
私は同じ問題を抱えていて、Derby wiki ( http://wiki.apache.org/db-derby/DerbyWindowsService )に示されているすべての方法の中で、Derby を Windows サービスとして取得するためにさまざまなツールとラッパーを試してみました。 .
とにかく、TomcatでこのサーバーをWindowsサーバーとして取得するために使用される、Appache Foundationが提供するprocrunツールを除いて、これらのツールはどれも機能しませんでした。したがって、次の手順に従います。
- procrun の 2 つの主要なファイルを取得します ( http://commons.apache.org/proper/commons-daemon/binaries.html )。
- prunsrv.exe - アプリケーションをサービスとして実行するためのサービス アプリケーション。
- prunmgr.exe - インストールされたサービスの監視と構成に使用される GUI マネージャー アプリケーション。
- これらのファイルを Derby/bin にコピーします (DERBY_HOME に Derby という名前のフォルダーがあると仮定します)。
- procrun 規則に従って、これらのファイルの名前を derby.exe および derbyw.exe に変更します。別の名前を使用したい場合は可能ですが、添付のスクリプトを変更する必要があります。
Windows でサービスを作成するには、次のスクリプトを実行する必要があります。Derby フォルダーの上位フォルダー (..) で実行し、Java 32 ビットのポータブル バージョンを使用して実行するように記述されています。
- 注:別の行に分割しましたが、1行で実行する必要があります
Derby\bin\derby.exe //IS//DerbyService
--DisplayName="Derby サービス"
--Description="これは Derby データベース サーバーです"
--Install="%cd%\Derby\bin\derby.exe" --Startup=auto
--JavaHome " %cd%\Java_32_portable "
--Jvm=" %cd%\Java_32_portable\bin\client\jvm.dll "
--StartMode=Java --StopMode=Java
--StartClass=org. apache.derby.drda.NetworkServerControl --StartParams=start
--StopClass=org.apache.derby.drda.NetworkServerControl --StopParams=shutdown
--Classpath="%cd%\Derby\lib\derby.jar;%cd% \Derby\lib\derbyrun.jar;%cd%\Derby\lib\derbynet.jar;%cd%\Derby\lib\derbytools.jar"
++JvmOptions="-Dderby.system.home=%cd%\Derby;-Dderby.install.url=%cd%\Derby\lib;-Dderby.authentication.provider=BUILTIN;-Dderby.storage.pageCacheSize=8000;-Dderby.storage .pageSize=20000;-Dderby.database.sqlAuthorization=false "重要。太字の部分を適応させる必要があります。
- JAVA_HOME 変数と jvm.dll を適切に設定します
- 「;」で区切られた ++JvmOptions 内に独自の Derby 固有のパラメーターを設定します。たとえば、次のようにユーザーパスワード認証を追加します:
-Dderby.database.sqlAuthorization=true;-Dderby.user."user-name"=password
最後に、サービスが正常に開始されることを確認できます
net start DerbyService
アドバイス:私が持っているように、すべてをバッチファイルにまとめて、JAVA_HOMEまたはその他の必要な変数を事前に定義できます。
Java プログラムを Windows サービスとして実行するために広く使用され、十分に文書化されているラッパーであるJavaServiceWrapperを確認してください。
Glassfishが使用しているものであるwinswを調べてください。.NET が必要です。