27 Recycling EDRs in Pipeline-Only Systems

This chapter describes how to configure and use EDR recycling. EDR recycling is the Oracle Communications Billing and Revenue Management (BRM) feature used by systems that use Pipeline Manager, but do not store suspended EDRs in the BRM database. The pipeline-only recycling feature uses the FCT_PreRecycle module to mark EDRs for recycling, and the FCT_Recycle module to send the rejected EDRs to a file for processing by hand.

Systems using BRM with Pipeline Manager use either the standard recycling tools or the Suspense Manager service integration component for recycling and deleting EDRs.

For details, see "About the EDR Recycling Features".

For details on how to use FCT_Reject to reject EDRs, see "FCT_Reject".

Before reading this document, you should be familiar with how Pipeline Manager works and how to configure it. See "Configuring Pipeline Manager" in BRM System Administrator's Guide.

About Recycling EDRs

When processing a CDR file, there might be non-valid EDRs in the file, or your pipelines might not be set up correctly to handle certain EDRs. You use EDR recycling to fix configuration problems and re-process EDRs.

The recycling process uses these pipeline modules:

  • FCT_Reject

  • FCT_PreRecycle

  • FCT_Recycle

Overview of EDR recycling:

  1. You start Pipeline Manager with the FCT_PreRecycle, FCT_Recycle, and FCT_Reject modules active. (The FCT_PreRecycle and FCT_Recycle modules do nothing until you start the recycle process by using a semaphore.)

  2. When an EDR is processed, a module may find an error in the EDR. The error is appended to the EDR, and a flag is set to indicate that the EDR has an error. The EDR is sent to the next module. Each module adds errors, if any more are found.

  3. The FCT_Reject module analyzes the errors in the EDR. If necessary, the EDR is moved to a reject file.

  4. You examine the errors and determine how to reconfigure Pipeline Manager to prevent the errors.

  5. You use a semaphore file entry to start the pre-recycling process. This sends the rejected EDRs through the pipeline again. The FCT_PreRecycle module adds a flag to the EDR to let the other modules know that the EDR is being recycled.

    You can pre-recycle and recycle EDRs in test mode or real mode. Typically, you run the pre-recycle and recycling processes in test mode first, to see if the errors have been fixed. When there are no longer any errors, you pre-recycle and recycle in real mode.

  6. The FCT_Recycle module runs at the end of the pipeline It does one of the following:

    • In test mode, the module creates a report about the processing, but does not send the EDRs to an output file.

    • In recycle mode, the module sends the results to an output file, and attaches a sequence number to the output file.

      Note:

      You can configure the output module to send an entire file to the error directory if it includes a lot of errors. You can configure the threshold for the number of errors allowed per file. See "Specifying the Maximum Errors Allowed in an Input File".

How the FCT_Reject Module Works

The FCT_Reject module must be run after all rating and enrichment modules. It should be run as the second-to-last function module in the pipeline (the last function module is the FCT_Suspense module). This is because all potential errors must be found before the FCT_Reject module processes the EDRs.

You can run the FCT_Reject module from the registry or by using a semaphore file entry.

The FCT_Reject module does the following:

  1. The FCT_Reject module checks the error status of the EDR. If the EDR contains an error status with a warning or critical severity, the EDR is rejected. The FCT_Reject module changes the value of the DETAIL.DISCARDING field from 0 to 1.

    Note:

    If the DETAIL.DISCARDING field is already set to 1, the EDR was rejected in a previous pass through the pipeline, and is rejected again.

    If the error type in the EDR is not identified in the registry StreamMap entry, the EDR is sent to default reject stream.

  2. By default, the EDR is moved to the reject stream, as identified in the RejectStream registry entry. The EDR is stored in a file that is used by the recycling modules. EDRs can also be rejected in the recycle process.

    If the reject stream is not specified, the EDR is moved to the normal output stream, but the discard field is set to 1, indicating that the EDR has been rejected.

Using a Reject Output Stream

Use the UseRejectStream entry to specify how to handle rejected EDRs. You can do the following:

Important:

If you use UseRejectStream, you must use the StreamMap entry.

Specifies whether to use the reject output stream:

  • True. Rejected EDRs are sent to the reject stream.

  • False. Rejected EDRs are sent to the normal output stream, but flagged as discarded.

Specifying Multiple Reject Streams

By default, rejected EDRs are sent to a single reject stream. However, you can use the StreamMap registry entry to specify separate reject streams for different types of errors.

Important:

If you use StreamMap, you must use the UseRejectStream entry.

For example, this entry sends errored TAP records to the output stream named Rap0101Output.

ERR_TAP3_RET = Rap0101Output 

The output stream must be configured.

Recycling Assembled EDRs

If you use both the FCT_CallAssembling module and the FCT_Reject module in a pipeline, use the optional FCT_Reject module CallAssemblingModule registry entry to ensure that the complete EDRs are recycled. Otherwise, only part of the EDR is recycled.

The FCT_Reject CallAssemblingModule registry entry is a pointer to the FCT_CallAssembling module, for example:

CallAssemblingModule = ifw.Pipelines.Pipe.Functions.Standard.FunctionPool.CallAssembling

Processing EDRs with Errors

Use the FCT_Reject MinErrorSeverity registry entry to reject EDRs that have a specified severity. This allows the EDR to be processed with warning or normal error messages without being rejected.

You can specify one of the following:

  • -1 = undef

  • 0 = debug

  • 1 = normal

  • 2 = warning

  • 3 = minor

  • 4 = major

  • 5 = critical

