7 Configuring Rated Event Manager

Learn how to configure the Oracle Communications Billing and Revenue Management (BRM) Rated Event Manager (RE Manager), including the Elastic Charging Engine (ECE) RE Manager plug-in for the Rated Event Formatter (RE Formatter) and the Rated Event Loader Manager (REL Manager) utility.

The Rated Event Manager is available in Patch Set 5 or later.

Topics in this chapter:

Configuring the RE Manager and ECE RE Manager Plug-in REM.properties Files

You configure the RE Manager and the ECE RE Manager Plug-in using REM.properties files.

The following topics are in this section:

BRM RE Manager Configuration

You configure the RE Manager for BRM using the REM.properties file. This file is located in the $BRM_HOME/apps/rated_event_manager directory. It contains several types of configuration, which are described in the following sections:

There is also a sample configuration file provided: Sample RE Manager REM.properties File.

General RE Manager Configuration

You configure the parameters in this section to set general processing behavior for the RE Manager.

The parameters in Table 7-1 are all preceded by rated_event_manager. (including the period at the end).

Table 7-1 General RE Manager Configuration Parameters

Name Example Description
control_file_dir ${HOME}/data/cdr_files The directory in which the control files for the directory processors are contained.
stop_semaphore_filename ${PIN_LOG_DIR}/rated_event_manager/rem.stop The file used to indicate that the RE Manager should stop. Generally, this should not be changed.
load_thread_capacity 30 This tuning parameter sets the number of parallel threads used for loading BRM tables. For example, if each event type uses 5 tables and you set this value to 15, 3 files could be loaded simultaneously for each event type. Use this to set an upper limit on the loading load.
update_thread_capacity 20 This tuning parameter sets the number of parallel threads used for running updater procedures. For example, if each file requires 2 updater threads and you set this value to 6, 3 files could be processed in parallel. Use this to set an upper limit on the updater load.
direct_path_loading false This tuning parameter sets whether direct-path loading is used for database inserts. The Oracle JDBC batch API permits inserts to be hinted with the /*+ APPEND_VALUES */ hint to ensure inserts above the high-water mark for better load performance. The insert hint will be added if this parameter is set to true. When used this value applies to all tables.
RE Manager JDBC Pool Configuration

You configure the parameters in this section to set how the RE Manager connects to the BRM database.

The parameters in Table 7-2 are all preceded by rated_event_manager.jdbc_pool. (including the period at the end).

Table 7-2 RE Manager JDBC Pool Configuration Parameters

Name Example Description
connectionURL jdbc:oracle:thin:@//${HOSTNAME}:1521/PINDB The JDBC connection string for all database connections. Note that in a multischema BRM system, multiple independent RE Formatter or RE Manager processes must be running (one per schema).
user pin The database user name.
wallet_location ${BRM_CONF_WALLET} The Oracle wallet containing the database password. If this parameter is present, the password parameter will not be considered.
wallet_entry_name infranet.rel.password The entry in the Oracle wallet corresponding to the database password.
password &aes|09|... The database password, in BRM AES/OZT encryption (for BRM) or ECE encryption (for ECE). Do not include this parameter if you are using Oracle Wallet.
validateSchema true Sets whether the BRM schema should be validated when the pool is created. It checks the account_t root account entry to ensure the schema matches with the expected configuration.
initialPoolSize 1 The number of database connections to establish when the application starts.
minPoolSize 1 The minimum number of database connections that the pool will attempt to maintain at all times.
maxPoolSize 50 This tuning parameter sets the maximum number of database connections that the pool will create. This number should be considered in relation to the number of application loading and updating threads. If this number is too low, performance may be compromised. This parameter provides an effective limit on the concurrent work that can be submitted to the database.
connectionWaitTimeout 10 The amount of time, in seconds, that a thread will wait for a connection. If maxPoolSize is configured to handle all of the application threads concurrently, this parameter will usually not be significant. However, if you are using the maxPoolSize parameter to limit the database workload, you may need to set this parameter to a larger number to avoid transient processing failures.
validateConnectionOnBorrow false Determines whether a connection will be validated when it is acquired (by sending a SQL statement).
sqlForValidateConnection SELECT SYSDATE FROM DUAL The SQL statement used to validate a connection.
fastConnectionFailoverEnabled false Defines whether the Oracle Fast Connection Failover feature is enabled. See the Oracle Database documentation for more information.
onsConfiguration

propertiesfile=/usr/ons/ons.properties

or

nodes=racnode1:4200,racnode2:4200

If fastConnectionFailoverEnabled is set to true, set this to define the Oracle Notification Services configuration for Fast Connection Failover. You can either use a properties file, in which case this entry should contain the entire path to the file, or you can define the configuration directly in the contents of this parameter. See the Oracle Database documentation for more information.
maxStatements 25 The size of the statement cache for each connection.
deferredStart false Defines whether the pool should be instantiated without being started. This should usually be set to false, since RE Manager needs connections immediately when it starts.
jmxEnabled true Determines whether Java Management Extensions (JMX) is enabled for the Oracle Universal Connection Pool (UCP).
metricUpdateInterval 10 The interval (in seconds) between pool metric updates by UCP.
poolLogLevel INFO The JDBC logging level. Possible values include INTERNAL_ERROR, SEVERE, WARNING, INFO, CONFIG, and FINE. See the Oracle Database documentation for more information.
nonTransientErrorCodes 1,1450,12899,1722 A list of Oracle Database error codes that will be considered non-transient errors. A non-transient error is an error that will persistently cause loading to fail. Errors of this type will not be retried and will result in the file in which they are contained being marked as bad. In ZIP_DB mode, the status of the row will be set to 4. In ZIP_FILE and CDR mode, the suffix .bad will be appended to the file name. In DIRECT mode, the transaction will fail.
RE Manager Directory Processor Configuration

You configure the parameters in this section to set how the RE Manager loads CDR files (both individual files and ZIP files). Ordinarily, you need only one set of Directory Processor parameters to handle all event types. This type of parameter is indicated by default. in the parameter name. You also have the option of processing files differently by event type. If you want to do this, you put the event type in the parameter name.

The parameters in Table 7-3 are all preceded by rated_event_manager.directory_processor.default. or rated_event_manager.directory_processor.event_type. (including the period at the end).

Table 7-3 RE Manager Directory Processor Configuration Parameters

Name Example Description
header_dir ${HOME}/data/cdr_files The directory to monitor for header files to process.
header_expr ^BRMCDR_GPRS.*.out$ The regular expression used to select file names to process.
data_dir ${HOME}/data/cdr_files The directory to monitor for data files to load.
frequency 1 The frequency (in seconds) to scan the header directory for files to process.
concurrent_files 2 This tuning parameter indicates the number of files which can be processed concurrently. You use it to balance database and CPU load against throughput. Start with small values and increase as required if throughput is insufficient and there is idle database capacity which may be used.
creation_process RATING_PIPELINE Do not change this value.
object_cache_type 2 Do not change this value.
updater_proc_name pin_rel.pin_rel_updater_sp The stored procedure for balance update processing. Include this parameter if you want the rated events to update balances as well as being loaded. Ordinarily, this parameter will be included.
updater_threads 0 : 1, 10000 : 2, 50000 : 3, 100000 : 4 Use this to set the thread counts per file being processed. You can use a single numeric value, or you can set values to determine the number of threads based on the size of the file being processed. To do the latter, you enter a list of comma-separated threshold:threads value pairs. The example value would result in one thread for files with 1 through 9,999 events, two threads for files with 10,000 through 49,999 events, three threads for files with 50,000 through 99,999 events, and four threads for files with 100,000 or more events.
updater_flags 1 This parameter determines whether the updater is allowed to create bill items if they are not precreated. If this is set to 0, the update of an item will fail if the bill item is not already created. If this is set to 1, RE Manager will create the bill item if it does not already exist.
updater_batch_size 25 This tuning parameter is used to set the number of events processed in each database update transaction. A higher value reduces overhead, but may also create additional contention with other BRM applications, such as pin_bill_accts. If contention is observed (balance group locking), then consider reducing this value.
updater_timeout_seconds 60 The time, in seconds, that the update procedure may take to run. If this time is reached, the updater will be interrupted and a rollback will be performed.
pre_updater_proc_name pin_rel.pin_rel_pre_updater_sp The name of the stored procedure which is run prior to balance updates as part of the loading stage.
pre_updater_threads 1 Use this to set the thread counts per file being processed by the preupdater. The format of this parameter is the same as the format for the updater_threads parameter.
pre_updater_flags 1 This parameter determines whether the preupdater is allowed to create bill items if they are not precreated. If this is set to 0, the preupdate of an item will fail if the bill item is not already created. If this is set to 1, RE Manager will create the bill item if it does not already exist.
pre_updater_batch_size 25 This tuning parameter is used to set the number of events processed in each database preupdate transaction. A higher value reduces overhead, but may also create additional contention with other BRM applications, such as pin_bill_accts. If contention is observed (balance group locking), then consider reducing this value.
pre_updater_timeout_seconds 60 The time, in seconds, that the preupdate procedure may take to run. If this time is reached, the updater will be interrupted and a rollback will be performed.
insert_batch_size 250 This tuning parameter is used to set the number of events processed in each database insert transaction. A higher value reduces overhead, but may also create additional contention with other BRM applications, such as pin_bill_accts. If contention is observed (balance group locking), then consider reducing this value.
insert_timeout_seconds 30 The time, in seconds, that the insert procedure may take to run. If this time is reached, the updater will be interrupted and a rollback will be performed.
commit_batch_size 250 This tuning parameter sets the number of rows in an event table insert batch. Larger values will tend to reduce the number of database round trips and improve throughput, especially if direct-loading is being used
max_rows_per_load_thread 50000 The maximum number of rows that will be inserted by a single processing thread. This permits very large files to be processed with parallel inserts which may improve throughput.
use_end_time true Indicates whether an event's start_time or end_time is used to determine whether to load events into delayed event tables. Use true for end_time and false for start_time.
enable_serveroutput 0

Enable procedure output for the updater to be collected in the diagnostic log. The following values are permitted:

0: Enables diagnostic collection with the Oracle Server output buffer set to unlimited.

-1: Disables diagnostic collection for procedures (no output will be generated even if the diagnostic logger is set to DEBUG)

1 or higher: Set an explicit size for the Oracle Server output buffer. If this is set to a value which is too small for the data logged by a given update step, the updater may fail.

The output will be enabled and collected only when DEBUG level logging is enabled for the RE Manager diagnostic logger (configured as com.oracle.brm.rated_event_manager.diagnostic in the log4j2.xml file).

success.mode delete

Determines what to do with files upon successful loading. The following options are available:

move: Move all files to the value specified in success.target_directory.

rename: Rename all files by appending the value of success.postfix to each file name.

delete: Delete all files.

noop: Do nothing with the files. Leave them in the processing directory.

