DDS第9个主题导致崩溃

时间:2015-02-10 17:52:16

标签: publish-subscribe qos data-distribution-service

我正在使用DDS(更具体地说是RTI DDS)来申请java。我在代码中逐个为topic实现创建每个DDS,因此我可以在编写代码后用DDS spy测试每个topic。当我写第8 topic时一切正常。然而,当我写下第9 # # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x01349a58, pid=16109, tid=2429123440 # # JRE version: Java(TM) SE Runtime Environment (7.0_65-b17) (build 1.7.0_65-b17) # Java VM: Java HotSpot(TM) Server VM (24.65-b04 mixed mode linux-x86 ) # Problematic frame: # V [libjvm.so+0x48aa58] java_lang_String::utf8_length(oopDesc*)+0x58 # # Core dump written. Default location: /home/foo/core or core.16109 # # An error report file with more information is saved as: # # /home/foo/corehs_err_pid16109.log # # If you would like to submit a bug report, please visit: # http://bugreport.sun.com/bugreport/crash.jsp # [D0000|ENABLE]COMMENDSrReaderService_new:!create worker-specific object [D0000|ENABLE]PRESPsService_enable:!create srr (strict reliable reader) [D0000|ENABLE]DDS_DomainParticipantService_enable:!enable publish/subscribe service [D0000|ENABLE]DDS_DomainParticipant_enableI:!enable service 时,似乎没有任何事情发生,因为程序似乎停在某处。然后我进行了调试,经过大量的代码处理后,将其打印到理事会。

topic

我不确定为什么在我创建第9个resourcelimits时突然发生了这种情况,但如果我只有8个,那么效果很好。我也试图增加Immutable QOS Policy并收到topic错误。有谁知道为什么这个错误发生在为什么我的第9 32 bit RHEL 6.6导致失败以及如何解决问题?我正在{{1}}上运行我的应用程序。

1 个答案:

答案 0 :(得分:1)

我发现这是因为默认情况下max objects per threadqos设置为8。要更改此设置,请在创建第一个主题之前执行以下操作。

    DomainParticipantFactoryQos factoryQos = 
            new DomainParticipantFactoryQos();
    DomainParticipantFactory.TheParticipantFactory.get_qos(factoryQos);
    factoryQos.resource_limits.max_objects_per_thread = 2048;
    DomainParticipantFactory.TheParticipantFactory.set_qos(factoryQos);

然后在DDS开始之前设置大小,因此可以编辑,而不是在那时不可变。