This chapter describes how to set up Oracle Communications Billing and Revenue Management (BRM) Rated Event (RE) Loader to load events that have been rated by Pipeline Manager.
For an overview of loading pipeline events, see "Understanding Rated Event Loader".
You should be familiar with the following topics:
Installing, configuring, and running Pipeline Manager. See "Installing Pipeline Manager" in BRM Installation Guide.
Oracle In-Memory Database (IMDB) Cache. See "Using Oracle IMDB Cache Manager" in BRM System Administrator's Guide.
Oracle database concepts and implementation.
Caution:
Always use the BRM API to manipulate data. Changing data in the database without using the API can corrupt the data.
Do not use SQL commands to change data in the database. Always use the API.
To set up your system for RE Loader:
Install RE Loader:
For Oracle Data Manager (DM) systems, install one instance of RE Loader for each BRM database schema.
For IMDB Cache DM systems, install one instance of RE Loader for each logical partition in IMDB Cache.
Configure your system to use the correct Oracle library files. See "Configuring Oracle Libraries for RE Loader".
Configure the RE Loader configuration (Infranet.properties) file. See "Configuring the RE Loader Infranet.properties File".
Create RE Loader processing directories. See "Setting Up RE Loader Processing Directories".
Configure RE Loader to work with multischema systems. See "Setting Up RE Loader for Multischema Systems".
Configure RE Loader to work with IMDB Cache DM systems. See "Setting Up RE Loader for IMDB Cache-Enabled Systems".
Configure Batch Controller to run RE Loader automatically. See "Configuring RE Loader to Run Automatically".
Configure the RE Loader daemon for IMDB Cache-enabled systems. See "Configuring the start_rel_daemon Script for an Oracle IMDB Cache System".
Disable invoice event caching. See "Disabling Invoice Event Caching".
Set up delayed billing. See "Enabling a Billing Delay for CDRs".
Increase the maximum field length in input data files. See "Configuring Field Lengths for Input Data Files".
Configure RE Loader to load preprocessed rated events from ECE into BRM. See "Setting Up RE Loader to Load Preprocessed Rated Events from ECE into BRM".
RE Loader requires Oracle 32-bit libraries, and Pipeline Manager requires Oracle 64-bit libraries. If RE Loader and Pipeline Manager reside on the same system, make sure both the 32-bit and 64-bit Oracle libraries are installed on your system.
To support the libraries on the same machine, set up your Oracle environment so that RE Loader points to the 32-bit Oracle libraries and Pipeline Manager points to the 64-bit Oracle libraries:
Install the 32-bit and 64-bit libraries in separate directories on the Pipeline Manager system.
Important:
For Oracle 11g R2 installations, install the full 32-bit client software in a separate Oracle_Home location. For more information, refer to the Oracle 11g R2 database installation documentation.Set environment variables in the pin_rel and SampleRelHandler_config.values files to point to the 32-bit libraries. See "Setting the Oracle Library Paths".
Set up your default Pipeline Manager environment in the Oracle_Home/.cshrc file to use Oracle 64-bit libraries. See Example 32-1.
To set the Oracle library paths:
Open the BRM_Home/apps/pin_rel/pin_rel file in a text editor. BRM_Home is the directory where you installed BRM components.
Add the following before the command that executes Java.
setenv ORACLE_HOME Oracle_Home setenv SHLIB_PATH ${ORACLE_HOME}/lib setenv PATH ${PATH}:${ORACLE_HOME}/bin
Note:
For Oracle 11g R2 installations, Oracle_Home points to the location where you installed the full 32-bit client software.Save and close the file.
Open the BRM_Home/apps/pin_rel/SampleRelHandler_config.values file in a text editor.
Add these lines between the FILETYPE and HANDLER_DIR variables:
Note:
The paths you set depend on your system setup.$ENV{'ORACLE_HOME'} = "/u01/app/oracle/product/11i64"; $ENV{'SHLIB_PATH'} = "/usr/lib:/opt/portal/7.5/lib:/u01/app/oracle/product/11i64/lib"; $ENV{'PATH'} = ".:/bin:/usr/bin:/usr/local/bin:/u01/app/oracle/product/11i64/bin:/opt/portal/7.5/bin";
Save and close the file.
Example 32-1 Example of the Oracle 64-Bit Setting in the .cshrc File
setenv ORACLE_HOME /u01/app/oracle/product/10g64 setenv ORACLE_SID PIND10g64 setenv NLS_LANG American_America.AL32UTF8 setenv LD_LIBRARY_PATH $LD_LIBRARY_PATH:$ORACLE_HOME/lib32:$ORACLE_HOME/rdbms/lib32 setenv LD_LIBRARY_PATH_64 $IFW_HOME/lib:$ORACLE_HOME/lib:$ORACLE_HOME/rdbms/lib setenv ORACLE_BIN $ORACLE_HOME/bin setenv ORACLE_DOC $ORACLE_HOME/odoc setenv ORA_NLS33 $ORACLE_HOME/ocommon/nls/admin/data alias ora 'cd $ORACLE_HOME' set path = ($path $ORACLE_BIN)
The Infranet.properties file contains configuration information for processing event data record (EDR) files, such as the location of the RE Loader processing directory, how to connect to the BRM database, and how to process specific event types. The RE Loader Infranet.properties file contains the following sections:
Connection entries. This section specifies how to connect to your database. The entries are different for BRM systems with IMDB Cache DM than for BRM systems with Oracle DM.
General processing entries. This section defines your RE Loader log file, how to connect to BRM and the BRM database, and the fields to process in your EDR files.
Default processing entries. This section defines how to process any event type. You can override these values for specific events by using the storable class-specific entries.
Storable class-specific processing entries. This section defines how to process specific event types (for example, /event/delayed/session/gprs events or /event/delayed/session/telco/gsm events). All configuration information in this section overrides your default entries.
The RE Loader daemon entries. This section specifies how to run the RE Loader daemon. If you do not run the RE Loader daemon, you can ignore the entries in this section.
To configure your RE Loader Infranet.properties file:
Open the BRM_Home/apps/pin_rel/Infranet.properties file in a text editor.
Specify how to connect to your database by setting the entries shown in Table 32-1. Replace LogicalPartID with the logical partition number, such as 0.1.0.1.
Table 32-1 Database Connection Entries
Entry | Description |
---|---|
infranet.rel.dbname.LogicalPartID |
Specifies the data store alias in the sys.odbc.ini file. This entry applies to IMDB Cache-enabled systems only. You must create an entry for each logical partition in your system. |
infranet.rel.userid.LogicalPartID |
Specifies the user ID for connecting to the specified data store. The default is pin. This entry applies to IMDB Cache-enabled systems only. You must create an entry for each logical partition in your system. |
infranet.rel.password.LogicalPartID |
Specifies the password for connecting to the specified data store. The default is pin. This entry applies to IMDB Cache-enabled systems only. You must create an entry for each logical partition in your system. |
infranet.rel.dbtype |
Specifies the BRM database type. The default is oracle. |
infranet.rel.dbname |
Specifies the BRM database name. Note: Your database name is the TNSNAMES alias in the Oracle_Home/network/admin/tnsnames.ora file. The default is pindb. |
infranet.rel.userid |
Specifies the user ID for connecting to the BRM database. The default is pin. |
infranet.rel.password |
Specifies the password for connecting to the BRM database. The default is pin. |
Set the general processing entries shown in Table 32-2.
Table 32-2 General Processing Entries
Entry | Description |
---|---|
infranet.log.file |
Specifies the name of the RE Loader log file. The default is rel.pinlog. |
infranet.log.name |
Specifies the name of the application. The default is REL for RE Loader. |
infranet.log.level |
Specifies the log reporting level:
The default is 1. For more information, see "Setting the Reporting Level for Logging Messages" in BRM System Administrator's Guide. |
infranet.log.logallebuf |
Specifies whether RE Loader automatically logs all EbufExceptions. The default is True. |
infranet.rel.use_end_time |
Specifies whether RE Loader uses the start time or end time of the rated event for deciding the billing cycle.
|
infranet.connection |
Specifies the user login name. For example:
infranet.connection=pcp://root.0.0.0.1:password@localhost:11960/service/pcm_client
RE Loader uses this Connection Manager (CM) connection to log audit information. Important: RE Loader writes audit information to the database specified in this entry. If you use a multischema system, you might want to modify this entry to write audit information to the schema where the records are loaded. |
infranet.login.type |
Specifies whether RE Loader requires a login name and password to log in to BRM.
The default is 1. |
infranet.rel.dbhost |
Specifies the database machine's host name. |
infranet.rel.dbport |
Specifies the database port number. The default is 1433. |
infranet.failover |
In high-availability systems, specifies the secondary CM connection. For example: infranet.failover.1 = pcp://root.0.0.0.db_no:password@failover_host:failover_port/service/pcm_client |
infranet.rel.polling_interval |
Specifies the interval, in milliseconds, that RE Loader checks the database to see whether another process is loading. The default is 1000. The polling interval depends on the number and size of your input files. If you have very large files, make the polling interval longer. If you have many small files, make the interval shorter. |
infranet.rel.polling_time_out |
Specifies the time, in milliseconds, that RE Loader waits to load events before exiting. The default is 600000. The time-out period depends on the number and size of your input files and how many parallel RE Loader processes are running. If you have very large files or many processes, make the time-out period longer. |
infranet.rel.partition_set_number |
Specifies the partition set number, from 1 through 7. This entry applies only to BRM databases with multiple delayed partition sets. The default is 1.
|
infranet.rel.updater_threads |
Specifies the number of threads dedicated to the update and preupdate stored procedures. You can specify a fixed number of threads or configure RE Loader to adjust the number of threads based on the number of database objects to update. To specify a fixed number of threads, set the entry equal to the desired number of threads. To configure RE Loader to automatically adjust the number of threads, set the entry to 0. RE Loader spawns the number of threads shown below: Less than 1,000 objects: 2 threads Between 1,000 and 200,000 objects: 4 threads More than 200,000 objects: 8 threads The default is 4. Note: Specifying a number of threads that exceeds the number of CPUs in your system may cause deadlock due to a lack of system resources. If you set the infranet.rel.updater_threads entry to a value greater than 8, RE Loader returns a warning message and continues processing. |
infranet.rel.validate_dbnumber |
Specifies whether RE Loader performs an extra validation step to ensure that it is loading a call detail record (CDR) file into the correct database schema. The default is True. Important: Use this option only for debugging. In a production environment, set this to False. Setting it to True degrades performance while loading data into the database. For more information, see "Turning Off Database Verification to Improve Processing Performance". |
infranet.rel.validate_indexes |
Specifies whether RE Loader verifies that the database indexes are correct before loading data into the database. The default is False. Note: RE Loader does not validate indexes in IMDB Cache. For IMDB Cache-enabled systems, set this to False. Important: Use this option only for debugging. In a production environment, set this to False. Setting it to True degrades performance while loading data into the database.For more information, see "Turning Off Index Verification to Improve Database Loading Performance". |
infranet.rel.max_increment_by |
Specifies the number of database schemas in your system. This value is used by the POID generation algorithm to ensure that POIDs are unique across all databases schema in your system. The default is 20. For more information, see "Preventing POID Errors in Multischema Systems". |
infranet.rel.sort.limit |
Defines the maximum number of CDRs that the preprocessing script can sort by account ID. This improves performance later during the balance updating process. If the number of CDRs in the input file is greater than the infranet.rel.sort.limit value, the preprocessing script does not sort the CDRs. The default is 100000. |
infranet.rel.custom_error_codes |
Specifies the name of the custom error code file. The default name is CustomErrorCodes.properties. If you want to move this file from its default location, you must create a symbolic link between the name of the file and its new location. To create this link, go to the BRM_Home/apps/pin_rel directory and enter the following at the command prompt: $ ln -s path_to_where_file_was_moved /CustomErrorCodes.properties ./CustomErrorCodes.properties |
infranet.rel.default.header.record_type |
Specifies the header record type. The default is 010. |
infranet.rel.default.detail.record_type |
Specifies the detail record type. The default is 020. |
infranet.rel.default.trailer.record_type |
Specifies the trailer record type. The default is 090. |
infranet.rel.field.delimiter |
Specifies the delimiter symbol. The default is \t, for tabs. |
infranet.rel.header.position.storable_class |
Specifies which field in the EDR file contains the storable class name. The default is 20. Note: When you set this field to 0, RE Loader uses the default storable class specified in infranet.rel.default.storable_class. |
infranet.rel.header.position.creation_process |
Specifies which field in the EDR file contains the name of the creation process (for example, whether the file contains prerated, rerated, or discount events). The default is 18. Note: You can specify 0 if you do not need this field validated. |
infranet.rel.header.position.sender |
Specifies which field in the EDR file contains the sender. The default is 3. |
infranet.rel.header.position.recipient |
Specifies which field in the EDR file contains the recipient. The default is 4. |
infranet.rel.header.position.file_sequence |
Specifies which field in the EDR file contains the file sequence number. The default is 5. Note: You can specify 0 if you do not need this field validated. |
infranet.rel.header.position.creation_timestamp |
Specifies which field in the EDR file contains the creation timestamp. The default is 7. Note: You can specify 0 if you do not need this field validated. |
infranet.rel.header.position.object_cache_type |
Set this value to 0. |
infranet.rel.trailer.position.record_count |
Specifies the field position of the field that contains the total number of detail records in the output file. The default is 7. The field position starts with 1. |
infranet.rel.file_extension.disc.transform_script |
By default, this entry is commented out. |
infranet.rel.file_extension.disc.transform_flags |
By default, this entry is commented out. |
Set the default configuration entries shown in Table 32-3. The configuration information in this section applies to all event types except for those defined in the storable class-specific section.
Table 32-3 Default Configuration Entries
Entry | Description |
---|---|
infranet.rel.default.interim_directory |
Specifies the RE Loader processing directory. This is the location where preprocessed events are temporarily stored before they are loaded. The default is BRM_Home/apps/pin_rel. |
infranet.rel.default.supported_creation_processes |
Specifies which creation processes are supported. By default, RE Loader supports all creation processes:
|
infranet.rel.default.failure_script |
Specifies the script called when RE Loader attempts to reload events that previously failed to load into the database. The default is pin_rel_handle_interim_files.pl. |
infranet.rel.default.failure_flags |
Specifies the flag passed to the failure script. You can specify the following flags in the default pin_rel_handle_interim_files.pl failure script:
The default is 1. |
infranet.rel.default.preprocess_script |
Specifies the name of the preprocessing script. The default is pin_rel_preprocess_cdr.pl. |
infranet.rel.default.preprocess_flags |
Specifies the flag passed to the preprocessing script. The default is 0. |
infranet.rel.default.load_util |
Specifies the name of the load utility. For Oracle's SQL Loader, it also specifies whether the utility uses direct-path loading or conventional-path loading:
To specify the load utility name and loading mode:
The default is sqlldr direct=true streamsize=5000000 readsize=10000000 unrecoverable. |
infranet.rel.default.preupdater_sproc |
Specifies the name of the preupdate stored procedure.
The default is pin_rel.pin_rel_pre_updater_sp. |
infranet.rel.default.preupdater_batch_size |
Specifies the size of the preupdate batch. For IMDB Cache-enabled systems, this entry must be tuned for optimum performance and memory usage. Oracle recommends setting this entry to 25. The default is 5. |
infranet.rel.default.preupdater_flags |
Specifies the flag passed to the preupdate stored procedure. The default is 1. |
infranet.rel.default.updater_sproc |
Specifies the name of the update stored procedure.
The default is pin_rel.pin_rel_updater_sp. |
infranet.rel.default.updater_batch_size |
Specifies the size of the update batch. For IMDB Cache-enabled systems, this entry must be tuned for optimum performance and memory usage. Oracle recommends setting this entry to 25. The default is 5. |
infranet.rel.default.updater_flags |
Specifies the flag passed to the update stored procedure. The default is 1. |
infranet.rel.default.success_script |
Specifies the script called when RE Loader successfully loads a batch of events into the BRM database. The default is pin_rel_handle_interim_files.pl. |
infranet.rel.default.success_flags |
Specifies the flag passed to the success script. You can specify the following flags in the default pin_rel_handle_interim_files.pl script:
The default is 1. |
infranet.rel.default.storable_class |
Specifies the storable class you are loading. The default is /event/delayed/session/gprs. Important: If you use conventional-path loading, use the APPEND option in your RE Loader control files. Do not use the TRUNCATE option. |
infranet.rel.default.creation_process |
Specifies whether the file contains prerated, rerated, or discount events:
Important: RE Loader can dynamically source the creation process from the EDR header file. Uncomment this entry only if all of your EDR files come from the same creation process. The default is RATING_PIPELINE. |
infranet.rel.default.ece_control_file_directory |
Specifies the location of the control files generated by BRM Elastic Charging Engine (ECE).The default is BRM_Home/apps/pin_rel. |
infranet.rel.default.ece_data_file_directory |
Specifies the location of the data files generated by ECE.The default is BRM_Home/apps/pin_rel. |
infranet.rel.ece_preprocessed |
Specifies whether RE Loader uses ECE generated preprocessed control files and data files:
The default is FALSE. |
If necessary, set the storable class-specific entries shown in Table 32-4. These settings override the default settings for the specified storable class.
Note:
For each storable class, only the infranet.rel.storable_class.classname.number_of_tables and infranet.rel.storable_class.classname.table.N.name entries are mandatory. RE Loader uses the default settings for any undefined storable class-specific entries.When editing these entries:
Create a set of entries for each event type you want to load.
Replace classname with the appropriate storable class name. For example, use event_delayed_session_gprs for the /event/delayed/session/gprs storable class.
Create a set of *.table.N.* entries for each table. For example, if the storable class contains three tables, create a set of *.table.1.* entries, a set of *.table.2.* entries, and a set of *.table.3.* entries.
Table 32-4 Storable Class-Specific Configuration Entries
Entry | Description |
---|---|
infranet.rel.storable_class.classname.interim_directory |
RE Loader processing directory. This is the location where preprocessed events are temporarily stored before they are loaded. |
infranet.rel.storable_class.classname.supported_creation_processes |
Specifies whether the file contains prerated, rerated, or discount events. |
infranet.rel.storable_class.classname.failure_script |
Specifies the script to call when RE Loader attempts to load events that previously failed to load into the database. |
infranet.rel.storable_class.classname.failure_flags |
Specifies the flag to pass to the failure script. |
infranet.rel.storable_class.classname.preprocess_script |
Specifies the name of the preprocessing script. |
infranet.rel.storable_class.classname.preprocess_flags |
Specifies the flag to pass to the preprocessing script. |
infranet.rel.storable_class.classname.number_of_tables |
Specifies the number of tables in the storable class. Important: This entry is mandatory for each event type. |
infranet.rel.storable_class.classname.table.N.name |
Specifies the name of a storable class table. Important: This entry is mandatory for each event type. |
infranet.rel.storable_class.classname.table.N.load_util |
Specifies the name of the load utility. For Oracle's SQL Loader, it also specifies whether the utility uses direct-path loading or conventional-path loading:
Important: If you use conventional-path loading, use the APPEND option in your RE Loader control files. Do not use the TRUNCATE option. |
infranet.rel.storable_class.classname.table.N.control_file |
Specifies the control file to use when loading the data file into the database. |
infranet.rel.storable_class.classname.preupdater_sproc |
Specifies the name of the preupdater stored procedure. |
infranet.rel.storable_class.classname.preupdater_batch_size |
Specifies the preupdater batch size. |
infranet.rel.storable_class.classname.preupdater_flags |
Specifies the flag to pass to the preupdater stored procedure. |
infranet.rel.storable_class.classname.updater_sproc |
Specifies the name of the updater stored procedure. |
infranet.rel.storable_class.classname.updater_batch_size |
Specifies the updater batch size. |
infranet.rel.storable_class.classname.updater_flags |
Specifies the flag to pass to the updater stored procedure. |
infranet.rel.storable_class.classname.success_script |
Specifies the script to call when RE Loader successfully loads a data file into the BRM database. |
infranet.rel.storable_class.classname.success_flags |
Specifies the flag to pass to the success script when RE Loader successfully loads a data file into the BRM database. |
(Optional) To run the RE Loader daemon, add or modify the RE Loader daemon entries shown in Table 32-5.
When editing these entries, replace event with the appropriate event type.
Table 32-5 RE Loader Daemon Entries
Entry | Description |
---|---|
batch.check.interval |
Specifies the time interval, in seconds, to monitor files from the pipeline output directory. The default is 5. |
batch.file.rename.extension |
Specifies the file name extension that the RE Loader daemon uses to rename the interim files before processing them. The default is .bc. |
batch.start.highload.time |
Specifies the start time of your system's busiest period. Specify the hour, minute, and second, in hhmmss format, using the 24-hour clock. |
batch.end.highload.time |
Specifies the start time of your system's slowest period. Specify the hour, minute, and second, in hhmmss format, using the 24-hour clock. |
batch.lock.socket.addr |
Specifies the port address of the process. |
batch.rel.archiveDir |
Specifies the full path to the directory where a successfully processed file is archived. This is the default archive directory for all the event handlers. |
batch.rel.rejectDir |
Specifies the full path to the directory where an unsuccessfully processed file is stored. This is the default reject directory for all the event handlers. |
batch.random.events |
Specifies the name of the event type to process. If you have two or more event types, separate each with a comma, but no blank space. For example, TEL,SMS,GPRS. |
event.max.at.highload.time |
Specifies the highest number of the RE Loader threads that are permitted to run simultaneously for this event during the high-load time; that is, from batch.start.highload.time to batch.end.highload.time. For example, if event.max.at.highload.time is 2, two threads are permitted to run simultaneously for this event during the high-load time. |
event.max.at.lowload.time |
Specifies the highest number of the RE Loader threads that are permitted to run simultaneously for this event during the low-load time; that is, from batch.end.highload.time to batch.start.highload.time. For example, if event.max.at.lowload.time is 2, two threads are permitted to run simultaneously for this event during the low-load time. |
event.file.location |
Specifies the full path name of the directory to monitor for the arrival of new files that match the pattern in event.file.pattern. |
event.file.pattern |
Specifies the file name pattern to look for. You can use an asterisk (*) to represent zero or more characters in the file name. No other wildcards are supported. |
event.tt_node |
Specifies the IMDB Cache logical partition for this event type. This entry applies to IMDB Cache-enabled systems only. You must create an entry for each logical partition in your system. |
event.archiveDir |
(Optional) Specifies the full path to the directory where a successfully processed file is archived for a particular event handler. When multiple event handlers are configured, configure this entry to specify the directory that archives files from a particular event handler. |
event.rejectDir |
(Optional) Specifies the full path to the directory where an unsuccessfully processed file is stored for a particular event handler. When multiple event handlers are configured, configure this entry to specify the directory that stores files from a particular event handler. |
event.file.type |
Specifies the type of input CDR file.
The default is STANDARD. Note: You cannot specify both ECE_PRE_SPLIT and STANDARD in the same Infranet.properties file. |
Save and close the file.
The processing directory is where you run RE Loader. It must include all RE Loader execution scripts, configuration files, and RE handler files. Most systems require only one RE Loader processing directory, but you must create additional processing directories in the following situations:
You have a multischema system. Each database schema in your system must have a corresponding instance of RE Loader and the RE Loader processing directory.
You have an IMDB Cache system with multiple logical partitions. Each logical partition must have a corresponding instance of RE Loader and the RE Loader processing directory.
You want to distribute load among multiple instances of RE Loader. If your system contains multiple pipelines that generate a large number of output files, you can increase database loading performance by using multiple RE Loader instances. In this case, each instance has its own processing directory and a corresponding pipeline output directory.
Important:
Do not configure multiple instances of RE Loader to process the same file type from the same directory. Doing so provides no advantage and can cause errors.To set up processing directories, do the following in each instance of RE Loader:
In your BRM_Home/apps/pin_rel directory, create processing directories.
For example, create a BRM_Home/apps/pin_rel/GPRS directory and a BRM_Home/apps/pin_rel/GSM directory.
Configure the Infranet.properties file. See "Configuring the RE Loader Infranet.properties File".
Copy all files from the BRM_Home/apps/pin_rel directory to each processing directory.
If RE Loader and Pipeline Manager are installed on separate systems, do the following:
Go to the system where Pipeline Manager is installed.
Mount the RE Loader processing directories onto the Pipeline Manager output directory.
Follow the instructions in "Configuring SE Loader for Standard Recycling".
To set up RE Loader for multischema systems:
Install and configure one instance of Pipeline Manager for each BRM database schema and one instance for the multischema account router.
For example, if your BRM system contains three schemas, install and configure four instances of Pipeline Manager.
See "Installing Pipeline Manager" in BRM Installation Guide.
In the multischema account router instance of Pipeline Manager, configure the following:
Set the FCT_AccountRouter module's Mode registry entry to ROUTER and configure the module's streams registry entry to create an output stream for each schema Pipeline Manager instance. See "FCT_AccountRouter".
Set the DAT_AccountBatch module's UseAsRouter registry entry to True. See "DAT_AccountBatch".
See "Using Pipeline Manager with Multiple Database Schemas" for more information.
If you are using an IMDB Cache-enabled system, you must perform these additional configuration steps:
Install the 32-bit Oracle IMDB Cache client software on your RE Loader machine.
Setting Up RE Loader for Multischema Systems with IMDB Cache
To set the Oracle library paths for Oracle IMDB Cache:
Open the BRM_Home/apps/pin_rel/pin_rel file in a text editor.
Set the following environment variables. Add these lines before the command that executes Java.
Set SHLIB_PATH to the path of the 32-bit Oracle IMDB Cache client software library directory.
Set TT_LIB_PATH to the path of the 32-bit Oracle IMDB Cache client software library directory.
Save and close the file.
Open the BRM_Home/apps/pin_rel/SampleRelHandler_config.values file in a text editor.
Set the TIMESTEN_ARGS entry:
$TIMESTEN_ARGS="-timesten LogicalPartID";
where LogicalPartID is the logical partition number, such as 0.1.0.1
Save and close the file.
You configure your data store connections by editing the sys.odbc.ini and sys.ttconnect.ini files. These files indicate how to connect to the database alias specified in the infranet.rel.dbname.LogicalPartID RE Loader Infranet.properties entry.
To configure your data store connections:
On the machine where you are running RE Loader, open the IMDB_32_Home/info/sys.odbc.ini file in a text editor. Replace IMDB_32_Home with the installation directory of the 32-bit Oracle IMDB Cache client software.
Add the following entries for each logical partition in your IMDB Cache system:
[LogicalPartitionName] TTC_Server=HostName_Active TTC_Server_DSN=DataStoreName_Active TTC_Server2=HostName_Standby TTC_Server2_DSN=DataStoreName_Standby
where:
LogicalPartitionName is the name you assigned to the logical partition. This value must match the value you entered in the infranet.rel.dbname.LogicalPartID RE Loader Infranet.properties entry.
HostName_Active is the IMDB Cache server's logical name where the active data store resides.
DataStoreName_Active is the name of the active data store.
HostName_Standby is the IMDB Cache server's logical name where the standby data store resides.
DataStoreName_Standby is the name of the standby data store. In a high-availability system with clusterware, the standby data store name is the same as the active data store name.
Notes:
The TTC_Server2 and TTC_Server2_DSN entries are optional and apply only to high-availability systems.
The sys.odbc.ini file includes other optional entries that you can set for each logical partition. For more information, see the Oracle IMDB Cache documentation.
For example, if your system contains two logical partitions, with each containing an active and a standby data store:
[IMDB_Partition_1] TTC_Server=Server1Host TTC_Server_DSN=tt_0.0.0.1 TTC_Server2=Server2Host TTC_Server2_DSN=tt_0.0.0.1 [IMDB_Partition_2] TTC_Server=Server2Host TTC_Server_DSN=tt_0.1.0.1 TTC_Server2=Server1Host TTC_Server2_DSN=tt_0.1.0.1
Save and close the file.
Open the IMDB_32_Home/info/systtconnect.ini file in a text editor.
Add the following entries for each IMDB Cache server in your IMDB Cache system:
[HostName] Network_Address=Address TCP_Port=PortNumber
where:
HostName is the IMDB Cache server's logical name. This value must match the value you set in the sys.odbc.ini file's TTC_Server entry.
Address is the network address for the IMDB Cache instance.
PortNumber is the port number for the IMDB Cache instance.
For example:
[Server1Host] Network_Address=Server1Host.company.com TCP_Port=53389 [Server2Host] Network_Address=Server2Host.company.com TCP_Port=53389
Save and close the file.
In an IMDB Cache-enabled system, you must configure Pipeline Manager to split events based on its target logical partition.
Install an instance of Pipeline Manager.
See "Installing Pipeline Manager" in BRM Installation Guide.
Configure Pipeline Manager to create separate streams for each logical partition:
Set the IRL_EventTypeSplitting_tt module's Active entry to True. See "IRL_EventTypeSplitting_tt".
Configure the IRL_EventTypeSplitting_tt.data file to map logical partitions and service codes to output streams. See "Sending EDRs to an Output Stream Based on Logical Partition and Service Code".
Set the DAT_AccountBatch module's TimesTenEnabled registry entry to True. See "DAT_AccountBatch".
For an example of how to set up your Pipeline Manager registry file for IMDB Cache systems, see the Pipeline_Home/conf/wireless_tt.reg registry file. Pipeline_Home is the directory where you installed Pipeline Manager. This sample registry file is preconfigured for an IMDB Cache system with two logical partitions
To set up RE Loader for multischema systems with IMDB Cache:
Install and configure one instance of Pipeline Manager for each BRM database schema and one instance for the multischema account router.
For example, if your BRM system contains three schemas, install and configure four instances of Pipeline Manager.
See "Installing Pipeline Manager" in BRM Installation Guide.
In the multischema account router instance of Pipeline Manager, configure the following:
Set the FCT_AccountRouter module's Mode registry entry to ROUTER and configure the module's streams registry entry to create an output stream for each schema Pipeline Manager instance. See "FCT_AccountRouter".
Set the FCT_AccountLPRouter module's Active entry to True.
The FCT_AccountLPRouter module must appear after the FCT_AccountRouter module in the pipeline registry file. See "FCT_AccountLPRouter".
Set the DAT_AccountBatch module's UseAsRouter registry entry to True and the module's TimesTenEnabled registry entry to False. See "DAT_AccountBatch".
For an example of how to set up the account router registry for IMDB Cache multischema systems, see the Pipeline_Home/conf/acc_router_tt.reg registry file.
Configure each schema Pipeline Manager instance to create separate streams for each logical partition:
Set the IRL_EventTypeSplitting_tt module's Active entry to True. See "IRL_EventTypeSplitting_tt".
Configure the IRL_EventTypeSplitting_tt.data file to map logical partitions and service codes to output streams. See "Sending EDRs to an Output Stream Based on Logical Partition and Service Code".
Set the DAT_AccountBatch module's TimesTenEnabled registry entry to True. See "DAT_AccountBatch".
For an example of how to set up the registry for each schema Pipeline Manager instance, see the Pipeline_Home/conf/acc_post_router_schema1_tt.reg registry file.
This section explains the setup required for RE Loader to work in a virtual column-enabled system. For information about enabling virtual columns in the BRM database, see the discussion on virtual columns in BRM System Administrator's Guide.
RE Loader populates some of the event tables. After you generate virtual columns on event tables in your BRM installation, you must run the pin_gen_classid_values.pl script. Running the script ensures that the proper mapping of BRM object types and their corresponding object IDs is created for your extended event objects in a virtual column-enabled system.
To set up RE Loader for virtual column-enabled systems:
Go to BRM_Home/setup/scripts.
Open the pin_gen_classid_values.pl file and verify that the first line in the file is pointing to the location of Perl in your installation.
Run the Perl script pin_gen_classid_values.pl.
Running the script regenerates the classid_values.txt file that is used by RE Loader. The classid_values.txt file has the mapping of BRM object types (poid_types) and their corresponding object IDs (object_ids).
If you have extended BRM objects and these extended objects are new event subclasses that impact RE Loader, you must create new SQL Loader (sqlldr) control files. To create new sqlldr control files, follow the steps for adding new event types for RE Loader to load in "Loading Prerated Events" in BRM Configuring Pipeline Rating and Discounting. In virtual column-enabled systems, the RE Loader sqlldr control files must use the keywords VIRTUAL_CHAR and VIRTUAL_CONSTANT in the section that specifies the data definition of rows and also in the constant section.
To configure RE Loader to run automatically, do the following for each instance of RE Loader:
Note:
For more information, see "About Running RE Loader Automatically".Specify each RE Loader batch handler and handler settings in the Batch Controller configuration file. See "Handler Identification" in BRM System Administrator's Guide.
Important:
If you use the ConfigurableValidityHandler batch handler for loading the validity periods of products, discounts, and resources that start on first usage, do not use the SampleRelHandler_config.values file as instructed below. Instead, configure the RE Loader batch handler in the ConfigurableValidityHandler configuration file (BRM_Home/apps/pin_rel/ConfigurableValidityHandler_config.values). ConfigurableValidityHandler runs both the pin_rel utility and the utility for loading validity data. See "Configuring the ConfigurableValidityHandler Batch Handler".To configure the RE Loader batch handler:
Give the SampleRelHandler.pl file a unique name. You will configure Batch Controller to call the handler using this name.
Create the following subdirectories: An archive subdirectory where successfully processed files can be stored and a reject subdirectory where unsuccessfully processed files can be stored.
Open the SampleRelHandler_config.values file and modify the entries shown in Table 32-6.
Table 32-6 Mandatory RE Loader Batch Handler Configuration Entries
Entry | Description |
---|---|
$TIMESTEN_ARGS |
(For IMDB Cache-enabled systems only.) Specifies the IMDB Cache logical partition name. The value uses the following format: -timesten LPidentifier where LPidentifier is the logical partition name specified in the infranet.rel.dbname.LogicalPartID entry of the pin_rel Infranet.properties file. |
$FILETYPE |
Specifies the EDR file-name pattern to look for. Change the value of this entry if you want to load only specific files. The default is *.dat.bc (any data file processed by Batch Controller). Batch Controller runs the RE Loader batch handler for each file with a name that matches this pattern. Tip: You can use an asterisk (*) to represent zero or more characters in the file name. No other wildcards are supported. |
$HANDLER_DIR |
Specifies the full path to the directory containing the RE Loader batch handler, which is this processing directory. |
$pinRELDir |
Specifies the full path to the directory containing the RE Loader application, which is this processing directory. |
$pinREL |
Specifies the full path to the batch application executable. |
$STAGING |
Specifies the full path to the pipeline output directory. If you specify a directory other than the pipeline output directory, use the UNIX command that links the pipeline output directory to the input staging directory. |
$PROCESSING |
Specifies the full path to the directory from which EDR files are processed. The default is $pinRELDir. This must be the same directory specified in the following RE Loader Infranet.properties entries:
|
$ARCHIVE |
Specifies the full path to the directory where a successfully processed file is archived. This is the archive subdirectory created in step 2. Change this value if you used a name other than the default, $pinRELDir/archive. |
$REJECT |
Specifies the full path to the directory where an unsuccessfully processed file is stored. This is the reject subdirectory created in step 2. Change this value if you used a name other than the default, $pinRELDir/reject. |
Save and close the file.
The RE Loader package includes Batch Controller. If your system already has Batch Controller installed, the RE Loader installer does not install another. Use the sample Batch Controller properties file (BRM_Home/apps/pin_rel/SampleBatchControllerInfranet.properties) to configure Batch Controller.
The default configuration for the sample Batch Controller runs RE Loader batch handler whenever a rated EDR file appears in the pipeline output directory. You can change this setting to trigger the RE Loader batch handler at specified times or based on other kinds of occurrences by editing the event entries that trigger the RE Loader batch handler. For more information, see "Setting Activity Times and Triggers" in BRM System Administrator's Guide.
To configure Batch Controller:
Copy the BRM_Home/apps/pin_rel/SampleBatchControllerInfranet.properties file to your BRM_Home/apps/batch_controller directory and change its name to Infranet.properties.
Open the BRM_Home/apps/batch_controller/Infranet.properties file.
Edit the BRM connection parameters.
For more information, see "Common Properties File Entry Syntax" in BRM System Administrator's Guide.
Set the relHandler.start.string parameter to the path of the RE Loader batch handler and to the name of the handler script that you gave it when configuring the RE Loader batch handler. See step 1 in "Configuring the RE Loader Batch Handler".
For example:
relHandler.start.string BRM_Home/apps/pin_rel/REL_handler_name.pl
(Optional) To change the number of RE Loader batch handler processes you want to run, set the maximum batch handler entries.
Note:
The number of RE Loader batch handler processes that are called depends on the number of EDR files in the pipeline output directory. You should test your RE Loader performance if you change these entries. See "About Running Multiple RE Loader Processes" for more information.relHandler.max.at.highload.time 3 relHandler.max.at.lowload.time 3
Set the cdrFileEvent.file.location parameter to specify the location of the pipeline output directory:
cdrFileEvent.file.location /export/Portal/integRate
Set the cdrFileEvent.file.pattern parameter to which files should be processed by Batch Controller:
cdrFileEvent.file.pattern cdr*.dat
Tip:
You can use an asterisk (*) as a wildcard character to represent zero or more characters in the file name.Save and close the file.
Stop and restart Batch Controller.
For more information about configuring Batch Controller, see "Controlling Batch Operations" in BRM System Administrator's Guide.
You use the start_rel_daemon script to start the RE Loader daemon.
To configure start_rel_daemon for an Oracle IMDB Cache system:
Open the BRM_Home/bin/start_rel_daemon file in a text editor.
Search the file for the following line:
TT_LIB_PATH=__TIMESTEN_CLIENT_HOME__/lib
Replace _TIMESTEN_CLIENT_HOME__/lib with the full path of the 32-bit Oracle IMDB Cache client software library directory.
Save and close the file.
If your system uses both RE Loader and invoicing, you must disable invoice event caching to ensure that invoices contain event details.
To disable invoice event caching:
Open the CM configuration file (BRM_Home/sys/cm/pin.conf).
Set the event_cache entry to 0:
- fm_inv event_cache 0
Note:
If this entry is set to any other value or is not present in the file, invoicing assumes there is data in the event cache and produces invoices without event details.Save and close the file.
Stop and restart the CM. See "Starting and Stopping the BRM System" in BRM System Administrator's Guide.
RE Loader cannot load a CDR for the next billing cycle when billing has not been completed unless the billing delay entry (config_billing_delay) in both the CM and the billing application configuration file (BRM_Home/apps/pin_billd/pin.conf) has been enabled (uncommented). RE Loader requires config_billing_delay to be enabled so that it can attach events to the past bill cycle or current bill cycle according to the event time. If you do not enable config_billing_delay, the CDRs for the next billing cycle are rated successfully, but RE Loader cannot load them.
Note:
If you use pipeline-triggered billing, you do not need to enable config_billing_delay because RE Loader loads CDRs only for the current billing cycle.
If you do not use delayed billing, set config_billing_delay to 0.
To enable config_billing_delay, see the description on "Setting Up Delayed Billing" in BRM Configuring and Running Billing.
Any value in the input data file that is longer than 255 characters must include its maximum size. If the maximum size is not specified, the value is truncated to 255 characters when it is loaded into the database.
Fields in the input data file that should not be loaded into the database are specified with the label FILLER in the SQL Loader control file. If the input data file contains a FILLER field with a value longer than 255 characters, SQL Loader will abort with an error indicating the field at fault. If this happens, add the maximum field size to the field entry in the SQL Loader control file. Use this syntax:
Field_name FILLER CHAR(max_size)
For example:
DISCOUNT_INFO FILLER CHAR(2000)
To set up RE Loader to load the preprocessed ECE-rated events into the BRM database:
Open the BRM_Home/apps/pin_rel/Infranet.properties file in a text editor.
Add the following entries:
infranet.rel.ece_preprocessed = True infranet.rel.default.ece_control_file_directory =controlFileDirectoryPath infranet.rel.default.ece_data_file_directory =dataFileDirectoryPath
where:
controlFileDirectoryPath is the path to the directory in which the ECE-generated control files are stored.
dataFileDirectoryPath is the path to the directory in which the ECE-generated data files are stored.
See the values of doneDirectoryPath and dataFileDirectoryPath parameters in the ECE_Home/oceceserver/config/management/charging-settings.xml file, where ECE_Home is the directory in which ECE is installed, for the path of the controlFileDirectoryPath and dataFileDirectoryPath directories.
Add the following entries:
batch.random.events event1,event2 . . . event1.file.location BRM_Home/apps/pin_rel event1.file.pattern BRMCDR*.out event1.file.type ECE_PRE_SPLIT . . . event2.file.location BRM_Home/apps/pin_rel event2.file.pattern BRMCDR*.out event2.file.type ECE_PRE_SPLIT
where eventN is the event identifier for the handler.
Create a set of these entries for each event identifier you want to load.
For example:
batch.random.events TEL,SMS . . . TEL.file.location BRM_Home/apps/pin_rel TEL.file.pattern BRMCDR*.out TEL.file.type ECE_PRE_SPLIT . . . SMS.file.location BRM_Home/apps/pin_rel SMS.file.pattern BRMCDR*.out SMS.file.type ECE_PRE_SPLIT
Save and close the file.
By default, RE Loader skips redo generation when loading files into the BRM database. This optimizes loading performance, but it can cause you to lose data if your system shuts down ungracefully.
You can re-enable redo generation by removing the UNRECOVERABLE option from each RE Loader control file.
To enable redo generation, do the following for each table's control file:
Open the BRM_Home/apps/pin_rel/control_file file in a text editor, where control_file can be one of the files shown in Table 32-7.
Table 32-7 RE Loader Control Files
File Name | Description |
---|---|
event_bal_impacts_t.ctl |
Control file for the EVENT_BAL_IMPACTS_T table. |
event_delayed_act_wap_inter_t.ctl |
Control file for the EVENT_DELAYED_ACT_WAP_INTER_T table. |
event_delayed_session_gprs_t.ctl |
Control file for the EVENT_DELAYED_SESSION_GPRS_T table. |
event_sub_bals_t.ctl |
Control file for the EVENT_SUB_BALS_T table. |
event_sub_bal_imp_t.ctl |
Control file for the EVENT_SUB_BAL_IMP_T table. |
event_dlay_sess_tlcs_t.ctl |
Control file for the EVENT_DLAY_SESS_TLCS_T table. |
event_dlay_sess_tlcs_svc_cds_t.ctl |
Control file for the EVENT_DLAY_SESS_TLCS_SVC_CDS_T table. |
event_t.ctl |
Control file for the EVENT_T table. |
event_total_t.ctl |
Control file for the EVENT_TOTAL_T table. |
event_dlyd_session_tlco_gsm_t.ctl |
Control file for the EVENT_DLYD_SESSION_TLCO_GSM_T table. |
Comment out the UNRECOVERABLE option:
# UNRECOVERABLE
Caution:
Removing the UNRECOVERABLE option significantly decreases loading performance.Save and close the file.