My Oracle Support Banner

Question on DM Front End/Back End Connection Management (Doc ID 1578854.1)

Last updated on FEBRUARY 03, 2019

Applies to:

Oracle Communications Billing and Revenue Management - Version 7.4.0.0.0 to 7.5.0.0.0 [Release 7.4.0 to 7.5.0]
Information in this document applies to any platform.

Goal

On all versions of Oracle Communications Billing and Revenue Management (BRM), how is it possible for PIN_FLD_DM_FE_STATE to have a State of 0 and PIN_FLD_DM_BE_STATE to have a State of 3?

Shouldn't the Back End (BE) connection be released from the transaction automatically when Front End (FE) becomes idle?

Here is the snippet of dm_status that is confusing:

0 PIN_FLD_DM_FRONTEND   ARRAY [0] allocated 20, used 17
1     PIN_FLD_PID             INT [0] 8685
1     PIN_FLD_FLAGS           INT [0] 4096
1     PIN_FLD_TATTLE_TALE     INT [0] 8
1     PIN_FLD_CONNECTS        INT [0] 10
1     PIN_FLD_HIWAT           INT [0] 13
1     PIN_FLD_OPS_DONE        INT [0] 5591989
1     PIN_FLD_TRANS_DONE      INT [0] 114958
1     PIN_FLD_DM_FE_CONNECT  ARRAY [0] allocated 20, used 11
2         PIN_FLD_FLAGS           INT [0] 16777233
2         PIN_FLD_DM_FE_STATE     INT [0] 0
2         PIN_FLD_DM_BE_STATE     INT [0] 3
2         PIN_FLD_DM_BE_IDX       INT [0] 29
2         PIN_FLD_OPCODE          INT [0] 4
2         PIN_FLD_OPS_DONE        INT [0] 25
2         PIN_FLD_TRANS_DONE      INT [0] 2
2         PIN_FLD_DM_USED         INT [0] 16384
2         PIN_FLD_DM_LOW          INT [0] 24
2         PIN_FLD_DM_HIGH         INT [0] 8104
2         PIN_FLD_DM_BIG          INT [0] 16

It is suspected that custom BRM code that caused Connection Manager (CM) to crash.  When the CM children die, the FE and BE involved in the transaction end up in this state pair (FE 0, BE 3).

The possible values for PIN_FLD_DM_FE_STATE and PIN_FLD_DM_BE_STATE make sense when looking at them individually.  That does not necessarily say that the combination of 0 and 3 is valid.  In other words, when the BE is busy and locked in a transaction but FE is idle (ie. NOT in state "2") then the net state between FE and BE becomes inconsistent.  BE will wait forever (and it does) and front-end is never going to send an abort or commit to the back-end.

The question is that why is the FE not sending an abort command to the BE when the FE loses its consumer, the CM child? 

Solution

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