success.target_directory ${HOME}/data/cdr_files_archives Directory to which the successfully loaded files will be moved if success.mode is set to move.
success.postfix .backup The text appended to the names of successfully loaded files if success.mode is set to rename.
failure.mode move Determines what to do with files upon failure to load. See the description of success.mode for the available values.
failure.target_directory ${HOME}/data/cdr_files_reject Directory to which the unsuccessfully loaded files will be moved if failure.mode is set to move.
failure.postfix .error The text appended to the names of unsuccessfully loaded files if failure.mode is set to rename.
RE Manager ZIP Processor Configuration

You configure the parameters in this section to set how the RE Manager processes ZIP files.

The parameters in Table 7-4 are all preceded by rated_event_manager.zip_processor.zip. (including the period at the end).

Table 7-4 RE Manager ZIP Processor Configuration Parameters

Name Example Description
frequency 1 The frequency (in seconds) to scan the header directory for files to process.
concurrent_files 2 This tuning parameter indicates the number of files which can be processed concurrently. You use it to balance database and CPU load against throughput. Start with small values and increase as required if throughput is insufficient and there is idle database capacity which may be used.
delete_zip_after_load 1 Determines whether ZIP files are deleted from the staging table in the BRM database after being processed. If this is set to 0, you must purge the data manually. You can do this using the Rated Event Loader Manager purge command. Over time, ZIP data, if not purged, may consume a large amount of space in the database.
num_threads 1 The number of threads used for reading data to process. Generally one thread is sufficient, but you can set the value higher if there is a bottleneck reading the data from the database.
sessions_per_fetch 5 The number of records to select on each fetch for processing. The selected data will be submitted for processing and will be processed based on the value of concurrent_files. Once data is processed, the next fetch will be performed.
creation_process RATING_PIPELINE Do not change this value.
object_cache_type 2 Do not change this value.
updater_proc_name pin_rel.pin_rel_updater_sp The stored procedure for balance update processing. Include this parameter if you want the rated events to update balances as well as being loaded. Ordinarily, this parameter will be included.
updater_threads 0 : 1, 10000 : 2, 50000 : 3, 100000 : 4 Use this to set the thread counts per file being processed. You can use a single numeric value, or you can set values to determine the number of threads based on the size of the file being processed. To do the latter, you enter a list of comma-separated threshold:threads value pairs. The example value would result in one thread for files with 1 through 9,999 events, two threads for files with 10,000 through 49,999 events, three threads for files with 50,000 through 99,999 events, and four threads for files with 100,000 or more events.
updater_flags 1 This parameter determines whether the updater is allowed to create bill items if they are not precreated. If this is set to 0, the update of an item will fail if the bill item is not already created. If this is set to 1, RE Manager will create the bill item if it does not already exist.
updater_batch_size 25 This tuning parameter is used to set the number of events processed in each database update transaction. A higher value reduces overhead, but may also create additional contention with other BRM applications, such as pin_bill_accts. If contention is observed (balance group locking), then consider reducing this value.
updater_timeout_seconds 60 The time, in seconds, that the update procedure may take to run. If this time is reached, the updater will be interrupted and a rollback will be performed.
pre_updater_proc_name pin_rel.pin_rel_pre_updater_sp The name of the stored procedure which is run prior to balance updates as part of the loading stage.
pre_updater_threads 1 Use this to set the thread counts per file being processed by the preupdater. The format of this parameter is the same as the format for the updater_threads parameter.
pre_updater_flags 1 This parameter determines whether the preupdater is allowed to create bill items if they are not precreated. If this is set to 0, the preupdate of an item will fail if the bill item is not already created. If this is set to 1, RE Manager will create the bill item if it does not already exist.
pre_updater_batch_size 25 This tuning parameter is used to set the number of events processed in each database preupdate transaction. A higher value reduces overhead, but may also create additional contention with other BRM applications, such as pin_bill_accts. If contention is observed (balance group locking), then consider reducing this value.
pre_updater_timeout_seconds 60 The time, in seconds, that the preupdate procedure may take to run. If this time is reached, the updater will be interrupted and a rollback will be performed.
insert_batch_size 250 This tuning parameter is used to set the number of events processed in each database insert transaction. A higher value reduces overhead, but may also create additional contention with other BRM applications, such as pin_bill_accts. If contention is observed (balance group locking), then consider reducing this value.
insert_timeout_seconds 30 The time, in seconds, that the insert procedure may take to run. If this time is reached, the updater will be interrupted and a rollback will be performed.
commit_batch_size 250 This tuning parameter sets the number of rows in an event table insert batch. Larger values will tend to reduce the number of database round trips and improve throughput, especially if direct-loading is being used
max_rows_per_load_thread 50000 The maximum number of rows that will be inserted by a single processing thread. This permits very large files to be processed with parallel inserts which may improve throughput.
use_end_time true Indicates whether an event's start_time or end_time is used to determine whether to load events into delayed event tables. Use true for end_time and false for start_time.
enable_serveroutput 0

Enable procedure output for the updater to be collected in the diagnostic log. The following values are permitted:

0: Enables diagnostic collection with the Oracle Server output buffer set to unlimited.

-1: Disables diagnostic collection for procedures (no output will be generated even if the diagnostic logger is set to DEBUG)

1 or higher: Set an explicit size for the Oracle Server output buffer. If this is set to a value which is too small for the data logged by a given update step, the updater may fail.

The output will be enabled and collected only when DEBUG level logging is enabled for the RE Manager diagnostic logger (configured as com.oracle.brm.rated_event_manager.diagnostic in the log4j2.xml file).

RE Manager Retry Processor Configuration

You configure the parameters in this section to set how the RE Manager processes retries.

The parameters in Table 7-5 are all preceded by rated_event_manager.retry_processor.retry. (including the period at the end).

Table 7-5 RE Manager Retry Processor Configuration Parameters

Name Example Description
header_dir ${HOME}/data/cdr_files The directory to monitor for header files to process.
header_expr ^BRMCDR_GPRS.*.out$ The regular expression used to select file names to process.
frequency 1 The frequency (in seconds) to scan the header directory for files to process.
concurrent_files 2 This tuning parameter indicates the number of files which can be processed concurrently. You use it to balance database and CPU load against throughput. Start with small values and increase as required if throughput is insufficient and there is idle database capacity which may be used.
num_threads 1 The number of threads used for reading data to process. Generally one thread is sufficient, but you can set the value higher if there is a bottleneck reading the data from the database.
sessions_per_fetch 5 The number of records to select on each fetch for processing. The selected data will be submitted for processing and will be processed based on the value of concurrent_files. Once data is processed, the next fetch will be performed.
creation_process RATING_PIPELINE Do not change this value.
object_cache_type 2 Do not change this value.
updater_proc_name pin_rel.pin_rel_updater_sp The stored procedure for balance update processing. Include this parameter if you want the rated events to update balances as well as being loaded. Ordinarily, this parameter will be included.
updater_threads 0 : 1, 10000 : 2, 50000 : 3, 100000 : 4 Use this to set the thread counts per file being processed. You can use a single numeric value, or you can set values to determine the number of threads based on the size of the file being processed. To do the latter, you enter a list of comma-separated threshold:threads value pairs. The example value would result in one thread for files with 1 through 9,999 events, two threads for files with 10,000 through 49,999 events, three threads for files with 50,000 through 99,999 events, and four threads for files with 100,000 or more events.
updater_flags 1 This parameter determines whether the updater is allowed to create bill items if they are not precreated. If this is set to 0, the update of an item will fail if the bill item is not already created. If this is set to 1, RE Manager will create the bill item if it does not already exist.
updater_batch_size 25 This tuning parameter is used to set the number of events processed in each database update transaction. A higher value reduces overhead, but may also create additional contention with other BRM applications, such as pin_bill_accts. If contention is observed (balance group locking), then consider reducing this value.
updater_timeout_seconds 60 The time, in seconds, that the update procedure may take to run. If this time is reached, the updater will be interrupted and a rollback will be performed.
pre_updater_proc_name pin_rel.pin_rel_pre_updater_sp The name of the stored procedure which is run prior to balance updates as part of the loading stage.
pre_updater_threads 1 Use this to set the thread counts per file being processed by the preupdater. The format of this parameter is the same as the format for the updater_threads parameter.
pre_updater_flags 1 This parameter determines whether the preupdater is allowed to create bill items if they are not precreated. If this is set to 0, the preupdate of an item will fail if the bill item is not already created. If this is set to 1, RE Manager will create the bill item if it does not already exist.
pre_updater_batch_size 25 This tuning parameter is used to set the number of events processed in each database preupdate transaction. A higher value reduces overhead, but may also create additional contention with other BRM applications, such as pin_bill_accts. If contention is observed (balance group locking), then consider reducing this value.
pre_updater_timeout_seconds 60 The time, in seconds, that the preupdate procedure may take to run. If this time is reached, the updater will be interrupted and a rollback will be performed.
insert_batch_size 250 This tuning parameter is used to set the number of events processed in each database insert transaction. A higher value reduces overhead, but may also create additional contention with other BRM applications, such as pin_bill_accts. If contention is observed (balance group locking), then consider reducing this value.
insert_timeout_seconds 30 The time, in seconds, that the insert procedure may take to run. If this time is reached, the updater will be interrupted and a rollback will be performed.
commit_batch_size 250 This tuning parameter sets the number of rows in an event table insert batch. Larger values will tend to reduce the number of database round trips and improve throughput, especially if direct-loading is being used
max_rows_per_load_thread 50000 The maximum number of rows that will be inserted by a single processing thread. This permits very large files to be processed with parallel inserts which may improve throughput.
use_end_time true Indicates whether an event's start_time or end_time is used to determine whether to load events into delayed event tables. Use true for end_time and false for start_time.
enable_serveroutput 0

Enable procedure output for the updater to be collected in the diagnostic log. The following values are permitted:

0: Enables diagnostic collection with the Oracle Server output buffer set to unlimited.

-1: Disables diagnostic collection for procedures (no output will be generated even if the diagnostic logger is set to DEBUG)

1 or higher: Set an explicit size for the Oracle Server output buffer. If this is set to a value which is too small for the data logged by a given update step, the updater may fail.

The output will be enabled and collected only when DEBUG level logging is enabled for the RE Manager diagnostic logger (configured as com.oracle.brm.rated_event_manager.diagnostic in the log4j2.xml file).

success.mode delete

Determines what to do with files upon successful loading. The following options are available:

move: Move all files to the value specified in success.target_directory.

rename: Rename all files by appending the value of success.postfix to each file name.

delete: Delete all files.

noop: Do nothing with the files. Leave them in the processing directory.

success.target_directory ${HOME}/data/cdr_files_archives Directory to which the successfully loaded files will be moved if success.mode is set to move.
success.postfix .backup The text appended to the names of successfully loaded files if success.mode is set to rename.
failure.mode move Determines what to do with files upon failure to load. See the description of success.mode for the available values.
failure.target_directory ${HOME}/data/cdr_files_reject Directory to which the unsuccessfully loaded files will be moved if failure.mode is set to move.
failure.postfix .error The text appended to the names of unsuccessfully loaded files if failure.mode is set to rename.
RE Manager Stream Processor Configuration (Patch Set 8 or later)

