您的位置:网站首页 > Proe教程

在指定的MethodServer上运行Service的方法

时间:2011-02-24 09:39:31 来源:

  本文介绍了在指定的MethodServer上运行Service的相关方法。

  当你自己编写一个Service后,在wt.properties中进行注册,如:

  wt.services.service.xx=...

  注册后,重新启动Windchill MethodServer时,所有已经配置的MethodServer都会启动该Service。如你的系统中配置了标准的MethodServer和BackgroundMethodServer,这2个MethodServer都将启动新的Service,这将导致Serivice中的处理会重复执行。

  为了避免这种情况的发生,我们需要让Service在指定的MethodServer上运行。

  1)在StartdardXXXService.java程序中,从wt.properties中读取一个变量(如ext.xxx.service)的值,然后根据该值决定是否启动Service。如果wt.properties中没有定义,缺省为false。

  2)在wt.properties中,更改wt.manager.cmd.ServerManager的值设置,在其末尾添加ext.xxx.service=true。这样,Service就只在该MethodServer中启动。

  以上设置只能让其它的MethodServer不运行你注册的Service(如ILGatewayService)。

  但由于wt.manager.cmd.BackgroundMethodServer调用的是wt.manager.cmd.ServerManager的命令,所以还需要在wt.manager.cmd.BackgroundMethodServer的值末尾添加ext.xxx.service=false,以保证你注册的Service只在MethodServer中运行。

  对于监听生命周期状态变化的Service,必须使其在前台的MethodServer和后台的MethodServer同时运行,否则,将导致一些事件无法监测到。

  对于手工在Windchill浏览器中对对象直接设置生命周期状态,系统将在MethodServer中监听到。

  如:星期二 12/30/03 15:19:43: RMI TCP Connection(6)-10.60.52.27: Found event target: ext.QY.QYDoc.QYDocument:2132955

  而对于通过流程改变生命周期状态,却在Background MethodServer中才能监听到。

  如:星期二 12/30/03 15:20:57: WfUserWorkQueuePollingThread: Found event target: ext.QY.QYProject.QYProject:2172404