57 Configuring Rated Event Loader

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".

Setting Up Your System for RE Loader

To set up your system for RE Loader:

  1. Install RE Loader. Install one instance of RE Loader for each BRM database schema.

  2. Configure your system to use the correct Oracle library files. See "Configuring Oracle Libraries for RE Loader".

  3. Configure the RE Loader configuration (Infranet.properties) file. See "Configuring the RE Loader Infranet.properties File".

  4. Create RE Loader processing directories. See "Setting Up RE Loader Processing Directories".

  5. Configure RE Loader to work with multischema systems. See "Setting Up RE Loader for Multischema Systems".

  6. Configure Batch Controller to run RE Loader automatically. See "Configuring RE Loader to Run Automatically".

  7. Disable invoice event caching. See "Disabling Invoice Event Caching".

  8. Set up delayed billing. See "Enabling a Billing Delay for CDRs".

  9. Increase the maximum field length in input data files. See "Configuring Field Lengths for Input Data Files".

Configuring Oracle Libraries for RE Loader

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:

  1. Install the 32-bit and 64-bit libraries in separate directories on the Pipeline Manager system.

  2. 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".

  3. Set up your default Pipeline Manager environment in the Oracle_home/.cshrc file to use Oracle 64-bit libraries. See Example 57-1.

Setting the Oracle Library Paths

To set the Oracle library paths:

  1. Open the BRM_home/apps/pin_rel/pin_rel file in a text editor. BRM_home is the directory where you installed BRM components.

  2. Add the following before the command that runs Java.

    setenv ORACLE_HOME Oracle_home
    setenv SHLIB_PATH ${ORACLE_HOME}/lib
    setenv PATH ${PATH}:${ORACLE_HOME}/bin
    

    Note:

    Oracle_home points to the location where you installed the full 32-bit client software.

  3. Save and close the file.

  4. Open the BRM_home/apps/pin_rel/SampleRelHandler_config.values file in a text editor.

  5. 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";
    
  6. Save and close the file.

Example 57-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)

Configuring the RE Loader Infranet.properties File

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.

  • 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:

  1. Open the BRM_home/apps/pin_rel/Infranet.properties file in a text editor.

  2. Specify how to connect to your database by setting the entries shown in Table 57-1. Replace LogicalPartID with the logical partition number, such as 0.1.0.1.

    Table 57-1 Database Connection Entries

    Entry Description

    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.

  3. Set the general processing entries shown in Table 57-2.

    Table 57-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:

    • 1 specifies error-level reporting.

    • 2 specifies warning-level reporting.

    • 3 specifies debug-level reporting.

    The default is 1.

    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.

    • 1 specifies that RE Loader uses the end time of the rated event for deciding the billing cycle. The default is 1.

    • 0 specifies that RE Loader uses the start 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.

    • 0 specifies that a login name and password are not required.

    • 1 specifies that a login name and password are required.

    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.

    • 1 uses delayed partition set P_1D to P_12D.

    • 2 uses delayed partition set P_1D to P_12D2.

    • 3 uses delayed partition set P_1D to P_12D3.

    • 4 uses delayed partition set P_1D to P_12D4.

    • 5 uses delayed partition set P_1D to P_12D5.

    • 6 uses delayed partition set P_1D to P_12D6.

    • 7 uses delayed partition set P_1D to P_12D7.

    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.

    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.

  4. Set the default configuration entries shown in Table 57-3. The configuration information in this section applies to all event types except for those defined in the storable class-specific section.

    Table 57-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:

    • RATING_PIPELINE specifies that the file was last processed by the rating pipeline and therefore contains prerated events.

    • RERATING_PIPELINE specifies that the file was last processed by the rerating pipeline and therefore contains rerated events.

    • PIN_REL_TRANSFORM_CDR specifies that the file was last processed by the pin_rel_transform_cdr.pl script and therefore contains discount events.

    • SUSPENSE_CREATE specifies that the RE Loader process will create new suspense records in the suspended usage table.

    • SUSPENSE_UPDATE specifies that the RE Loader process will update existing suspense records in the suspended usage table.

    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:

    • 0 to do nothing.

    • 1 to rename the interim files by appending .saved.timestamp to the file name.

    • 2 to delete the temporary files.

    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:

    • Direct-path loading. This is the fastest way to load events into the database. It can be 10% to 30% faster than conventional-path loading, depending on the file size, memory size, storage configuration, and storage performance. However, direct-path loading has limits for concurrent system activities. When an event is loaded in direct-path mode, the load utility locks the event's entire partition and some of the table's indexes. This prevents other operations from updating or reading the event table.

      Direct-path mode is recommended when the event table will have limited concurrent usage.

    • Conventional-path loading. This is the recommended loading mode if BRM will perform many concurrent operations on the event table. For example, use conventional-path loading if BRM is rerating events, performing billing-time taxation, or generating detailed invoices concurrently with RE Loader.

      Conventional mode is also recommended if you have small source files for RE Loader because the performance gained by using direct-path loading is surpassed by the mode's preprocessing and file-handling overhead.

      Important: If you use conventional-path loading, use the APPEND option in your RE Loader control files. Do not use the TRUNCATE option.

    To specify the load utility name and loading mode:

    • UtilityName direct=true unrecoverable specifies to use direct-path loading. This is the default.

    • UtilityName direct=false specifies to use conventional-path loading.

    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.

    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.

    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:

    • 0 to do nothing.

    • 1 to rename the interim files by appending .saved.timestamp to the file name.

    • 2 to delete the temporary files.

    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:

    • RATING_PIPELINE specifies that the file was last processed by the rating pipeline and therefore contains prerated events.

    • RERATING_PIPELINE specifies that the file was last processed by the rerating pipeline and therefore contains rerated events.

    • PIN_REL_TRANSFORM_CDR specifies that the file was last processed by the pin_rel_transform_cdr.pl script and therefore contains 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.ece_preprocessed

    Always FALSE for Pipeline Manager.

  5. If necessary, set the storable class-specific entries shown in Table 57-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 57-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:

      • UtilityName direct=true unrecoverable specifies to use direct-path loading.

      • UtilityName direct=false specifies to use 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.

  6. (Optional) To run the RE Loader daemon, add or modify the RE Loader daemon entries shown in Table 57-5.

    When editing these entries, replace event with the appropriate event type.

    Table 57-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.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. Always STANDARD for Pipeline Manager.

  7. Save and close the file.

