###############################################################################
# The G2 configuration file allows overriding default values for
# various operational settings.
#
# All text following a hash character (#) is considered a comment and
# will be ignored.
#
# Only settings that are overridden need be included; if default
# values are desired the controlling element should be left out of the
# configuration file.
# 
# To configure this file, the following values must be specified
#
# {DataFolder} 
# {DBConnectionString}
#
###############################################################################


###############################################################################
# Main PIPELINE settings
# Used to customize general G2 settings
###############################################################################
[PIPELINE]

 # Support path location for the G2 data files
 # Valid values: any path
 # Default setting: None - must be specified
 SUPPORTPATH={DataFolder}
 
 # Indicates the number of processing threads to be created.
 # Valid values: 1-1024
 # Default setting:1
  CONCURRENCY=1
 
 # Shuts down G2 pipeline if any UMF exception is encountered.
 # Valid values: TRUE/FALSE
 # Default setting:FALSE
  STOPONALLUMFEXCEPTIONS=FALSE

 # Maximum amount of permissible errors for a given ERRORRESETINTERVAL.
 # If the amount of errors encountered exceeds this value, an exception
 # will be thrown and the system will terminate.
 # Valid values: Any integer value. 
 # Default setting:10
  ERRORLIMIT=10

 # Time in seconds to reset the error count
 # Valid values: Any unsigned integer value. 
 # Default setting:1440
  ERRORRESETINTERVAL=1440

 # Default starting size of the node buffer used to communicate with
 # G2Plugins.  This buffer will automatically increase when needed. 
 # Valid values: Any unsigned integer value. 
 # Default setting 4096
  INIT_BUFFER_SIZE=4096

 # Default input transports
 # Valid values: any URI
 # Default setting:
 # INPUTTRANSPORTS=


 ###############################################################################
 # Secure Store settings
 ###############################################################################
 # The secure store feature allows sensitive information such as anonymization
 # salts and database passwords to be locked away in a PKCS #11 security
 # token. G2 can retrieve the sensitive information during
 # startup. Please see the documentation for the secure store and the
 # "ssadm" utility on how to setup a PKCS #11 based secure store.
 #
 # If the secure store is used to store your database passwords then
 # the "connection URL parameter" must use a specific format in the
 # part of the URL reserved for the database password. For example:
 #
 # [SQL]
 #  CONNECTION=db2://g2user:SEC-STORE-<label>@G2DB/?schema=G2_SCHEMA
 #
 # In the above database connection URL example, the <label> place
 # holder must be replaced with the name given to your database
 # password when you placed it in the secure store using the ssadm
 # utility's -ssput mode.
 #
 # In addition, the following six parameters must also be configured
 # in the INI file (not the SYS_PARAM database table) because they
 # will be needed to obtain the password for connecting to the
 # database.

 # Enable/disable the secure store feature. 0=disabled / 1=enabled
 # The default is 0.
 #ENABLE_SECURE_STORE=1

 # The base name of the PKCS #11 implementation library in use. This
 # product also ships with a software-only PKCS #11 implementation
 # that will use a file as storage for its security token. The library
 # name for this software-only implementation is gsk8iccs_64 (gsk8iccs
 # on 32-bit systems).
 #SECURE_STORE_LIB=gsk8iccs_64

 # URL that specifies which security token should be used for the
 # secure store (out of multiple possible security tokens that could
 # be known to the implementation library). The basic URL format is as
 # follows:
 #
 #  pkcs11://token/?slotID=<integer>&tokenLabel=<string>
 #
 # At least one of slotID or tokenLabel must be specified. If both
 # are specified, then the specified security token must have both
 # the specified slot ID number and token label string.  Specifying
 # token label is usually preferred since it is easier to be sure the
 # correct token is being used as the secure store (even if it changes
 # slots due to a PKCS #11 configuration change).
 #SECURE_STORE_URL=pkcs11://token/?slotID=0

 # This can be left blank (the default value) unless you wish to
 # specify your own User PIN for the PKCS #11 security token. Other
 # possible values are "prompt" to have G2 prompt for the User PIN
 # every time it starts; a string beginning with "pin:" followed
 # by an encrypted User PIN string (see the documentation for the
 # ssadm utility on how to obtain this encrypted string); a string
 # beginning with "file:" followed by a path to an encrypted PIN file
 # (as can be optionally created by the ssadm utility's -ssinit mode).
 #SECURE_STORE_PIN=

 # Specifies the name of a system mutex/semaphore to be used in synchronizing
 # secure store operations when there are multiple simultaneous users of
 # the secure store's PKCS#11 security token (only needed in unusual cases).
 # This is not normally required.
 # This name must be a string of ASCII alphanumeric characters, with
 # underscores allowed.
 # The default value is G2_PKCS11_Mutex
 #SECURE_STORE_MUTEX_NAME=G2_PKCS11_Mutex

 # Specifies how long the secure store should wait to acquire the system mutex.
 # The time is specified in milliseconds, but should be at least 
 # 5 seconds (5000). Specifying zero means the mutex is not used.
 # The default value is 0 (mutex not used)
 #SECURE_STORE_MUTEX_TIMEOUT=0


