user3797438
user3797438

Reputation: 485

Error in starting java application as windows services

I have downloaded commom-daemon tool and used with a java application. I have created a bat file as shown below

set SERVICE_NAME=sample
set PR_INSTALL=D:\commons-daemon-1.0.15-bin-windows-signed\prunsrv.exe
 
REM Service log configuration
set PR_LOGPREFIX=%SERVICE_NAME%
set PR_LOGPATH=D:\logs
set PR_STDOUTPUT=D:\logs\stdout.txt
set PR_STDERROR=D:\logs\stderr.txt
set PR_LOGLEVEL=Error
 
REM Path to java installation
set PR_JVM=C:\Java\jre7\bin\client\jvm.dll
set PR_CLASSPATH=D:\commons-daemon-1.0.15-bin-windows-signed\Daemon.jar
 
REM Startup configuration
set PR_STARTUP=auto
set PR_STARTMODE=jvm
set PR_STARTCLASS=com.SomeService
set PR_STARTMETHOD=start
 
REM Shutdown configuration
set PR_STOPMODE=jvm
set PR_STOPCLASS=com.SomeService
set PR_STOPMETHOD=stop
 
REM JVM configuration
set PR_JVMMS=256
set PR_JVMMX=1024
set PR_JVMSS=4000
set PR_JVMOPTIONS=-Duser.language=DE;-Duser.region=de

In cmd , I install the service using the command

prunsrv.exe //IS//sample

After this, a service named sample become available in the list of services and when I tried to start it it shows:

Windows could not start the sample on Local Computer. For more information review the System event log. If this is a non-Microsoft service, contact the service vendor and refer to the server specific

error code 1

UPDATED When I run

prunsrv.exe //ES//sample

it shows

The data area passed to a system call is too small.
Failed to start service

Can any one help me in this?

Upvotes: 1

Views: 17040

Answers (4)

etoricky
etoricky

Reputation: 691

I agreed with OscarSan that a space in %JAVA_HOME% could cause the "error code 1" problem. I solve this problem by re-installing JDK 1.8 to change the installation path from C:\Program Files Java\jdk1.8.0_144 to C:\Java\jdk1.8.0_144. Problem solved.

Upvotes: 0

hb3
hb3

Reputation: 31

To help others troubleshooting.

If you look at: https://commons.apache.org/proper/commons-daemon/procrun.html

There is a parameter:

--LogPath

which defaults to:

%SystemRoot%\System32\LogFiles\Apache

A log file is generated there which contains some additional error messages and possibly useful information. The original questioner changed the log path to:

set PR_LOGPATH=D:\logs

So looking there would be the appropriate thing to do in their case.

Upvotes: 3

Casey
Casey

Reputation: 21

I also had this cryptic error message 'The data area passed to a system call is too small.' with no further information in either the startup log or the Windows/System32/LogFiles/Apache/ logs on Win 8/Server 2008.

I had renamed my packages and the --StartClass and --StopClass parameters were wrong.

Upvotes: 0

OscarSan
OscarSan

Reputation: 463

I had the same problem. In my case (not yours exactly), the problem was the jvm.dll path, because the variable %JAVA_HOME% has spaces. So to solve this, I modify the assignment

set CG_PATH_TO_JVM=%JAVA_HOME%\jre\bin\server\jvm.dll

to

set CG_PATH_TO_JVM="%JAVA_HOME%\jre\bin\server\jvm.dll"

and that's all.

Also, you could check the variables assignment with this command:

prunmgr//ES//yourservicename_as_in_windows

Upvotes: 5

Related Questions