2012-06-03 135 views
3

我在我們的項目中使用了Apache Derby。每次我都必須手動啓動derby服務器,即運行startnetworkserver.bat。是可以安裝它作爲一個Windows Web服務?我也想在Windows啓動列表中添加該服務。因此,每次啓動系統時,系統都會自動啓動。因此,我不必手動啓動服務器。 我使用apache tomcat作爲windows服務。我想爲德比做同樣的事情。將Apache Derby作爲Windows服務運行

回答

1

檢出JavaServiceWrapper,這是一個廣泛使用的,記錄良好的包裝,使Java程序作爲Windows服務運行。

0

看看這是Glassfish使用的winsw。需要.NET。

+0

對不起,但我是一個java的傢伙。 –

+0

Glassfish是一個相當大的Java項目。 –

6

看看Apache Procrun。它是一個Windows可執行文件,允許您將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 

或使用服務從查看我的電腦。

哦,它是免費的! ;-)

2

我遇到了同樣的問題,嘗試使用各種各樣的工具和包裝來獲取Derby作爲Windows服務,其中包括Derby Wiki(http://wiki.apache.org/db-derby/DerbyWindowsService)中描述的所有方法。

無論如何,除了Appache基礎提供的procrun工具外,這些工具都不適用於我,它在tomcat中用於將此服務器作爲Windows服務器使用。所以,下面接下來的步驟:

  1. 獲取procrun的兩個關鍵文件(http://commons.apache.org/proper/commons-daemon/binaries.html):
    • prunsrv.exe - 服務應用程序用於運行應用程序的服務。
    • prunmgr.exe - 用於監視和配置已安裝服務的GUI管理器應用程序。
  2. 將這些文件複製到Derby/bin(假設您有一個名爲Derby的文件夾,它是DERBY_HOME)。
  3. 要遵循procrun約定,請將這些文件重命名爲derby.exe和derbyw.exe。如果你想使用不同的名字,但你應該修改所附的腳本。
  4. 要在windows上創建服務,您必須執行下一個腳本。它被寫入在Derby文件夾的上級文件夾(..)中執行,並且使用便攜版本的Java 32位。

    • 注:我已經在不同的行拆分它,但它在只有一條線

    德比\ BIN \德比執行。exe文件// // IS DerbyService
    --DisplayName = 「德比服務」
    --description = 「這是一個德比DATABSE服務器」
    --install = 「%CD%\德比\ BIN \ derby.exe」 --startup =自動
    --JavaHome 「%CD%\ Java_32_portable
    --Jvm = 「%CD%\ Java_32_portable \ BIN \客戶\ jvm.dll的
    --StartMode =爪哇 - -StopMode = Java
    --StartClass = org.apache.derby.drda.NetworkServerControl --StartParams = start
    --StopClass = org.apache.derby.drda.NetworkSe rverControl --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 =假

  5. 重要。你應該調整粗體部分。

    • 設置你的JAVA_HOME變量和您的jvm.dll適當
    • 相隔++ JvmOptions內設定自己德比特定參數「;」。例如,添加用戶pasword autentication有:
      -Dderby.database.sqlAuthorization = TRUE; -Dderby.user「用戶名」 =密碼
  6. 最後,你可以檢查你的服務,以及啓動

    net start DerbyService

建議:你可以把所有toghether在我有一個bat文件,您可以在其中定義以前的JAVA_HOME或任何其他必要的變量。

0

這是因爲原來的問題很長一段時間,反正我想確認我正確設置一個德比服務在我的Windows中使用我的腳本完成了稍有不同的是遵循@Richard P.提供的說明64位:

set JAVA_HOME=C:\java\jdk1.8.0_25 
set DERBY_INSTALL=C:\tools\db-derby-10.13.1.1-bin 

%DERBY_INSTALL%\bin\derby.exe //IS//DerbyService --DisplayName="My Derby Service" --Description="My Derby Database Engine Service" --Install="%DERBY_INSTALL%\bin\derby.exe" --Startup=auto --JavaHome "%JAVA_HOME%" --Jvm="%JAVA_HOME%\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="%DERBY_INSTALL%\lib\derby.jar;%DERBY_INSTALL%\lib\derbyrun.jar;%DERBY_INSTALL%\lib\derbynet.jar;%DERBY_INSTALL%\lib\derbytools.jar" ++JvmOptions="-Dderby.system.home=%DERBY_INSTALL%;-Dderby.install.url=%DERBY_INSTALL%\lib;-Dderby.authentication.provider=BUILTIN;-Dderby.storage.pageCacheSize=8000;-Dderby.storage.pageSize=20000;-Dderby.database.sqlAuthorization=false" 
相關問題