###############################################################################
# Anonymization salt settings
# A salt value is a large securely generated random number that is used
# during the anonymization process to increase security of sensitive data.
###############################################################################
[SALT]

 # This is the name/label of the salt you want to use from the secure store
 # Once the secure store is properly setup, you can use the following command
 # to create a new salt inside the secure store:
 # saltadm -c g2.ini -new -name <chosen name of new salt>
 # Valid values: alphanumeric string
 # Default setting: None - must be specified
 #NAME=<chosen name of new salt>

 # This is the checksum of the salt you want to use from the secure store
 # Once the secure store is properly setup, you can use the following command
 # to create a new salt inside the secure store:
 # saltadm -c g2.ini -new -name <chosen name of new salt>
 # The above command will display a "finger-print" checksum for the new salt
 # that should be used here.  Alternatively, you can display the checksum for
 # any salt in the secure store using the following command:
 # saltadm -c g2.ini -checksum -name <name of salt>
 # Valid values: Base64 string
 # Default setting: None - must be specified
 #CHECKSUM=<checksum of salt specified with [SALT] NAME>


###############################################################################
# OAC Settings
# Configure the connectivity settings for address hygiene
###############################################################################
[OAC]

 # QSAVI address server location
 # Valid values: any URL
 # Default setting:
 # QSAVI_CONNECTION=

###############################################################################
# Main SQL settings
# Used to customize general SQL connectivity settings
###############################################################################
[SQL]

 # Database backend type 
 # SQL type databases are considered to be a single instance database
 # server HYBRID type databases are considered to be Sharded, multi
 # instance database servers.
 # Valid values: SQL/HYBRID
 # Default setting:SQL  
 # BACKEND=SQL

 # G2 Database connection string.  If there is an environment setting
 # G2DBURI present that setting will override this INI configuration
 # setting.
 # dbtype = db2/oci
 # user = database user name
 # password = database user password
 # servername:portnumber = optional remote server name including its
 # listening port number.
 # database = database name
 # schema = optional schema name where the database resides
 # Valid values: dbtype://user:password@database[/?schema=name]
 # Default setting: None - must be specified
 CONNECTION={DBConnectionString}

 # Database deadlock retry count
 # Valid values: Any integer value. 
 # Default setting:3
  DEADLOCKRETRIES=3

 # Database debug information
 # 0 = No database debugging output
 # 1 = Output General database debug information
 # 2 = Output database performance related information
 # Valid values 0/1/2
 # Default setting:0
  DEBUGLEVEL=0

 # Default database locking timeout setting, in seconds
 # If the active [*] CONCURRENCY is greater than 1 and the last touch
 # wait is set to 0, the system will default this setting back to 10.
 # Valid values: Any integer value. 
 # Default setting:10
  LAST_TOUCH_WAIT=10

 # Maximum amount of nested SQL statement clauses
 # Valid values: Any integer value. 
 # Default setting:100
  MAX_IN_CLAUSE=100



###############################################################################
# General logging output settings
# Used to control reject record logging and internal database logging
###############################################################################
[LOGGING]

 # Enables G2 to capture invalid Observations into a rejected
 # record log file, allowing g2 to continue processing 
 # Valid values: 0/1
 # LOG_BAD_OBSERVATIONS=0

 # When LOG_BAD_OBSERVATIONS is enabled, this controls the file name of
 # the rejected record log file.
 # The makeup of the file name is composed of 
 # NODENAME.LOG_BAD_OBSERVATIONS_NAME.INPUTFILE
 # For example, if the active g2 node is "Node1" and
 # the input file provided is DataFile1.umf
 # the resultant output file will be 
 # Node1.RejectedRecords.DataFile1.umf
 # Valid values: file name
 # Default setting:RejectedRecords
 # LOG_BAD_OBSERVATIONS_NAME=RejectedRecords

 # To prevent the unlimited logging of invalid observations, a threshold
 # value can be configured. Once this number of records have been rejected
 # the g2 node will stop.
 # A value of zero denotes no threshold applies
 # LOG_BAD_OBSERVATIONS_THRESHOLD=20
