My Oracle Support Banner

Balances In ECE Are Wrongly Updated After Rerating (Doc ID 2778471.1)

Last updated on MAY 24, 2021

Applies to:

Oracle Communications BRM - Elastic Charging Engine - Version 11.3.0.7.0 and later
Information in this document applies to any platform.

Symptoms

Rerating causes balances to get out of sync between Billing and Revenue Management environment (BRM) and the Elastic Charging Engine (ECE). BRM holds the correct amounts but ECE amounts are updated wrongly.

 

The issue can be reproduced at will with the following steps:


1) Setup  rerating configuration and add below in cm pin conf:

- cm em_group ece_bal PCM_OP_BAL_GET_ECE_BALANCES
- cm em_pointer ece_bal ip <IP> <PORT>

2) In Pricing Design Center (PDC) create a Charging Offering (CO) with:
MCF
/service/telco/gsm/telephony
840 debit 10.9
1000004 credit 3145728, validity From Event Occurrence to 1 Accounting Cycle
1000010 credit 204800, validity From Event Occurrence to 1 Accounting Cycle
3) in pdc, create bundle and package with above CO
4) in billing care, create account on 16 Feb, purchasing above package
5) bill cycle is 16 Feb to 16 Mar
6) check ece balances using PCM_OP_BAL_GET_ECE_BALANCES

===> database 0.0.0.1 from pin.conf "userid"
nap(23601)> r PCM_OP_BAL_GET_ECE_BALANCES 1
nap(23601)> d 1
# number of field entries allocated 20, used 4
0 PIN_FLD_POID POID [0] 0.0.0.1 /service/telco/gsm/telephony 441200
4
0 PIN_FLD_LOGIN STR [0] "465454"
0 PIN_FLD_START_T TSTAMP [0] (1613507958) Tue Feb 16 12:39:18 2021
0 PIN_FLD_MODE ENUM [0] 1
nap(23601)> xop PCM_OP_BAL_GET_ECE_BALANCES 0 1
xop: opcode 1281, flags 0
# number of field entries allocated 20, used 5
0 PIN_FLD_POID POID [0] 0.0.0.1 /service/telco/gsm/telephony 441200
4
0 PIN_FLD_MODE ENUM [0] 1
0 PIN_FLD_BAL_IMPACTS ARRAY [1000004] allocated 20, used 5
1 PIN_FLD_CREDIT_LIMIT DECIMAL [0] 0
1 PIN_FLD_CURRENT_BAL DECIMAL [0] -3145728.0
..
..
0 PIN_FLD_BAL_IMPACTS ARRAY [840] allocated 20, used 5
1 PIN_FLD_CREDIT_LIMIT DECIMAL [0] 9223372036854775807
1 PIN_FLD_CURRENT_BAL DECIMAL [0] 10.9
..
..
0 PIN_FLD_BAL_IMPACTS ARRAY [1000010] allocated 20, used 5
1 PIN_FLD_CREDIT_LIMIT DECIMAL [0] 0
1 PIN_FLD_CURRENT_BAL DECIMAL [0] -204800.0
..
..
nap(23601)> q

7) check balances in Elastic Charging Engine (ECE) cache:

CohQL> select value() from Balance where ownerId='440432';

8) in testnap, run rerating with following opcode and input flist, note that there is no any change in pricing.

PCM_OP_SUBSCRIPTION_RERATE_REBILL

0 PIN_FLD_POID POID [0] 0.0.0.1 /account 440432 70
0 PIN_FLD_FLAGS INT [0] 2
0 PIN_FLD_PROGRAM_NAME STR [0] "test"
0 PIN_FLD_RERATE_FLAGS INT [0] 1
0 PIN_FLD_START_T TSTAMP [0] (1613462400) Tue Feb 16 00:00:00 2021

nap(23905)> xop PCM_OP_SUBSCRIPTION_RERATE_REBILL 0 1
xop: opcode 96, flags 0
...

9) check EMGATEWAY log generated for above RERATING:

 

10) check ece balances using PCM_OP_BAL_GET_ECE_BALANCES, see that all the
resources have become double the initial values

EXPECTED: balance values should not get doubled

