6.4 Server Parameters
Learn how to use parameters to adjust different aspects of the sort memory configuration when using server-side sorting.
This chapter includes the following sections:
Parent topic: Administer
6.4.1 Overview of the Server Memory
Oracle GoldenGate Veridata Server uses virtual memory in the following ways:
- Server memory for basic operation: This is the amount of virtual memory that the Veridata server and web components need to operate. It stores object pools, database access libraries, and other information. This is typically about 200 MB.
- Sort memory: This is the memory that is used when server-side sorting is used. The virtual memory for sorting is allocated for the entire comparison, not per thread. The rows are read from the agent and submitted to be sorted. The sorting occurs in a thread that is separate from the thread that reads from the agent, and the sort may use more threads to work in parallel. After all the rows from the agent are submitted to the sort process, the server process retrieves the sorted rows from the sort for comparison.
- Row hash queue memory: This is the memory that buffers data between the agent processes, the sort process, and the server process. A comparison that uses database sorting requires a single queue each for the source and target. Each queue has a capacity of 20 MG. The memory usage by the queues is affected by the relative speed of the comparison and by the data coming from the agent. The relative speed between the two agents also affects the memory usage. A larger differential in speed increases the amount of memory that is used, because the queue needs to buffer the data.
- MOOS queue memory: This is the memory that holds potentially out-of-sync records between the initial comparison and confirmation steps of a comparison. The size of the MOOS queue is limited to 50K of records. Memory usage is also dependent on the width of each record.
- IPC buffer memory: This is the memory that is used to exchange messages between the server and the agent.
- Scratch runtime transient memory: This is virtual memory space.
The amount of memory that can be used by the sort process cannot be greater than the minimum of:
- System physical memory
- Available memory in swap
- Java boot option
-Xmx
maximum memory setting
Parent topic: Server Parameters
6.4.2 Estimating Memory Usage
The maximum amount of memory available to Oracle GoldenGate Veridata is
specified by the Java boot option -Xmx
. When the server-side sorting is
used, a large portion of this memory is reserved for sorting during comparisons. This
reserved amount is controlled by the server.max_sort_memory
configuration parameter.
When a comparison is run, two buffers are allocated from the reserved sort memory. Each of these is equal to the size specified as Maximum Memory Usage (MB). To access this setting click the Edit option from the Profile Configuration screen, then Sorting Method from the Profile settings categories.
To Estimate Memory based on the Number of Concurrent Comparisons
The maximum amount of memory that can be used for any comparison is set by the
parameter server.max_comparison_sort_memory
. The
-Xmx
Java boot option should be set large enough to allow the
desired number of concurrent comparisons.
The maximum number of concurrent comparisons is defined by the
server.max.concurrent_comparison_threads
configuration parameter.
Therefore, the maximum amount of sort memory can be as large as:
server.max_comparison_sort_memory *
server_max_comparison_threads
For example, if you set server.max_concurrent_comparison_threads
to
allow 10 concurrent comparisons and leave
server.max_comparison_sort_memory
set to the default value of 100
MB, you will need 1 GB of available memory.
To Estimate the Amount of Memory Used per Row
For more information about the estimating the amount of memory used per row, see Disk and Memory Requirements for the Server Component.
Parent topic: Server Parameters
6.4.3 How to Set a Parameter
To set a parameter, edit its entry in the veridata.cfg
file. This file is stored in the DOMAIN_HOME/config/veridata
directory within the Oracle GoldenGate Veridata Server installation directory.
Open an Oracle service request before changing these parameters.
Parent topic: Server Parameters
6.4.4 Parameter Descriptions
This section describes the parameters that can be set in the veridata.cfg
file. These parameters are grouped under the following categories:
- Server Parameters
- Parameters for Report File Encryption
- Parameters for Email Notifications and Alerts
- Server Parameters for Oracle Streams Tagging
- Server Parameters for Confirm Out-of-Sync Fetch Strategy
Parent topic: Server Parameters
6.4.4.1 Server Parameters
This section defines the following configurable parameters for your Oracle GoldenGate Veridata Server:
- database.hash
- max_lob_key_len
- server.convert_empty_to_null
- server.mapped_sort_buffers
- server.max_concurrent_comparison_threads
- server.max_sort_memory
- server.memory_mapped_sort_directory
- server.meta_session_handle_timeout
- server.number_sort_threads
- server.veridata_data
- socket.timeout.mins
- server.useSsl
- truncate_spaces_len
Parent topic: Parameter Descriptions
6.4.4.1.1 database.hash
Syntax
Thi parameter defines whether or not the data hashing is done in the database. It can be used to improve the data-fetch performance.
database.hash = [true|false]
Default Value
false
Note:
This parameter is currently supported for the Oracle database only.Example
database.hash = false
Parent topic: Server Parameters
6.4.4.1.2 max_lob_key_len
This parameter sets the maximum length of LOB data types that can be used as key columns in Oracle GoldenGate Veridata. A positive integer enables the use of LOB data types as key columns. Note that this feature is currently only supported for Postgres' citext datatype. A value of zero disables this feature. The parameter value is measured in bytes, and must be within the range of 1 to 8000. If the size of the data in the table exceeds the defined value, then Oracle GoldenGate Veridata throws an exception and the job fails.
Syntax
max_lob_key_len = <length_of_lob_datatypes>
Default Value
0
Example
max_lob_key_len 1
Parent topic: Server Parameters
6.4.4.1.3 server.convert_empty_to_null
If server.convert_empty_to_null =
false
, then Oracle GoldenGate for Veridata does not consider the implicit
behaviour of compares empty (zero byte string) versus NULL (no space handling) to be
insync
If server.convert_empty_to_null =
true
, then Oracle GoldenGate Veridata compares empty (zero byte string) versus
NULL (no space handling) to be insync. If this is not comparison-format dependent, then one
side should be Oracle and the other side being char, varchar, nchar, nvarchar, raw, clob,
nclob, and blob datatypes of Oracle for which, this parameter is implicit.
Syntax
server.convert_empty_to_null = [true|false]
Default
true
Example
server.convert_empty_to_null = true
Parent topic: Server Parameters
6.4.4.1.4 server.mapped_sort_buffers
Indicates whether sort buffers are allocated as a memory mapped file or allocated on the JVM heap.
Syntax
server.mapped_sort_buffers [true|false]
Example
server.mapped_sort_buffers true
Default Value
The default is true
. If an error occurs during initialization, Oracle GoldenGate Veridata uses the JVM heap.
Parent topic: Server Parameters
6.4.4.1.5 server.max_concurrent_comparison_threads
Syntax
This parameter sets the maximum number of concurrent comparisons that can be executed. You can lower this number to reduce the impact of the server on your system. When this limit is reached, no new comparisons, starts until an active comparison completes.
server.max_concurrent_comparison_threads {default | number}
Default Value
The maximim limit is 100. The default value is the maximum of four or the number of available CPUs.
Example
server.max_concurrent_comparison_threads 100
Parent topic: Server Parameters
6.4.4.1.6 server.max_sort_memory
Syntax
This parameter sets the maximum amount of sort virtual memory that is available to
all running comparisons that use server-side sorting. The value of this parameter
varies depending on the value of server.mapped_sort_buffers
.
server.max_sort_memory {default | number{M | m}}
default
is illustrated in the follows:
- When
server.mapped_sort_buffers
is set totrue
, the default value is 2 GB. The maximum number supposed to enter is the maximum size of the memory mapped file. - When
server.mapped_sort_buffers
is set tofalse
, the default value is the JVM available heap size minus 200 MB, which is allocated for basic tasks. The maximum number supposed to enter is the value ofjava -Xmx
.
Example
server.max_sort_memory 1000M
Default Value
The system calculates the default size based on the available virtual memory.
Parent topic: Server Parameters
6.4.4.1.7 server.memory_mapped_sort_directory
Syntax
This parameter specifies the directory path where .map
files are
generated. By default, it uses temp directory of the operating system. If your
operating system temp directory is less than 50GB, then you should consider
specifying a larger directory.
server.memory_mapped_sort_directory directorypath
Example
server.memory_mapped_sort_directory u01/tmp2
Parent topic: Server Parameters
6.4.4.1.8 server.meta_session_handle_timeout
This parameter defines the meta-session handle timeout in seconds.
Syntax
server.meta_session_handle_timeout seconds
Example
server.meta_session_handle_timeout 600
Default Value
900
Parent topic: Server Parameters
6.4.4.1.9 server.number_sort_threads
This parameter specifies the number of threads used to sort input buffers from the Veridata Agent.
Note:
The value of server.number_sort_threads
should not be greater than the number of available processes.
Syntax
server.number_sort_threads number
Example
server.number_sort_threads number
Default Value
The maximum of 4 or one quarter of the number of available CPUs.
Parent topic: Server Parameters
6.4.4.1.10 server.veridata_data
The directory that contains Oracle GoldenGate Veridata reports.
Syntax
server.veridata_data path
where path
is a relative or absolute path for the directory where Veridata reports will be stored.
Note:
If you specify a relative path for the data directory, you need not start the path with a forward (/) or backward (\) slash. The path will be relative to the Veridata domain home directory.
Default Value
veridata/reports
Example
server.veridata_data /u01/veridata/reports
This means change output directory from default
VERIDATA_HOME/veridata/reports
to
/u01/veridata/reports
.
Parent topic: Server Parameters
6.4.4.1.11 socket.timeout.mins
Syntax
socket.timeout.mins <minutes>
Default Value
0
Example
socket.timeout.mins 0
Parent topic: Server Parameters
6.4.4.1.12 server.useSsl
This parameter specifies whether SSL is enabled for communication between the Veridata Server and all Veridata Agents.
Syntax
server.useSsl [true|false]
Example
server.useSsl true
Default Value
The default value is false.
Parent topic: Server Parameters
6.4.4.1.13 truncate_spaces_len
Use the truncate_spaces_len
parameter to control how trailing spaces
in a String or Binary column are truncated. Space (U+0020) and Ideographic Space
(U+3000) are the truncate targets.
You can disable the truncate feature with the Truncate Trailing Spaces When Comparing Values parameter of the Connection Settings tab in the Oracle GoldenGate Veridata UI of the connection configuration.
This parameter also truncates the column padding character if the padding character is one of the target spaces.
If the value equals 0, then all spaces are trimmed. For example, data = "".
If the value equals 1, then at least one space gets retained. For example data = " ".
Syntax
truncate_spaces_len <number_of_trailing_spaces>
Default Value
1
Example
truncate_spaces_len 0
Parent topic: Server Parameters
6.4.4.2 Parameters for Report File Encryption
This section defines the configurable parameters used for report file encryption:
Parent topic: Parameter Descriptions
6.4.4.2.1 server.encryption
When this parameter is set to true, the comparison report artifacts will be encrypted. Otherwise, the report contents will be in clear text.
Syntax
server.encryption=[true|false]
Example
server.encryption=false
Default Value
The default value is false.
Parent topic: Parameters for Report File Encryption
6.4.4.2.2 server.encryption.bits
This parameter specifies the strength of the encryption algorithm. Valid values are 128, 192, and 256. If set to a value other than 128, you must install Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files.
Syntax
server.encryption.bits=[128|192|256]
Example
server.encryption.bits=128
Default Value
The default value is 128.
Parent topic: Parameters for Report File Encryption
6.4.4.3 Parameters for Email Notifications and Alerts
To send email notifications, Oracle GoldenGate Veridata can connect to an outgoing Simple Mail Transfer Protocol (SMTP) server. The SMTP server needs to be configured so it does not require password credentials.
If password is required, then see mail.from.
This topic describes the parameters required for email notifications and alerts:
- mail.enabled
- mail.alert.only
- mail.smtp.server
- mail.smtp.port
- mail.smtp.connection.ssl.tls
Themail.smtp.connection.ssl.tls
parameter is used to access mail server over SSL or TLS connection. - mail.from
- mail.to
Themail.to
parameter is used to send emails to one or multiple users. Use a comma as a separator between email IDs.
Parent topic: Parameter Descriptions
6.4.4.3.1 mail.enabled
When this parameter is set to false
, the email notifications are
turned off.
Syntax
mail.enabled=[true|false]
Example
mail.enabled=false
Default Value
The default value is false
.
Parent topic: Parameters for Email Notifications and Alerts
6.4.4.3.2 mail.alert.only
When this parameter is set to false
, Oracle GoldenGate Veridata
sends a notification email when a job is completed. If it is set to
true
, then Veridata only sends an alert email when out of sync
or failure are encountered.
Syntax
mail.alert.only=[true | false]
Example
mail.alert.only=true
Default Value
The default value is true
.
Parent topic: Parameters for Email Notifications and Alerts
6.4.4.3.3 mail.smtp.server
Syntax
mail.smtp.server=<server_address>
Example
mail.smtp.server=smtp.host.com
Parent topic: Parameters for Email Notifications and Alerts
6.4.4.3.4 mail.smtp.port
Syntax
mail.smtp.port=<port_number>
Example
mail.smtp.port=25
Parent topic: Parameters for Email Notifications and Alerts
6.4.4.3.5 mail.smtp.connection.ssl.tls
The mail.smtp.connection.ssl.tls
parameter is used to access mail
server over SSL or TLS connection.
Syntax
mail.smtp.connection.ssl.tls= [true|false]
Default Value
false
Example
mail.smtp.connection.ssl.tls=true
Parent topic: Parameters for Email Notifications and Alerts
6.4.4.3.6 mail.from
This parameter is a username created on SMTP server that does not require a password authentication. If password is required, create a generic user with default password Ver!data1234 (case sensitive).
Syntax
mail.from=<email_address>
Example
mail.from=john@mail.com
Parent topic: Parameters for Email Notifications and Alerts
6.4.4.3.7 mail.to
The mail.to
parameter is used to send emails to one or multiple
users. Use a comma as a separator between email IDs.
Syntax
mail.to=<email_address(es)>
Example
mail.to=john@mail.com,mary@mail.com,ross@mail.com
Parent topic: Parameters for Email Notifications and Alerts
6.4.4.4 Server Parameters for Oracle Streams Tagging
Oracle GoldenGate Veridata tags the repair transaction using Oracle Stream API. Following properties are added as server parameters to customized the tags behavior:
Parent topic: Parameter Descriptions
6.4.4.4.1 repair.oracle.tag.enable
This parameter enables tagging of Repair session in the redo logs.
Valid only for Oracle Database.
Syntax
repair.oracle.tag.enable = falseValue can be either
true
or false
.
Default Value
true
Parent topic: Server Parameters for Oracle Streams Tagging
6.4.4.4.2 repair.oracle.tag
This parameter is the tag value of Repair session in the redo logs.
Valid only for Oracle Database.
Syntax
repair.oracle.tag = 00
Value can be up to 2000 hexadecimal digits (0-9A-F) or the plus sign
(+
).
Default Value
00
Parent topic: Server Parameters for Oracle Streams Tagging
6.4.4.5 Server Parameters for Confirm Out-of-Sync Fetch Strategy
This topic contains the following parameter:
Parent topic: Parameter Descriptions
6.4.4.5.1 coos.join.strategy
CREATE TABLE
, CREATE TABLESPACE
, CREATE
PRIVATE TEMPORARY TABLE
, and INSERT/UPDATE/DELETE
privileges
Syntax
coos.join.strategy = nokey
Value can be nokey
, always
, or
never
.
Description
nokey
- Use COOS Join strategy only when Use all columns as Key
columns (there is no primary or unique constraint on the table) is used to select
key columns for the compare pair. All columns as key columns in the compare pair
exception XML, UDT and Lobs.
always
- Use COOS Join always for COOS step.
never
- Don't use COOS Join for COOS Step.
Default Value
nokey
Parent topic: Server Parameters for Confirm Out-of-Sync Fetch Strategy