33 Improving Pricing and Rating Performance

Learn how to improve pricing and rating performance in Oracle Communications Billing and Revenue Management (BRM).

Topics in this document:

Changing the Precision of Rounded and Calculated Values

To improve performance, you can change the precision of rounded values and of values calculated by online rating. You change the precision by adding or modifying entries in the CM pin.conf file:

  • To change the precision of rounded values, add or change the rating_quantity_rounding_scale entry. The value of this entry determines the number of digits to the right of the decimal place for rounding quantities. The default is 8.

  • To change the precision of calculated values, add or change the rating_max_scale entry. The value of this entry determines the number of digits to the right of the decimal place that are used. The default is 10.

    Note:

    You must stop and restart the CM after you change these values.

Setting the Interval for Checking for Product Offering Changes

You can set the interval at which BRM checks for changes to your product offerings. If you frequently change the product offerings, you may want to use a shorter interval. If your product offerings are less volatile, you can increase the interval.

To change the interval:

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

  2. Edit the following entry:

    - fm_rate refresh_product_interval 3600

    The value of this entry determines the interval in seconds. The default is 3600.

  3. Save the file.

  4. Stop and restart the CM.

Setting the Interval for Updating Value Maps

To specify how frequently BRM checks for changes to value maps and updates them in the database:

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

  2. Edit the following entry:

    - fm_zonemap_pol update_interval 3600
    

    The value of this entry determines the interval in seconds. The default is 3600.

  3. Save the file.

  4. Stop and restart the CM.

Filtering the ERAs Considered during Rating and Discounting

By default, online rating checks for both account-level extended rating attributes (/profile/acct_extrating object) and service-level ERAs (/profile/serv_extrating object) when it searches for rating and discounting criteria. You can improve online rating performance by filtering the types of ERAs that BRM considers when it searches for rating and discounting criteria. For example, you can configure BRM to search for service-level ERAs only or to omit the ERA search altogether.

You can specify the types of ERAs to consider by running the pin_bus_params utility to change the EnableEras business parameter. For information about this utility, see "pin_bus_params" in BRM Developer's Guide.

To specify the ERA types:

  1. Go to BRM_home/sys/data/config.

  2. Create an XML file from the /config/business_params object:

    pin_bus_params -r BusParamsRating bus_params_rating.xml 
  3. In the file, find this line:

    <EnableEras>serviceAndAccount</EnableEras>
  4. Change serviceAndAccount to one of the following:

    • account: Limits the rating and discounting criteria search to account-level ERAs by retrieving only the /profile/acct_extrating object.

    • service: Limits the rating and discounting criteria search to service-level ERAs by retrieving only the /profile/serv_extrating object.

    • disabled: Omits ERAs from the rating and discounting criteria. Because neither object is retrieved, this option provides the best performance.

  5. Save the file as bus_params_rating.xml.

  6. Load the XML file into the BRM database:

    pin_bus_params bus_params_rating.xml
  7. Stop and restart the CM.

  8. (Multischema systems only) Run the pin_multidb script with the -R CONFIG parameter.

Configuring the Maximum Number of Charge and Discount Offers Cached

Charge offers and discount offers that are used during the online rating process are automatically stored in the CM cache. This improves rating performance, but, over time, it can consume a large amount of memory. To prevent the CM cache from growing too large, you can set a maximum number of charge offers and discount offers that can be stored in the CM cache.

  • When you set the maximum to a nonzero value, BRM prevents the online rating engine from storing more than the specified number of charge offers and discount offers in the CM cache. When the maximum number is reached, BRM flushes 10% of the charge offers and discount offers that have been used the least from the cache.

    Note:

    The maximum number of charge offers and discount offers that should be stored in the CM cache depends on your business needs.

  • When you set the maximum to zero, BRM does not regulate the number of charge offers and discount offers stored in the CM cache. This is the default.

