CM Hangs In Fm_act_session_trans_prep
Last updated on OCTOBER 09, 2017
Applies to:Oracle Communications Billing and Revenue Management - Version 126.96.36.199.0 and later
Information in this document applies to any platform.
When loading traffic (PCM_OP_ACT_LOAD_SESSION with/without CALC_ONLY flag) inside a PCM_TRANS_OPEN_READWRITE | PCM_TRANS_OPEN_LOCK_DEFAULT transaction, all CM childs hang when two or more of them get at the same time to the fm_act_session_trans_prep function called by PCM_OP_ACT_LOAD_SESSION with the CALC_ONLY flag.
Issue can be reproduce by calling standard OBRM function "fm_act_session_trans_prep" on at least two threads in the exact same time. This can be achieved by creating custom opcodes which can easily called 20 threads, thus can raise the probability for collisions. Make sure to use distinct accounts for each request chain (AI, CR & RAT) and for an account the requests are sent in order on the same thread.
The only locks were those left by the blocked child CMs (in function fm_act_session_trans_prep) because they never reach PCM_OP_TRANS_COMMIT. There were only blocking locks, no waits on locks.
This can also reproduce in a simplified setup by using only the PCM_OP_ACT_FIND opcode (for getting the account by MSISDN) and the PCM_OP_ACT_LOAD_SESSION opcode with the PCM_OPFLG_CALC_ONLY flag.
P.S: The problem does not seem to appear if we do not use the PCM_OPFLG_CALC_ONLY flag.
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