6

I'm installing the EXM 3.5 initial release in a recent upgraded Sitecore 8.2 update 5 (from update 2), and I am mentioning that because I had to set Xdb.Enabled and Xdb.Tracking.Enabled to false in order to achieve the upgrade, despite the fact I have not configured any MongoDB yet.

Once I get the Sitecore 8.2 Update 5, I started the process to install the EXM 3.5 and completely forgot to back both Xdb parameters to true, which result in the following error

Exception: System.InvalidOperationException Message: Cannot use DataAdapterProvider as xDB is disabled. Source: Sitecore.Analytics.DataAccess at Sitecore.Analytics.DataAccess.DataAdapterProvider..ctor(Boolean checkXdb) at Sitecore.Analytics.Data.DataAccess.MongoDb.MongoDbDataAdapterProvider..ctor(Func2 driverFactory)

Well, looks like xDB is disabled and changed both Xdb parameters to true, then Sitecore complained about not finding ConnectionStrings related to Mongo because they were commented - as I have not configured MongoDB yet.

That being said, I have uncommented and left as mongodb://localhost/analytics, and so on for the rest of MongoDB but keep in mind that I DO NOT have MongoDB on this server, then I tried to install EXM again but it is being an hour already since I started and it keeps spinning the Installing but never finishes

enter image description here

Sitecore logs show as follow

148 13:00:20 ERROR Exception when executing agent aggregation/automationAggregator Exception: System.TimeoutException Message: A timeout occured after 30000ms selecting a server using CompositeServerSelector{ Selectors = WritableServerSelector, LatencyLimitingServerSelector{ AllowedLatencyRange = 00:00:00.0150000 } }. Client view of cluster state is { ClusterId : "1", ConnectionMode : "Automatic", Type : "Unknown", State : "Disconnected", Servers : [{ ServerId: "{ ClusterId : 1, EndPoint : "Unspecified/localhost:27017" }", EndPoint: "Unspecified/localhost:27017", State: "Disconnected", Type: "Unknown", HeartbeatException: "MongoDB.Driver.MongoConnectionException: An exception occurred while opening a connection to the server. ---> System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it 127.0.0.1:27017 at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory1.FromAsyncCoreLogic(IAsyncResult iar, Func2 endFunction, Action1 endAction, Task1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at MongoDB.Driver.Core.Connections.TcpStreamFactory.<ConnectAsync>d__7.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at MongoDB.Driver.Core.Connections.TcpStreamFactory.<CreateStreamAsync>d__4.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at MongoDB.Driver.Core.Connections.BinaryConnection.<OpenHelperAsync>d__48.MoveNext() --- End of inner exception stack trace

6
  • Is MongoDB process running? It can either be installed as a windows service or started in a console.
    – grg
    Commented Nov 7, 2017 at 13:35
  • I may have to edit the question but I don't have MongoDB at all. Commented Nov 7, 2017 at 13:37
  • MongoDB is needed for Exm. One of the usages of MongoDB is to store interactions that are created when someone clicks a link in an email. However, in your case the message mentions automationAggregator which is used for engagament plans.
    – grg
    Commented Nov 7, 2017 at 13:41
  • You can use things like mLabs instead of MongoDb. With Sitecore 9, CosmosDB is supported. Also, keep in mind, if you have a valid connectionstring for Mongo, but there is no server to listen, threads may pile up and your instance's performance will deteriorate severely. Commented Nov 7, 2017 at 21:16
  • 1
    Quick note. COSMOS DB is NOT supported in 9.x kb.sitecore.net/articles/682999 <br/>Regards Anthony Product Strategy // Sitecore Commented Nov 8, 2017 at 6:55

3 Answers 3

12

As EXM does not support CMS-only mode, xDB is required to run EXM. See the documentation on all the components that require xDB.

When you send an email campaign, the Email Experience Manager (EXM) creates an interaction in the Sitecore Experience Database (xDB) for each of the following email events:

Sent – one interaction for every sent email message.

Opened – one interaction when a contact opens an email message. Each interaction will have one "Email Opened" page event, and, if it's the first time the contact has opened the email campaign, an "Email Opened First Time" page event.

Clicked – one interaction when a contact clicks a link in the email message. Each interaction will have one "Click Email Link" page event for every unique link in the email campaign, and, if it's the first time the link is clicked by the contact, an additional "First Click Email Link" page event.

Bounced – one interaction when an email message bounces.

Unsubscribed – one interaction when a contact unsubscribes from an email message.

Spam – one interaction when a contact marks the email message as spam.

this has been extracted from the official documentation

5

When you try to install a module or a package on Sitecore and it keeps 'installing' forever generally it means the Analytics (or specifically MongoDB) is not running.

Some configuration file have not been properly updated.

Try to compare your configuration files to another solution running with same Sitecore version.

4

CMS-Only mode is incompatible with EXM. One of the usages of MongoDB is to store interactions that are created when someone clicks a link in an email. However, in your case the message mentions automationAggregator which is used for engagement plans.

MongoDB can be run as a windows service or process in a console.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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