2012-04-20 79 views
2

我使用Java SE平台的Java IDL组件开发了CORBA服务器/客户端。将CORBA orbd-Name服务安装为Windows服务

我想在Windows平台上启动此应用程序作为服务,所以我使用了Java Service wrapper,并将应用程序安装为服务。

但在启动服务器之前,我需要启动orbd.exe - 来自Oracle的CORBA命名服务。

我试图使用sc create命令从Windows安装此exe作为服务。

但是当我开始使用sc start

它会挂起并引发以下错误此ORB服务:

[SC] StartService FAILED 1053: 
The service did not respond to the start or control request in a timely fashion. 

哪些错误与此窗口服务?

如何作为Windows服务启动CORBA命名服务?

回答

1

你实际上也可以用Wrapper运行orbd。

基本上你需要在你的orbd.conf文件中的以下属性:

wrapper.java.command=%JAVA_HOME%/bin/java 

wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp 
wrapper.app.parameter.1=com.sun.corba.se.impl.activation.ORBD 

wrapper.java.additional.1=-Dapplication.home="%JAVA_HOME%" 
wrapper.java.additional.2=-Dcom.sun.CORBA.activation.DbDir="%JAVA_HOME%"/orb.db 
wrapper.java.additional.3=-Dcom.sun.CORBA.activation.Port=1049 
wrapper.java.additional.4=-Dcom.sun.CORBA.POA.ORBServerId=1 

wrapper.java.classpath.1=%JAVA_HOME%\lib\tools.jar 
wrapper.java.classpath.2=%JAVA_HOME%\classes 
wrapper.java.classpath.3=../lib/wrapper.jar 

wrapper.java.library.path.1=../lib 
wrapper.java.library.path.2=%JAVA_HOME%/bin 

wrapper.name=orbd 
wrapper.displayname=CORBA Naming Service 

一旦这个已经安装的服务,您可以为您的应用程序设置该服务的依赖,以确保ORBD越来越当你运行你的应用程序时开始。

wrapper.ntservice.dependency.1=orbd 

(您需要重新安装,以设置的依赖应用程序)

希望这有助于你出去。

欢呼声源

+0

解决方案... – ajduke 2012-04-25 10:26:09

+0

一个问题,如果我想的副作用,同时启动/停止服务,如删除任何目录,我怎样才能实现? (实际上我想删除orb.db目录) – ajduke 2012-04-30 08:47:34

3

您会收到错误1053,因为orbd.exe不是本机Windows服务,并且无法正确响应启动自身的请求。您将需要一个“服务包装器”应用程序,它可以接受Windows服务命令(启动,停止)并对可执行文件执行相应的操作(启动,终止)。

Microsoft's free SRVANY utility如果您的需求是基本的,但也可以使用更强大的商业替代方案,那么这些方案就足够了。