2017-08-10 74 views
0

我们正在使用Jenkins自动生成和构建IBM Rhapsody模型。我们也在使用clearcase。当开发人员交付给特定的流时,自动化的Jenkins作业会更新构建服务器上的专用快照视图,然后作业启动Rhapsody并打开与该流关联的项目。然后作业获取它已经启动的rhapsody的进程ID,然后启动我们的生成/构建工具,该工具使用使用进程ID构建的连接字符串连接到rhapsody实例。 Rhapsody是一个COM服务器,它有一个很好的API可用于开发自动化工具,我们使用它。多个IBM Rhapsody进程在Jenkins中不起作用作为Windows服务运行

有多个clearcase ucm项目。因此,为了加速构建,当人们交付工作时,只要交付到不同的流,我们开始一个Rhapsody流程并执行构建。所以,有时我们需要并行生成和构建不同的项目。

问题是:当我们在Windows命令行执行作业时,它的作用就像一个魅力。当詹金斯从命令行启动时,它也可以在詹金斯工作。我们可以同时为多个项目执行代码生成。但是,当我们将jenkins作为Windows服务器运行时,首先启动的作业可以启动rhapsody,而另一个工具可以连接到启动的rhapsody,但是当该作业正在运行时,如果另一个作业启动,rhspsody进程将启动,但立即退出并另一个工具因为退出而无法连接到rhspsody。

我们首先设置OMROOT环境变量,然后使用参数启动狂想曲:-hiddenui -noanimaition -cmd =开放

詹金斯作为服务运行,使用用户帐户从域,这是administratior上机器,正如我所提到的,这个用户可以执行尽可能多的并行作业,我们希望从命令行直接从命令行启动的詹金斯(不作为服务运行)

经过几天的尝试,我们找不到原因......有什么建议?

回答

0

如果我没有记错的话,Rhapsody对每个实例使用一个许可证,也用于在命令行中启动的实例。 如果您启动第二个实例,可能会导致错误。

如果从Windows命令行启动两个代码生成实例,会发生什么?

+0

只有当我们将jenkins作为服务运行时,才会出现问题。当我们不把它作为服务运行时,一切都很好。所以,我认为问题不在于执照。当我们从Windows命令行启动多个rhapsody进程时也是可以的 –

+0

您是否看到任何Windows事件日志? –

+0

我不记得我们是否检查过事件日志。我将尝试重现错误并检查事件日志。谢谢 –

0

当我们在包括ClearCase在内的Jenkins构建服务器中使用Rhapsody时,我们遇到了类似的问题。

更简单的是,ClearCase仅支持路径名中的255个字符。因此,包括Jenkins的文件系统结构和ClearCase的VOB名称,一些Rhapsody包的整个路径很长,并且作业停止。花了一些时间来弄清楚。

第二个问题是在Windows服务中运行Rhapsody。您不得在服务中打开任何窗口。所以现在开始Rhapsody就是了。相反,您需要使用RhapsodyCli(命令行界面)命令来实现此目的。 Rhapsody的安装中有一个PDF文件解释了这一点。 有时我们遇到了RhapsodyCli流程没有停止的问题。所以随着时间的推移,我们所有的狂想曲许可证都已经用完,我们需要手动停止这个过程。

我希望这给你一些提示在哪里搜索。