mirror of
https://github.com/Alfresco/SearchServices.git
synced 2026-09-16 18:12:56 +00:00
SEARCH-2112: When using Shard DB_ID_RANGE method, check firstTransaction only when Shard is not empty.
This commit is contained in:
+27
-22
@@ -278,30 +278,35 @@ public class MetadataTracker extends CoreStatePublisher implements Tracker
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
firstTransactions = client.getTransactions(minCommitTime, 0L, null, Long.MAX_VALUE, 1);
|
// When a Shard with DB_ID_RANGE method is empty, minCommitTime is -1.
|
||||||
if (!firstTransactions.getTransactions().isEmpty())
|
// No firstTransaction checking is required for this case.
|
||||||
{
|
if (minCommitTime != -1l) {
|
||||||
Transaction firstTransaction = firstTransactions.getTransactions().get(0);
|
|
||||||
long firstTxId = firstTransaction.getId();
|
|
||||||
long firstTransactionCommitTime = firstTransaction.getCommitTimeMs();
|
|
||||||
int setSize = this.infoSrv.getTxDocsSize(""+firstTxId, ""+firstTransactionCommitTime);
|
|
||||||
|
|
||||||
if (setSize == 0)
|
firstTransactions = client.getTransactions(minCommitTime, 0L, null, 2000l, 1);
|
||||||
|
if (!firstTransactions.getTransactions().isEmpty())
|
||||||
{
|
{
|
||||||
log.error("First transaction was not found with the correct timestamp.");
|
Transaction firstTransaction = firstTransactions.getTransactions().get(0);
|
||||||
log.error("SOLR has successfully connected to your repository however the SOLR indexes and repository database do not match.");
|
long firstTxId = firstTransaction.getId();
|
||||||
log.error("If this is a new or rebuilt database your SOLR indexes also need to be re-built to match the database.");
|
long firstTransactionCommitTime = firstTransaction.getCommitTimeMs();
|
||||||
log.error("You can also check your SOLR connection details in solrcore.properties.");
|
int setSize = this.infoSrv.getTxDocsSize(""+firstTxId, ""+firstTransactionCommitTime);
|
||||||
throw new AlfrescoRuntimeException("Initial transaction not found with correct timestamp");
|
|
||||||
}
|
if (setSize == 0)
|
||||||
else if (setSize == 1)
|
{
|
||||||
{
|
log.error("First transaction was not found with the correct timestamp.");
|
||||||
state.setCheckedFirstTransactionTime(true);
|
log.error("SOLR has successfully connected to your repository however the SOLR indexes and repository database do not match.");
|
||||||
log.info("Verified first transaction and timestamp in index");
|
log.error("If this is a new or rebuilt database your SOLR indexes also need to be re-built to match the database.");
|
||||||
}
|
log.error("You can also check your SOLR connection details in solrcore.properties.");
|
||||||
else
|
throw new AlfrescoRuntimeException("Initial transaction not found with correct timestamp");
|
||||||
{
|
}
|
||||||
log.warn("Duplicate initial transaction found with correct timestamp");
|
else if (setSize == 1)
|
||||||
|
{
|
||||||
|
state.setCheckedFirstTransactionTime(true);
|
||||||
|
log.info("Verified first transaction and timestamp in index");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
log.warn("Duplicate initial transaction found with correct timestamp");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user