2014-07-09 48 views
1

是增强消息队列文件级持久性?增强消息队列文件级别持久性?

在升压IPC文档它有提到,消息队列是文件或内核级别的持久性。

http://www.boost.org/doc/libs/1_38_0/doc/html/interprocess/some_basic_explanations.html

所以我的问题是,他们是文件级别的持久办法可以生存的重新启动,或者如果我们还重新启动在内存持续。

如果他们在默认情况下我们如何能够使他们的文件级别的持久内核级别的持久?

编辑:当我注销我的系统并再次登录的队列在那里,工作正常,但是当我重新启动系统队列已删除,我使用Ubunutu和需要实现可存活服务器队列崩溃我该怎么做?

回答

1

正如文档解释的区别是执行相关的。

一些平台将有内核支持(因此,“内核级别的持久性”共享IPC对象),有些则不会:

正如你所看到的,Boost.Interprocess中定义了“内核的一些机制或“Filesystem”持久性。这是因为POSIX允许本地进程间通信实现的可能性。例如,可以使用内存映射文件实现共享内存并获得文件系统持久性(例如,没有适当的已知方法来使用本机共享内存来模拟Windows共享内存的用户库,或者共享POSIX的进程持久性内存,所以唯一可移植的方式是定义“内核或文件系统”持久性)。

它是不是你可以切换的东西。

更重要的是,它可能不是你所追求的(持久性是关于对象的生命周期,不是消息,AFAICT)

+0

感谢所以如果我们将其作为文件级别的持久性,然后重新启动对象之后(M队列)将在那里,但消息可能不会。 – Ali786