Foren

Incomplete document library after migration

Pedro Antón González, geändert vor 6 Jahren.

Incomplete document library after migration

New Member Beiträge: 4 Beitrittsdatum: 13.04.17 Neueste Beiträge
Hi,
We are running a Liferay 7.0 GA3 on Linux RedHat, with the document library on filesystem and the metadata on MySQL. Some weeks ago we migrated to a new server. Some time later, we discovered the log catalina.out was showing a few messages like this one:

11:57:57,672 ERROR [liferay/scheduler_dispatch-5][ParallelDestination:55] Unable to process message {destinationName=liferay/scheduler_dispatch, response=null, responseDestinationName=null, responseId=null, payload=null, values={GROUP_NAME=com.liferay.trash.web.internal.messaging.CheckEntryMessageListener, companyId=0, groupId=0, DESTINATION_NAME=liferay/scheduler_dispatch, EXCEPTIONS_MAX_SIZE=0, JOB_STATE=com.liferay.portal.kernel.scheduler.JobState@3e26e2da, STORAGE_TYPE=MEMORY_CLUSTERED, JOB_NAME=com.liferay.trash.web.internal.messaging.CheckEntryMessageListener}}
com.liferay.portal.kernel.messaging.MessageListenerException: com.liferay.document.library.kernel.exception.NoSuchFileEntryException: No FileEntry exists with the key {fileEntryId=43876}
        at com.liferay.portal.kernel.messaging.BaseMessageListener.receive(BaseMessageListener.java:32)
        at com.liferay.portal.kernel.scheduler.messaging.SchedulerEventMessageListenerWrapper.receive(SchedulerEventMessageListenerWrapper.java:65)
        at com.liferay.portal.kernel.messaging.InvokerMessageListener.receive(InvokerMessageListener.java:74)
        at com.liferay.portal.kernel.messaging.ParallelDestination$1.run(ParallelDestination.java:52)
        at com.liferay.portal.kernel.concurrent.ThreadPoolExecutor$WorkerTask._runTask(ThreadPoolExecutor.java:756)
        at com.liferay.portal.kernel.concurrent.ThreadPoolExecutor$WorkerTask.run(ThreadPoolExecutor.java:667)
        at java.lang.Thread.run(Thread.java:745)
Caused by: com.liferay.document.library.kernel.exception.NoSuchFileEntryException: No FileEntry exists with the key {fileEntryId=43876}
        at com.liferay.portal.repository.RepositoryProviderImpl.getFileEntryLocalRepository(RepositoryProviderImpl.java:72)
        at com.liferay.portal.kernel.repository.RepositoryProviderUtil.getFileEntryLocalRepository(RepositoryProviderUtil.java:30)
        at com.liferay.document.library.internal.trash.DLFileEntryTrashHandler.getDocumentRepository(DLFileEntryTrashHandler.java:426)
        at com.liferay.document.library.internal.trash.DLFileEntryTrashHandler.deleteTrashEntry(DLFileEntryTrashHandler.java:102)
        at com.liferay.portlet.trash.service.impl.TrashEntryLocalServiceImpl$1.performAction(TrashEntryLocalServiceImpl.java:167)
        at com.liferay.portlet.trash.service.impl.TrashEntryLocalServiceImpl$1.performAction(TrashEntryLocalServiceImpl.java:142)
        at com.liferay.portal.kernel.dao.orm.DefaultActionableDynamicQuery.performAction(DefaultActionableDynamicQuery.java:396)
        at com.liferay.portal.kernel.dao.orm.DefaultActionableDynamicQuery$1.call(DefaultActionableDynamicQuery.java:305)
        at com.liferay.portal.kernel.dao.orm.DefaultActionableDynamicQuery$1.call(DefaultActionableDynamicQuery.java:269)
        at com.liferay.portal.spring.transaction.TransactionInvokerImpl$CallableMethodInvocation.proceed(TransactionInvokerImpl.java:93)
        at com.liferay.portal.spring.transaction.DefaultTransactionExecutor.execute(DefaultTransactionExecutor.java:85)
        at com.liferay.portal.spring.transaction.TransactionInvokerImpl.invoke(TransactionInvokerImpl.java:39)
        at com.liferay.portal.kernel.transaction.TransactionInvokerUtil.invoke(TransactionInvokerUtil.java:28)
        at com.liferay.portal.kernel.dao.orm.DefaultActionableDynamicQuery.doPerformActions(DefaultActionableDynamicQuery.java:328)
        at com.liferay.portal.kernel.dao.orm.DefaultActionableDynamicQuery.performActions(DefaultActionableDynamicQuery.java:85)
        at com.liferay.portlet.trash.service.impl.TrashEntryLocalServiceImpl.checkEntries(TrashEntryLocalServiceImpl.java:177)
        at sun.reflect.GeneratedMethodAccessor1945.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:153)
        at com.liferay.portal.spring.transaction.DefaultTransactionExecutor.execute(DefaultTransactionExecutor.java:85)
        at com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:58)
        at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:127)
        at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:56)
        at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:127)
        at com.liferay.portal.spring.aop.ServiceBeanAopProxy.invoke(ServiceBeanAopProxy.java:173)
        at com.sun.proxy.$Proxy112.checkEntries(Unknown Source)
        at com.liferay.trash.web.internal.messaging.CheckEntryMessageListener.doReceive(CheckEntryMessageListener.java:58)
        at com.liferay.portal.kernel.messaging.BaseMessageListener.receive(BaseMessageListener.java:26)
        ... 6 more
Caused by: com.liferay.portal.kernel.repository.InvalidRepositoryIdException: No repository associated with file entry 43876
        at com.liferay.portal.repository.RepositoryProviderImpl.getFileEntryRepositoryId(RepositoryProviderImpl.java:402)
        at com.liferay.portal.repository.RepositoryProviderImpl.getFileEntryLocalRepository(RepositoryProviderImpl.java:63)


Despite the fact that no one misses any document (that is, everyone but the administrators are happy), we would like to learn how to solve the issue. From our Liferay site We have access to the entire Document Library, Liferay is working OK, and we suspect that, back in the moment we chose to migrate, we made a "small" mistake that made us copy a Document Library with a small inconsistency with the database, may be a very few files (like there is information on the database about documents that never got exported with the Document library).


We have been searching the forum and the Internet. It seems that no one managed to migrate a Document Library slightly inconsistent with the database. Most (or all) people with this issue/exception only needs to configure the location of the new Document Library.

As no one misses any document, we think the easiest solution would be to discover which database registers refer to innexisten documents, then delete such registers or unregister the innexistent documents.

We suspect we need to perform some kind of consistency check between the document library and the database.

Any suggestions? Please...
thumbnail
Jorge Díaz, geändert vor 6 Jahren.

RE: Incomplete document library after migration

Liferay Master Beiträge: 753 Beitrittsdatum: 09.01.14 Neueste Beiträge
In Liferay 6.2 there are some portlets in marketplace that can be used to check document library inconsistencies:

Perhaps you can have a look to the source code and implement a java development for Liferay 7.0
Pedro Antón González, geändert vor 6 Jahren.

RE: Incomplete document library after migration

New Member Beiträge: 4 Beitrittsdatum: 13.04.17 Neueste Beiträge
We've discovered some weird behaviour that suggests a different approach:
First, we had those errors. Then, we saw some documents into the liferay bin. After some research we concluded the former error message was related to a document in the bin. So we deleted this document and, surprise, the log stopped showing this message error and began showing a new one: same error but different document identifier.
So we kept deleting documents, till the bin was empty. Now we have a clean log.
We plan to add some documents, then place them into de bin, and check if this kind of error message arises anew.