You configure the parameters in this section to set how the RE Manager processes event streaming. Event streaming is available in Patch Set 8 or later.

When using REM REF Plug-in in CDR streaming mode, a running Apache Kafka installation is required. The Kafka topic needs to be created before using this feature. By default, the topic name is configured as RatedEvents.

The parameters in Table 7-6 are all preceded by rated_event_manager.stream_processor.stream1. (including the period at the end). For more information about the parameters in the table that are preceded by stream_config.consumers, see the Kafka documentation for "Consumer Configs."

Table 7-6 RE Manager Stream Processor Loading Configuration Parameters

Name Example Description
load_config.creation_process RATING_PIPELINE

Do not change this value.

load_config.object_cache_type 2

Do not change this value.

load_config.updater_threads 0 : 1, 10000 : 2, 50000 : 3, 100000 : 4

Use this to set the thread counts per file being processed. You can use a single numeric value, or you can set values to determine the number of threads based on the size of the file being processed. To do the latter, you enter a list of comma-separated threshold:threads value pairs. The example value would result in one thread for files with 1 through 9,999 events, two threads for files with 10,000 through 49,999 events, three threads for files with 50,000 through 99,999 events, and four threads for files with 100,000 or more events.

load_config.delete_zip_after_load 1

Determines whether ZIP files are deleted from the staging table in the BRM database after being processed. If this is set to 0, you must purge the data manually. You can do this using the Rated Event Loader Manager purge command. Over time, ZIP data, if not purged, may consume a large amount of space in the database.

load_config.updater_proc_name pin_rel.pin_rel_updater_sp

The stored procedure for balance update processing. Include this parameter if you want the rated events to update balances as well as being loaded. Ordinarily, this parameter will be included.

load_config.updater_flags 1

This parameter determines whether the updater is allowed to create bill items if they are not precreated. If this is set to 0, the update of an item will fail if the bill item is not already created. If this is set to 1, RE Manager will create the bill item if it does not already exist.

load_config.updater_batch_size 25

This tuning parameter is used to set the number of events processed in each database update transaction. A higher value reduces overhead, but may also create additional contention with other BRM applications, such as pin_bill_accts. If contention is observed (balance group locking), then consider reducing this value.

load_config.updater_timeout_seconds 60

The time, in seconds, that the update procedure may take to run. If this time is reached, the updater will be interrupted and a rollback will be performed.

load_config.pre_updater_proc_name pin_rel.pin_rel_pre_updater_sp

The name of the stored procedure which is run prior to balance updates as part of the loading stage.

load_config.pre_updater_threads 1

Use this to set the thread counts per file being processed by the preupdater. The format of this parameter is the same as the format for the updater_threads parameter.

load_config.pre_updater_flags 1

This parameter determines whether the preupdater is allowed to create bill items if they are not precreated. If this is set to 0, the preupdate of an item will fail if the bill item is not already created. If this is set to 1, RE Manager will create the bill item if it does not already exist.

load_config.pre_updater_batch_size 25

This tuning parameter is used to set the number of events processed in each database preupdate transaction. A higher value reduces overhead, but may also create additional contention with other BRM applications, such as pin_bill_accts. If contention is observed (balance group locking), then consider reducing this value.

load_config.pre_updater_timeout_seconds 60

The time, in seconds, that the preupdate procedure may take to run. If this time is reached, the updater will be interrupted and a rollback will be performed.

load_config.insert_batch_size 250

This tuning parameter is used to set the number of events processed in each database insert transaction. A higher value reduces overhead, but may also create additional contention with other BRM applications, such as pin_bill_accts. If contention is observed (balance group locking), then consider reducing this value.

load_config.insert_timeout_seconds 30

The time, in seconds, that the insert procedure may take to run. If this time is reached, the updater will be interrupted and a rollback will be performed.

load_config.commit_batch_size 250

This tuning parameter sets the number of rows in an event table insert batch. Larger values will tend to reduce the number of database round trips and improve throughput, especially if direct-loading is being used.

load_config.max_rows_per_load_thread 50000

The maximum number of rows that will be inserted by a single processing thread. This permits very large files to be processed with parallel inserts which may improve throughput.

load_config.use_end_time true

Indicates whether an event's start_time or end_time is used to determine whether to load events into delayed event tables. Use true for end_time and false for start_time.

load_config.enable_serveroutput 0

Enable procedure output for the updater to be collected in the diagnostic log. The following values are permitted:

0: Enables diagnostic collection with the Oracle Server output buffer set to unlimited.

-1: Disables diagnostic collection for procedures (no output will be generated even if the diagnostic logger is set to DEBUG)

1 or higher: Set an explicit size for the Oracle Server output buffer. If this is set to a value which is too small for the data logged by a given update step, the updater may fail.

The output will be enabled and collected only when DEBUG level logging is enabled for the RE Manager diagnostic logger (configured as com.oracle.brm.rated_event_manager.diagnostic in the log4j2.xml file).

stream_config.poll_timeout 5000

The time, in milliseconds, spent waiting for data to read from the topic. If it is set to 0, the poll will return immediately with any data in the buffer, or will return empty if there is no data waiting in the buffer. This must not be set to a negative number.

stream_config.topic RatedEvents

You can configure one topic for all messages using this parameter, or you can configure a topic and partition per schema using the topic.1, topic.2... topic.n parameters below.

stream_config.topic.1

(stream_config.topic.2...stream_config.topic.n)

RatedEvents

Topic configuration parameters used instead of the stream_config.topic parameter if you are configuring different topics and partitions per schema.

stream_config.consumer.bootstrap.servers ${HOSTNAME}:9092
A list of host/port pairs to use for establishing the initial connection to the Kafka cluster. This list should be in the form:
host1:port1,host2:port2,...
stream_config.consumer.max.poll.records 1000

The maximum number of records returned in a single poll.

stream_config.consumer.client.id REM-Stream1

A logical ID string to pass to the server, to identify the application making the request in the logs.

stream_config.consumer.group.id REM

The unique string that identifies the consumer group this consumer belongs to. This property is required if the consumer uses either the group management functionality or the Kafka-based offset management strategy.

stream_config.consumer.enable.auto.commit true

Specifies whether the consumer's offset will be periodically committed in the background.

stream_config.consumer.isolation_level read_committed
Controls how to read messages written transactionally. Valid values are:
  • read_uncommitted: (default) All messages will be returned, even transactional messages which have been aborted.
  • read_committed: Only transactional messages which have been committed will be returned.
Non-transactional messages will be returned unconditionally in either mode.
stream_config.consumer.auto.commit.interval.ms 2000

The frequency in milliseconds that the consumer offsets are auto-committed to Kafka if stream_config.consumer.enable.auto.commit is set to true.

stream_config.consumer.key.deserializer org.apache.kafka.common.serialization.StringDeserializer

The deserializer class for keys for the Kafka interface.

stream_config.consumer.value.deserializer org.apache.kafka.common.serialization.ByteArrayDeserializer

The deserializer class for values for the Kafka interface.

stream_config.consumer.reconnect.backoff.ms 2000

The base amount of time to wait before attempting to reconnect to a given host. This avoids repeatedly connecting to a host in a tight loop. This backoff applies to all connection attempts by the client to a broker.

stream_config.consumer.reconnect.backoff.max.ms 10000

The maximum amount of time in milliseconds to wait when reconnecting to a broker that has repeatedly failed to connect. If provided, the backoff per host will increase exponentially for each consecutive connection failure, up to this maximum. After calculating the backoff increase, 20% random jitter is added to avoid connection storms.

stream_config.consumer.fetch.max.bytes 1048576

The maximum amount of data the server should return for a fetch request.

Sample RE Manager REM.properties File

Following is a sample of the REM.properties file for RE Manager on BRM.

#------------------------------------------------------------------------------#
# Rated Event Manager Configuration
#------------------------------------------------------------------------------#

# RE Manager General

rated_event_manager.control_file_dir = ${HOME}/data/cdr_files
rated_event_manager.stop_semaphore_filename = ${PIN_LOG_DIR}/rated_event_manager/rem.stop
rated_event_manager.load_thread_capacity = 30
rated_event_manager.update_thread_capacity = 20
rated_event_manager.direct_path_loading = false

# RE Manager JDBC

rated_event_manager.jdbc_pool.connectionURL = jdbc:oracle:thin:@//${HOSTNAME}:1521/PINDB
rated_event_manager.jdbc_pool.user = pin
rated_event_manager.jdbc_pool.wallet_location = ${BRM_WALLET}
rated_event_manager.jdbc_pool.wallet_entry_name = infranet.rel.password
# rated_event_manager.jdbc_pool.password = WzBZBgkqhkiG9w0BBQ0wTDArBgkqhkiG9w0BBQwwHgQIyLXajS0B/bACAWQCARAwDAYIKoZIhvcNAgcFADAdBglghkgBZQMEAQIEECP6WTLyMj4F2kMyRWl2GSGqc3wiMuRdOKQ1dhvObext
rated_event_manager.jdbc_pool.validateSchema = true
rated_event_manager.jdbc_pool.initialPoolSize = 1
rated_event_manager.jdbc_pool.minPoolSize = 1
rated_event_manager.jdbc_pool.maxPoolSize = 50
rated_event_manager.jdbc_pool.connectionWaitTimeout = 10
rated_event_manager.jdbc_pool.validateConnectionOnBorrow = false
rated_event_manager.jdbc_pool.sqlForValidateConnection = SELECT SYSDATE FROM DUAL
rated_event_manager.jdbc_pool.fastConnectionFailoverEnabled = false
rated_event_manager.jdbc_pool.onsConfiguration =
rated_event_manager.jdbc_pool.maxStatements = 50
rated_event_manager.jdbc_pool.deferredStart = false
rated_event_manager.jdbc_pool.jmxEnabled = true
rated_event_manager.jdbc_pool.metricUpdateInterval = 10
rated_event_manager.jdbc_pool.poolLogLevel = INFO
rated_event_manager.jdbc_pool.nonTransientErrorCodes = 1,1450,12899,1722
 
# RE Manager Directory Processor