To allow warning and normal messages without rejecting the EDR, set this entry to 3. Valid values for MinErrorSeverity are 3, 4, and 5.

By default, this entry is not used.

How the FCT_PreRecycle Module Works

The FCT_PreRecycle module is always the first module in the pipeline.

Although you can activate the FCT_PreRecycle module from the startup registry, you cannot run the FCT_PreRecycle module from the startup registry; you must run it by using a semaphore file.

The FCT_PreRecycle module does the following:

  1. The module gets the file of rejected EDRs from the reject stream output directory.

  2. The module puts the reject EDR file into the input directory for recycling. It uses the same input directory as the incoming CDR files. It adds a recycle suffix to the file and a sequence number, so the original input file in the output directory cannot be overwritten.

    You can recycle all EDRs in the reject directory, or list specific files to recycle. See "Recycling EDRs".

  3. For each EDR to recycle, the module sets a value in the INTERN_PROCESS_STATUS field to indicate that the EDR is being recycled. This tells the FCT_Recycle module which EDRs to process, and allows the discounting modules to recalculate discount amounts correctly.

    • The value is set to 1 if the EDR is being recycled.

    • The value is set to 2 if the recycling is in test mode.

You can recycle all EDRs in the reject directory, or list specific files to recycle. See "Sample Semaphore File Entries".

How the FCT_Recycle Module Works

The FCT_Recycle module is the last function module in the pipeline, before the output.

You activate the FCT_Recycle module from the startup registry, but it does nothing until the FCT_PreRecycle module starts the recycling process.

The FCT_Recycle module reads the INTERN_PROCESS_STATUS field for each EDR.

  • If the value is 2, recycling is in test mode. The FCT_Recycle module doesn't send the EDRs to an output directory. Instead, the FCT_Recycle module creates a report with the following data:

    • Stream name.

    • Total number of processed EDRs.

    • Number of EDRs that can be recycled without an error.

    • Number of EDRs that still generate an error.

    • List of all errors.

    • The wholesale charge amount from all successfully recycled EDRs. (This data is taken from the WHOLESALE_CHARGE field.)

    • The wholesale charge amount from all EDRs that still have errors. (This data is taken from the WHOLESALE_CHARGE field.)

    • The total duration for all successfully recycled EDRs. (This data is taken from the DURATION_MINUTES field.)

    • The total duration from all EDRs that still have errors. (This data is taken from the DURATION_MINUTES field.)

    You can use this data to determine if the EDRs are worth further configuration and processing.

  • If the value is 1, recycling occurs. All EDRs are processed as usual, with the following differences in comparison to normal input file processing:

    • A sequence number is generated.

    • The sequence offset value is generated.

    • The sequence check is inactivated.

    For more information, see "Checking And Generating Sequence Numbers" in BRM System Administrator's Guide.

Testing Recycling EDRs

Once you have determined that EDRs have been rejected, the first step is to correct any pipeline problems that caused the problem. After that you usually test recycle the CDR file to ensure that the changes have had the desired affect.

Follow these steps to test recycle EDRs:

  1. Configure the FCT_Reject module. See "FCT_Reject".

    Typically, rejected EDRs are sent to the reject stream. You configure the reject stream in the registry in the following places:

    • In the FCT_Reject module pipeline configuration

    • In the Output stream

    For a sample Output stream configuration see "Sample Output Configuration".

    Important:

    When you test recycling, first inactivate the FCT_Reject module.
  2. Configure the FCT_PreRecycle module. See "FCT_PreRecycle".

    You configure the reject stream in the registry in the following places:

    • In the FCT_PreRecycle module pipeline configuration.

    • In the input stream.

    The module uses the same input configuration as the incoming CDR files, so you don't need to configure a separate input stream.

  3. Configure the FCT_Recycle module. See "FCT_Recycle".

    Configure the FCT_Recycle module RecycleLog registry entry to specify the message file parameters. These settings are specified in the ProcessLog registry section. For more information, see "LOG".

  4. Use a semaphore to inactivate the FCT_Reject module:

    Module
    Reject.Module.Active = False
    
  5. Use a semaphore to run the FCT_PreRecycle module in test mode:

    Recycle.Module.RecycleTest {}
    
  6. Review the log files that you configured in FCT_Recycle for errors, and repeat these steps as necessary.

Recycling EDRs

When you finish test recycling EDRs, follow these steps to do the actual recycling:

  1. Configure the FCT_Reject module. See "FCT_Reject".

    Typically, rejected EDRs are sent to the reject stream. You configure the reject stream in the registry in the following places:

    • In the FCT_Reject module pipeline configuration

    • In the Output stream

    For a sample Output stream configuration see "Sample Output Configuration".

    Important:

    When you test recycling, first inactivate the FCT_Reject module.
  2. Configure the FCT_PreRecycle module. See "FCT_PreRecycle".

    You configure the reject stream in the registry in the following places:

    • In the FCT_PreRecycle module pipeline configuration.

    • In the input stream.

    The module uses the same input configuration as the incoming CDR files, so you don't need to configure a separate input stream.

  3. Configure the FCT_Recycle module. See "FCT_Recycle".

    Configure the FCT_Recycle module RecycleLog registry entry to specify the message file parameters. These settings are specified in the ProcessLog registry section. For more information, see "LOG".

  4. Use a semaphore to run the FCT_PreRecycle module.

    You can recycle all EDRs in the reject directory, or list specific files to recycle. See "Sample Semaphore File Entries".

  5. Review the log files that you configured in FCT_Reject for errors.