34 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

You can improve performance by changing the precision of rounded values and 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 listed to the right of the decimal place. 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. You may want to use a shorter interval if you frequently change your offerings. If your 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 searching 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 only service-level ERAs or 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. Use the following command to create an editable XML file from the Rating instance of the /config/business_params object:

    pin_bus_params -r BusParamsRating bus_params_rating.xml

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

  3. In bus_params_rating.xml.out, set the following entry:

    <EnableEras>value</EnableEras>

    where value is one of the following:

    • serviceAndAccount: Checks for both account-level extended rating attributes (/profile/acct_extrating object) and service-level ERAs (/profile/serv_extrating object) when searching for rating and discounting criteria. This is the default.

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

    Caution:

    BRM uses the XML in this file to overwrite the existing instance of the /config/business_params object. Use care when updating parameters in the file.

  4. Save and exit the file.

  5. Rename the bus_params_rating.xml.out file to bus_params_rating.xml.

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

    pin_bus_params bus_params_rating.xml

    You should run this command from the BRM_home/sys/data/config directory, which includes support files used by the utility. To run it from a different directory, see "pin_bus_params" in BRM Developer's Guide.

  7. Read the object with the testnap utility or the Object Browser to verify that all fields are correct.

    For general instructions on using testnap, see "Using the testnap Utility to Test BRM" in BRM Developer's Guide. For information on how to use Object Browser, see "Reading Objects" in BRM Developer's Guide.

  8. Stop and restart the Connection Manager (CM).

    For more information, see "Starting and Stopping the BRM System" in BRM System Administrator's Guide.

Configuring the Maximum Number of Charge and Discount Offers Cached

Charge offers and discount offers 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. Use the following command to create an editable XML file from the Rating instance of the /config/business_params object:

    pin_bus_params -r BusParamsRating bus_params_rating.xml

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

  3. In bus_params_rating.xml.out, set ProductsDiscountsThreshold to the maximum number of charge offers and discount offers you would like stored in the cache:

    <ProductsDiscountsThreshold>value</ProductsDiscountsThreshold>

    The default value of 0 specifies not to regulate the number of charge offers and discount offers in the CM cache.

    Caution:

    BRM uses the XML in this file to overwrite the existing instance of the /config/business_params object. Use care when updating parameters in the file.

  4. Save and exit the file.

  5. Rename the bus_params_rating.xml.out file to bus_params_rating.xml.

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

    pin_bus_params bus_params_rating.xml

    You should run this command from the BRM_home/sys/data/config directory, which includes support files used by the utility. To run it from a different directory, see "pin_bus_params" in BRM Developer's Guide.

  7. Read the object with the testnap utility or the Object Browser to verify that all fields are correct.

    For general instructions on using testnap, see "Using the testnap Utility to Test BRM" in BRM Developer's Guide. For information on how to use Object Browser, see "Reading Objects" in BRM Developer's Guide.

  8. Stop and restart the Connection Manager (CM).

    For more information, see "Starting and Stopping the BRM System" in BRM System Administrator's Guide.

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.

    You do not need to cache pricing data in a production system where you rarely modify your product offerings. 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 modified product offerings and who modified them still needs to be created.

To improve loading performance:

  1. Go to BRM_home/sys/data/config.
  2. Use the following command to create an editable XML file from the Pricing instance of the /config/business_params object:
    pin_bus_params -r BusParamsPricing bus_params_pricing.xml

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

  3. In bus_params_pricing.xml.out, do the following:
    • Set CacheReferencesAtStart to enabled to cache pricing data or disabled to not cache pricing data. The default is enabled.
      <CacheReferencesAtStart>enabled</CacheReferencesAtStart>
    • Set LogPriceChangeEvent to enabled to log when product offerings are modified or to disabled to turn off event logging for product offering changes. The default is disabled.
      <LogPriceChangeEvent>enabled</LogPriceChangeEvent>

      Caution:

      BRM uses the XML in this file to overwrite the existing instance of the /config/business_params object. Use care when updating parameters in the file.
  4. Save and exit the file.
  5. Rename the bus_params_pricing.xml.out file to bus_params_pricing.xml.
  6. Use the following command to load your changes into the /config/business_params object:
    pin_bus_params bus_params_pricing.xml

    You should run this command from the BRM_home/sys/data/config directory, which includes support files used by the utility. To run it from a different directory, see "pin_bus_params" in BRM Developer's Guide.

  7. Read the object with the testnap utility or the Object Browser to verify that all fields are correct.

    For general instructions on using testnap, see "Using the testnap Utility to Test BRM" in BRM Developer's Guide. For information on how to use Object Browser, see "Reading Objects" in BRM Developer's Guide.

  8. Stop and restart the Connection Manager (CM).

    For more information, see "Starting and Stopping the BRM System" in BRM System Administrator's Guide.

Modifying the Cache for Storing Pricing Data

To modify the cache:

  1. Open the CM configuration file (BRM_home/sys/cm/pin.conf).
  2. Specify the cache attributes for storing product provisioning tags. The default entries are usually sufficient.
    - cm_cache fm_price_prod_provisioning_cache 100, 102400, 13
  3. Specify the cache attributes for storing balance element IDs (BEIDs). The default entries are usually sufficient.
    - cm_cache fm_price_cache_beid 200, 524288, 32
  4. Specify the cache attributes for storing offer profiles. The default entries are usually sufficient.
    - 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.
  5. Save the file.
  6. 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 many rate plans to retrieve product details can take a lot of time, which slows down the process.

To speed up the product purchase process, you can configure BRM to directly retrieve the product details from the database instead of the rating cache during purchase. To do this, set 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 by retrieving product details from the cache:

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

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

  3. In bus_params_subscription.xml.out, set GetRatePlanFromCache to enabled:

    <GetRatePlanFromCache>enabled</GetRatePlanFromCache>

    Caution:

    BRM uses the XML in this file to overwrite the existing instance of the /config/business_params object. Use care when updating parameters in the file.

  4. Save and exit the file.

  5. Rename the bus_params_rating.xml.out file to bus_params_rating.xml.

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

    pin_bus_params bus_params_rating.xml

    You should run this command from the BRM_home/sys/data/config directory, which includes support files used by the utility. To run it from a different directory, see "pin_bus_params" in BRM Developer's Guide.

  7. Read the object with the testnap utility or the Object Browser to verify that all fields are correct.

    For general instructions on using testnap, see "Using the testnap Utility to Test BRM" in BRM Developer's Guide. For information on how to use Object Browser, see "Reading Objects" in BRM Developer's Guide.

  8. Stop and restart the Connection Manager (CM).

    For more information, see "Starting and Stopping the BRM System" in BRM System Administrator's Guide.