我们正在使用Jenkins自动生成和构建IBM Rhapsody模型。我们也使用clearcase。当开发人员传递到特定流时,自动Jenkins作业会更新构建服务器上的专用快照视图,作业将启动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使用来自域的用户帐户作为服务运行,该用户帐户是计算机上的管理员,正如我所提到的,该用户可以直接从命令行和jenkins执行任意数量的并行作业它是从命令行启动的(不作为服务运行)
经过几天的尝试,我们找不到原因......有什么建议吗?
答案 0 :(得分:0)
如果我没记错的话,Rhapsody会为每个实例使用一个许可证,对于在命令行上启动的实例也是如此。 如果你启动第二个实例,这可能会导致错误。
如果从Windows命令行启动两个代码生成实例,会发生什么?
答案 1 :(得分:0)
当我们在Jenkins构建服务器(包括ClearCase)中使用Rhapsody时,我们遇到了类似的问题。
更简单的是ClearCase仅支持路径名中的255个字符。因此,包括Jenkins的文件系统结构和ClearCase的VOB名称,一些Rhapsody软件包的整个路径都很长,工作也停止了。花了一些时间才弄明白。
第二个问题是在Windows服务中运行Rhapsody。您不得在服务中打开任何窗口。所以现在开始狂想曲。相反,您需要使用RhapsodyCli(命令行界面)命令来实现此目的。 Rhapsody的安装中有一个PDF解释这个。 有时我们遇到的问题是我们的RhapsodyCli流程没有停止。因此,随着时间的推移,我们所有的Rhapsody许可证都用完了,我们需要手动停止这个过程。
我希望这会给你一些提示搜索的地方。