首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Jboss AS7上暂停Hornetq

在Jboss AS7上暂停Hornetq
EN

Stack Overflow用户
提问于 2013-08-26 06:31:54
回答 1查看 1.7K关注 0票数 2

在备份期间,我希望暂停HornetQ中的所有JMS队列,以便获取磁盘的快照。在jboss-cli,我打电话给:

代码语言:javascript
复制
connect   
/subsystem=messaging/hornetq-server=default/jms-queue=%queueName:pause

但是队列没有暂停。如何暂停所有JMS作业?

UPD

复制步骤:

代码语言:javascript
复制
root@debian:/opt/jboss/bin# ./jboss-cli.sh 
You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.
[disconnected /] connect
[standalone@localhost:9999 /] /subsystem=messaging/hornetq-server=default/jms-queue=AIIndex:pause         
{
    "outcome" => "success",
    "result" => undefined
}
[standalone@localhost:9999 /] 

但当我打电话的时候

代码语言:javascript
复制
[standalone@localhost:9999 /] /subsystem=messaging/hornetq-server=default/jms-queue=AIIndex:count-messages
{
"outcome" => "success",
 "result" => 128L
}

因此,每当我调用/subsystem=messaging/hornetq-server=default/jms-queue=AIIndex:count-messages时,它都会显示不同的值。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-26 11:23:28

我可以复制它:pause只是禁用消息接收(接收者不会收到任何消息,也没有错误消息)。但仍然有可能发送信息。我也没有在队列或子系统级别上找到任何其他操作。因此,我只能证实,它并不像“预期的”那样起作用。

HornetQ在内部使用日志。引用如下:

HornetQ日志仅附加一个可配置的文件大小,这通过启用单个写操作来提高性能。它由磁盘上的一组文件组成,这些文件最初是预先创建的,大小固定,并填充填充。作为服务器操作(添加消息、删除消息、更新消息等)执行时,操作记录将被追加到日志,直到日志文件已满为止,此时将使用下一个日志文件。

至于日志刷新/同步,另一句话是:

日记-同步-事务性 如果为真,HornetQ确保在事务边界(提交、准备和回滚)将所有事务数据刷新到磁盘。默认值为真。 日记-同步-非事务性 如果为真,HornetQ确保将非事务性消息数据(发送和确认)刷新到磁盘。默认值为真。

这看起来不算太糟,但我还没有找到备份.../data/messaging*/目录的确认。可能没有从“外部”获得一致备份的解决方案。

因此,我所知道的唯一可靠的方法是使用主动/被动设置:引用:

HornetQ允许将多对服务器作为实时备份对链接在一起.在这个版本中,每个活动服务器都有一个备份服务器。备份服务器仅由一台活动服务器拥有。备份服务器在发生故障转移之前无法运行。

这种方法可以从“JBoss内部”进行备份(但不是文件系统备份)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18437958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档