Fix for ALF-2329: Parameter to automatically remove the existing index directories before doing a FULL re-index

- full reindex now deletes any existing DM and AVM indexes
- the index directory is tidied up int eh backround which may take some time
- includes fix to check async snapshots are in the index (it was checking sync twice ...)

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@19922 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Andrew Hind
2010-04-20 16:51:17 +00:00
parent d74f934789
commit 2861feadb6
10 changed files with 160 additions and 1 deletions

View File

@@ -32,6 +32,7 @@ import org.alfresco.repo.node.index.IndexTransactionTracker.IndexTransactionTrac
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
import org.alfresco.service.cmr.repository.ChildAssociationRef;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.StoreRef;
import org.alfresco.service.cmr.repository.NodeRef.Status;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -318,6 +319,21 @@ public class FullIndexRecoveryComponent extends AbstractReindexComponent
private static final int MAX_TRANSACTIONS_PER_ITERATION = 1000;
private void performFullRecovery()
{
RetryingTransactionCallback<Void> deleteWork = new RetryingTransactionCallback<Void>()
{
public Void execute() throws Exception
{
// delete stores
for(StoreRef storeRef : nodeService.getStores())
{
indexer.deleteIndex(storeRef);
}
return null;
}
};
transactionService.getRetryingTransactionHelper().doInTransaction(deleteWork, true, true);
int txnCount = nodeDaoService.getTransactionCount();
// starting
String msgStart = I18NUtil.getMessage(MSG_RECOVERY_STARTING, txnCount);