Setting Up RE Loader Processing Directories

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 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.

    Note:

    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:

  1. 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.

  2. Configure the Infranet.properties file. See "Configuring the RE Loader Infranet.properties File".

  3. Copy all files from the BRM_home/apps/pin_rel directory to each processing directory.

  4. If RE Loader and Pipeline Manager are installed on separate systems, do the following:

    1. Go to the system where Pipeline Manager is installed.

    2. Mount the RE Loader processing directories onto the Pipeline Manager output directory.

  5. Follow the instructions in "Configuring SE Loader for Standard Recycling".

Setting Up RE Loader for Multischema Systems

To set up RE Loader for multischema systems:

  1. 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.

  2. In the multischema account router instance of Pipeline Manager, configure the following:

    1. 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".

    2. 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.

Setting Up RE Loader for Virtual Column-Enabled Systems

This section explains the setup required for RE Loader to work in a virtual column-enabled system.

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:

  1. Go to BRM_home/setup/scripts.

  2. 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.

  3. 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. 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.

Configuring RE Loader to Run Automatically

To configure RE Loader to run automatically, do the following for each instance of RE Loader:

Configuring the RE Loader Batch Handler

Note:

If you use the ConfigurableValidityHandler batch handler for loading the validity periods of charge offers, discount offers, and balance elements 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:

  1. Give the SampleRelHandler.pl file a unique name. You will configure Batch Controller to call the handler using this name.

  2. 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.

  3. Open the SampleRelHandler_config.values file and modify the entries shown in Table 57-6.

    Table 57-6 Mandatory RE Loader Batch Handler Configuration Entries

    Entry Description

    $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 Linux 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:

    • infranet.rel.default.interim_directory

    • infranet.rel.storable_class.classname.interim_directory

    $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.

  4. Save and close the file.

Configuring Batch Controller

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.

To configure Batch Controller:

  1. 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.

  2. Open the BRM_home/apps/batch_controller/Infranet.properties file.

  3. Edit the BRM connection parameters.

  4. 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
    
  5. (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
    
  6. Set the cdrFileEvent.file.location parameter to specify the location of the pipeline output directory:

    cdrFileEvent.file.location /export/Portal/integRate
    
  7. Set the cdrFileEvent.file.pattern parameter to which files should be processed by Batch Controller:

    cdrFileEvent.file.pattern cdr*.dat

    Note:

    You can use an asterisk (*) as a wildcard character to represent zero or more characters in the file name.

  8. Save and close the file.

  9. Stop and restart Batch Controller.

Disabling Invoice Event Caching

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:

  1. Open the CM configuration file (BRM_home/sys/cm/pin.conf).

  2. 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.

  3. Save and close the file.

  4. Stop and restart the CM.

Enabling a Billing Delay for CDRs

RE Loader cannot load a CDR for the next billing cycle when billing has not been completed unless delayed billing has been set. RE Loader requires delayed billing to be enabled so that it can attach events to the past bill cycle or current bill cycle according to the event time. If delayed billing is disabled, the CDRs for the next billing cycle are rated successfully, but RE Loader cannot load them.

You enable delayed billing by using the ConfigBillingDelay business parameter. See "Configuring Delayed Billing" in BRM Configuring and Running Billing for more information.

Note:

  • If you use pipeline-triggered billing, you do not need to enable ConfigBillingDelay because RE Loader loads CDRs only for the current billing cycle.

  • If you do not use delayed billing, set ConfigBillingDelay to 0.

Configuring Field Lengths for Input Data Files

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 stop 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)

Configuring Whether to Perform Redo Generation

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:

  1. 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 57-7.

    Table 57-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.

  2. Comment out the UNRECOVERABLE option:

    # UNRECOVERABLE

    Note:

    Removing the UNRECOVERABLE option significantly decreases loading performance.

  3. Save and close the file.