我正在使用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}}上运行我的应用程序。
答案 0 :(得分:1)
我发现这是因为默认情况下max objects per thread
由qos
设置为8。要更改此设置,请在创建第一个主题之前执行以下操作。
DomainParticipantFactoryQos factoryQos =
new DomainParticipantFactoryQos();
DomainParticipantFactory.TheParticipantFactory.get_qos(factoryQos);
factoryQos.resource_limits.max_objects_per_thread = 2048;
DomainParticipantFactory.TheParticipantFactory.set_qos(factoryQos);
然后在DDS开始之前设置大小,因此可以编辑,而不是在那时不可变。