Недавно я работал с Magnolia CMS, которая использует JCR.
Одной из проблем, с которыми я сталкиваюсь, является повреждение данных JCR, и я обнаружил, что у меня очень мало знаний о том, как устранять неполадки в этой ситуации.
Я понимаю JCR следующим образом:
- JCR — это спецификация, существует несколько реализаций
- Jackrabbit — это одна из реализаций JCR.
- Jackrabbit может хранить информацию, используя файловую систему напрямую или используя базу данных, такую как MySQL.
Теперь мои вопросы
- Как создать резервную копию и восстановить репозиторий JCR?
- Есть ли какой-то конкретный инструмент, который можно использовать для проверки целостности данного JCR и попытки его исправления? Я немного поиграл с Торомиро.
- Есть ли какой-либо конкретный информационный/учебный ресурс, который мне следует прочитать, чтобы получить полное и правильное представление о технологии JCR?
Обновлять:
У меня есть другие вопросы:
- Если конкретная реализация JCR хранит контент в базе данных, могу ли я ожидать, что ВЕСЬ контент будет храниться в этой базе данных, или может случиться так, что некоторый контент (например, изображения) будет храниться непосредственно в файле системе, а не в базе данных?
- В настоящее время у нас есть репозиторий JCR, к которому обращаются три разных веб-сервера, насколько я понимаю, спецификация JCR учитывает эту ситуацию и защищает репозиторий, чтобы предотвратить несогласованность содержимого из-за одновременного доступа для записи. Это правильно?
- Чтобы быть конкретным, проблема, с которой мы столкнулись, состояла в том, что узел A содержал ссылку на узел B, но узел B был недоступен, после использования groovy-скрипта нам удалось удалить узел B (который, казалось, находился в несогласованное состояние), однако, как мы могли найти все ссылки на узел B (возможно, на него ссылался не только узел A, но и узел C). Что, черт возьми, могло привести к повреждению репозитория JCR? Кстати, мы также пытались использовать флаги forceConsistencyCheck, autorepair и enableConsistencyCheck, но это не решило проблему.
Спасибо