2

We're attempting to rebuild our reporting database in order process historical data from Mongo. This has failed on us several times. This time we were able to catch the error message: ERROR Failed Rebuild - history processing. AggregationType: Automation. Error: Aggregation task was not found.

It comes right after a couple of failed SQL calls, invalid object errors for the FormFieldValues and Fact_FormEvents tables. We've confirmed that these tables don't exist in our database. I'm not entirely convinced fixing that will fix our aggregation issues though, as those errors occur numerous times during the process without it bombing out (we're still going to fix that issue, though, obviously).

Anyone have any experience with this?

Our installation is 8.1u3 with the WFFM module.

edit: adding more error details

We don't have a stack trace, per se, but here's the context at least:

12176 09:57:19 ERROR Exception when storing an aggregation result into reporting database. Item will be postponed and retried later.
Exception: System.Data.SqlClient.SqlException
Message: Invalid object name 'Fact_FormEvents'.
Source: .Net SqlClient Data Provider
   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite)
   at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite)
   at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   at Sitecore.Analytics.Aggregation.SqlReportingStorageProvider.Commit(SqlDataApi api, IReportingStorageItemBatch batch, Func`2 filter)
   at Sitecore.Analytics.Aggregation.SqlReportingStorageProvider.<>c__DisplayClass6.<StoreBatch>b__1()
   at Sitecore.Data.DataProviders.NullRetryer.ExecuteNoResult(Action action, Action recover)
   at Sitecore.Analytics.Aggregation.SqlReportingStorageProvider.Store(IReportingStorageItemBatch batch)
12408 09:57:21 ERROR Failed Rebuild - history processing. AggregationType: Automation. Error: Aggregation task was not found.

Note that the stack trace there is for a separate but possibly related error (the failed SQL calls I mentioned previously). The aggregation error itself doesn't provide any more detail than that.

edit 2: aggregation processors from the showconfig.aspx

<interactions>
    <processor type="Sitecore.Analytics.Aggregation.Pipeline.TrafficProcessor, Sitecore.Analytics.Aggregation" />
    <processor type="Sitecore.Analytics.Aggregation.Pipeline.ValueBySourceProcessor, Sitecore.Analytics.Aggregation" />
    <processor type="Sitecore.Analytics.Aggregation.Pipeline.PageViewsProcessor, Sitecore.Analytics.Aggregation" />
    <processor type="Sitecore.Analytics.Aggregation.Pipeline.ValueByBusinessUnitProcessor, Sitecore.Analytics.Aggregation" />
    <processor type="Sitecore.Analytics.Aggregation.Pipeline.VisitsProcessor, Sitecore.Analytics.Aggregation" />
    <processor type="Sitecore.Analytics.Aggregation.Pipeline.FailuresProcessor, Sitecore.Analytics.Aggregation" />
    <processor type="Sitecore.Analytics.Aggregation.Pipeline.ConversionsProcessor, Sitecore.Analytics.Aggregation" />
    <processor type="Sitecore.Analytics.Aggregation.Pipeline.DownloadsProcessor, Sitecore.Analytics.Aggregation" />
    <processor type="Sitecore.Analytics.Aggregation.Pipeline.SiteSearchesProcessor, Sitecore.Analytics.Aggregation" />
    <processor type="Sitecore.Analytics.Aggregation.Pipeline.FollowHitsProcessor, Sitecore.Analytics.Aggregation" />
    <processor type="Sitecore.Analytics.Aggregation.Pipeline.SlowPagesProcessor, Sitecore.Analytics.Aggregation" />
    <!-- Aggregators for indexing experience data -->
    <processor type="Sitecore.ContentSearch.Analytics.Aggregators.AnalyticsVisitAggregator, Sitecore.ContentSearch.Analytics" patch:source="Sitecore.ContentSearch.Analytics.config">
        <param desc="name">VisitAggregationObservable</param>
    </processor>
    <processor type="Sitecore.ContentSearch.Analytics.Aggregators.AnalyticsVisitPageAggregator, Sitecore.ContentSearch.Analytics" patch:source="Sitecore.ContentSearch.Analytics.config">
        <param desc="name">VisitPageAggregationObservable</param>
    </processor>
    <processor type="Sitecore.ContentSearch.Analytics.Aggregators.AnalyticsVisitPageEventAggregator, Sitecore.ContentSearch.Analytics" patch:source="Sitecore.ContentSearch.Analytics.config">
        <param desc="name">VisitPageEventAggregationObservable</param>
    </processor>
    <processor type="Sitecore.ContentSearch.Analytics.Aggregators.AnalyticsContactAggregator, Sitecore.ContentSearch.Analytics" patch:source="Sitecore.ContentSearch.Analytics.config">
        <param desc="name">ContactAggregationObservable</param>
    </processor>
    <processor type="Sitecore.ContentSearch.Analytics.Aggregators.AnalyticsContactTagAggregator, Sitecore.ContentSearch.Analytics" patch:source="Sitecore.ContentSearch.Analytics.config">
        <param desc="name">ContactTagAggregationObservable</param>
    </processor>
    <processor type="Sitecore.ContentSearch.Analytics.Aggregators.AnalyticsAddressAggregator, Sitecore.ContentSearch.Analytics" patch:source="Sitecore.ContentSearch.Analytics.config">
        <param desc="name">AddressAggregationObservable</param>
    </processor>
    <processor type="Sitecore.PathAnalyzer.Pipelines.Interactions.TreeProcessor, Sitecore.PathAnalyzer" patch:source="Sitecore.PathAnalyzer.Processing.config">
        <LivePool ref="aggregationProcessing/processingPools/pathAnalyzerLive" />
        <HistoryPool ref="aggregationProcessing/processingPools/pathAnalyzerHistory" />
    </processor>
    <processor type="Sitecore.WFFM.Analytics.Aggregation.Processors.FormSummary.FormSummaryProcessor, Sitecore.WFFM.Analytics" patch:source="Sitecore.WFFM.Analytics.config" />
    <processor type="Sitecore.WFFM.Analytics.Aggregation.Processors.FormEvents.FormEventsProcessor, Sitecore.WFFM.Analytics" patch:source="Sitecore.WFFM.Analytics.config" />
    <processor type="Sitecore.WFFM.Analytics.Aggregation.Processors.FormStatisticsByContact.FormStatisticsByContactProcessor, Sitecore.WFFM.Analytics" patch:source="Sitecore.WFFM.Analytics.config" />
    <processor type="Sitecore.ContentTesting.Analytics.Aggregation.Pipeline.MvTestingProcessor, Sitecore.ContentTesting" patch:source="Sitecore.ContentTesting.Processing.Aggregation.config" />
    <processor type="Sitecore.ContentTesting.Analytics.Aggregation.Pipeline.MvTestingDetailsProcessor, Sitecore.ContentTesting" patch:source="Sitecore.ContentTesting.Processing.Aggregation.config" />
    <processor type="Sitecore.ContentTesting.Analytics.Aggregation.Pipeline.TestPageClicksProcessor, Sitecore.ContentTesting" patch:source="Sitecore.ContentTesting.Processing.Aggregation.config" />
    <processor type="Sitecore.ContentTesting.Analytics.Aggregation.Pipeline.TestConversionsProcessor, Sitecore.ContentTesting" patch:source="Sitecore.ContentTesting.Processing.Aggregation.config" />
    <processor type="Sitecore.ContentTesting.Analytics.Aggregation.Pipeline.PageViewsByLanguageProcessor, Sitecore.ContentTesting" patch:source="Sitecore.ContentTesting.Processing.Aggregation.config">
        <DateTimePrecision type="Sitecore.Analytics.Aggregation.Data.DateTimeDayPrecisionStrategy, Sitecore.Analytics.Aggregation" />
    </processor>
    <processor type="Sitecore.ContentTesting.Analytics.Aggregation.Pipeline.PersonalizationProcessor, Sitecore.ContentTesting" patch:source="Sitecore.ContentTesting.Processing.Aggregation.config" />
    <processor type="Sitecore.ContentTesting.Analytics.Aggregation.Pipeline.PersonalizationRulesExposure, Sitecore.ContentTesting" patch:source="Sitecore.ContentTesting.Processing.Aggregation.config" />
    <!-- The pipeline processor is building Facts and Dimensions for each segment registered in Experience Analytics -->
    <processor type="Sitecore.ExperienceAnalytics.Aggregation.Pipeline.SegmentProcessor, Sitecore.ExperienceAnalytics" patch:source="Sitecore.ExperienceAnalytics.Aggregation.config" />
</interactions>
  • check this article kb.sitecore.net/articles/977445 Good luck, Naim – Naim Alkouki Nov 27 '17 at 21:10
  • You need to have those aggregation pipelines to be fixed. The reason is because this is executed sequentially. So, if one gets an error, the other aggregations will not be executed – Hishaam Namooya Nov 28 '17 at 13:49
  • If you have a complete stack trace, please edit your post to include that. – Dmytro Shevchenko Nov 29 '17 at 14:20
  • We don't have a stack trace on the aggregation error, but I've added a bit of context. – Michael Smith Nov 29 '17 at 15:01
  • Can you share the different aggregation processors that you have. It is at the following xpath: pipelines -> group groupName="analytics.aggregation" -> pipelines -> interactions – Hishaam Namooya Nov 29 '17 at 15:49
3

Brief Problem Description

When data have been captured in the MongoDB, on session end, data will be aggregated to the reporting database through Aggregation Pipelines.

Issue

Your issue is with the following pipelines:

<processor type="Sitecore.WFFM.Analytics.Aggregation.Processors.FormSummary.FormSummaryProcessor, Sitecore.WFFM.Analytics" patch:source="Sitecore.WFFM.Analytics.config" />
<processor type="Sitecore.WFFM.Analytics.Aggregation.Processors.FormEvents.FormEventsProcessor, Sitecore.WFFM.Analytics" patch:source="Sitecore.WFFM.Analytics.config" />
<processor type="Sitecore.WFFM.Analytics.Aggregation.Processors.FormStatisticsByContact.FormStatisticsByContactProcessor, Sitecore.WFFM.Analytics" patch:source="Sitecore.WFFM.Analytics.config" />

As you already specified in the question that you don't have the tables

  • Fact_FormEvents
  • FormFieldValues

This is because you did not execute the SQL script to create them.

Solution

Navigate to the [site root]\Website\Data\ and execute the WFFM_Analytics.sql on the reporting database. This will create the required tables.

  • We did this yesterday and kicked off another rebuild. Last one took ten days to fail, so it'll be awhile before I have a response. Hoping this turns out to be the cause. Thanks! I'll mark this as the answer once I can confirm that it works. – Michael Smith Nov 30 '17 at 14:43
  • Failed again. We're still getting errors about one of the tables (Fact_FormSummary), but it exists and contains data and the errors continue after the process failed, so I don't think they're related. – Michael Smith Dec 7 '17 at 18:43
  • Try to clear the data from the fact_formsummary or remove the pipeline – Hishaam Namooya Dec 7 '17 at 18:48
0

Michael- can you please go through this document and check the basic configurations are in place? sometimes a small configuration issue can create big problems.

https://doc.sitecore.net/sitecore_experience_platform/81/setting_up_and_maintaining/xdb/server_considerations/walkthrough_rebuilding_the_reporting_database

  • That's the exact document we've been following for this procedure. – Michael Smith Nov 29 '17 at 14:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.