15 Reserving Resources for Concurrent Network Sessions

This chapter describes the Oracle Communications Billing and Revenue Management (BRM) Resource Reservation Manager and explains how to use its components to reserve resources.

Important:

Resource Reservation Manager is an optional component that requires a separate license.

Before using Resource Reservation Manager, you should be familiar with the following:

About Resource Reservation Manager

Resource Reservation Manager enables you to set aside a portion of a customer's resources for a prepaid session. It enables you to reserve resources for single-RUM and multi-RUM sessions. This prevents customers from applying those resources to other services while the session is in progress.

It also enables customers to use multiple prepaid services concurrently and charge the usage against a single account balance. For example, it enables customers to make a wireless phone call while downloading an MP3 file.

You can use Resource Reservation Manager to implement the following functionality:

Resource Reservation Manager is a framework, consisting of opcodes and storable classes, that enables you to quickly support reservations for prepaid services.

About Creating Reservations

Resource Reservation Manager creates reservation objects in one of the following:

  • IMDB Cache, in IMDB Cache-enabled systems. See "About IMDB Cache DM" in BRM Concepts.

  • The BRM database.

The object specifies how much resource has been reserved, when the reservation expires, and the service type to which the reservation request applies.

Resource Reservation Manager performs these tasks when creating a reservation:

  1. Determines whether to store the reservation in IMDB Cache or in the BRM database. See "About Storing Reservations in IMDB Cache" and "About Storing Reservations in the BRM Database".

  2. Calculates the amount of resources that are required to use the service.

  3. Calculates the account's available resources.

  4. Applies rules to determine whether the account contains sufficient resources.

  5. If there are sufficient resources, creates the reservation object.

    See "Creating Reservations" for more information.

About Storing Reservations in IMDB Cache

In IMDB Cache, BRM stores reservations in these transient objects:

  • /reservation/active: This object stores information about a single reservation. BRM creates one such object for each balance group that is impacted by a prepaid session. For example, if a session impacts balance groups A and B, BRM creates one object for balance group A and one object for balance group B.

  • /reservation_list: This object tracks reservations for a single balance group. It stores a list of current /reservation/active objects and the total resources reserved in /reservation/active objects, separated by resource type. For example, it stores that a balance group is reserving $10 and 30 minutes of free usage. BRM creates one object for each balance group.

When a prepaid session ends, BRM deletes or releases the /reservation/active object, decrements the RESERVED_AMOUNT field in the /reservation_list object, deletes any consumed reserved amount in the CONSUMED_RESERVED_AMOUNT field in the /balance_group object, and returns unused resources back to the customer's prepaid account balance.

About Storing Reservations in the BRM Database

In the BRM database, reservations are stored in these objects:

  • /reservation: This object stores information about a reservation for single-RUM and multi-RUM quantities. It stores the reservation balance and the consumed reserved amount for a resource. BRM creates one such object for each balance group that is impacted by the prepaid session.

  • /balance_group: The RESERVED_AMOUNT field in the BALANCES array for this object stores the total reserved amount for the resource and the CONSUMED_RESERVED_AMOUNT field in the BALANCES array for this object stores the consumed reserved amount currently in the corresponding /reservation object.

When a session ends, BRM deletes or releases the /reservation object, decrements the RESERVED_AMOUNT field in the /balance_group object, and returns any unused resources back to the account.

Setting the Type of Resource Reserved

You can reserve both currency and non-currency resources. If multiple resource types such as dollars and free minutes are specified, the order in which resources are used must be specified in the price list. To use one resource type such as free minutes first, give that resource a higher priority. You do this by creating multiple rates in your price plan and assigning a priority to the rate. For more information, see "Common Price List Solutions" in BRM Setting Up Pricing and Rating.

Setting an Expiration Time for the Reservation Request

You can limit how long a reservation is valid by setting an expiration time. The length of time you reserve a resource can have important effects on your customers' usage and your business. For example, if the expiration time is too long, resources remain unavailable to other services. If the expiration time is too short, the reservation might expire before the customer has a chance to use the resources.

To specify an expiration time, set the PIN_FLD_EXPIRATION_T field in the input flist to PCM_OP_RESERVE_CREATE.

