The Perspectium DataSync Agent (previously Replicator Agent) requires that you have the following user permission, system, network, and Java version specifications shown below.


System

System Requirements
Memory8GB minimum
Processor Cores4 minimum
Hard Disk Space

100GB minimum

(info) NOTE: The DataSync Agent will only run if 100GB of space is available on the partition that the Agent is installed on

Network InterfaceGigE

If deploying in an AWS environment, we recommend using a m5.xlarge EC2 general purpose instance and general purpose SSD (gp2) EBS volume type is suitable for the Agent to run.


Supported Operating Systems

The following operating systems are supported by the Agent:

OSVersion
Windows Professional/Home 7+

Server 2012+
Linux*Red Hat 6+

Ubuntu 14.04+

CentOS 6+

*Linux requires superuser access (sudo) to install the Agent and run it as a service.

The versions of Linux specified above have been tested to work with the Agent.  Other versions with equivalent Linux kernel and meeting the other requirements above (System, Java, etc.) may also be able to run the Agent. Please contact Perspectium Suppport for more information.


Network

The DataSync Agent requires outbound access to the Perspectium Integration Mesh and its MBS cloud service as well as your ServiceNow instance. Your firewall settings will need to allow this outbound traffic in order for the Agent to connect to our cloud service and your ServiceNow instance to properly read data.

This can be through any one of the following three ports: AMQP, AMQPS, or HTTPS. You will specify which protocol you will be using through the URL of the <message_connection>.


Network Requirements
AMQPS Outbound PortTCP/5671 outbound to your Perspectium MBS (amqps://example.perspectium.net)
AMQP Outbound PortTCP/5672 outbound to your Perspectium MBS (amqp://example.perspectium.net)
HTTPS Outbound PortTCP/443 outbound to your Perspectium MBS (https://example.perspectium.net)
HTTPS Outbound PortTCP/443 outbound to your ServiceNow instance



Java

Both 32 and 64 bit versions of Java are supported. The Java version must be Java 8 or higher. As of the Fluorine release, Java versions 9 and 10 are supported. It's strongly recommended that you use a server type JVM instead of a client or desktop version. Both Java and OpenJDK are supported.

DataSync Agent versionJava 7 & earlierJava 8Java 9Java 10Java 11Java 12Java 13Java 14-18
Argon & earlier(error)(tick)(error)(error)(tick)


Bismuth(error)(tick)(error)(error)(tick)


Carbon(error)(tick)(error)(error)(tick)


Dubnium(error)(tick)(error)(tick)(tick)


Europium(error)(tick)(tick)(tick)(tick)


Fluorine(error)(tick)(tick)(tick)(tick)


Fluorine Plus(error)(tick)(tick)(tick)(tick)


Gold(error)(tick)(tick)(tick)(tick)(tick)(tick)(tick)^

^Only supported with Gold 5.0.9 and newer.  

(info) NOTE: These versions of Java have been tested to work with the DataSync Agent. Newer versions may also be able to run the Agent. We typically provide support for the latest version of Java with our next Agent release that follows the Java version's general release date.

You can determine that Java is in your current path and the version by issuing the following command from the command prompt:

java -version

Make note of the path to Java. One way to determine the path to Java on most linux is to issue the following command:

which java

On Windows this is typically located in the following:

C:\Program Files \Java\…

Verify that Java is in your PATH system (environment) variable as some installations of Java may not add it properly. If it is not there, add the path of the JRE's bin direct as indicated here.



ServiceNow

The DataSync Agent requires a ServiceNow user in order to access the ServiceNow table schemas you share.  This user you specify must be a local user in the ServiceNow instance (i.e. it cannot be a SSO user) that is given at minimum the perspectium role and has permissions to invoke a processor.



Supported Databases

DatabaseVersion
Oracle^11g, 12c Release 1: 12.1 - 12.2
SQL Server (MSSQL)2010 - 2019
MySQL5.6 - 8.X.X
SAP HanaSPS 12
Amazon Redshift4.0-4.1
Amazon Aurora (MySQL compatible)N/A
IBM DB211
HP Vertica8.0 - 9.21
PostgreSQL9.6
Snowflake2.0 - 3.9
Microsoft Azure SQL12.X

^For Oracle, the Agent requires six open cursors per ServiceNow table to be replicated as it uses prepared statements to ensure the most efficient processing possible. For each operation per table (insert, update, delete, query metadata) we use a prepared statement which is reused whenever the next similar operation needs to be executed against the same table. Each of these prepared statements uses a cursor.  If we didn't use an open cursor, every transaction would be very inefficient because the Agent would need to re-establish the client/server connection and query the structure each time. 

If deploying an AWS RDS instsnce, we recommend using the m5.xlarge general purpose instance with a bandwidth of 4000 IOPS and 500GB of storage space. To really measure your bandwidth requirements, contact support@perspectium.com as we will work with you to understand how many records you plan to share a day during the initial seeding phase and the daily volume expected after the initial seeding to really know what the bandwidth needed is.


Database User Permissions

For integrating with a database, the following are the required permissions the DataSync Agent must have.

(info) NOTE: It is recommended that the Agent be the only one writing data to this database to avoid conflicts with the Agent accessing tables it did not create and/or do not match the schema definitions as the source (such as ServiceNow).

PermissionDescription
Create a new database 

After installation has been performed and the DataSync Agent is started, the Agent establishes a connection to the database server using the credentials configured. 

This task must be completed successfully before the Agent will proceed with subsequent processing. Once the connection has been established, the Agent will attempt to create the configured database.

This step requires that the configured user has the proper permissions to create a new database. If this is not the case then an error will occur. As an alternative, the required database can be created by something or someone other than the Agent. When this approach is taken you add the configuration directive <skip_database_creation/> to the configuration and the Agent will not attempt to create the database since this tell the Agent that the database already exists.

Create tables within defined databases

Once replicated data is available, the Agent will determine if the table associated with the replicated data exists, and if not, the Agent will create it. This means that the configured user must have the permissions required to create tables within the defined database.

Query database and associated tables and update data in existing tablesWhen you share out data to be consumed by the DataSync Agent, you'll typically specify whether the data is being shared in bulk or dynamically. When the data is shared in bulk and based on how the Agent has been configured, it will typically perform a query in order to determine if the row already exists in the database. The Agent must therefore have permission to query the database and the associated tables. If the Agent determines that the row already exist then it performs an update, otherwise it will insert the row. The Agent must have permission to perform both these actions.
Insert data into tables

Once the required table has been created the Agent will perform an insert in order to populate the table with the replicated row. This means that the Agent must have the permissions to perform an insert into the table.

Alter table

The Agent wants to ensure that all data is replicated. It's possible that the structure of the source table has changed.

For example, an additional column has been added to the table or the size of a column has been increased. The Agent performs the analysis required to make this determination and by default will alter the table in order to align it with the source table. Currently, Perspectium supports adding a column and increasing the size of a text or character type column to the maximum. Additionally, if the database supports it, a text or character type column can be modified to a larger type of text or character column. Currently, Perspectium does not support altering from one type to another such as a text or character type being modified to an integer or an integer to a float etc.. The Agent must therefore have the permissions to alter the table.

(info) NOTE: It is possible to constrain the Agent from altering tables by including the <skip_alter/> directive within the SQL Subscribers <task> definition.

Delete table rowIn order to support the deletion of rows from a table, the database user must also have permission to delete a table row