rated_event_manager.directory_processor.default.header_dir = ${HOME}/data/cdr_files
rated_event_manager.directory_processor.default.header_expr = ^BRMCDR_.*.(out|zip)$
rated_event_manager.directory_processor.default.data_dir = ${HOME}/data/cdr_files
rated_event_manager.directory_processor.default.frequency = 5
rated_event_manager.directory_processor.default.concurrent_files = 1
rated_event_manager.directory_processor.default.creation_process = RATING_PIPELINE
rated_event_manager.directory_processor.default.object_cache_type = 2
rated_event_manager.directory_processor.default.updater_proc_name = pin_rel.pin_rel_updater_sp
rated_event_manager.directory_processor.default.updater_threads = 0 : 1, 10000 : 2, 50000 : 3, 100000 : 4
rated_event_manager.directory_processor.default.updater_flags = 1
rated_event_manager.directory_processor.default.updater_batch_size = 25
rated_event_manager.directory_processor.default.updater_timeout_seconds = 60
rated_event_manager.directory_processor.default.pre_updater_proc_name = pin_rel.pin_rel_pre_updater_sp
rated_event_manager.directory_processor.default.pre_updater_threads = 0 : 1, 10000 : 2, 50000 : 3, 100000 : 4
rated_event_manager.directory_processor.default.pre_updater_flags = 1
rated_event_manager.directory_processor.default.pre_updater_batch_size = 25
rated_event_manager.directory_processor.default.pre_updater_timeout_seconds = 60
rated_event_manager.directory_processor.default.insert_batch_size = 250
rated_event_manager.directory_processor.default.insert_timeout_seconds = 30
rated_event_manager.directory_processor.default.commit_batch_size = 250
rated_event_manager.directory_processor.default.max_rows_per_load_thread = 50000
rated_event_manager.directory_processor.default.use_end_time = true
rated_event_manager.directory_processor.default.enable_serveroutput = 0
rated_event_manager.directory_processor.default.success.mode = move
rated_event_manager.directory_processor.default.success.target_directory = ${HOME}/data/cdr_files_archives
rated_event_manager.directory_processor.default.failure.mode = rename
rated_event_manager.directory_processor.default.failure.postfix = .error

# RE Manager ZIP Processor

rated_event_manager.zip_processor.zip.frequency = 5
rated_event_manager.zip_processor.zip.concurrent_files = 2
rated_event_manager.zip_processor.zip.delete_zip_after_load = false
rated_event_manager.zip_processor.zip.num_threads = 1
rated_event_manager.zip_processor.zip.sessions_per_fetch = 5
rated_event_manager.zip_processor.zip.creation_process = RATING_PIPELINE
rated_event_manager.zip_processor.zip.object_cache_type = 2
rated_event_manager.zip_processor.zip.updater_proc_name = pin_rel.pin_rel_updater_sp
rated_event_manager.zip_processor.zip.updater_threads = 0 : 1, 10000 : 2, 50000 : 3, 100000 : 4
rated_event_manager.zip_processor.zip.updater_flags = 1
rated_event_manager.zip_processor.zip.updater_batch_size = 25
rated_event_manager.zip_processor.zip.updater_timeout_seconds = 60
rated_event_manager.zip_processor.zip.pre_updater_proc_name = pin_rel.pin_rel_pre_updater_sp
rated_event_manager.zip_processor.zip.pre_updater_threads = 0 : 1, 10000 : 2, 50000 : 3, 100000 : 4
rated_event_manager.zip_processor.zip.pre_updater_flags = 1
rated_event_manager.zip_processor.zip.pre_updater_batch_size = 25
rated_event_manager.zip_processor.zip.pre_updater_timeout_seconds = 60
rated_event_manager.zip_processor.zip.insert_batch_size = 250
rated_event_manager.zip_processor.zip.insert_timeout_seconds = 30
rated_event_manager.zip_processor.zip.commit_batch_size = 250
rated_event_manager.zip_processor.zip.max_rows_per_load_thread = 50000
rated_event_manager.zip_processor.zip.use_end_time = true
rated_event_manager.zip_processor.zip.enable_serveroutput = 0

# RE Manager Retry Processor

rated_event_manager.retry_processor.retry.header_dir = ${HOME}/data/cdr_files
rated_event_manager.retry_processor.retry.data_dir = ${HOME}/data/cdr_files
rated_event_manager.retry_processor.retry.frequency = 5
rated_event_manager.retry_processor.retry.concurrent_files = 1
rated_event_manager.retry_processor.retry.num_threads = 1
rated_event_manager.retry_processor.retry.sessions_per_fetch = 5
rated_event_manager.retry_processor.retry.creation_process = RATING_PIPELINE
rated_event_manager.retry_processor.retry.object_cache_type = 2
rated_event_manager.retry_processor.retry.updater_proc_name = pin_rel.pin_rel_updater_sp
rated_event_manager.retry_processor.retry.updater_threads = 0 : 1, 10000 : 2, 50000 : 3, 100000 : 4
rated_event_manager.retry_processor.retry.updater_flags = 1
rated_event_manager.retry_processor.retry.updater_batch_size = 25
rated_event_manager.retry_processor.retry.updater_timeout_seconds = 60
rated_event_manager.retry_processor.retry.pre_updater_proc_name = pin_rel.pin_rel_pre_updater_sp
rated_event_manager.retry_processor.retry.pre_updater_threads = 0 : 1, 10000 : 2, 50000 : 3, 100000 : 4
rated_event_manager.retry_processor.retry.pre_updater_flags = 1
rated_event_manager.retry_processor.retry.pre_updater_batch_size = 25
rated_event_manager.retry_processor.retry.pre_updater_timeout_seconds = 60
rated_event_manager.retry_processor.retry.insert_batch_size = 250
rated_event_manager.retry_processor.retry.insert_timeout_seconds = 30
rated_event_manager.retry_processor.retry.commit_batch_size = 250
rated_event_manager.retry_processor.retry.max_rows_per_load_thread = 50000
rated_event_manager.retry_processor.retry.use_end_time = true
rated_event_manager.retry_processor.retry.enable_serveroutput = 0
rated_event_manager.retry_processor.retry.success.mode = move
rated_event_manager.retry_processor.retry.success.target_directory = ${HOME}/data/cdr_files_archives
rated_event_manager.retry_processor.retry.failure.mode = rename
rated_event_manager.retry_processor.retry.failure.postfix = .error

# Stream processor 

#rated_event_manager.stream_processor.stream1.load_config.creation_process = RATING_PIPELINE
#rated_event_manager.stream_processor.stream1.load_config.object_cache_type = 2
#rated_event_manager.stream_processor.stream1.load_config.updater_threads = 0 : 1, 10000 : 2, 50000 : 3, 100000 : 4
#rated_event_manager.stream_processor.stream1.load_config.delete_zip_after_load = false
#rated_event_manager.stream_processor.stream1.load_config.updater_proc_name = pin_rel.pin_rel_updater_sp
#rated_event_manager.stream_processor.stream1.load_config.updater_flags = 1
#rated_event_manager.stream_processor.stream1.load_config.updater_batch_size = 25
#rated_event_manager.stream_processor.stream1.load_config.updater_timeout_seconds = 60
#rated_event_manager.stream_processor.stream1.load_config.pre_updater_proc_name = pin_rel.pin_rel_pre_updater_sp
#rated_event_manager.stream_processor.stream1.load_config.pre_updater_threads = 0 : 1, 10000 : 2, 50000 : 3, 100000 : 4
#rated_event_manager.stream_processor.stream1.load_config.pre_updater_flags = 1
#rated_event_manager.stream_processor.stream1.load_config.pre_updater_batch_size = 25
#rated_event_manager.stream_processor.stream1.load_config.pre_updater_timeout_seconds = 60
#rated_event_manager.stream_processor.stream1.load_config.insert_batch_size = 250
#rated_event_manager.stream_processor.stream1.load_config.insert_timeout_seconds = 30
#rated_event_manager.stream_processor.stream1.load_config.commit_batch_size = 250
#rated_event_manager.stream_processor.stream1.load_config.max_rows_per_load_thread = 50000
#rated_event_manager.stream_processor.stream1.load_config.use_end_time = true
#rated_event_manager.stream_processor.stream1.load_config.enable_serveroutput = 0
#rated_event_manager.stream_processor.stream1.stream_config.poll_timeout = 5000
#rated_event_manager.stream_processor.stream1.stream_config.topic = RatedEvents
#rated_event_manager.stream_processor.stream1.stream_config.consumer.bootstrap.servers = ${HOSTNAME}:9092
#rated_event_manager.stream_processor.stream1.stream_config.consumer.max.poll.records = 1000
#rated_event_manager.stream_processor.stream1.stream_config.consumer.client.id = REM-Stream1
#rated_event_manager.stream_processor.stream1.stream_config.consumer.group.id = REM
#rated_event_manager.stream_processor.stream1.stream_config.consumer.enable.auto.commit = true
#rated_event_manager.stream_processor.stream1.stream_config.consumer.isolation_level = read_committed
#rated_event_manager.stream_processor.stream1.stream_config.consumer.auto.commit.interval.ms = 2000
#rated_event_manager.stream_processor.stream1.stream_config.consumer.key.deserializer = org.apache.kafka.common.serialization.StringDeserializer
#rated_event_manager.stream_processor.stream1.stream_config.consumer.value.deserializer = org.apache.kafka.common.serialization.ByteArrayDeserializer
#rated_event_manager.stream_processor.stream1.stream_config.consumer.reconnect.backoff.ms = 2000
#rated_event_manager.stream_processor.stream1.stream_config.consumer.reconnect.backoff.max.ms = 10000
#rated_event_manager.stream_processor.stream1.stream_config.consumer.fetch.max.bytes = 1048576

ECE RE Manager Plug-in Configuration

You configure ECE RE Manager Plug-in using the REM.properties file. This file is located in the $ECE_HOME/oceceserver/config directory. It contains several types of configuration, which are described in the following sections:

There is also a sample configuration file provided: Sample ECE RE Manager Plug-in REM.properties File.

General ECE RE Manager Plug-in Configuration

You configure the parameters in this section to set general processing behavior for the ECE RE Manager Plug-in.

The parameters in Table 7-7 are all preceded by ref. (including the period at the end).

Table 7-7 General ECE RE Manager Plug-in Configuration Parameters

Name Example Description
load_thread_capacity 30 This tuning parameter sets the number of parallel threads used for loading BRM tables. For example, if each event type uses 5 tables and you set this value to 15, 3 files could be loaded simultaneously for each event type. Use this to set an upper limit on the loading load.
update_thread_capacity 20 This tuning parameter sets the number of parallel threads used for running updater procedures. For example, if each file requires 2 updater threads and you set this value to 6, 3 files could be processed in parallel. Use this to set an upper limit on the updater load.
concurrent_updaters 2 This tuning parameter sets the number of threads used for asynchronous update processing. If this is set to 0, the ECE RE Manager Plug-in will not do update processing.
updater_backlog_limit 50 This tuning parameter sets the maximum number of files waiting for update that can be accumulated. Once this limit is reached, the ECE RE Manager Plug-in will discard further update requests. You will need to recover those updates by running the updater when the performance problem has been resolved.
mode DIRECT

The processing mode to use. Available values are:

CDR: CDR files will be generated.

DIRECT: CDRs will be loaded directly into the BRM database.

ZIP_DB: Data will be compressed and loaded into the BRM database.

ZIP_DB: Data will be compressed and stored in files.

STREAM: Data will be streamed to Apache Kafka.