If the field is not passed in, the expiration is set to a default time of 24 hours. However, you can change the default expiration time by customizing the PCM_OP_RESERVE_POL_PREP_CREATE policy opcode.

Setting the Expiration Time for Prepaid Services

If your customers prepay for services, it is possible to lose revenue when all of the following are true:

  • You implement a custom application to return unused reserved resources to the account. See "About Releasing an Unused Reservation" for more information.

  • A customer starts a session before the reservation expires but ends the session after the reservation expiration time.

  • The same customer starts a session for a second service before the first service session ends but after the resource for the first session is returned to the account balance.

The customer's account balance is not debited for a session until the session ends. Therefore, if a resource reservation expires while an initial session is in progress, the entire reserved amount is returned to the account balance. If a customer starts another service session, all of the account balance can be reserved for the second session, even though the initial session might still be using those resources.

Figure 15-1 shows how a revenue loss occurs when a customer ends an initial session after the reservation time has expired:

Figure 15-1 Revenue Loss Due to Expired Reservations

Description of Figure 15-1 follows
Description of ''Figure 15-1 Revenue Loss Due to Expired Reservations''

In the above example, revenue is also lost if the customer does not use service2 and the reserved resource for service2 is returned to the account balance: Resource Reservation Manager debits the account $4.00 for service1, because that's all that is available, resulting in a loss of $4.00. When the account is credited for unused service2 resources, the lost $4.00 is not recovered, even though there is now enough resource to cover that amount.

To help prevent revenue loss, you can extend the resource reservation expiration time. See "About Extending a Resource Reservation Expiration Time" for more information.

Loading Reservation Preferences for Policy-Driven Charging

You load the reservation preferences configuration for policy-driven charging in the following way:

  1. Enable the reservation preferences in the configuration file. See "Updating Reservation Preferences Configuration for Policy-Driven Charging".

  2. Load the event notifications into the BRM database. See "Loading Reservation Preferences for Policy-Driven Charging".

Updating Reservation Preferences Configuration for Policy-Driven Charging

BRM stores the default entries for reservation preferences associated with policy-driven charging the pin_config_reservation_aaa_prefs_XXX file. For example:

  • pin_config_reservation_aaa_prefs_gsm_telephony (GSM telephony)

  • pin_config_reservation_aaa_prefs_gsm_data (GSM data)

  • pin_config_reservation_aaa_prefs_gprs (GPRS)

Configure the resource id for the resource appropriate counters in the following way:

  1. Open the BRM_Home/sys/data/config/pin_config_reservation_aaa_prefs_XXX configuration file in a text editor.

    For our example, open the BRM_Home/sys/data/config/pin_config_reservation_aaa_prefs_gsm_data file.

  2. Add an entry to specify the appropriate resource id with the entity to be rated, such as duration (2), volume (3), duration and volume (4), and occurrence (8).

    For example:

    1 PIN_FLD_RESOURCE_ID INT [0] 1000009 in REQ_MODE 4
    

    Here, a non-currency resource, (Megabytes Used), with the resource id 100009 is associated with a volume-based request (REQ_MODE 4).

    Note:

    Policy-driven charging does not support prerated events REQ_MODE 1.
  3. Save and close the file.

For more information, see "Editing the event notification list" in BRM Developer's Guide.

Loading Reservation Preferences for Policy-Driven Charging

To load the event notifications list for policy-driven charging, you run the load_config_reservation_aaa_prefs utility to load the pin_config_reservation_aaa_prefs_XXX configuration file into the database:

  1. Go to the BRM_Home/sys/data/config directory.

  2. Use the following command to run the load_config_reservation_aaa_prefs utility:

    load_config_reservation_aaa_prefs -d -v load_config_reservation_aaa_prefs_XXX
    

    where:

    • -d creates a log file for debugging purposes.

    • -v displays information about successful or failed processing as the utility runs

    • load_config_reservation_aaa_prefs_XXX is the specific reservation configuration file.

    For example:

    load_config_reservation_aaa_prefs -d -v pin_config_reservation_aaa_prefs_gsm_data
    

    For information on the load_config_reservation_aaa_prefs utility, see "load_config_reservation_aaa_prefs" in BRM Telco Integration.

  3. To verify that the reservation preferences were loaded, display the /config/reserve object by using the Object Browser or the robj command with the testnap utility.

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

