1. SnowMirror Requirements

SnowMirror is a Java based application, designed to mirror data from tables in Salesforce into your local database. This mirroring process is done using Salesforce’s SOAP API and Bulk API.

snowmirror diagram arch

What you need:
- Salesforce Instance
- Salesforce User with sufficient Rights
- Server with one of supported operating systems - Supported platforms
- Database into which all mirrored data will be stored

1.1. Salesforce

For ideal communication between Salesforce and SnowMirror we recommend you to set up authentication credentials with sufficient rights.

1.1.1. User Access Rights

SnowMirror application communicates with Salesforce via Web Services. We are using API library provided by Salesforce itself. It contains Partner API for synchronous calls and Bulk API for asynchronous calls. This library needs Authentication credentials which can be set in Settings (see Salesforce settings).

1.2. Application Requirements

SnowMirror is a Java web application, meaning it runs centrally on a server, and users interact with it throughout web browser from any computer.

1.2.1. Hardware

SnowMirror runs on any reasonably fast PC. See the minimal recommended hardware configuration.

  • Dual core CPU (Intel or AMD)

  • 2GB RAM

  • 1GB HDD for installation

  • Additional 5GB for log files

These requirements expect that only SnowMirror runs on that machine. You will need to run separate database server for mirror database. Of course you may use your existing infrastructure for that database.

Estimating required storage space

SnowMirror keeps a log of all activities - the estimated storage required for these logs is around 80MB per year.

SnowMirror also creates separate activity log for each synchronization run. The storage required for these logs vary depending on how many synchronizations you have, how often you synchronize them and how many records are being synchronized. Naturally, the longer you use SnowMirror more space for logs is required. See the examples below.

Table 1. Examples of required storage for activity logs
Amount of data Estimated storage required per year

Big (~150,000 updated records) synchronization every day

~ 45 MB per year

Big (~150,000 updated records) synchronization every hour

~ 1 GB per year

Smaller (~10,000 updated records) synchronization every day

~ 3 MB per year

Smaller (~10,000 updated records) synchronization every day

~ 72 MB per year

Then the total storage required per year can be calculated as:

Storage per year = 80MB + (number of big daily synchronizations * 45)MB + (number of small daily synchronizations * 3)MB + (number of big hourly synchronizations * 1000)MB + (number of small hourly synchronizations * 72)MB

1.2.2. Java

Java is a piece of software that has to be installed on your computer. SnowMirror does not work without it. It requires Java 1.8 or newer.

On Windows, an up-to-date version of Java is included in the installation package. On Linux or Mac, you have to install it yourself.

1.2.3. Application server

SnowMirror runs on Apache Tomcat web server which is included in the installation package. We upgrade the Tomcat to the latest version on a regular basis.

It is possible to run SnowMirror on other container (JBoss, GlassFish, etc.). The container must support Serverlet 3.0 specification.

1.2.4. Databases

SnowMirror uses two databases.

  • Configuration database - stores metadata, i.e. what to synchronize, when to synchronize, etc.

  • Mirror database - stores data mirrored from Salesforce

Each database can use different database management system, for more information see Database Configuration section.

Supported databases:

• Oracle (version 11g and newer)
• MySQL (version 5.5 and newer, including community version - MariaDB)
• Microsoft SQL Server (2008 and newer)
• PostgreSQL (version 9.2 and newer)
• H2 (embedded - currently using 1.3.172 release)

1.2.5. Browser

SnowMirror runs on all modern web browsers such as Google Chrome, Mozilla Firefox and Internet Explorer 8 or higher.

1.2.6. Supported platforms

SnowMirror is operating system agnostic. It can run on any system which supports Java.

Supported platforms:
• Microsoft Windows XP 32/64 bit
• Microsoft Windows 7 32/64 bit
• Microsoft Windows 10 32/64 bit
• Microsoft Windows Server 2003 32 bit
• Microsoft Windows Server 2008 R2 64 bit
• Microsoft Windows Server 2012 R2 64 bit
• Linux

2. Installing SnowMirror

SnowMirror can be installed either using Windows Installer or manually from a ZIP package. Using the Windows Installer is the most easiest and straightforward way to install and configure SnowMirror. On Linux you have to do the installation and configuration manually.

2.1. Prerequisites

You need two databases on your database server - configuration database and mirror database. See Database Configuration chapter.

If you don’t have the databases yet, you can use H2 database which is embedded into SnowMirror. This will give you an opportunity to test SnowMirror even before your database administrators create the databases for you. Just note, that H2 is not suitable for production environment.

2.2. Windows Installer

2.2.1. Express installation

  1. Run the Installer - Go to a location to where you downloaded SnowMirror installation file and run it.

  2. First Step - Simply click next.

    winInstaller firstStep
  3. License Agreement - Please go through a license agreement and then confirm by clicking on "I agree".

    winInstaller licenseAgreement
  4. Selecting the action - Select "Express Install" option and click next.

    winInstaller choosingtheaction express
  5. Summary - Here you can see summary. It shows installation location, used ports windows service and such.

    winInstaller express summary
  6. Installing - Window with a progress bar.

    winInstaller installing
  7. Finish - Final screen. After clicking on "Finish", your default browser will be opened and application itself will load.

    winInstaller finish

2.2.2. Custom installation

  1. Run the Installer - Go to a location to where you downloaded SnowMirror installation file and run it.

  2. First Step - Simply click next.

    winInstaller firstStep
  3. License Agreement - Please go through a license agreement and then confirm by clicking on "I agree".

    winInstaller licenseAgreement
  4. Selecting the action - Select "Custom Install" option and click next.