direct_path_loading false This tuning parameter sets whether direct-path loading is used for database inserts. The Oracle JDBC batch API permits inserts to be hinted with the /*+ APPEND_VALUES */ hint to ensure inserts above the high-water mark for better load performance. The insert hint will be added if this parameter is set to true. When used this value applies to all tables.
blob_timeout_seconds 30 The time limit for inserting zipped BLOB data into the batch_rel_zip_file_t table.
ECE RE Manager Plug-in JDBC Pool Configuration

You configure the parameters in this section to set how the ECE RE Manager Plug-in connects to the BRM database.

The parameters in Table 7-8 are all preceded by ref.jdbc_pool. (including the period at the end).

Table 7-8 ECE RE Manager Plug-in JDBC Pool Configuration Parameters

Name Example Description
connectionURL jdbc:oracle:thin:@//${HOSTNAME}:1521/PINDB The JDBC connection string for all database connections. Note that in a multischema BRM system, multiple independent RE Formatter or RE Manager processes must be running (one per schema).
user pin The database user name.
wallet_location ${ECE_HOME}/wallet The Oracle wallet containing the database password. If this parameter is present, the password parameter will not be considered.
wallet_entry_name brm.db.pwd The entry in the Oracle wallet corresponding to the database password.
password &aes|09|... The database password, in BRM AES/OZT encryption (for BRM) or ECE encryption (for ECE). Do not include this parameter if you are using Oracle Wallet.
validateSchema true Sets whether the BRM schema should be validated when the pool is created. It checks the account_t root account entry to ensure the schema matches with the expected configuration.
initialPoolSize 1 The number of database connections to establish when the application starts.
minPoolSize 1 The minimum number of database connections that the pool will attempt to maintain at all times.
maxPoolSize 50 This tuning parameter sets the maximum number of database connections that the pool will create. This number should be considered in relation to the number of application loading and updating threads. If this number is too low, performance may be compromised. This parameter provides an effective limit on the concurrent work that can be submitted to the database.
connectionWaitTimeout 10 The amount of time, in seconds, that a thread will wait for a connection. If maxPoolSize is configured to handle all of the application threads concurrently, this parameter will usually not be significant. However, if you are using the maxPoolSize parameter to limit the database workload, you may need to set this parameter to a larger number to avoid transient processing failures.
validateConnectionOnBorrow false Determines whether a connection will be validated when it is acquired (by sending a SQL statement).
sqlForValidateConnection SELECT SYSDATE FROM DUAL The SQL statement used to validate a connection.
fastConnectionFailoverEnabled false Defines whether the Oracle Fast Connection Failover feature is enabled. See the Oracle Database documentation for more information.
onsConfiguration

propertiesfile=/usr/ons/ons.properties

or

nodes=racnode1:4200,racnode2:4200

If fastConnectionFailoverEnabled is set to true, set this to define the Oracle Notification Services configuration for Fast Connection Failover. You can either use a properties file, in which case this entry should contain the entire path to the file, or you can define the configuration directly in the contents of this parameter. See the Oracle Database documentation for more information.
maxStatements 25 The size of the statement cache for each connection.
deferredStart false Defines whether the pool should be instantiated without being started. This should usually be set to false, since RE Manager needs connections immediately when it starts.
jmxEnabled true Determines whether Java Management Extensions (JMX) is enabled for the Oracle Universal Connection Pool (UCP).
metricUpdateInterval 10 The interval (in seconds) between pool metric updates by UCP.
poolLogLevel INFO The JDBC logging level. Possible values include INTERNAL_ERROR, SEVERE, WARNING, INFO, CONFIG, and FINE. See the Oracle Database documentation for more information.
nonTransientErrorCodes 1,1450,12899,1722 A list of Oracle Database error codes that will be considered non-transient errors. A non-transient error is an error that will persistently cause loading to fail. Errors of this type will not be retried and will result in the file in which they are contained being marked as bad. In ZIP_DB mode, the status of the row will be set to 4. In ZIP_FILE and CDR mode, the suffix .bad will be appended to the file name. In DIRECT mode, the transaction will fail.
ECE RE Manager Plug-in Loading Configuration

You configure the parameters in this section to set how the ECE RE Manager Plug-in loads data. Ordinarily, you need only one set of ECE RE Manager Plug-in loading parameters to handle all event types. This type of parameter is indicated by default. in the parameter name. You also have the option of processing files differently by event type. If you want to do this, you put the event type in the parameter name.

The parameters in Table 7-9 are all preceded by ref.default. or ref.event_type. (including the period at the end).

Table 7-9 ECE RE Manager Plug-in Loading Configuration Parameters

Name Example Description
creation_process RATING_PIPELINE Do not change this value.
object_cache_type 2 Do not change this value.
updater_proc_name pin_rel.pin_rel_updater_sp The stored procedure for balance update processing. Include this parameter if you want the rated events to update balances as well as being loaded. Ordinarily, this parameter will be included.
updater_threads 0 : 1, 10000 : 2, 50000 : 3, 100000 : 4 Use this to set the thread counts per file being processed. You can use a single numeric value, or you can set values to determine the number of threads based on the size of the file being processed. To do the latter, you enter a list of comma-separated threshold:threads value pairs. The example value would result in one thread for files with 1 through 9,999 events, two threads for files with 10,000 through 49,999 events, three threads for files with 50,000 through 99,999 events, and four threads for files with 100,000 or more events.
updater_flags 1 This parameter determines whether the updater is allowed to create bill items if they are not precreated. If this is set to 0, the update of an item will fail if the bill item is not already created. If this is set to 1, RE Manager will create the bill item if it does not already exist.
updater_batch_size 25 This tuning parameter is used to set the number of events processed in each database update transaction. A higher value reduces overhead, but may also create additional contention with other BRM applications, such as pin_bill_accts. If contention is observed (balance group locking), then consider reducing this value.
updater_timeout_seconds 60 The time, in seconds, that the update procedure may take to run. If this time is reached, the updater will be interrupted and a rollback will be performed.
pre_updater_proc_name pin_rel.pin_rel_pre_updater_sp The name of the stored procedure which is run prior to balance updates as part of the loading stage.
pre_updater_threads 1 Use this to set the thread counts per file being processed by the preupdater. The format of this parameter is the same as the format for the updater_threads parameter.
pre_updater_flags 1 This parameter determines whether the preupdater is allowed to create bill items if they are not precreated. If this is set to 0, the preupdate of an item will fail if the bill item is not already created. If this is set to 1, RE Manager will create the bill item if it does not already exist.
pre_updater_batch_size 25 This tuning parameter is used to set the number of events processed in each database preupdate transaction. A higher value reduces overhead, but may also create additional contention with other BRM applications, such as pin_bill_accts. If contention is observed (balance group locking), then consider reducing this value.
pre_updater_timeout_seconds 60 The time, in seconds, that the preupdate procedure may take to run. If this time is reached, the updater will be interrupted and a rollback will be performed.
insert_batch_size 250 This tuning parameter is used to set the number of events processed in each database insert transaction. A higher value reduces overhead, but may also create additional contention with other BRM applications, such as pin_bill_accts. If contention is observed (balance group locking), then consider reducing this value.
insert_timeout_seconds 30 The time, in seconds, that the insert procedure may take to run. If this time is reached, the updater will be interrupted and a rollback will be performed.
commit_batch_size 250 This tuning parameter sets the number of rows in an event table insert batch. Larger values will tend to reduce the number of database round trips and improve throughput, especially if direct-loading is being used
max_rows_per_load_thread 50000 The maximum number of rows that will be inserted by a single processing thread. This permits very large files to be processed with parallel inserts which may improve throughput.
use_end_time true Indicates whether an event's start_time or end_time is used to determine whether to load events into delayed event tables. Use true for end_time and false for start_time.
enable_serveroutput 0

Enable procedure output for the updater to be collected in the diagnostic log. The following values are permitted:

0: Enables diagnostic collection with the Oracle Server output buffer set to unlimited.

-1: Disables diagnostic collection for procedures (no output will be generated even if the diagnostic logger is set to DEBUG)

1 or higher: Set an explicit size for the Oracle Server output buffer. If this is set to a value which is too small for the data logged by a given update step, the updater may fail.

The output will be enabled and collected only when DEBUG level logging is enabled for the RE Manager diagnostic logger (configured as com.oracle.brm.rated_event_manager.diagnostic in the log4j2.xml file).

success.mode delete

Determines what to do with files upon successful loading. The following options are available:

move: Move all files to the value specified in success.target_directory.

rename: Rename all files by appending the value of success.postfix to each file name.

delete: Delete all files.

noop: Do nothing with the files. Leave them in the processing directory.

success.target_directory ${HOME}/data/cdr_files_archives Directory to which the successfully loaded files will be moved if success.mode is set to move.
success.postfix .backup The text appended to the names of successfully loaded files if success.mode is set to rename.
ECE RE Manager Plug-in Retry Configuration

Retry Processing

Before configuring the ECE RE Manager Plug-in retry processing, you should understand how the retry processing works.

The retry processing in the ECE RE Manager Plug-in is designed to allow the robust handling of transient processing errors. Transient processing errors are those which result from environmental, rather than data, issues. For example, lost database connections or network connection issues can be transient errors. Non-transient errors are not retried, because retying them is not likely to have any effect.

The general retry process is that the preferred processing mode will be retried a configurable number of times, using a configurable algorithm to determine the delay between the retries. Then, you can configure another processing mode to be tried (and retried), or you can omit a next processing mode, which tells the plug-in to stop and fail. You can configure as many instances of this try-and-move-on process as there are processing modes, but once you omit the next processing mode from the configuration, retry processing will stop.

Retry Configuration

You configure the parameters in this section to set how the ECE RE Manager Plug-in handles transient errors, such as a lack of connection to the database.

The parameters in Table 7-10 are all preceded by ref.retry.mode. (including the period at the end), where mode is the operating mode for which you are defining the retry processing: direct, zip_db, zip_file, or cdr.

Table 7-10 ECE RE Manager Plug-in Retry Configuration Parameters

Name Example Description
num_retries 5 The number of retry attempts that will be performed for this state.
delay_millis 3000 The base number for the delay (in milliseconds) that will be applied between retry attempts. The exact delay will depend on the delay algorithm you choose.
delay_algorithm linear

The algorithm used to determine the exact delay for retries. Valid values are:

simple - The value in delay_millis will be used between all retries. For example, if delay_millis is set to 3000, each retry will be attempted 3 seconds after the previous attempt.

linear - The value in delay_millis is multiplied by the retry number to determine the delay for each retry. That is, delay = delay_millis x retry_number. For example, if delay_millis is set to 3000, the first retry will be attempted after 3 seconds, the second after 6 seconds, and the third after 9 seconds.

double - The value in delay_millis is multiplied by two to the power of the retry number to determine the delay for each retry. That is, delay = delay_millis x 2 ^ retry_number. For example, if delay_millis is set to 3000, the first retry will be attempted after 6 seconds, the second after 12 seconds, and the third after 24 seconds.