To set a maximum number of charge offers and discount offers that can be cached, run the pin_bus_params utility to change the ProductsDiscountsThreshold business parameter. For information about this utility, see "pin_bus_params" in BRM Developer's Guide.

  1. Go to BRM_home/sys/data/config.

  2. Create an XML file from the /config/business_params object:

    pin_bus_params -r BusParamsRating bus_params_rating.xml 
  3. In the file, change 0 to the maximum number of charge offers and discount offers that you would like stored in the cache. The default value of 0 specifies not to regulate the number of charge offers and discount offers in the CM cache.

    <ProductsDiscountsThreshold>0</ProductsDiscountsThreshold>
  4. Save the file as bus_params_rating.xml.

  5. Load the XML file into the BRM database:

    pin_bus_params bus_params_rating.xml
  6. Stop and restart the CM.

  7. (Multischema systems only) Run the pin_multidb script with the -R CONFIG parameter.

Improving Performance for Loading Large Product Offerings

If you have a large product offering, you can improve performance in the following ways:

  • Cache pricing data, such as G/L IDs and balance element IDs. In a test environment where you frequently modify your product offerings, caching pricing data improves performance because there is no need to load price reference objects every time you commit the product offerings to the database.

    Note:

    Pricing data is created every time the CM starts. Whenever the pricing data is changed in the database, the CM must be stopped and restarted to place the new information into the cache.

    In a production system where you rarely modify your product offerings, you do not need to cache pricing data. This reserves the CM cache for other uses and eliminates the need to stop and restart the CM to update the cache if you change your product offerings.

  • Turn off event logging for product offering creation events.

    Note:

    When you turn off event logging, BRM still stores audit trail information for charge offers, bundles, and packages; however, an event log tracking the product offerings that were modified and who modified them is not created.

To improve loading performance:

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

  2. Edit the cache_references_at_start entry. The default is 1 (cache data).

    - fm_price cache_references_at_start 1
    
  3. Edit the fm_price_prod_provisioning_cache entry. The default entries are usually sufficient. For more information, see the instructions in the configuration (pin.conf) file.

    - cm_cache fm_price_prod_provisioning_cache 100, 102400, 13
    
  4. Edit the fm_price_cache_beid entry. The default entries are usually sufficient. For more information, see the instructions in the configuration (pin.conf) file.

    - cm_cache fm_price_cache_beid 200, 524288, 32
    
  5. Edit the log_price_change_event entry. The default is 0 (events are not logged).

    - fm_price log_price_change_event   0
    
  6. Edit the fm_offer_profile_cache entry. The default entries are usually sufficient. For more information, see the instructions in the configuration (pin.conf) file.

    - cm_cache fm_offer_profile_cache 20, 102400, 13
    

    Note:

    For policy-driven charging, the fm_offer_profile_cache entry must be present in the pin.conf file.

  7. Save the file.

  8. Stop and restart the CM.

Improving Performance in Retrieving Product Details During Product Purchase

By default, BRM retrieves product details from the rating cache during product purchase. However, reading a large number of rate plans for retrieving product details can consume a lot of time. This slows down product purchase.

To speed up the product purchase process, you can configure BRM to directly retrieve the product details from the database instead of retrieving it from the rating cache during product purchase. You can do this by setting the GetRatePlanFromCache field in the subscription instance of the /config/business_params object to disabled.

Note:

Setting the GetRatePlanFromCache field to disabled will impact the billing performance.

To improve performance in retrieving product details during product purchase:

  1. Use the following command to create an editable XML file from the subscription instance of the /config/business_params object:

    pin_bus_params -r BusParamsSubscription bus_params_subscription.xml 
    

    This command creates the XML file named bus_params_subscription.xml.out in your working directory. If you do not want this file in your working directory, specify the full path as part of the file name.

  2. Search the XML file for the following line:

    <GetRatePlanFromCache>enabled</GetRatePlanFromCache>
    
  3. Change enabled to disabled.

    Note:

    BRM uses the XML in this file to overwrite the existing rating instance of the /config/business_params object. If you delete or modify any other parameters in the file, these changes affect the associated aspects of the BRM rating configuration.

  4. Save the file.

  5. Change the file name from bus_params_subscription.xml.out to bus_params_subscription.xml.

  6. Use the following command to load the change into the /config/business_params object:

    pin_bus_params bus_params_subscription.xml 
    

    You should run this command from the BRM_home/sys/data/config directory, which includes support files used by the utility.

  7. Stop and restart the CM.

  8. (Multischema systems only) Run the pin_multidb script with the -R CONFIG parameter.