For more information, see "Specifying Default Authorization and Reauthorization Values" in BRM Telco Integration.

About Extending a Resource Reservation Amount

To extend a reservation amount, you use the PCM_OP_RESERVE_EXTEND opcode. This opcode's input flist includes the POID of the reservation object to extend and the new reservation amount, which is the existing reservation amount plus the extended amount. For example, if the existing reservation is for $20 and you extend the reservation by $10, the new reservation amount is $30.

You can customize how reservations are extended by using the PCM_OP_RESERVE_POL_PREP_EXTEND policy opcode.

About Extending a Resource Reservation Expiration Time

You might want to extend the reservation time if a customer has not used all of the reserved amount before the reservation expiration time.

To extend the reservation expiration time, you use the PCM_OP_RESERVE_RENEW opcode. This opcode's input flist includes the POID of the reservation object to extend and the length of time in seconds to add to the current reservation expiration time. For example, if the reservation object expires in 30 minutes, and you extend the reservation by 15 minutes, the total reservation time will be for 45 minutes.

About Releasing a Partially Used Reservation

When a reservation is released, any unused resources are credited back to the account balance by the PCM_OP_RESERVE_RELEASE opcode. This occurs at the end of a session after final rating is completed. If a session is terminated unexpectedly, this opcode also releases and returns the reservation amount to the account balance.

If a reservation expires while a session is still in progress, the reserved resource for that session is also returned to the account. This might result in lost revenue if your customers have prepaid services. See "Setting the Expiration Time for Prepaid Services" for more information.

About Releasing an Unused Reservation

If resources are reserved for a session but the session does not start before the resource reservation expires, the resource is locked and is not returned to the account balance. Therefore, if you want resources from unused reservations returned to the account balance, you must write a script to do this.

For example, create a script that searches for /reservation and /reservation/active objects with an expiration time (PIN_FLD_EXPIRATION_T field) that is less than the current time and that has a reservation status (in the PIN_FLD_RESERVATION_STATUS field) of PIN_RESERVATION_RESERVED (0). Then return the resources from those objects back to the appropriate accounts by using the PCM_OP_RESERVE_RELEASE opcode.

You should run this script as often as possible to ensure that resources are always available. The script can be stored and run from any directory. If you use PCM_OP_RESERVE_RELEASE to return resources, your script must include the location of the Connection Manager (CM).

Tip:

Using the cron command is a good way to run your script. For details, see your UNIX documentation.

About Reserving and Releasing Disputed Amounts

You can reserve resources whenever an account disputes a bill item. This prevents your customers from misusing resources during the dispute. After a dispute is settled, you can release the resources back to the account. For more information, see Customizing Item-Level Disputes and "Customizing Item-level Settlements" in BRM Managing Accounts Receivable.

You use the following policy opcodes to manage reservations for disputes:

Sending Reservation Requests to the Resource Reservation Manager Opcodes

To manage reservations for prepaid services, your system must be designed to collect the information needed for creating or updating the relevant objects and pass the appropriate fields in the input flist to the resource reservation manager opcodes.

There are two types of reservation requests that can be passed on to the resource reservation manager opcodes: amount-based and quantity-based. Resource reservation manager reserves resources for amount-based requests without going through rating and discounting. For example, if a customer requests 15 minutes of usage time for a session and the customer's account balance is greater than 15 minutes, then 15 minutes are reserved for the session. Otherwise, the reservation request is denied.

Resource reservation manager reserves resources for quantity-based requests based on the results of rating and discounting. For example, if a customer requests 45 minutes for a download session, BRM rates this request to determine the cost for the session. If the cost is $.10 per minute, the requested session will cost $4.50. If the customer's account balance allows it, then $4.50 is reserved for the requested session. Otherwise, the request is denied (if the minimum quantity requested is 45 minutes) or a portion of the requested quantity is reserved depending on the customer's account balance.

You can use the resource reservation manager API to perform the following:

