我需要将作为服务运行,以便Derby与安装在其上的机器一起启动。
现在,我在我的研究中尝试了三种解决方案-based --创建这样的服务,但它们都不是可行的,也不是生成错误的。
http://localhost:1527 -- Derby服务器的默认地址。但是,如果我试图通过eclipse (露娜)或控制台连接到数据库,则会得到一个错误:
无法连接到DerbyPersistenceDeploy。创建到DerbyPersistenceDeploy的SQL连接时出错。(错误: DERBY : ERRORCODE: 40000,SQLSTATE: XJ041,SQLERRMC:未能创建数据库“持久性”,请参阅下一个异常以了解详细信息。::SQLSTATE: XBM0J) DERBY错误: ERRORCODE: 40000,SQLSTATE: XJ041,SQLERRMC:未能创建数据库‘持久性’,请参阅下一个异常以了解详细信息。::SQLSTATE: XBM0J ERRORCODE创建到DerbyPersistenceDeploy的连接连接。(错误: DERBY : ERRORCODE: 40000,SQLSTATE: XJ041,SQLERRMC:未能创建数据库“持久性”,请参阅下一个异常以了解详细信息。::SQLSTATE: XBM0J) DERBY错误: ERRORCODE: 40000,SQLSTATE: XJ041,SQLERRMC:未能创建数据库‘持久性’,详细信息请参见下一个异常::SQLSTATE: XBM0J。
以下是服务的注册表条目的图像:
Startup和Shutdown-Configurations没有按照正确的方式配置,但是我不知道它们应该是什么样子。如果有人知道方法2或3的解决方案,我将非常感激。
问候
edit1:我按照的建议编辑了我的Procrun脚本。
社论2:服务给了我一条新的错误消息:

stderr.txt
2014-07-23 16:41:14 Commons Daemon procrun stderr initializedstdout.txt
2014-07-23 16:41:14 Commons Daemon procrun stdout initialized
Wed Jul 23 16:41:14 CEST 2014 : No command given.
Usage: NetworkServerControl <commands>
Commands:
start [-h <host>] [-p <port number>] [-noSecurityManager] [-ssl <ssl mode>]
shutdown [-h <host>][-p <port number>] [-ssl <ssl mode>] [-user <username>] [-password <password>]
ping [-h <host>][-p <port number>] [-ssl <ssl mode>]
sysinfo [-h <host>][-p <port number>] [-ssl <ssl mode>]
runtimeinfo [-h <host>][-p <port number>] [-ssl <ssl mode>]
logconnections { on|off } [-h <host>][-p <port number>] [-ssl <ssl mode>]
maxthreads <max>[-h <host>][-p <port number>] [-ssl <ssl mode>]
timeslice <milliseconds>[-h <host>][-p <port number>] [-ssl <ssl mode>]
trace { on|off } [-s <session id>][-h <host>][-p <port number>] [-ssl <ssl mode>]
tracedirectory <trace directory>[-h <host>][-p <port number>] [-ssl <ssl mode>]DerbyPersistenceService.2014-07-23.log是空的。
我认为方法论证有些地方不对。
编辑3:修改了脚本,所以它是一个可行的解决方案。非常感谢布莱恩·彭德尔顿帮了我这个忙。
set SERVICE_NAME=DerbyPersistenceService
set PR_INSTALL=D:\Program-Files\commons-daemon-1.0.15-bin-windows\prunsrv.exe
REM Service log configuration
set PR_LOGPREFIX=%SERVICE_NAME%
set PR_LOGPATH=D:\04_server\derby\DerbyServiceScript\logs
set PR_STDOUTPUT=D:\04_server\derby\DerbyServiceScript\logs\stdout.txt
set PR_STDERROR=D:\04_server\derby\DerbyServiceScript\logs\stderr.txt
set PR_LOGLEVEL=Error
REM Path to java installation
set PR_JVM=C:\Program Files (x86)\Java\jdk1.7.0_65\jre\bin\client\jvm.dll
set PR_CLASSPATH=%DERBY_HOME%/lib/derby.jar;
%DERBY_HOME%/lib/derbynet.jar;
%DERBY_HOME%/lib/derbyclient.jar;
%DERBY_HOME%/lib/derbytools.jar
REM Startup configuration
set PR_STARTUP=auto
set PR_STARTMODE=jvm
set PR_STARTCLASS=org.apache.derby.drda.NetworkServerControl
set PR_STARTPARAMS=start
set PR_STARTMETHOD=main
REM Shutdown configuration
set PR_STOPMODE=jvm
set PR_STOPCLASS=org.apache.derby.drda.NetworkServerControl
set PR_STOPPARAMS=shutdown
set PR_STOPMETHOD=main
REM JVM configuration
set PR_JVMMS=256
set PR_JVMMX=1024
set PR_JVMSS=4000
set PR_JVMOPTIONS=-Duser.language=US;-Duser.region=en
REM Install service
D:\Program-Files\commons-daemon-1.0.15-bin-windows\prunsrv.exe //IS//%SERVICE_NAME% 发布于 2014-07-22 21:38:49
我认为PR_STARTMETHOD和PR_STOPMETHOD应该是'main',因为您希望调用NetworkServerControl的main()方法。
我认为“开始”和“关闭”是需要传递给main()方法的参数。
因此,他们应该分别进入STARTPARAMS和STOPPARAMS。
发布于 2014-09-05 09:25:38
我也遇到了同样的问题,尝试使用各种各样的工具和包装器将Derby作为一个windows服务,其中包括Derby (http://wiki.apache.org/db-derby/DerbyWindowsService)中描述的所有方法。
无论如何,除了Appache基金会提供的procrun工具之外,所有这些工具都不适合我。Appache foundation是在tomcat中使用的,用于将此服务器作为windows服务器。因此,请遵循接下来的步骤:
- **NOTE:** I've split it on different lines, but it has to be executed in only one lineDerby\bin\derby.exe //IS//DerbyService
-DisplayName=“Derby Service”
-Description=“这是Derby数据库服务器”
-安装=“%cd%\Derby\bin\derby.exe”-启动=自动
-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=停工
--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“
- Set your JAVA\_HOME variable and your jvm.dll appropriately
- Set your own Derby specific parameters within ++JvmOptions separated by ';'. For example, add user-pasword autentication with:-Dderby.database.sqlAuthorization=true;-Dderby.user."user-name"=password
net start DerbyService建议:,您可以像我一样将所有的toghether放在bat文件中,在这里您可以定义以前的JAVA_HOME或任何其他必要的变量。
https://stackoverflow.com/questions/24867468
复制相似问题