- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在将 RTI DDS 用于我正在实现的发布子系统,对于某些主题,我希望将历史深度保持为 1,以便在需要时重新发送,对于其他主题, 如果需要,希望保留所有历史记录。下面是我正在使用的 Qos 策略
文件。
<?xml version="1.0"?>
<dds>
<qos_library name="Keep_History_Library">
<qos_profile name="Keep_History_profile" is_default_qos="true">
<datawriter_qos name="ReliableWriter">
<property>
<value>
<element>
<name>dds.data_writer.history.memory_manager.fast_pool.pool_buffer_max_size</name>
<!-- Typical size of your data type. -->
<value>32000</value>
</element>
</value>
</property>
<durability>
<kind>TRANSIENT_LOCAL_DURABILITY_QOS</kind>
</durability>
<history><kind>KEEP_LAST_HISTORY_QOS</kind><depth>1</depth></history>
<reliability>
<kind>RELIABLE_RELIABILITY_QOS</kind>
</reliability>
<publication_name>
<name>HistoryDataWriter</name>
</publication_name>
</datawriter_qos>
<datareader_qos name="ReliableReader">
<history><kind>KEEP_LAST_HISTORY_QOS</kind><depth>1</depth></history>
<reliability>
<kind>RELIABLE_RELIABILITY_QOS</kind>
</reliability>
<durability>
<kind>TRANSIENT_LOCAL_DURABILITY_QOS</kind>
</durability>
<subscription_name>
<name>HistoryDataReader</name>
</subscription_name>
</datareader_qos>
</qos_profile>
<qos_profile name="Keep_All_History_profile">
<datawriter_qos name="ReliableWriter">
<property>
<value>
<element>
<name>dds.data_writer.history.memory_manager.fast_pool.pool_buffer_max_size</name>
<!-- Typical size of your data type. -->
<value>32000</value>
</element>
</value>
</property>
<history><kind>KEEP_ALL_HISTORY_QOS</kind></history>
<reliability>
<kind>RELIABLE_RELIABILITY_QOS</kind>
</reliability>
<durability>
<kind>TRANSIENT_LOCAL_DURABILITY_QOS</kind>
</durability>
<publication_name>
<name>HistoryDataWriter</name>
</publication_name>
</datawriter_qos>
<datareader_qos name="ReliableReader">
<history><kind>KEEP_ALL_HISTORY_QOS</kind><depth>1000000</depth></history>
<reliability>
<kind>RELIABLE_RELIABILITY_QOS</kind>
</reliability>
<durability>
<kind>TRANSIENT_LOCAL_DURABILITY_QOS</kind>
</durability>
<subscription_name>
<name>HistoryDataReader</name>
</subscription_name>
</datareader_qos>
</qos_profile>
</qos_library>
</dds>
以下是用java编写的代码,用于从Qos policy
文件中加载Keep_All_History_profile
,供读者引用。
DataReaderQos datareader_qos = new DataReaderQos();
DomainParticipantFactory.TheParticipantFactory.get_datareader_qos_from_profile(datareader_qos, "Keep_History_Library", "Keep_All_History_profile");
以及将Qos
文件载入writer的代码
DataWriterQos datawriter_qos = new DataWriterQos();
DomainParticipantFactory.TheParticipantFactory.get_datawriter_qos_from_profile(datawriter_qos, "Keep_History_Library", "Keep_All_History_profile");
但是我遇到的问题是,当我尝试加载 Keep All History profile
时,深度 1 只保留,不再保留。但是,如果我将配置文件的 keep last history
部分更改为深度 10,它将保留并读取应该加载保留所有历史记录的最后 10 条消息。为什么会在看起来好像加载了错误配置文件的地方发生这种情况?
编辑
用于制作数据写入器的代码,在加载 Qos
配置文件后立即使用。
writer = (DataDataWriter)
publisher.create_datawriter(
topic, Publisher.DATAWRITER_QOS_DEFAULT,
null, StatusKind.STATUS_MASK_NONE);
if (writer == null) {
System.err.println("create_datawriter error\n");
return;
}
以及数据读取器
listener = new DataListener();
reader = (DataDataReader)
subscriber.create_datareader(
topic, Subscriber.DATAREADER_QOS_DEFAULT, listener,
StatusKind.STATUS_MASK_ALL);
if (reader == null) {
System.err.println("create_datareader error\n");
return;
}
}
然后数据读取器使用以下方法发送消息,
public void writeData(String results) throws InterruptedException
{
instance.results = results;
writer.write(instance, handle);
}
最佳答案
为什么你看到你所看到的:
您正在使用 Subscriber.DATAREADER_QOS_DEFAULT 和 Publisher.DATAREADER_QOS_DEFAULT,并且在 Keep_Last 深度 1 配置文件上设置了“is_default_qos” boolean 值。
它在幕后做了什么:
当您在配置文件“Foo”上设置了 is_default_qos 标志时,THAT 是您使用 *_QOS_DEFAULT 标志时将使用的配置文件。即使您使用来自某些OTHER 个人资料的参与者个人资料。
*_QOS_DEFAULT 标志将始终恢复为“is_default_qos”配置文件。
如何得到你想要的:
如果您想使用 Subscriber.DATAREADER_QOS_DEFAULT 和 Publisher.DATAREADER_QOS_DEFAULT,那么您必须告诉 Subscriber 和 Publisher 对象它们将使用不同的默认值。
subscriber.set_default_datareader_qos_with_profile(
"Keep_History_Library", "Keep_All_History_profile");
publisher.set_default_datareader_qos_with_profile(
"Keep_History_Library", "Keep_All_History_profile");
或
使用工厂调用的 _create_with_profile 变体:
subscriber.create_datareader_with_profile(
topic, "Keep_History_Library", "Keep_All_History_profile",
listener, StatusKind.STATUS_MASK_ALL);
publisher.create_datawriter_with_profile(
topic, "Keep_History_Library", "Keep_All_History_profile",
null, StatusKind.STATUS_MASK_NONE);
关于java - RTI DDS Qos 配置文件历史未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28682469/
在 DDS 中可以为特定域创建的主题数量是否有限制?这取决于实现吗? RTI Connext DDS 5.0.0 的最大值是多少?我没有在文档中看到它。 最佳答案 您记忆起的“神奇”限制 240 很可
我有一个使用 DDS 的旧版 C++ 应用程序用于异步通信/消息传递。我需要将此应用程序集成到使用 JMS 进行消息传递的 JavaEE 环境中。除了构建独立的 JMS/DDS 桥接模块之外,我还有其
我正在 Linux 32 位的 OpenSplice DDS Community Edition 上工作。在这里我可以有多个主题,数据编写者可以写入这个主题,发布者将发布这些主题。我尝试修改可用的源代
我仍在尝试理解 DDS 及其概念。 我有一个配置,其中两台笔记本电脑运行基于 dds 的应用程序。我的环境不允许多播,因此我决定采用点对点连接(单播)。为了将两台笔记本电脑置于同一网络中,我使用以太网
我正在按照 windbg.info 上的说明尝试找到与我的程序中的内存分配/泄漏对应的源。我设置了一个带有泄漏代码的测试用例来尝试演示这一点。我可以到达那里的一部分,但看不到实际来源。 有问题的 C+
我的 DDS 程序中有以下代码,用于 java 8 使用 RTI DDS 5.2.0 DomainParticipantFactory.PARTICIPANT_QOS_DEFAULT. dis
好的,所以我知道如何使用 CreateDDSTextureFromFile() 函数,但是假设我通过 void *Buffer、UINT Len 在内存中有 DDS 文件...我如何从这个变量创建纹理
我开始使用 C# 并尝试测试 dds 应用程序后面的代码。我把它取自:http://www.laas.fr/files/SLides-A_Corsaro.pdf using System; /****
在 i386 上使用 dds 库进行操作,尝试重复提取样本。我明确地“读取”而不是“获取”样本,因此它们永远不会过期或被删除。 启动两个黑板应用程序,(1) 和 (2) 在两个应用程序中执行读取。这将
我已经创建了使用java实现的普通发布者和订阅者,其工作原理是按大小为1MB读取内容,总大小为5MB,并每1MB发布给订阅者。数据已成功发布。现在面临将内容附加到现有文件的问题。最后我只能找到文件中的
我正在开发一个运行在 QNX 6.4.1 上的嵌入式系统,该系统有多个相互通信的软件服务器。我项目中的一些人直接将一大堆 DDS 东西检查到主要基线中,然后去度假了。当然它不能正常工作,而且我们的配置
我需要C Winform应用程序和Android本机应用程序使用DDS(数据分发服务)。每个人都可以是订户和作者。 对我来说重要的是: -高性能。 -易于使用和记录。 -支持。 价格低。 什么是最好的
如何在 C# 中将 .dds 纹理文件作为图像加载?我在 google 上找不到任何有用的东西。 你给我的样本信息越多,我就越能理解它。 最佳答案 我遇到了同样的问题。这是一个很好的解决方案。 来源:
我参与了一个项目,该项目使用 DDS 作为通信协议(protocol)并使用 C++ 作为语言。如您所知,交换的消息称为主题。好吧,有时一个团队必须更改主题定义,因此,依赖于该主题的其他软件停止工作,
在映射到 DDS 的现有对象上添加索引的最佳方法是什么?数据库中已经存储了数十万个对象。 是否就像将 [EPiServerDataIndex] 属性添加到我现有的类、重新编译和重新部署站点一样简单?
我目前正在使用启用了安全插件的 DDS 进行开发。 当应用程序启动时,它会查找 CA 证书、本地证书和私钥的路径,并将它们加载到内存中以供将来使用。 包含公钥的证书不敏感,因为它们通常以明文形式发送并
我一直在尝试阅读 DDS 标准,尤其是 OpenSplice,我对架构感到疑惑。 DDS 是否需要运行代理或任何特定的守护进程来管理不同方之间的消息交换和协调? 如果我只是为一个主题启动一个发布数据的
我在订阅数据时遇到问题(使用 java 平台)。当订阅者订阅一个主题时,订阅的数据必须从 DDS 中删除。但就我而言,每当我订阅数据时,相同的数据都会被多次订阅。数据不会从 DDS 中删除。我尝试使用
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我想知道OPC(开放平台通信)和DDS(数据分发服务)之间的区别。 我对这两个框架的理解是:机器上的通信中间件,用于简化复杂的网络编程。两者都用于通过消息传递在物理上独立的机器上进行程序通信。它们采用
我是一名优秀的程序员,十分优秀!