exponential - The value of delay_millis is raised to the retry number power to determine the delay for each retry. That is, delay = delay_millis ^ retry_number. For example, if delay_millis is set to 3000, the first retry will be attempted after 3 seconds, the second after 9 seconds, and the third after 21 seconds.

next_mode zip_db The operating mode to fall back to if the retries are exhausted without successful processing. Valid values are: direct, zip_db, zip_file, and cdr.

Retry Configuration Example

In the following configuration example, the following retry attempts will be made

  1. Three retry attempts in DIRECT mode, with delays of 2, 4, and 8 seconds.
  2. Three retry attempts in ZIP_DB mode, with delays of 3, 6, and 9 seconds.
  3. Three retry attempts in ZIP_FILE mode, with delays of 4, 8, and 16 seconds.
# DIRECT mode falls back to ZIP_DB mode ...
ref.retry.direct.num_retries = 3
ref.retry.direct.delay_millis = 2000
ref.retry.direct.delay_algorithm = exponential
ref.retry.direct.next_mode = zip_db
# ZIP_DB mode falls back to ZIP_FILE mode ...
ref.retry.zip_db.num_retries = 3
ref.retry.zip_db.delay_millis = 3000
ref.retry.zip_db.delay_algorithm = linear
ref.retry.zip_db.next_mode = zip_file
# ZIP_FILE mode falls back to FAILURE ...
ref.retry.zip_file.num_retries = 3
ref.retry.zip_file.delay_millis = 2000
ref.retry.zip_file.delay_algorithm = double
ref.retry.zip_file.next_mode =
ECE RE Manager Plug-in Stream Processor Configuration (Patch Set 8 or later)

You configure the parameters in this section to set how the RE Manager processes event streaming to Kafka. Event streaming is available in Patch Set 8 or later.

When using REM REF Plug-in in CDR streaming mode, a running Apache Kafka installation is required. The Kafka topic needs to be created before using this feature. By default, the topic name is configured as RatedEvents.

The parameters in Table 7-11 are all preceded by ref.event_stream. (including the period at the end). For more information about the parameters in the table that are preceded by producers, see the Kafka documentation for Producer Configs.

Table 7-11 ECE RE Manager Plug-in Stream Processor Configuration Parameters

Name Example Description
batch_size 1

The batch size. A value of 0 indicates that the size is unlimited, and a positive integer indicates the number of events per message.

Note:

If using batching, you should enable compression and limit the batch size to ensure you do not exceed the message broker's limits.
compression GZIP

Indicates whether and how messages are compressed. Valid values are: NONE, ZIP, and GZIP. This compression is in addition to any compression that is already being used for the message format, that is, if you set this to GZIP and the messages are using ZIPFILE format, you will have a GZIP of ZIPFILEs.

format ZIPFILE

The format used to represent rated event records. Valid values are:

  • JSONFILE: JSON representation of the BRM /event objects
  • ZIPFILE: a compressed version of the actual CDR files
  • CUSTOM: a custom class with another implementation
custom.class com.oracle.brm.ref_utils.EventToCustomPayloadConverterSample

The name of the class to use to format the events if the format parameter is set to CUSTOM.

custom.csv true

If you set the format parameter to CUSTOM and set this parameter to true, it will generate the rated event data in CSV format, which can then be sent to Kafka.

schema NONE

The schema used for the message format. Valid values are: NONE and CLOUDEVENTS.

topic RatedEvents

You can configure one topic for all messages using this parameter, or you can configure a topic and partition per schema using the topic.1, topic.2... topic.n parameters below.

topic.1

(topic.2...topic.n)

RatedEvents-1

Topic configuration parameters used instead of the topic parameter if you are configuring different topics and partitions per schema.

producer.bootstrap.servers ${HOSTNAME}:9092
A list of host/port pairs to use for establishing the initial connection to the Kafka cluster. This list should be in the form:
host1:port1,host2:port2,...
producer.enable.idempotence true

When set to true, the producer will ensure that exactly one copy of each message is written in the stream. If it is set to false, producer retries due to broker failures and so on, may write duplicates of the retried message in the stream. Note that enabling idempotence requires producer.max.in.flight.requests.per.connection to be less than or equal to 5, producer.retries to be greater than 0, and producer.acks to be set to all.

producer.acks all
The number of acknowledgments the producer requires the leader to have received before considering a request complete. Valid values are:
  • 0: The producer will not wait for any acknowledgment from the server.
  • 1: The leader will write the record to its local log but will respond without waiting for acknowledgments from all followers. If the leader fails immediately after acknowledging the record but before the followers have replicated it then the record will be lost.
  • all: The leader will wait for the full set of in-sync replicas to acknowledge the record.
producer.retries 3

The number of times to resend any record that fails with a potentially transient error.

producer.max.in.flight.requests.per.connection 1

The maximum number of unacknowledged requests the client will send on a single connection before blocking. If producer.enable.idempotence is set to true, this value must be less than or equal to 5.

producer.client.id REF-KAFKA

A logical ID string to pass to the server, to identify the application making the request in the logs.

producer.key.serializer org.apache.kafka.common.serialization.StringSerializer

The serializer class for keys for the Kafka interface.

producer.value.serializer org.apache.kafka.common.serialization.ByteArraySerializer

The serializer class for values for the Kafka interface.

producer.reconnect.backoff.ms 2000

The base amount of time to wait before attempting to reconnect to a given host. This avoids repeatedly connecting to a host in a tight loop. This backoff applies to all connection attempts by the client to a broker.

producer.reconnect.backoff.max.ms 10000

The maximum amount of time in milliseconds to wait when reconnecting to a broker that has repeatedly failed to connect. If provided, the backoff per host will increase exponentially for each consecutive connection failure, up to this maximum. After calculating the backoff increase, 20% random jitter is added to avoid connection storms.

producer.max.request.size 1048576

The maximum size of a request in bytes.

schemas.cloudevents.config.specversion 1.0

The CloudEvents specification version.

schemas.cloudevents.config.type com.oracle.brm.event

The CloudEvents configuration type.

schemas.cloudevents.config.source com.oracle.ece

The CloudEvents configuration source.

schemas.cloudevents.config.extensions.extension1

(schemas.cloudevents.config.extensions.extension2... schemas.cloudevents.config.extensions.extensionn)

extension-1-value

The CloudEvents configuration extensions.

schemas.cloudevents.headers.h1 CE1

The CloudEvents first header.

schemas.cloudevents.headers.h2 CE2

The CloudEvents second header.

schemas.none.config.dummy dummy

The dummy parameter to use if schema is set to NONE.

schemas.none.headers.h1 N1

The first header to use if schema is set to NONE.

schemas.none.headers.h2 N2

The second header to use if schema is set to NONE.

Sample ECE RE Manager Plug-in REM.properties File

Following is a sample of the REM.properties file for ECE RE Manager Plug-in on ECE.

#------------------------------------------------------------------------------#
# REF Plugin Configuration
#------------------------------------------------------------------------------#

# ECE RE Manager Plug-in General Configuration

ref.load_thread_capacity = 30
ref.update_thread_capacity = 20
ref.concurrent_updaters = 4
ref.updater_backlog_limit = 50
ref.mode = DIRECT
ref.direct_path_loading = false
ref.blob_timeout_seconds = 30
 
# ECE RE Manager Plug-in JDBC Configuration

ref.jdbc_pool.connectionURL = jdbc:oracle:thin:@//${HOSTNAME}:1521/PINDB
ref.jdbc_pool.user = pin
ref.jdbc_pool.wallet_location = ${ECE_HOME}/oceceserver/wallet
ref.jdbc_pool.wallet_entry_name = brm.db.password
# ref.jdbc_pool.password = WzBZBgkqhkiG9w0BBQ0wTDArBgkqhkiG9w0BBQwwHgQIyLXajS0B/bACAWQCARAwDAYIKoZIhvcNAgcFADAdBglghkgBZQMEAQIEECP6WTLyMj4F2kMyRWl2GSGqc3wiMuRdOKQ1dhvObext
ref.jdbc_pool.validateSchema = true
ref.jdbc_pool.initialPoolSize = 1
ref.jdbc_pool.minPoolSize = 1
ref.jdbc_pool.maxPoolSize = 50
ref.jdbc_pool.connectionWaitTimeout = 5
ref.jdbc_pool.validateConnectionOnBorrow = false
ref.jdbc_pool.sqlForValidateConnection = SELECT SYSDATE FROM DUAL
ref.jdbc_pool.fastConnectionFailoverEnabled = false
ref.jdbc_pool.onsConfiguration =
ref.jdbc_pool.maxStatements = 50
ref.jdbc_pool.deferredStart = false
ref.jdbc_pool.jmxEnabled = true
ref.jdbc_pool.metricUpdateInterval = 10
ref.jdbc_pool.poolLogLevel = INFO
ref.jdbc_pool.nonTransientErrorCodes = 1,1450,12899,1722

# ECE RE Manager Plug-in Loading Configuration

ref.default.creation_process = RATING_PIPELINE
ref.default.object_cache_type = 2
ref.default.updater_proc_name = pin_rel.pin_rel_updater_sp
ref.default.updater_threads = 0 : 1, 10000 : 2, 50000 : 3, 100000 : 4
ref.default.updater_flags = 1
ref.default.updater_batch_size = 25
ref.default.updater_timeout_seconds = 60
ref.default.pre_updater_proc_name = pin_rel.pin_rel_pre_updater_sp
ref.default.pre_updater_threads = 0 : 1, 10000 : 2, 50000 : 3, 100000 : 4
ref.default.pre_updater_flags = 1
ref.default.pre_updater_batch_size = 25
ref.default.pre_updater_timeout_seconds = 60
ref.default.insert_batch_size = 250
ref.default.insert_timeout_seconds = 30
ref.default.commit_batch_size = 250
ref.default.max_rows_per_load_thread = 50000
ref.default.use_end_time = true
ref.default.enable_serveroutput = 0
ref.default.success.mode = delete

# ECE RE Manager Plug-in Retry Configuration

# DIRECT mode falls back to ZIP_DB mode 
ref.retry.direct.num_retries = 3
ref.retry.direct.delay_millis = 2000
ref.retry.direct.delay_algorithm = exponential
ref.retry.direct.next_mode = zip_db
# ZIP_DB mode falls back to ZIP_FILE mode 
ref.retry.zip_db.num_retries = 3
ref.retry.zip_db.delay_millis = 2000
ref.retry.zip_db.delay_algorithm = linear
ref.retry.zip_db.next_mode = zip_file
# ZIP_FILE mode falls back to CDR mode
ref.retry.zip_file.num_retries = 3
ref.retry.zip_file.delay_millis = 1000
ref.retry.zip_file.delay_algorithm = exponential
ref.retry.zip_file.next_mode = cdr
# STREAM mode falls back to ABORT
ref.retry.stream.num_retries = 3
ref.retry.stream.delay_millis = 2000
ref.retry.stream.delay_algorithm = linear
ref.retry.stream.next_mode = abort

