【问题标题】:jackrabbit error: can't create folderjackrabbit 错误:无法创建文件夹
【发布时间】:2012-08-22 16:24:03
【问题描述】:

我在 IBM AIX 上使用 Jackrabbit 1.6 版。它类似于Linux操作系统。 Jackrabbit 用于存储我的应用程序用户上传的文件。当 JCR 在存储库(在配置文件中)指定的目录中存储了超过 32767 个文件/文件夹时,我收到错误 "can't create a folder"

这个问题在最新版本的 Jackrabbit 中得到解决了吗?我知道这是操作系统的限制,但是通过调整 Jackrabbit 的文件存储机制可以解决这个问题

或者

有没有一种方法可以在 JCR 配置中指定,一旦达到 32767 限制,它应该将文件存储在其他目录中。

或者

有没有一种方法可以按月/按周保存文件,因为我确信在一个月内我将拥有少于 32767 个文件。

感谢任何帮助/评论。

谢谢,

塔里克

【问题讨论】:

  • 这些文件在什么目录下,文件名是什么?另外,是什么阻止您升级到最新版本的 Jackrabbit?
  • 目录名称可以是任何名称。存储的文件由 Jackrabbit 本身命名,我得到的只是一个唯一的 ID,当我想检索文件时可以参考它。该系统已经投入生产,因此转移更新版本的 Jackrabbit 并非易事。虽然如果问题在最新版本中得到解决,那么我们可以通过特殊批准迁移到新版本。
  • 同样迁移到新版本意味着我们将不得不编写一个新的迁移过程,因为生成唯一 ID 的逻辑已经从版本 1.6 更改为 2.4
  • "目录名可以是任何东西" - 好吧,你能举个例子吗?您是否使用旧的基于文件的持久性管理器?生成唯一 ID 的逻辑如何影响您的程序?
  • “嗯,你能举个例子吗?” - Jackrabbit 作为 EAR 而不是作为独立应用程序加载到 Jboss 应用程序服务器中。存储库是在运行时定义的。使用的路径是 /usr/local/myapp/submod1。 “您使用的是旧的基于文件的持久性管理器吗?” - 持久性管理器的配置是:.

标签: linux filesystems aix jackrabbit jcr


【解决方案1】:

我建议不要使用 XMLPersistenceManager,因为if the JVM process is killed the repository might turn inconsistent。另一种方法是使用Bundle Database PM

要帮助迁移到更新版本的 Jackrabbit,请参阅 Backup and Migration 页面。

【讨论】:

  • 根据与客户的早期协议,不能使用DB bundle。所以,我只被文件系统困住了。
  • 有没有办法可以按月存储文件,因为我肯定知道一个月内不会有超过 32767 个文件。我可以通过 Jackrabbit 中的一些配置来做到这一点
  • 我们也尝试过更新版本的 Jackrabbit。那里也存在 32767 个元素的问题。所以最后我们计划从 1.6 迁移到 2.4 并使用 DB。有没有一个工具可以用来将存储库从基于 1.6 文件迁移到基于 2.4 DB。
  • @TarikSingh 我不确定您是否阅读了我的答案,有一个指向备份和迁移文档的链接。除此之外,恐怕我不知道其他工具。
  • 抱歉,Thomas,我在 API 中得到了答案。感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-27
  • 1970-01-01
  • 1970-01-01
  • 2011-08-27
  • 2016-02-28
  • 1970-01-01
相关资源
最近更新 更多