2012-04-20 77 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如果您的需求是基本的,但也可以使用更強大的商業替代方案,那麼這些方案就足夠了。