删除已验证用户的读取数据?

时间:2012-07-16 11:22:55

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

在DDS我的要求是什么,我有很多订阅者,但发布者是单身。我的订户从DDS读取数据并检查该消息是否针对该特定订户。如果检查成功,则只接收数据并从DDS中删除。消息必须在DDS中维护,直到经过身份验证的订户获取其数据。如何使用DDS(在java环境中)实现这一目标?

1 个答案:

答案 0 :(得分:0)

首先,您应该注意到DDSSubscriber永远无法从全局数据空间中删除数据。每个Subscriber都有自己的分布式数据的缓存副本,并且只能对该副本起作用。如果一个Subscriber获取数据,则同一Subscribers的其他Topic不会受到任何方式的影响。只有Publishers可以为每个Subscriber全局删除数据。从你的问题来看,目前尚不清楚你是否知道这一点。

独立于此,似乎使用ContentFilteredTopicCFT)在这里是合适的。根据描述,Subscriber知道它正在寻找的文件名。使用CFTSubscriber可以表明它只对具有file_name属性的特定值的样本感兴趣。基础结构将负责过滤过程,并确保Subscriber不会接收具有属性file_name的不同值的任何数据。因此,对take()执行的任何DataReader操作都将包含相关信息,无需先检查数据然后再接收数据。

API文档应包含有关如何使用ContentFilteredTopic的更多详细信息。