# REF Event Streaming Configuration

ref.event_stream.batch_size = 0
ref.event_stream.compression = GZIP
ref.event_stream.format = ZIPFILE
ref.event_stream.custom.class = com.oracle.brm.ref_utils.EventToCustomPayloadConverterSample
ref.event_stream.custom.csv = true
ref.event_stream.schema = NONE
#ref.event_stream.topic.1 = RatedEvents-1
#ref.event_stream.topic.2 = RatedEvents-2
ref.event_stream.topic = RatedEvents
ref.event_stream.producer.bootstrap.servers = ${HOSTNAME}:9092
ref.event_stream.producer.enable.idempotence = true
ref.event_stream.producer.acks = all
ref.event_stream.producer.retries = 3
ref.event_stream.producer.max.in.flight.requests.per.connection = 1
ref.event_stream.producer.client.id = REF-KAFKA
ref.event_stream.producer.key.serializer = org.apache.kafka.common.serialization.StringSerializer
ref.event_stream.producer.value.serializer = org.apache.kafka.common.serialization.ByteArraySerializer
ref.event_stream.producer.reconnect.backoff.ms = 2000
ref.event_stream.producer.reconnect.backoff.max.ms = 10000
ref.event_stream.producer.max.request.size = 1048576
ref.event_stream.schemas.cloudevents.config.specversion = 1.0
ref.event_stream.schemas.cloudevents.config.type = com.oracle.brm.event
ref.event_stream.schemas.cloudevents.config.source = com.oracle.ece
ref.event_stream.schemas.cloudevents.config.extensions.extension1 = extension-1-value
ref.event_stream.schemas.cloudevents.config.extensions.extension2 = extension-2-value
ref.event_stream.schemas.cloudevents.headers.h1 = CE1
ref.event_stream.schemas.cloudevents.headers.h2 = CE2
ref.event_stream.schemas.none.config.dummy = dummy
ref.event_stream.schemas.none.headers.h1 = N1
ref.event_stream.schemas.none.headers.h2 = N2

Configuring REL Manager

You configure Rated Event Loader Manager (REL Manager) to define the properties needed by the REL Manager utility. See "Rated Event Loader Manager Utility" for more information about the capabilities and usage of this utility.

Configuring the Rated Event Loader Manager RELM.properties file

You configure the Rated Event Loader Manager (REL Manager) using the RELM,properties file. This file is located in the $BRM_HOME/apps/rel_manager directory.

General REL Manager Configuration

You configure the parameters in this section to set general processing behavior for the REL Manager.

The parameters in Table 7-12 are all preceded by rel_manager. (including the period at the end).

Table 7-12 General REL Manager Configuration Parameters

Name Example Description
table_format_file ${PIN_HOME}/apps/rel_manager/TableFormat.properties Location of the output table format file. See "Configuring the REL Manager Table Format Properties File" for more information about this file.
console_prompt RELManager> The REL command prompt displayed in the REL Manager.
view.strip_directory_path true Indicates whether file names displayed in results in search results should include the full path (false) or just the file name (true).
zip_directory ${HOME}/data/unzipped Directory in which to place zipped data for correction (used when exporting ZIP data which has data errors that may need correcting)
history_file ${PIN_HOME}/apps/rel_manager/history_file The directory in which to store the command history. If no value is provided, the command history will be stored in the $PIN_HOME/apps/rel_manager/.rel_manager_history directory.
REL Manager JDBC Pool Configuration

You configure the parameters in this section to set how the REL Manager connects to the BRM database.

The parameters in Table 7-13 are all preceded by rel_manager.jdbc_pool. (including the period at the end).

Table 7-13 REL Manager JDBC Pool Configuration Parameters

Name Example Description
connectionURL jdbc:oracle:thin:@//${HOSTNAME}:1521/PINDB The JDBC connection string for all database connections. Note that in a multischema BRM system, multiple independent RE Formatter or RE Manager processes must be running (one per schema).
user pin The database user name.
wallet_location ${BRM_WALLET} The Oracle wallet containing the database password.
wallet_entry_name infranet.rel.password The entry in the Oracle wallet corresponding to the database password.
password &aes|09|... The database password, in BRM AES/OZT encryption (for BRM) or ECE encryption (for ECE). Do not include this parameter if you are using Oracle Wallet.
validateSchema true Sets whether the BRM schema should be validated when the pool is created. It checks the account_t root account entry to ensure the schema matches with the expected configuration.
initialPoolSize 1 The number of database connections to establish when the application starts.
minPoolSize 1 The minimum number of database connections that the pool will attempt to maintain at all times.
maxPoolSize 50 This tuning parameter sets the maximum number of database connections that the pool will create. This number should be considered in relation to the number of application loading and updating threads. If this number is too low, performance may be compromised. This parameter provides an effective limit on the concurrent work that can be submitted to the database.
connectionWaitTimeout 10 The amount of time, in seconds, that a thread will wait for a connection. If maxPoolSize is configured to handle all of the application threads concurrently, this parameter will usually not be significant. However, if you are using the maxPoolSize parameter to limit the database workload, you may need to set this parameter to a larger number to avoid transient processing failures.
validateConnectionOnBorrow false Determines whether a connection will be validated when it is acquired (by sending a SQL statement).
sqlForValidateConnection SELECT SYSDATE FROM DUAL The SQL statement used to validate a connection.
fastConnectionFailoverEnabled false Defines whether the Oracle Fast Connection Failover feature is enabled. See the Oracle Database documentation for more information.
onsConfiguration

propertiesfile=/usr/ons/ons.properties

or

nodes=racnode1:4200,racnode2:4200

If fastConnectionFailoverEnabled is set to true, set this to define the Oracle Notification Services configuration for Fast Connection Failover. See the Oracle Database documentation for more information.
maxStatements 25 The size of the statement cache for each connection.
deferredStart false Defines whether the pool should be instantiated without being started. This should usually be set to false.
jmxEnabled true Determines whether Java Management Extensions (JMX) is enabled for the Oracle Universal Connection Pool (UCP).
metricUpdateInterval 10 The interval (in seconds) between pool metric updates by UCP.
poolLogLevel INFO The JDBC logging level. Possible values include INTERNAL_ERROR, SEVERE, WARNING, INFO, CONFIG, and FINE. See the Oracle Database documentation for more information.
REL Manager Command Configuration

This section contains the parameters that define which actions will be available in REL Manager. You should not change or add to the entries in this file. However, if you want to disable any commands that are included by default, you can comment those entries out of the file. For example, if you are not using any of the ZIP processes, you might comment out the commands related to ZIP files.

The parameters in Table 7-14 are all preceded by rel_manager.commands. (including the period at the end).

Table 7-14 REL Manager Command Configuration Parameters

Name Value Description
1 com.oracle.brm.rel_manager.SearchComplete Enables the search_complete command.
2 com.oracle.brm.rel_manager.SearchUpdateFailure Enables the search_update_error command.
3 com.oracle.brm.rel_manager.SearchLoadFailure Enables the search_load_error command.
4 com.oracle.brm.rel_manager.SearchPoid Enables the search_poid command.
5 com.oracle.brm.rel_manager.RetrySession Enables the retry_session command.
6 com.oracle.brm.rel_manager.PurgeComplete Enables the purge command.
7 com.oracle.brm.rel_manager.SummaryReport Enables the summary_report command.
8 com.oracle.brm.rel_manager.SearchDetailReport Enables the search_detail command.
9 com.oracle.brm.rel_manager.ZipSummaryReport Enables the zip_summary_report command.
10 com.oracle.brm.rel_manager.ZipDetailReport Enables the zip_detail command.
11 com.oracle.brm.rel_manager.ZipFileWrite Enables the zip_file_write command.
12 com.oracle.brm.rel_manager.ZipFileSearch Enables the zip_file_search command.
13 com.oracle.brm.rel_manager.ZipFileReload Enables the zip_file_reload command.
Sample REL Manager RELM.properties File

Following is a sample of the RELM.properties file for REL Manager on BRM.

# REL Manager Global

rel_manager.table_format_file = ${PIN_HOME}/apps/rel_manager/TableFormat.properties
rel_manager.console_prompt = RELManager>
rel_manager.view.strip_directory_path = true
rel_manager.zip_directory = ${HOME}/data/unzipped
rel_manager.history_file = ${PIN_HOME}/apps/rel_manager/alternative_history_file

# REL Manager JDBC

rel_manager.jdbc_pool.connectionURL = jdbc:oracle:thin:@//${HOSTNAME}:1521/PINDB
rel_manager.jdbc_pool.user = pin
rel_manager.jdbc_pool.wallet_location = ${BRM_WALLET}
rel_manager.jdbc_pool.wallet_entry_name = infranet.rel.password
#rel_manager.jdbc_pool.password = &aes|09|0D5E11BFDD97D2769D9B0DBFBD1BBF7E918CF0C3F5090EE918B725E18308004CDD
rel_manager.jdbc_pool.validateSchema = true
rel_manager.jdbc_pool.initialPoolSize = 1
rel_manager.jdbc_pool.minPoolSize = 1
rel_manager.jdbc_pool.maxPoolSize = 2
rel_manager.jdbc_pool.connectionWaitTimeout = 5
rel_manager.jdbc_pool.validateConnectionOnBorrow = false
rel_manager.jdbc_pool.sqlForValidateConnection = SELECT SYSDATE FROM DUAL
rel_manager.jdbc_pool.fastConnectionFailoverEnabled = false
rel_manager.jdbc_pool.onsConfiguration =
rel_manager.jdbc_pool.maxStatements = 25
rel_manager.jdbc_pool.deferredStart = false
rel_manager.jdbc_pool.jmxEnabled = false
rel_manager.jdbc_pool.metricUpdateInterval = 10
rel_manager.jdbc_pool.poolLogLevel = INFO

# REL Manager Commands

rel_manager.commands.1 = com.oracle.brm.rel_manager.SearchComplete
rel_manager.commands.2 = com.oracle.brm.rel_manager.SearchUpdateFailure
rel_manager.commands.3 = com.oracle.brm.rel_manager.SearchLoadFailure
rel_manager.commands.4 = com.oracle.brm.rel_manager.SearchPoid
rel_manager.commands.5 = com.oracle.brm.rel_manager.RetrySession
rel_manager.commands.6 = com.oracle.brm.rel_manager.PurgeComplete
rel_manager.commands.7 = com.oracle.brm.rel_manager.SummaryReport
rel_manager.commands.8 = com.oracle.brm.rel_manager.SearchDetailReport
rel_manager.commands.9 = com.oracle.brm.rel_manager.ZipSummaryReport
rel_manager.commands.10 = com.oracle.brm.rel_manager.ZipDetailReport
rel_manager.commands.11 = com.oracle.brm.rel_manager.ZipFileWrite
rel_manager.commands.12 = com.oracle.brm.rel_manager.ZipFileSearch
rel_manager.commands.13 = com.oracle.brm.rel_manager.ZipFileReload

