Instanz startet nicht | java.io.IOException Falscher Dateideskriptor (Linux) /Zugriff verweigert (Windows)

Problem

Eine Instanz wird nicht neu gestartet und die folgende Meldung auf einem Linux-system protokolliert:

xx.xx.xxxx xx:xx:xx.xxx *ERROR* org.apache.jackrabbit.core.RepositoryImpl Fehler beim Initialisieren des Arbeitsbereichs 'crx.default' javax.jcr.RepositoryException: Der Persistenzmanager kann nicht instanziiert werden com.day.crx.persistence.tar.TarPe
rsistenceManager
at com.day.crx.core.CRXRepositoryImpl$CRXWorkspaceInfo.createPersistenceManager(CRXRepositoryImpl.java:1290)
at com.day.crx.core.CRXRepositoryImpl$CRXWorkspaceInfo.doInitialize(CRXRepositoryImpl.java:1307)
at org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.initialize(RepositoryImpl.java:2002)
at org.apache.jackrabbit.core.RepositoryImpl.initStartupWorkspaces(RepositoryImpl.java:517)
at com.day.crx.core.CRXRepositoryImpl.initStartupWorkspaces(CRXRepositoryImpl.java:428)
at org.apache.jackrabbit.core.RepositoryImpl.(RepositoryImpl.java:324)
at com.day.crx.core.CRXRepositoryImpl.(CRXRepositoryImpl.java:283)
at com.day.crx.core.CRXRepositoryImpl.create(CRXRepositoryImpl.java:258)
...
Caused by: java.io.IOException: Bad file descriptor
at java.io.RandomAccessFile.writeBytes(Native Method)
at java.io.RandomAccessFile.write(RandomAccessFile.java:469)
at com.day.crx.persistence.tar.file.TarFile.write(TarFile.java:736)
at com.day.crx.persistence.tar.file.TarFile.writeData(TarFile.java:629)
at com.day.crx.persistence.tar.file.TarFile.appendMetaData(TarFile.java:703)
at com.day.crx.persistence.tar.file.TarFile.append(TarFile.java:585)
at com.day.crx.persistence.tar.TarSet.switchDataFile(TarSet.java:443)
at com.day.crx.persistence.tar.TarSet.open(TarSet.java:225)
at com.day.crx.persistence.tar.ClusterTarSet.reopenCopy(ClusterTarSet.java:1413)
at com.day.crx.persistence.tar.ClusterTarSet.open(ClusterTarSet.java:828)
at com.day.crx.persistence.tar.TarPersistenceManager.openTarSet(TarPersistenceManager.java:963)
at com.day.crx.persistence.tar.TarPersistenceManager.init(TarPersistenceManager.java:494)
at com.day.crx.core.CRXRepositoryImpl$CRXWorkspaceInfo.createPersistenceManager(CRXRepositoryImpl.java:1286)
... 59 more
xx.xx.xxxx xx:xx:xx.xxx *ERROR* org.apache.jackrabbit.core.RepositoryImpl Unable to start repository, forcing shutdown...

 

oder auf einem Windows-System:

 

xx.xx.xxxx xx:xx:xx.xxx *ERROR* [FelixStartLevel] org.apache.jackrabbit.core.RepositoryImpl Fehler beim Initialisieren des Arbeitsbereichs 'crx.default' javax.jcr.RepositoryException: Der Persistenzmanager kann nicht instanziiert werden com.day.crx.persistence.tar.TarPersistenceManager at com.day.crx.core.CRXRepositoryImpl$CRXWorkspaceInfo.createPersistenceManager(CRXRepositoryImpl.java:1325) at com.day.crx.core.CRXRepositoryImpl$CRXWorkspaceInfo.doInitialize(CRXRepositoryImpl.java:1342) at org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.initialize(RepositoryImpl.java:2002) at org.apache.jackrabbit.core.RepositoryImpl.initStartupWorkspaces(RepositoryImpl.java:517) at com.day.crx.core.CRXRepositoryImpl.initStartupWorkspaces(CRXRepositoryImpl.java:452) at org.apache.jackrabbit.core.RepositoryImpl.(RepositoryImpl.java:324) at com.day.crx.core.CRXRepositoryImpl.(CRXRepositoryImpl.java:307) at com.day.crx.core.CRXRepositoryImpl.create(CRXRepositoryImpl.java:262) at com.day.crx.core.CRXRepositoryImpl.create(CRXRepositoryImpl.java:245) at com.day.crx.sling.server.impl.jmx.ManagedRepository.activate(ManagedRepository.java:168) ...

Caused by: java.io.IOException: Access is denied at java.io.RandomAccessFile.writeBytes(Native Method) at java.io.RandomAccessFile.write(Unknown Source) at com.day.crx.persistence.tar.file.TarFile.write(TarFile.java:742) at com.day.crx.persistence.tar.file.TarFile.writeData(TarFile.java:635) at com.day.crx.persistence.tar.file.TarFile.appendMetaData(TarFile.java:709) at com.day.crx.persistence.tar.file.TarFile.append(TarFile.java:591) at com.day.crx.persistence.tar.TarSet.switchDataFile(TarSet.java:445) at com.day.crx.persistence.tar.TarSet.open(TarSet.java:227) at com.day.crx.persistence.tar.ClusterTarSet.reopenCopy(ClusterTarSet.java:1455) at com.day.crx.persistence.tar.ClusterTarSet.open(ClusterTarSet.java:860) at com.day.crx.persistence.tar.TarPersistenceManager.openTarSet(TarPersistenceManager.java:980) at com.day.crx.persistence.tar.TarPersistenceManager.init(TarPersistenceManager.java:500) at com.day.crx.core.CRXRepositoryImpl$CRXWorkspaceInfo.createPersistenceManager(CRXRepositoryImpl.java:1321) ... 59 more

Hinweis:

Früher in den Protokollen könnte eine Meldung wie die folgende enthalten sein:

*ERROR* com.day.crx.core.backup.LowDiskSpaceMonitor Missing file(s). Das Repository wird nun geschlossen.

Eine andere Meldung darüber, dass „data*.tar-Dateien nun aus Sicherheitsgründen schreibgeschützt sind...“ kann auch zeitgleich angezeigt werden (je nach CRX-Version und Patches).

Lösung

Die Meldungen werden ausgelöst, wenn zwischen der index_*.tar und data_*.tar und der data*.tar Inkonsistenzen erkannt werden.

Setzen Sie data_*.tar auf Lese-/Schreibzugriff. Anleitung :

- Bei Linux verwenden Sie den Befehl „chmod“, um die Dateiberechtigungen erneut festzulegen.
- Bei Windows nur das Attribut „schreibgeschützt“ in den Dateien entfernen.

Löschen Sie dann die index_*.tar-Dateien und konfigurieren Sie das Repository so, dass es im Konsistenzprüfungs- / Fixierungsmodus gestartet wird (für Repository und Lucene-Suchindex). Wenn keine Fehler gefunden werden, entfernen Sie die Konsistenzprüfung / -behebung für den nächsten Start, um schneller zu sein.

Adobe-Logo

Bei Ihrem Konto anmelden