Creating Reservations

Use the PCM_OP_RESERVE_CREATE opcode to create a /reservation or /reservation/active object.

Note:

The /reservation object is not created for zero balance impact events or free events.

To create a reservation, this opcode performs the following actions:

  1. Determines whether to create a /reservation or /reservation/active object by reading the balance_coordinator entry in the CM pin.conf file:

    • If balance_coordinator is set to 0, the opcode creates a /reservation/active object. This configuration is used for IMDB Cache-enabled prepaid systems.

    • If balance_coordinator is set to 1, the opcode creates a /reservation object. This setting is used for prepaid systems that use the BRM database for AAA and for non-prepaid systems.

  2. Verifies whether an amount-based or a quantity-based field is passed in the input flist. If both are passed, the opcode generates an error.

  3. Calls the PCM_OP_BAL_GET_BALANCES opcode to retrieve the /balance_group object POID.

  4. For prepaid requests, calls the PCM_OP_BAL_GET_PREPAID_BALANCES opcode to retrieve the balance group's /reservation_list object and current reservation balance.

  5. Calls the PCM_OP_RESERVE_POL_PREP_CREATE policy opcode to perform any custom validations. See "Customizing Resource Reservation Rules" for more information.

  6. Determines whether it is an amount-based or a quantity-based request by checking the PIN_FLD_BALANCES array in the input flist:

    • If the array is present, it's an amount-based request. The opcode determines whether the account's available resources are greater than the requested amount and, if they are, proceeds to the next step. Otherwise, the reservation request is denied.

    • If the array is not present, it's a quantity-based request. The opcode calls the PCM_OP_ACT_USAGE opcode in CALC_ONLY mode to calculate whether the account has resources to cover the requested quantity (single-RUM) or quantities (multi-RUM) based on the rating parameters that are passed in the PIN_FLD_EVENT substruct.

      For information on how BRM applies rating and discounting to reserve the requested resources, see "How BRM Rates and Records Usage Events" in BRM Setting Up Pricing and Rating.

      PCM_OP_ACT_USAGE returns the reservation amount and the list of balance groups impacted by the event. If the account's available resources are greater than the reservation request, it proceeds to the next step. Otherwise, the reservation request is denied.

  7. Creates a reservation object for each balance group impacted by the event.

  8. Updates the customer's reservation balance:

    • For /reservation/active objects, updates each balance group's /reservation_list object.

    • For /reservation objects, updates the reserved amount in each balance group's PIN_FLD_RESERVED_AMOUNT field.

  9. Returns the following, depending on the success of the action:

    • If it is successful, returns the amount reserved and sets PIN_FLD_RESERVATION_ACTION to PIN_FLD_RESERVATION_SUCCESS. It also returns reservation information for any sponsoring accounts in the PIN_FLD_RESERVATION_LIST array.

    • If it fails, returns PIN_FLD_RESERVATION_ACTION set to PIN_FLD_RESERVATION_FAIL.

Associating a Session with a Reservation

Use the PCM_OP_RESERVE_ASSOCIATE opcode to associate a session with a reservation.

This opcode is called at the start of a session. When a session starts, a session POID is created. This opcode copies the session POID to the reservation object, thereby associating the session with the reservation object. This opcode takes as input the POID of the reservation object and the POID of the session object.

This opcode returns the POID of the reservation object.

Extending the Reservation Amount

Use the PCM_OP_RESERVE_EXTEND opcode to extend an existing amount for a resource reservation. See "About Extending a Resource Reservation Amount" for more information.

When the PCM_OP_RESERVE_EXTEND opcode is called by the network application in association with policy-driven charging sessions, the input to this opcode contains the consumed reservation amount for resources sent from the network. The PIN_FLD_BALANCES array in the input flist contains the consumed amounts for resources configured as the resources to be tracked for managing policy changes.