Configuring the REL Manager Table Format Properties File

You configure the parameters in this file to set the appearance of the output from the REL Manager search commands. The default file name and location for this file is ${PIN_HOME}/apps/rel_manager/TableFormat.properties, but you can configure a different name and location using the rel_manager.table_format_file parameter in the RELM.properties file.

Configuring COLUMN Entries

This file consists of a block for each display table. The block contains a TABLE entry for the table and a COLUMN entry for each column. Each COLUMN entry is in the following format:

type;attributeName;textFormat;columnWidth;csvFormat;label;justification;operation

Table 7-15 describes the elements of the syntax.

Table 7-15 REL Manager COLUMN Configuration Variables

Name Example Description
type BOTH Indicates whether this column is available in a text report or in a comma-separated-value (CSV) report. Available values are TEXT, CSV, and BOTH. If you want to remove the column from all reports, comment out the line in the file.
attributeName poid_id0 The name of one of the attribute names available for the table. See Table 7-16, Table 7-17, or Table 7-18 for a list of available values.
textFormat %12d Contains the format of the column for the text report using Java String format. This is used for text reports only.
columnWidth 14 Contains the width of the column in characters. Usually, this value will be two characters longer than the format, to allow for white space. This value is used for text reports only.
csvFormat %d Contains the format of the column for the CSV report using Java String format. This is used for CSV reports only.
label Poid Contains the heading for the column.
justification RIGHT Indicates the alignment for the column. Available values are LEFT and RIGHT, with RIGHT usually being used for numbers.
operation none

Indicates whether the column should provide an aggregated value. Available values are:

none: Do not use aggregation.

sum: The sum of the values will be displayed.

avg: The average of the values will be displayed.

min: The minimum value will be displayed.

max: The maximum value will be displayed.

Available Attribute Names for COLUMN Entries

There is a fixed list of attributes that can be used in the tables. The available attributes are different for different TABLE types.

Table 7-16 provides a list of the available values for the rel_manager.batch_rel_list and rel_manager.batch_zip_list tables.

Table 7-16 Attribute Name Values for the rel_manager.batch_rel_list and rel_manager.batch_zip_list Tables

Attribute Name Description
day_str The local date and time of the last time the object was modified
end_poid_id0 The highest POID for the batch of loaded events
end_t The numeric end time for the load
input_file_name The name of the file that was loaded
is_zip YES/NO indicator of whether the object is a ZIP file
mod_t The numeric time the object was last modified
num_total_records The total number of events loaded in the batch
partition_number The number of the partition set, usually 1
poid_id0 the POID for the object
recipient_name The receiving operator (for Transferred Account Procedure (TAP) records
sender_name The sending operator (For TAP records)
start_poid_id0 The lowest POID for the batch of loaded events
start_t The numeric start time for the load
state The text description of the status
status The number indicating the status
tables The list of BRM tables loaded for this batch
zip_size_gb The size of the ZIP files in GB
zip_size_kb The size of the ZIP files in KB
zip_size_mb The size of the ZIP files in MB
zip_state The text description of the status of the ZIP file
zip_status The number indicating the status of the ZIP file

Table 7-17 provides a list of the available values for the rel_manager.batch_summary table.

Table 7-17 Attribute Name Values for the rel_manager.batch_summary Table

Attribute Name Description
processed_str The date and time the file was processed
row_count The number of objects in the batch
state The text description of the status of the batch
status The number indicating the status of the batch
total_records The total number of CDRs processed

Table 7-18 provides a list of the available values for the rel_manager.zip_summary table.

Table 7-18 Attribute Name Values for the rel_manager.zip_summary Table

Attribute Name Description
processed_str The date and time the file was processed
rel_state The text description of the status of the batch
rel_status The number indicating the status of the batch
row_count The number of objects in the batch
total_size_gb The size of the ZIP data in GB
total_size_kb The size of the ZIP data in KB
total_size_mb The size of the ZIP data in MB
total_records The total number of CDRs processed
zip_state The text description of the status of the ZIP file
zip_status The number indicating the status of the ZIP file

Mapping TABLE Entries to REL Manager Commands

There are four TABLE entries in this file. Each TABLE provides the output format for query commands in REL Manager.Table 7-19 provides a list of the commands affected by each TABLE entry.

Table 7-19 TABLE and REL Manager Command Mapping

TABLE Entry REL Manager Command Names
rel_manager.batch_rel_list

search_complete

search_detail

search_load_error

search_poid

search_update_error

zip_file_search

rel_manager.batch_summary summary_report
rel_manager.zip_summary zip_summary_report
rel_manager.batch_zip_list zip_detail

Following is a sample TableFormat.properties file.

TABLE=rel_manager.batch_rel_list
   COLUMN=BOTH;poid_id0;%12d;14;%d;Poid;RIGHT;none
   COLUMN=BOTH;mod_time;%-19.19s;21;%s;Mod Time;LEFT;none
   COLUMN=BOTH;input_file_name;%-60.60s;62;%s;Input Filename;LEFT;none
   COLUMN=BOTH;status;%6d;8;%d;Status;RIGHT;none
   COLUMN=BOTH;state;%-18.18s;20;%s;State;LEFT;none
   COLUMN=BOTH;num_total_records;%8d;10;%d;Records;RIGHT;SUM
   COLUMN=BOTH;start_time;%-19.19s;21;%s;Start Time;LEFT;none
   COLUMN=BOTH;end_time;%-19.19s;21;%s;End Time;LEFT;none
   COLUMN=BOTH;is_zip;%-6.6s;8;%s;Is ZIP?;LEFT;none

TABLE=rel_manager.batch_summary
   COLUMN=BOTH;processed_str;%-13.13s;15;%s;Day Processed;LEFT;NONE
   COLUMN=BOTH;status;%6d;8;%d;Status;RIGHT;NONE
   COLUMN=BOTH;state;%-18.18s;20;%s;State;LEFT;NONE
   COLUMN=BOTH;row_count;%10d;12;%d;Files;RIGHT;SUM
   COLUMN=BOTH;total_records;%10d;12;%d;Events;RIGHT;SUM

TABLE=rel_manager.zip_summary
   COLUMN=BOTH;processed_str;%-13.13s;15;%f;Day Processed;LEFT;none
   COLUMN=BOTH;zip_status;%6d;8;%d;Status;RIGHT;NONE
   COLUMN=BOTH;zip_state;%-18.18s;20;%s;State;LEFT;NONE
   COLUMN=BOTH;rel_state;%-18.18s;20;%s;Load State;LEFT;NONE
   COLUMN=BOTH;row_count;%10d;12;%d;Files;RIGHT;SUM
   COLUMN=BOTH;total_records;%10d;12;%d;Events;RIGHT;SUM
   COLUMN=BOTH;total_file_size_mb;%10.3f;12;%f;Size(Mb);RIGHT;SUM

TABLE=rel_manager.batch_zip_list
   COLUMN=BOTH;poid_id0;%12d;14;%d;Poid;RIGHT;none
   COLUMN=BOTH;mod_time;%-19.19s;21;%s;Mod Time;LEFT;none
   COLUMN=BOTH;input_file_name;%-60.60s;62;%s;Input Filename;LEFT;none
   COLUMN=BOTH;status;%6d;8;%d;Status;RIGHT;none
   COLUMN=BOTH;state;%-18.18s;20;%s;State;LEFT;none
   COLUMN=BOTH;num_total_records;%8d;10;%d;Records;RIGHT;SUM
   COLUMN=BOTH;zip_status;%10d;12;%d;Zip Status;RIGHT;none
   COLUMN=BOTH;zip_state;%-18.18s;20;%s;Zip State;LEFT;none
   COLUMN=BOTH;zip_size_mb;%12.3f;14;%f;Zip Size(Mb);RIGHT;SUM
   COLUMN=BOTH;is_extracted;%-10.10s;12;%s;Extracted?;LEFT;none

Configuring RE Manager and REL Manager Logging

The RE Manager (both for BRM and ECE) and the REL Manager use log4j2 for logging. Following is the location of the log4j2.xml configuration files for the different components:

  • RE Manager: BRM_home/apps/rated_event_manager
  • ECE RE Manager Plug-in: ECE_home/oceceserver/config
  • REL Manager: BRM_home/apps/rel_manager

RE Manager and ECE RE Manager Plug-in Loggers

The same loggers are defined for the RE Manager on both BRM and ECE. The RE Manager log4j2 configuration is by itself in the log4j2.xml file in the directory above. The ECE RE Manager Plug-in log4j2 configuration is in the main ECE log4j2.xml file with other ECE loggers. The loggers used in these files are:

<Loggers>
  <Logger name="com.oracle.brm.rated_event_manager" level="INFO" additivity="false">
    <AppenderRef ref="REM"/>
  </Logger>
  <Logger name="com.oracle.brm.rated_event_manager.diagnostic" level="INFO" additivity="false">
    <AppenderRef ref="REM_DIAG"/>
  </Logger>
  <Root level="INFO">
    <AppenderRef ref="REM"/>
  </Root>
</Loggers>

The com.oracle.brm.rated_event_manager logger is the main application log. It is sent to the REM appender. You can set the log level to any of the valid values for log4j2. Some of the log levels available are:

  • TRACE: This log level provides verbose information, including each row loaded into the database.
  • DEBUG: This log level provides information about the steps for each loading function.
  • WARN: This log level provides non-critical warnings.
  • INFO: This log level provides a one-line summary of each file processed.
  • ERROR: This log level provides only error information.

The com.oracle.brm.rated_event_manager.diagnostic logger provides diagnostic data. It is sent to the REM_DIAG appender. You can set the log level to any of the valid values for log4j2. Some of the log levels available are:

  • DEBUG: This diagnostic level provides information about stored procedures, if the enable_serveroutput parameter is set to an appropriate value in the REM.properties file for RE Manager.
  • INFO: This diagnostic level provides data about each loader, pre-updater, and updater.
  • ERROR: This diagnostic level provides error information.

REL Manager Loggers

The log configuration for REL Manager contains the following loggers:

<Loggers>
  <Logger name="com.oracle.brm.rated_event_manager" level="INFO"/>
  <Logger name="com.oracle.brm.rel_manager" level="INFO"/>
  <Logger name="com.oracle.brm.table_formatter" level="INFO"/>
  <Root level="INFO">
    <AppenderRef ref="RELM"/>
  </Root>
</Loggers>

The com.oracle.brm.rel_manager logger is the main application log. There is also a logger for the table formatter. The com.oracle.brm.rated_event_manager logger, also in use for the RE Manager, is included because the REL Manager can use the JDBC pool of the RE Manager. Log information for the REL Manager is sent to the RELM appender. You can set the log level to any of the valid values for log4j2.