在activemq中运行onMessage时的Segfault

时间:2014-08-14 01:07:55

标签: activemq

我使用activemq在进程(c ++程序)之间传递xml消息,并且它可以根据需要运行。我试图将程序安装到新主机上,但我遇到了麻烦。由于我没有配置我的开发系统,我相当确定我在新系统activemq实例中遇到了配置问题。我在onMessage方法中运行一段代码时遇到了段错误。如果我在启动消息监听器之前调用代码,它运行正常。不幸的是,我无法显示代码...所以伪代码,抱歉。

Main
{
    Declare object
    Use object.            <-- works fine
}
MessageReader
{
    onMessage
    {
         Declare object.    <-- segfaults here
    }
}
Main
{
    Declare messageReader 
    Run messageReader 
}

当程序收到消息时,它在尝试实例化对象时会发生段错误。

开发和部署系统都运行Linux 64,程序也编译为-m64。如果activemq c ++库是32位版本,我会在尝试链接时遇到精灵失败,对吗? 堆栈限制是无限的,-Xms=1G-Xmx=10G,但我得到一些关于线程太少的警告(来自运行activemq的控制台)我不知道。 任何帮助将不胜感激,是的,我知道我真的很喜欢描述事情

1 个答案:

答案 0 :(得分:0)

根据提供的信息,我猜测它与https://issues.apache.org/jira/browse/AMQCPP-529有关,但在您的情况下很难说。首先要做的是升级到库的v3.8.3以获取最新的修复程序。另一件要尝试的是通过使用新的&#39;对象来对堆上的对象进行创建。然后将其删除或将其分配给auto_ptr以进行自动清理。