To extend a reservation amount, this opcode performs the following actions:

  1. Verifies whether an amount-based or a quantity-based field is passed in the input flist. If both are passed, the opcode generates an error.

  2. For policy-driven charging sessions, if the network application sends the consumed reservation amount for the resource, this opcode sets the consumed reservation amount in the PIN_FLD_CONSUMED_RESERVED_AMOUNT field in the PIN_FLD_BALANCES array in the following objects:

    • /reservation_list

    • /reservation

    • /balance_group

  3. Calls PCM_OP_BAL_GET_BALANCES to retrieve the /balance_group object POID.

  4. Determines whether to extend /reservation or /reservation/active objects by reading the balance_coordinator entry in the CM pin.conf file:

    • If balance_coordinator is set to 0, the opcode extends /reservation/active objects. Use this configuration for IMDB Cache-enabled prepaid systems.

    • If balance_coordinator is set to 1, the opcode extends /reservation objects. Use this configuration for non-prepaid systems and for prepaid systems that use the BRM database for AAA.

  5. For prepaid requests, calls PCM_OP_BAL_GET_PREPAID_BALANCES to retrieve the balance group's /reservation_list object and current reservation balance.

  6. Calls the PCM_OP_RESERVE_POL_PREP_EXTEND policy opcode to perform any custom validations.

  7. Determines whether this is a quantity-based or an amount-based request by checking the PIN_FLD_BALANCES array in the input flist.

    • If the array is present, it's an amount-based request. The opcode determines whether the requested amount is an incremental amount or an aggregated amount by reading the PIN_FLD_RESERVATION_MODE input flist field.

      If the field is set to PIN_RESERVE_INCREMENTAL_AMOUNT, the opcode adds the amount passed in the input flist to the existing reservation amount.

      If the field is set to PIN_RESERVE_AGGREGATED_AMOUNT, the opcode uses the amount passed in the input flist.

    • If the array is not present, it's a quantity-based request. The opcode calls PCM_OP_ACT_USAGE in CALC_ONLY mode to calculate whether the account has resources to extend the requested quantity (single-RUM) or quantities (multi-RUM) based on the rating parameters that are passed in the PIN_FLD_EVENT substruct.

      For information on how BRM applies rating and discounting to extend the requested resources, see "How BRM Rates and Records Usage Events" in BRM Setting Up Pricing and Rating.

      PCM_OP_ACT_USAGE returns the extension amount and the list of balance groups that are impacted.

  8. Determines whether PIN_FLD_FLAGS is set to ignore previous reservations; if yes, ignores previous reservations. For example, if the current reservation is $20, and the extension amount is $10, if you ignore the previous reservation, the extended reservation amount is set to $10. If you do not ignore the previous reservation, the reservation amount is set to $30.

  9. Calculates the account's available resources.

  10. Determines whether the account's available resources are greater than the reservation request and, if they are, proceeds to the next step.

  11. Updates the reservation object for each balance group impacted by the event.

  12. Updates the account's reservation balance:

    • For policy-driven charging sessions, if the network application sends the consumed reservation amount for the resources used, this opcode updates the PIN_FLD_CONSUMED_RESERVED_AMOUNT in the PIN_FLD_BALANCES array of the /balance_group object.

    • For /reservation objects, updates total reserved amount in the PIN_FLD_RESERVED_AMOUNT field in each /balance_group object.

    • For /reservation/active objects, updates the PIN_FLD_BALANCES field in each /reservation_list object.

  13. Calls the PCM_OP_BAL_POL_APPLY_MULTI_BAL_IMPACTS policy opcode to trigger policy threshold notifications. This policy opcode sets up in-session and out-of session notifications if the sum of current balance and consumed reservation reaches (or crosses) the nearest threshold configured in the offer profile for a given service and resource id.

  14. Returns the reservation amount and sets PIN_FLD_RESERVATION_ACTION to either PIN_RESERVATION_SUCCESS to indicate that the extension succeeded or to PIN_RESERVATION_FAILURE to indicate that the extension failed.

Finding a Reservation

Use the PCM_OP_RESERVE_FIND_OBJ opcode to find one or more /reservation or /reservation/active objects.

