0

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

有多个 clearcase ucm 项目。因此,为了加快构建速度,当人们交付他们的工作时,只要交付到不同的流,我们就会启动 Rhapsody 流程并执行构建。因此,有时我们需要并行生成和构建不同的项目。

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

我们首先设置 OMROOT 环境变量,然后使用参数启动 Rhapsody: -hiddenui -noanimaition -cmd=open

Jenkins作为服务运行,使用域中的用户帐户,这是机器上的管理员,正如我所提到的,这个用户可以直接从命令行和启动的詹金斯执行任意数量的并行作业从命令行(不作为服务运行)

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

4

2 回答 2

0

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

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

于 2017-08-30T13:11:46.263 回答
0

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

更简单的是 ClearCase 只支持路径名中的 255 个字符。因此,包括 Jenkins 的文件系统结构和 ClearCase 的 VOB 名称,一些 Rha​​psody 包的整个路径很长,因此工作停止了。花了一些时间才弄清楚。

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

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

于 2018-01-16T23:03:06.473 回答