当前位置: 首页 > 知识库问答 >
问题:

使用Jenkins的JMS ActiveMQ锁

姜晨
2023-03-14

我的项目使用JMS和ActiveMQ,无论是在生产环境中还是在本地计算机上运行测试时,它都工作得很好。我的问题发生在Jenkins运行我的测试(在我的计算机上成功的测试)时,我在控制台输出中得到以下条目:

2016-11-17 12:17:19,277 INFO o . a . ActiveMQ . store . shared file locker数据库ActiveMQ-data/localhost/kah ADB/lock已锁定...等待10秒钟以解锁数据库。原因:Java . io . io异常:无法锁定文件“ActiveMQ-data/localhost/kah ADB/lock”。

有没有人有过同样的经历,遇到了解决问题的方法?将非常感谢您的帮助!

控制台输出的更多详细信息:

2016-11-17 12:17:09,193 WARN o . a . a . broker . jmx . management context无法启动JMX连接器:无法绑定到URL[RMI://localhost:1099/JMX RMI]:javax . naming . namealreadyboundexception:JMX RMI[根异常是Java . RMI . alreadyboundexception:JMX RMI]。将重新启动管理以重新创建jmx连接器,尝试解决此问题。

2016-11-17 12:17:09,257 INFO o . a . a . store . kah ADB . plist . plist store plist store:[/var/lib/Jenkins/jobs/mydir/workspace/my project/ActiveMQ-data/localhost/tmp _ storage]已启动

2016-11-17 12:17:09,271 INFO o.a.activemq.broker.broker 服务使用持久性适配器: KahaDBPersistenceAdapter[/var/lib/jenkins/jobs/mydir/workspace/myproject/activemq-data/localhost/KahaDB]

2016-11-17 12:17:09277关于o.a.activemq.store的信息。SharedFileLocker数据库activemq数据/localhost/KahaDB/lock已锁定…等待10秒,数据库才能解锁。原因:java.io。IOException:无法锁定文件“activemq数据/localhost/KahaDB/lock”。

共有2个答案

乐城
2023-03-14

我能够解决这个问题。在Jenkins中运行的构建过程在测试阶段挂起,我被迫中止它,这在目录中留下了一个锁:dir-tests \ ActiveMQ-data \ localhost \ kah ADB。有两种方法可以解决这个问题:

1)最直接和正确的解决方案是删除dir-tests \ ActiveMQ-data \ localhost \ kah ADB \ lock,但是我在远程Jenkins机器上既没有访问权限也没有权限。

2)我们可以轻松地创建具有不同名称的Jms代理,例如。

 brokerService.setBrokerName("MyDummyBrokerName");

这会导致活动 MQ 使用目录目录测试\活动mq数据\我的虚拟经纪名称\卡哈DB,这意味着它将使用不同的锁。但是,这是一种解决方法,而不是最终的解决方案,因为旧锁和相应的目录将保留在 Jenkins 中。但是,它暂时解决了问题,并且可以在以后删除旧锁。

百里朝
2023-03-14

有一个先前的ActiveMQ进程仍在运行,它锁定了数据存储。您看到的这个新实例作为“从属”实例运行,并通过轮询来获取锁。

 类似资料:
  • 我在上运行jenkins,并希望在上运行一个slave。但是,要将ssh转到从服务器,我需要通过。一般来说,要从我的普通帐户ssh到这台机器,我只需要使用~/.ssh/config来设置一个proxycommand。 我已经在文件中复制了这个设置: 我为网关和从机都设置了公钥身份验证,这样,在命令行中,我可以直接从ssh到,只需执行。 不幸的是,Jenkins似乎不尊重我的。ssh/config设

  • 我有一台Ubuntu主机和Windows10从机 我需要使用SSH连接从主机(ubuntu)连接从机(windows机) 按照下面的链接 在发射时面临以下问题。请帮帮我 注意:在从机中只安装Git(未安装Jenkins)

  • 问题内容: 我正在使用Groovy脚本控制台在Jenkins上创建和更新作业。使用此处记录的API http://javadoc.jenkins-ci.org/ 我发现了如何通过使用创建工作 但是,如果作业已经存在,则此方法将失败。如何使用新的xml更新现有作业? 更新资料 基于@ogondza的答案,我使用了以下内容来创建然后更新作业 问题答案: 使用AbstractItem#updateByX

  • 我有一份詹金斯的工作,计划在特定的时间进行。我想以编程方式修改该计时。 我试图通过安装Schedule build插件并使用。但这将使作业处于保持java线程的静默期。我希望在不将其置于静默期的情况下修改计划条目。

  • 问题内容: 我有一个Jenkins主服务器(在一个小的Linux机器上运行)和一个Jenkins从机(在“正确的” XP计算机上运行)。 我已经配置了所有要在Windows XP从属服务器上运行的副臂。 不幸的是,每次在该从属服务器上运行构建时,由于以下错误,构建都会失败: 我知道此错误是由于包含这些工件的存储库定义不正确造成的,因为已使用的存储库是在settings.xml中定义的。因此,我的问

  • 问题内容: 我似乎在尝试将Jenkins(Ubuntu的EC2 AWS实例)与Bitbucket链接时陷入困境。 每当我尝试构建项目时(我在Jenkins上安装了git插件),我都会得到… 很好- 看起来它正在尝试通过ssh,但是找不到密钥。所以我试图生成密钥,在我有文件的情况下,但是根据这里的文档… https://confluence.atlassian.com/display/BITBUCK