Skip to content

Connection Profile 3.4

Giles Lewis edited this page Jul 20, 2024 · 2 revisions

Connection Profile

The Connection Profile is a properties file that contains credentials for connecting to ServiceNow and to the SQL Database and other settings that control the behavior of the loader.

The file is specified with the -p command line option.

java -jar sndm-3.n.n-mysql.jar -p profile -y yamlfile

The Connection Profile looks like this:

servicenow.instance=dev00000
servicenow.username=admin
servicenow.password=secret

datamart.url=jdbc:mysql://localhost/sndm
datamart.schema=sndm
datamart.username=admin
datamart.password=secret

Database Schema

Prior to 3.2 datamart.schema was optional. As of 3.2 it is recommended that datamart.schema always be specified in the connection profile. Problems can occur if the database server contains tables with the same name in different schemas. The value of datamart.schema will vary based on the DBMS.

  • For MySQL, datamart.schema should be the name of the database
  • For Oracle, datamart.schema should be the name of the user
  • For Microsoft SQL Server, datamart.schema should be dbo
  • For SQLite, datamart.schema should be main

As of 3.4.4 you can omit username, password and schema if your database is SQLite. You only need to provide a URL.

Variable Substitution

As of 3.1.2 the loader will interpolate environment variables using the notation ${varname}. For example, if the environment variable SNDML_CONFIG has been defined, then you can do something like this:

loader.metrics_folder=${SNDML_CONFIG}/metrics

If the entire property value is enclosed in backticks, then it will be passed to Runtime.exec() for evaluation. For example, if you have the LastPass CLI installed in /usr/local/bin, then you may be able to do something like this:

servicenow.password=`/usr/local/bin/lpass show --password my.servicenow.password`
datamart.password=`/usr/local/bin/lpass show --password my.database.password`

Reference

Property Name Added Notes / Description
datamart.dialect 3.0 Specifies a section in the templates file. If not specified, the loader will infer the correct section using the element of the template and the JDBC prefix of the datamart URL.
datamart.password 3.0 Required unless database is SQLite.
datamart.schema 3.0 Recommended. Refer to notes above.
datamart.templates 3.0 The name of an XML file to use for generating SQL statements. If not specified, the loader will use sqltemplates.xml which is embedded in the JAR. For information refer to Templates.
datamart.url 3.0 Required. JDBC URL for the target database. Refer to the documentation for your selected JDBC driver.
datamart.username 3.0 Required unless database is SQLite. User name for the target database.
daemon.agent 3.4.0 Name of the Agent record in the ServiceNow DataPump App. Only applicable for ‑‑scan or ‑‑daemon.
daemon.continue 3.4.0 Controls whether or not the daemon will continue running after encountering an IO error in communication with ServiceNow or the database. If “true” then it writes an error to the log and goes back to sleep. If “false” then it will immediately abort.
daemon.interval 3.4.0 Number of seconds. Controls the daemon polling interval. Only applicable for ‑‑daemon.
daemon.scope 3.4.1 Name of the ServiceNow application scope. Only applicable for ‑‑scan or ‑‑daemon.
daemon.threads 3.4.0 Maximum number of jobs that the daemon can process concurrently. Additional jobs will wait until a thread becomes available.
loader.metrics_folder 3.1.2 The name of a directory where metrics files are located. If not specified, metrics files are assumed to reside in the current working directory. For information refer to Metrics.
loader.warn_on_truncate 3.0 Causes a warning will be written to the log whenever a field is truncated when written to the database. Default is true.
servicenow.domain 3.2 For use in domain separated instances. This can be a single sys_id or a comma separated list of domains. Refer to Domain Separation.
servicenow.instance 3.0 Required. You can specify the ServiceNow instance name (e.g. dev12345) or a URL (e.g. https://dev12345.service-now.com)
servicenow.pagesize 3.4.0 Number of records to be processed at a time if not overridden at the table level. Default is 200.
servicenow.password 3.0 Required.
servicenow.username 3.0 Required.
servicenow.verify_session 3.0 Causes the loader, at startup, to verify that it can connect to ServiceNow by reading the sys_user record of the connecting user. Default is true.
servicenow.verify_timezone 3.1.2 Causes an exception will be thrown if the ServiceNow user time zone is not "GMT". Default is false.
Clone this wiki locally