This opcode takes as input:

  • A routing POID from PIN_FLD_POID indicating the database to search.

  • The reservation number from PIN_FLD_RESERVATION_NO.

  • One or more of the following:

    • The account object POID

    • The session POID

    • The service object POID

    • The balance group POID

  • An optional reservation status field, PIN_FLD_RESERVATION_STATUS. If this field is included, PCM_OP_RESERVE_FIND_OBJ will search reservation objects with the status specified. If this field is not included, PCM_OP_RESERVE_FIND_OBJ searches reservation objects with a status of PIN_RESERVATION_RESERVED.

When PCM_OP_RESERVE_FIND_OBJ finds an object successfully, it returns the POID of the matching /reservation or /reservation/active object.

When the PCM_OPFLG_READ_RESULT flag is included in the call to PCM_OP_RESERVE_FIND_OBJ, PCM_OP_RESERVE_FIND_OBJ also returns the following details about the object:

  • Quantity (single-RUM) or quantities (multi-RUM) reserved

  • POID of the account, service, balance group, and session objects

  • Expiration time

  • Status

  • Reservation number

  • All amounts that have been reserved for this reservation object

If not successful, check the flist spec to determine the error.

Releasing Reservations

Use the PCM_OP_RESERVE_RELEASE opcode to release one or more reservations. This opcode returns unused resources to the account so they can be used later.

Note:

If a reservation object is not specified, this opcode searches for and releases all expired reservation objects.

See "About Releasing a Partially Used Reservation" or "About Releasing an Unused Reservation" for more information.

PCM_OP_RESERVE_RELEASE is called when a session is terminated by a stop accounting event. This opcode takes as input the POIDs of the /account and /reservation_list objects. Additional input may include an expiration time to search for the expired reservation object, the reservation object array to be released, and the reservation object POID.

To release /reservation or /reservation/active objects, this opcode performs the following actions:

  1. Retrieves the /reservation and /reservation/active objects by using the specified /account and /reservation_list POIDs. If the /reservation_list POID is not passed in, this opcode finds all unexpired reservation objects that are associated with the /account object.

  2. Calls the PCM_OP_RESERVE_POL_PRE_RELEASE policy opcode to perform custom validation.

  3. Updates the reservation balance:

    • For /reservation/active objects, updates the /reservation_list object by removing the POIDs of the /reservation/active objects and by decrementing the total reserved amount in its PIN_FLD_BALANCES field.

    • For /reservation objects:

      • Updates the PIN_FLD_RESERVED_AMOUNT fields in their associated /balance_group objects

      • Resets the PIN_FLD_CONSUMED_RESERVED_AMOUNT to zero in their associated /balance_group objects

  4. Determines whether to delete or release the reservation objects by checking the PIN_FLD_DELETED_FLAG field in the input flist:

    • If the flag is set to True, deletes the reservation objects.

    • If the flag is set to False or if it is missing, releases the reservation objects.

  5. Returns the POIDs of the /account object and the released /reservation and /reservation/active objects.

Extending the Expiration Time for a Reservation

Use the PCM_OP_RESERVE_RENEW opcode to extend the expiration time for an existing resource reservation. See "About Extending a Resource Reservation Expiration Time" for more information.

This opcode takes as input:

  • The /reservation or /reservation/active object from PIN_FLD_POID.

  • The amount of time, in seconds, to add to the expiration time from PIN_FLD_EXPIRATION_T.

To extend the expiration time for a reservation, this opcode performs the following actions:

  1. Checks the reservation status.

    • If the reservation is expired or no longer active, this opcode returns an error.

    • If the reservation is active, this opcode proceeds to the next step.

  2. Extends the reservation expiration time by the amount specified in PIN_FLD_EXPIRATION_T.

  3. If it is successful, returns the POID of the /reservation or /reservation/active object.

PCM_OP_RESERVE_RENEW fails when the reservation has already expired or is no longer active.

Customizing Resource Reservation

Use the following policy opcodes to customize the resource reservation rules:

Customizing Resource Reservation Rules

Use the PCM_OP_RESERVE_POL_PREP_CREATE policy opcode to specify the rules that permit a resource reservation. By default, this policy opcode generates a unique reservation ID if one is not passed in the input flist. The reservation ID uses this format: hostname#threadid#systemtime (systemtime is in milliseconds).

