Openfire 会在一天后删除 pub sub 节点(而不是在服务器重新启动或删除缓存后)
Openfire deletes pubsub nodes after one day (not after server restart or deleting cache)
一天后,我创建的所有pubsub节点都消失了,我无法通过iq节检索它们。但它们仍然在mysql数据库中。无论如何,当我创建节点时,它们可以通过 xml iq 节检索。
有人知道会发生什么吗?
Edit1:我注意到我使用标准配置创建的叶节点在一天后不会消失。所以我认为这是我这边的配置问题。
我使用以下命令检索公共子节点:
<iq type='get' to='pubsub.server.local'>
<query xmlns='http://jabber.org/protocol/disco#items'/>
</iq>
或针对特定节点:
<iq type='get' to='pubsub.server.local'>
<query xmlns='http://jabber.org/protocol/disco#items' node='Collection1'/>
</iq>
这不是问题,因为在创建后,我获得了有关我创建的节点的所有信息。一天后我无法检索它们。也许我的配置是错误的,或者服务器在一天后删除了缓存之类的东西?但是我尝试手动删除缓存,我可以检索新创建的节点。正如我所说,它们在一天后无法检索。 这真的很奇怪..
编辑2:配置
我创建以下配置的集合/集合/叶子:
<iq to='pubsub.server.local' type="set">
<pubsub xmlns="http://jabber.org/protocol/pubsub">
<create node="Weird"/>
<configure><x xmlns="jabber:x:data" type="submit">
<field var="FORM_TYPE"><value>http://jabber.org/protocol/pubsub#node_config</value> </field>
<field var="pubsub#node_type"><value>collection</value></field>
<field var="pubsub#title"><value>NodeName</value> </field>
<field var="pubsub#description"><value>NodeDescription</value></field>
<field var="pubsub#leaf_node_association_policy"><value>whitelist</value></field>
<field var="pubsub#leaf_node_association_whitelist"><value>owner@server.local</value></field>
</x></configure> </pubsub>
</iq>
我可以将所有者的 JID 放入白名单吗?
然后我在第一个集合中创建并配置集合,该集合的"node"属性设置为collection_1234出于识别原因,"name"属性设置为可读名称 Collection2
<iq to='pubsub.server.local' type="set">
<pubsub xmlns="http://jabber.org/protocol/pubsub">
<create node="collection_1234"/>
<configure><x xmlns="jabber:x:data" type="submit">
<field var="FORM_TYPE"><value>http://jabber.org/protocol/pubsub#node_config</value> </field>
<field var="pubsub#node_type"><value>collection</value></field>
<field var="pubsub#collection"><value>Weird</value></field>
<field var="pubsub#title"><value>Collection2</value> </field>
<field var="pubsub#deliver_payloads"><value>1</value></field>
<field var="pubsub#leaf_node_association_whitelist"><value>user1@server.local</value></field>
</x></configure> </pubsub>
</iq>
子集合节点(此处为 Atom)的有效负载类型是否必须与父集合节点中的有效负载类型相同(此处为无)?
然后是集合 2 中的一片叶子:
<iq to="pubsub.server.local" type="set">
<pubsub xmlns="http://jabber.org/protocol/pubsub">
<create node="leaf_1234"/>
<configure><x xmlns="jabber:x:data" type="submit">
<field var="FORM_TYPE"><value>http://jabber.org/protocol/pubsub#node_config</value></field>
<field var="pubsub#collection"><value>collection_1234</value></field>
<field var="pubsub#type"><value>http://www.w3.org/2005/Atom</value></field>
<field var="pubsub#persist_items"><value>1</value></field>
<field var="pubsub#max_items"><value>-1</value></field>
<field var="pubsub#type"><value>http://www.w3.org/2005/Atom</value>
<field var="pubsub#publisher">
<value>nodeowner@server.local</value>
<value>anotheruser@server.local</value>
</field>
</x>
</configure> </pubsub>
</iq>
是否可以将节点所有者配置为发布者?我省略了 #publish_model 变量,因为值发布者是标准的。
不确定这是否仍然相关,但它可能会帮助其他人:
我也有这个问题,但带有字母"H"(如您在评论中所述)。我可以创建以"H"开头的节点并正确使用它们,但是当 openfire 重新启动时,即使数据库中确实存在这些节点,也不会找到这些节点。我发现这是因为名为" home
"的根节点。可能是因为这也是以"H"开头的。我尝试为以不同字符开头的根节点指定几个不同的名称,但这会导致一个或多个其他起始字符失败。
为了解决这个问题,我将根节点命名为"*
",问题就消失了!一个聪明的方法是将数据库导出到文本文件,将所有[根节点](在我的例子中是'home
')替换为'*
',然后再次导入它,最后重新启动openfire。
- 当我在重新启动cordova应用程序后尝试添加更多数据时,lokijs会丢失数据库和收集中的数据
- 重新启动jquery脚本后,角度停止工作
- Chrome内容脚本制作cookie;chrome重新启动时,cookie会被删除.如何使其稳定
- preventDefault之后的重新启动事件
- WebStorm,使用Node Supervisor(因此不必在每次代码更改后重新启动)
- 重新启动游戏jQuery功能不工作
- Web服务器意外退出,正在重新启动新实例
- 在变量中保存值的最佳方法是在应用程序关闭后使用,然后使用apachecordova在android中重新启动
- 重新启动画布 JavaScript
- 事件侦听器,用于完全关闭后重新启动的应用程序
- Node SocketIO以编程方式强制在损坏的套接字上重新启动
- 服务器重新启动后javascript不工作
- 当滚动到指定的位置时,启动功能,如何重置它并重新启动,如果我们再次回到这个位置
- Gulp Concat+Browsesync重新启动
- 在 javaScript 中重新启动 setInterval
- 如何为Sails.js创建启动/停止/重新启动Linux服务
- 如何暂停和重新启动jquery数据表插件
- 如何创建一个onclick函数,该函数在按下重新启动按钮时被调用
- Openfire 会在一天后删除 pub sub 节点(而不是在服务器重新启动或删除缓存后)
- D3 JS-力图-不;删除节点后无法重新启动布局