Run RavenDB as an external application
When you install Ucommerce we will include and run an embedded version of RavenDB to accommodate search and faceted search. In more advanced setups where you want to scale your application to run in multiple instances, the embedded version won't do. In that case, you need to separate your RavenDB instance and your site. You can have RavenDB running as either an IIS application or a Windows service that accepts incoming requests on URLs.
Our recommendation is to have RavenDB running as a Windows service. Fortunately deployment of RavenDB is the only thing we need to care about. From a technical point of view we don't have to care if it is running embedded, as an IIS application or a Windows service.
To separate RavenDB from your website you need to:
Download the latest version of RavenDB version 2.x.
Deploy RavenDB as a Windows service following this article:
How to deploy RavenDB as a Windows service
Or if you prefer you can deploy it as an IIS application instead
How to deploy RavenDB as an IIS application
Last but not least you need to configure Ucommerce to connect to an external RavenDB instance instead of the embedded version.
Configuring Ucommerce
Ucommerce comes with two providers for RavenDB, one for the embedded version and one for connecting to an IIS version. Out of the box, the embedded one will be used. To change that, simply take the version of the component "SearchSessionProvider" and place it in custom.config The component is located in search.config under:
- "/sitecore modules/Shell/uCommerce/Apps/RavenDB30" for Sitecore
- "/Umbraco/ucommerce/Apps/RavenDB30" for Umbraco
- "/CMSModules/UCommerce/Apps/RavenDB30" for Kentico
- "/UCommerce/Apps/RavenDB30" for Sitefinity
<component id="SearchSessionProvider" service="UCommerce.RavenDB30.Search.IRavenDbStoreProvider, UCommerce.RavenDB30" type="UCommerce.RavenDB30.Search.RavenDbIisStoreProvider, UCommerce.RavenDB30"> <parameters> <DatabaseName>uCommerce</DatabaseName> <Url>http://ravendb/</Url> </parameters> </component>
Now you need to provide a database name and a URL. The database name could be Ucommerce, but is a wild card and can basically be anything. RavenDB will automatically create the database if it doesn't exists. The URL needs to point to the binding of the website or the hostname configured for the Windows service as described in the articles above.
You are all set and should now be able to connect to an external RavenDB instead of the default embedded version as provided out of the box.
RavenDB License
To get the Ucommerce RavenDB license you will have to write us at [email protected].
After you receive the license file, all you need to do is place it in the root of the folder where RavenDB is deployed.