However, you can customize this policy opcode to include custom resource reservation rules. For example, you can do the following:

  • Reserve whatever resource is available, even if the available resource is less than the requested amount.

  • Check for duplicate reservation requests.

This policy opcode is called by the PCM_OP_RESERVE_CREATE opcode before a /reservation or /reservation/active object is created.

Customizing the Rules for Extending a Reservation

Use the PCM_OP_RESERVE_POL_PREP_EXTEND policy opcode to specify the rules for extending a resource reservation amount. By default, this policy opcode does nothing, but you can customize it to include custom extension rules.

This policy opcode is called by PCM_OP_RESERVE_EXTEND before the reservation amount is extended.

See "Extending the Reservation Amount" for more information.

Customizing the Rules for Releasing a Reservation

Use the PCM_OP_RESERVE_POL_PRE_RELEASE policy opcode to perform custom actions before releasing a /reservation or /reservation/active object. By default, this policy opcode does nothing, but you can customize it to release unused resources back to the account or to perform other custom actions.

This policy opcode is called by the PCM_OP_RESERVE_RELEASE opcode before it releases a reservation object.

Customizing the Offer Profile Threshold Notifications

Use the PCM_OP_BAL_POL_APPLY_MULTI_BAL_IMPACTS policy opcode to customize the information you retrieve from BRM. By default, this policy opcode generates (/event/notification/offer_profile/ThresholdBreach) notifications whenever the sum of the current balance and consumed reservation reaches (or crosses) the nearest threshold configured in the offer profile for the given service and resource id.

This policy opcode is called by the PCM_OP_RESERVE_EXTEND opcode before it returns the information on the reservation extension.

Installing Resource Reservation Manager

Before installing Resource Reservation Manager, you should be familiar with BRM concepts and architecture. See "Introducing BRM" and "BRM System Architecture" in BRM Concepts.

System Requirements

Resource Reservation Manager is available for the HP-UX IA64, Linux, Solaris, and AIX operating systems. For information on disk space requirements for these operating systems, see Disk space requirements.

Software Requirements

This section describes the software that must be installed before you install Resource Reservation Manager.

Before installing Resource Reservation Manager you must install:

Installing Resource Reservation Manager

Note:

If you have already installed the product, features that are already installed cannot be reinstalled without uninstalling them first. To reinstall a feature, uninstall it and then install it again.

To install Resource Reservation Manager:

  1. Download the software to a temporary directory (temp_dir).

    Important:

    • If you download to a Windows workstation, use FTP to copy the .bin file to a temporary directory on your UNIX server.

    • You must increase the heap size used by the Java Virtual Machine (JVM) before running the installation program to avoid ”Out of Memory” error messages in the log file. For information, see "Increasing Heap Size to Avoid ”Out of Memory” Error Messages" in BRM Installation Guide.

  2. Go to the directory where you installed the Third-Party package and source the source.me file.

    Caution:

    You must source the source.me file to proceed with installation, otherwise ”suitable JVM not found” and other error messages appear.

    Bash shell:

    source source.me.sh
    

    C shell:

    source source.me.csh
    
  3. Go to the temp_dir directory and enter this command:

    7.5.0_ResourceResMgr_platform_opt.bin
    

    where platform is the operating system name.

    Note:

    You can use the -console parameter to run the installation in command-line mode. To enable a graphical user interface (GUI) installation, install a GUI application such as X Windows and set the DISPLAY environment variable before you install the software.
  4. Follow the instructions displayed during installation. The default installation directory for Resource Reservation Manager is opt/portal/7.4.

    Note:

    The installation program does not prompt you for the installation directory if BRM or Resource Reservation Manager is already installed on the machine and automatically installs the package at the BRM_Home location.
  5. Go to the directory where you installed the Resource Reservation Manager package and source the source.me file:

    Bash shell:

    source source.me.sh
    

    C shell:

    source source.me.csh
    
  6. Go to the BRM_Home/setup directory and run the pin_setup script.

    Note:

    The pin_setup script starts all required BRM processes.

Your Resource Reservation Manager installation is now complete.

Uninstalling Resource Reservation Manager

To uninstall Resource Reservation Manager, run the BRM_Home/uninstaller/ResourceResMgr/uninstaller.bin.