PIN_COLLECTIONS_PROCESS Hangs When Error Buffer Is Set In Policy Action. (Doc ID 942353.1)

Last updated on APRIL 28, 2014

Applies to:

Oracle Communications Billing and Revenue Management - Version 7.3.1.0.0 to 7.5.0.0.0 [Release 7.3.1 to 7.5.0]
Information in this document applies to any platform.
Checked for relevance on 29-Mar-2012
Checked for relevance on 28-Apr-2014


Symptoms

PIN_COLLECTIONS_PROCESS hangs whenever it tries to execute the scheduled pending policy actions for the account under collections and error occurs in the policy action being executed.
op_collections_take_action tries to update the error status (PIN_ACTION_ERROR) to the policy
collections_action object in new context and tries to create a lock on the account object with
this new context. Since a lock on the account has already been created on the account using
different context previously, it is leading to Dead Lock or pin_collections_process.

 

Scenario

04-Sep-09 : Account Creation

01-Oct-09 : Ran billing. Due date is 12-OCT-09.

26-OCT-09 : Ran pin_collections_process. Account entered into collections
scenario and actions have been created and scheduled.
01-NOV-09 : Ran billing. Due date is 10-NOV-09.

15-NOV-09 : Ran pin_collections_process.Two actions are scheduled for
execution.Explicitly placed the error in the first action to reproduce the
problem.
pin_collections_process hangs.

 

Line 3362 : Lock created on the account obj 0.0.0.1 /account 147988
-----------------------------------------
D Sun Nov 15 10:25:59 2009 aixadc01 cm:1528274
fm_bill_utils_config.c:87
1:aixadc01:pin_collections_process:4755532:258:3820:1252316917:1
##### op_bill_utils_prep_lock_obj(): output flist
# number of field entries allocated 20, used 2
0 PIN_FLD_POID POID [0] 0.0.0.1 /account 147988 0
0 PIN_FLD_LOCK_INFO SUBSTRUCT [0] allocated 20, used 2
1 PIN_FLD_TEMPLATE STR [0] "select X from
/balance_group where F1 = V1 order by bal_grp_t.poid_id0 "
1 PIN_FLD_ARGS ARRAY [1] allocated 20, used 1
2 PIN_FLD_ACCOUNT_OBJ POID [0] 0.0.0.1 /account 147988
0
------------------------------------------

Line 4536 : New context opened to update the error status of the policy
collections_action
-----------------------------------------
D Sun Nov 15 10:26:00 2009 aixadc01 cm:1528274
fm_collections_take_action.c:402
1:aixadc01:pin_collections_process:4755532:258:3820:1252316917:1
fm_collections_update_action_in_new_trans input flist
# number of field entries allocated 20, used 2
0 PIN_FLD_POID POID [0] 0.0.0.1
/collections_action/policy_action 200793 1
0 PIN_FLD_STATUS ENUM [0] 3
D Sun Nov 15 10:26:00 2009 aixadc01 cm:1528274
cm_utils_trans.c(14):87
1:aixadc01:pin_collections_process:4755532:258:3820:1252316917:1
fm_utils_trans_open entering
D Sun Nov 15 10:26:00 2009 aixadc01 cm:1528274 pcpst.c(77):405
1:aixadc01:pin_collections_process:4755532:258:3820:1252316917:1
connect to host=aixadc01, port=29950 OK
D Sun Nov 15 10:26:00 2009 aixadc01 cm:1528274
cm_utils.c(118):2773
1:aixadc01:pin_collections_process:4755532:258:3820:1252316917:1
cm_trans_pol_pre_ops: PCM_OP_TRANS_POL_OPEN not called
because it wasn't configured
-----------------------------------------

Line 4652 : Process hangs when it tries to open the lock on the same
account obj using the new context.
-----------------------------------------
D Sun Nov 15 10:26:00 2009 aixadc01 cm:1528274
fm_bill_utils_config.c:87
1:aixadc01:pin_collections_process:4755532:258:3820:1252316917:1
##### op_bill_utils_prep_lock_obj(): output flist
# number of field entries allocated 20, used 2
0 PIN_FLD_POID POID [0] 0.0.0.1 /account 147988 0
0 PIN_FLD_LOCK_INFO SUBSTRUCT [0] allocated 20, used 2
1 PIN_FLD_TEMPLATE STR [0] "select X from
/balance_group where F1 = V1 order by bal_grp_t.poid_id0 "
1 PIN_FLD_ARGS ARRAY [1] allocated 20, used 1
2 PIN_FLD_ACCOUNT_OBJ POID [0] 0.0.0.1 /account 147988
0
-----------------------------------------

In case of successful execution of policy action, opcode
'op_collections_take_action' tries to update the success status
(PIN_ACTION_COMPLETED)to policy action in the same transaction where as in
case of error, it tries to update the status(PIN_ACTION_ERROR) in different
or new transaction.The later code flow is leading to deadlock situation.




Cause

Sign In with your My Oracle Support account

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

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms