将 CORBA orbd-name Service 安装为 Windows Service



我使用 Java SE 平台的 Java IDL 组件开发了 CORBA 服务器/客户端。

我想在Windows平台上将此应用程序作为服务启动,因此我使用了Java服务包装器,并将应用程序安装为服务。

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

我尝试使用窗口中的命令将此 exe 安装sc create服务。

但是当我使用sc start启动此 ORB 服务时

它挂起并抛出以下错误:

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

这个窗口服务有什么问题?

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

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

如果您的需求是基本的,Microsoft的免费SRVANY实用程序将足够,但也有几个更强大的商业替代方案可用。

你实际上也可以用包装器运行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%libtools.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

(您需要重新安装应用程序才能设置依赖项)

希望这对您有所帮助。

干杯

最新更新