nap(23966)> xop PCM_OP_BAL_GET_ECE_BALANCES 0 1
xop: opcode 1281, flags 0
# number of field entries allocated 20, used 5
0 PIN_FLD_POID POID [0] 0.0.0.1 /service/telco/gsm/telephony 441200
4
0 PIN_FLD_MODE ENUM [0] 1
0 PIN_FLD_BAL_IMPACTS ARRAY [1000004] allocated 20, used 5
1 PIN_FLD_CREDIT_LIMIT DECIMAL [0] 0
1 PIN_FLD_CURRENT_BAL DECIMAL [0] -6291456.0 ***************************
1 PIN_FLD_CREDIT_PROFILE INT [0] 2
1 PIN_FLD_CREDIT_FLOOR DECIMAL [0] -9223372036854775808
1 PIN_FLD_SUB_BAL_IMPACTS ARRAY [4] allocated 20, used 5
2 PIN_FLD_CONSUMED_RESERVED_AMOUNT DECIMAL [0] 0
2 PIN_FLD_GRANTOR_OBJ POID [0] 0.0.0.1 /purchased_product 440176 0
2 PIN_FLD_AMOUNT DECIMAL [0] -6291456.0
2 PIN_FLD_VALID_TO TSTAMP [0] (1615878000) Tue Mar 16 00:00:00
2021
2 PIN_FLD_VALID_FROM TSTAMP [0] (1613462400) Tue Feb 16 00:00:00
2021
0 PIN_FLD_BAL_IMPACTS ARRAY [840] allocated 20, used 5
1 PIN_FLD_CREDIT_LIMIT DECIMAL [0] 9223372036854775807
1 PIN_FLD_CURRENT_BAL DECIMAL [0] 21.80 ***************************
1 PIN_FLD_CREDIT_PROFILE INT [0] 0
1 PIN_FLD_CREDIT_FLOOR DECIMAL [0] -9223372036854775808
1 PIN_FLD_SUB_BAL_IMPACTS ARRAY [0] allocated 20, used 4
2 PIN_FLD_CONSUMED_RESERVED_AMOUNT DECIMAL [0] 0
2 PIN_FLD_GRANTOR_OBJ POID [0] 0.0.0.1 /purchased_product 440176 0
2 PIN_FLD_AMOUNT DECIMAL [0] 21.80
2 PIN_FLD_VALID_FROM TSTAMP [0] (1613462400) Tue Feb 16 00:00:00
2021
0 PIN_FLD_BAL_IMPACTS ARRAY [1000010] allocated 20, used 5
1 PIN_FLD_CREDIT_LIMIT DECIMAL [0] 0
1 PIN_FLD_CURRENT_BAL DECIMAL [0] -409600.0 ***************************
1 PIN_FLD_CREDIT_PROFILE INT [0] 2
1 PIN_FLD_CREDIT_FLOOR DECIMAL [0] -9223372036854775808
1 PIN_FLD_SUB_BAL_IMPACTS ARRAY [2] allocated 20, used 5
2 PIN_FLD_CONSUMED_RESERVED_AMOUNT DECIMAL [0] 0
2 PIN_FLD_GRANTOR_OBJ POID [0] 0.0.0.1 /purchased_product 440176 0
2 PIN_FLD_AMOUNT DECIMAL [0] -409600.0
2 PIN_FLD_VALID_TO TSTAMP [0] (1615878000) Tue Mar 16 00:00:00
2021
2 PIN_FLD_VALID_FROM TSTAMP [0] (1613462400) Tue Feb 16 00:00:00
2021

11) check same balance snapshot in ece cache, also shows the doubled values:

CohQL> select value() from Balance where ownerId='440432';
Results

CohQL>

12) check the balances in BRM database, they look ok:

nap(23966)> robj - 0.0.0.1 /balance_group 438640
# number of field entries allocated 20, used 15
0 PIN_FLD_POID POID [0] 0.0.0.1 /balance_group 438640 5
..
..
0 PIN_FLD_BALANCES ARRAY [840] allocated 20, used 6
1 PIN_FLD_CONSUMED_RESERVED_AMOUNT DECIMAL [0] 0
1 PIN_FLD_CONSUMPTION_RULE ENUM [0] 0
1 PIN_FLD_CREDIT_PROFILE INT [0] 0
1 PIN_FLD_NEXT_BAL DECIMAL [0] 0
1 PIN_FLD_RESERVED_AMOUNT DECIMAL [0] 0
1 PIN_FLD_SUB_BALANCES ARRAY [0] allocated 20, used 10
2 PIN_FLD_CONTRIBUTOR_STR STR [0] ""
2 PIN_FLD_CURRENT_BAL DECIMAL [0] 10.9 ***************************
..
..
0 PIN_FLD_BALANCES ARRAY [1000004] allocated 20, used 6
1 PIN_FLD_CONSUMED_RESERVED_AMOUNT DECIMAL [0] 0
1 PIN_FLD_CONSUMPTION_RULE ENUM [0] 0
1 PIN_FLD_CREDIT_PROFILE INT [0] 2
1 PIN_FLD_NEXT_BAL DECIMAL [0] 0
1 PIN_FLD_RESERVED_AMOUNT DECIMAL [0] 0
1 PIN_FLD_SUB_BALANCES ARRAY [4] allocated 20, used 10
2 PIN_FLD_CONTRIBUTOR_STR STR [0] ""
2 PIN_FLD_CURRENT_BAL DECIMAL [0] -3145728 ***************************
..
..
0 PIN_FLD_BALANCES ARRAY [1000010] allocated 20, used 6
1 PIN_FLD_CONSUMED_RESERVED_AMOUNT DECIMAL [0] 0
1 PIN_FLD_CONSUMPTION_RULE ENUM [0] 0
1 PIN_FLD_CREDIT_PROFILE INT [0] 2
1 PIN_FLD_NEXT_BAL DECIMAL [0] 0
1 PIN_FLD_RESERVED_AMOUNT DECIMAL [0] 0
1 PIN_FLD_SUB_BALANCES ARRAY [2] allocated 20, used 10
2 PIN_FLD_CONTRIBUTOR_STR STR [0] ""
2 PIN_FLD_CURRENT_BAL DECIMAL [0] -204800
***************************






Changes

 

Cause

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


In this Document
Symptoms
Changes
Cause
Solution
References


My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.