小编lor*_*nzo的帖子

破解远程/虚拟磁盘上的"真正"Java刷新

我正在寻找一个"技巧"或"黑客"来确定文件是否已经保存在远程磁盘上,通过vmware缓存,NAS缓存等.

刷新和关闭FileOutputStream是不够的.我认为Channel.force(true)既不是.

我正在考虑这样的事情:

  • 写入文件并读回文件
  • 写入文件,检查时间戳,重命名文件,检查不同的时间戳
  • 使用"错误内容"编写文件,用原始内容覆盖,读回并检查内容

也许有人有同样的问题,并找到了解决方案.

我的要求是不要丢失数据.java应用程序以这种方式工作:

  1. 接受来自远程源的文件
  2. 添加数字签名和经过认证的时间戳,以创建新文件.如果此文件丢失,则无法以任何方式重新创建.
  3. 将此文件写入存储
  4. 将文件标记为在数据库上签名
  5. 告诉偏远的一面,一切都好

今晚我们遇到了崩溃,并且在第5步之后但是在将数据实际刷新到远程存储之前有三次交易失败.所以数据库说一切都很好,远程端被告知相同,但15秒的签名数据丢失了.这不好.

正确的解决方案可能是对远程文件系统进行"同步安装".但这不会在短时间内发生.即使在这种情况下,鉴于应用程序在VMWare服务器上运行,我也不完全信任这种情况.

因此,我希望有一个"尽力而为"的黑客来防止(缓解)像这样的事件.

java vmware flush nas

5
推荐指数
1
解决办法
307
查看次数

标签 统计

flush ×1

java ×1

nas ×1

vmware ×1