My Oracle Support Banner

'Pin_Clean' Does Not Show Checkpoints In Certain Circumstances (Doc ID 790594.1)

Last updated on AUGUST 12, 2018

Applies to:

Oracle Communications Billing and Revenue Management - Version and later
Information in this document applies to any platform.
Checked for relevance on 28-May-2011.


1. pin_clean doesn't show checkpoints when the /event/billing/charge/cc events associated with the
checkpoints have the session OBJ values which does not exist in database.
2. Running pin_clean without -summary option throws error in the log file because it can not find
the session poid in database.

A custom opcode is calling the payment topup opcode (PCM_OP_PYMT_TOPUP) to apply authorization
only on the credit card within the same transaction so that if payment fails, it can roll back the
whole transaction. In a few cases, if the Paymentech transaction is dropped then the system
creates a checkpoint (in /event/billing/charge/cc) with result value 999. In this case, the
session obj used for this event is the one created by payment topup opcode. Since the line is
dropped, it rolls back the whole transaction and thus payment batch (session event) is also rolled
When running pin_clean after that, pin_clean -summary shows all checkpoints as 0 (which is wrong
because there are check points in system) and when running pin_clean (without summary option) then
it simply returns but there is error in log file regarding the session obj not found.

Steps To Reproduce:
0. create an account with payment type Credit Card (for example card number 444411112223333).
1. Set the dropline parameter to 1 in apps/fusa_server/pin.conf). Restart answer.
For example,
- answer_b drop_line 1
- answer_s drop_line 4444111122223333
2. Open a transaction with READWRITE

nap(1815)> r trans_open 1
nap(1815)> d 1
# PCM_OP_TRANS_OPEN 0x10000 1
# number of field entries allocated 20, used 1
0 PIN_FLD_POID POID [0] /account 1 0
nap(1815)> xop PCM_OP_TRANS_OPEN 0x10000 1

3. Call the PCM_OP_PYMT_TOPUP opcode within the transaction to apply the topup.
sample input flist:

# number of field entries allocated 20, used 4
0 PIN_FLD_POID POID [0] /account 873172 13
0 PIN_FLD_INHERITED_INFO SUBSTRUCT [0] allocated 20, used 1
1    PIN_FLD_TOPUP_INFO ARRAY [0] allocated 20, used 4
2       PIN_FLD_BILLINFO_OBJ POID [0] /billinfo 876244 3
2       PIN_FLD_BAL_GRP_OBJ POID [0] /balance_group 875988 0
2       PIN_FLD_PAYINFO_OBJ POID [0] /payinfo/cc 875220 0
0 PIN_FLD_DESCR STR [0] "Top-Up - Payment Method on File [Credit Card]"
nap(1815)> xop PCM_OP_PYMT_TOPUP 0 2

4. Close the transaction (This should be rolled back because of the error)

One will find a /event/billing/charge/cc checkpoint in system with the session obj value which
doesn't exist in the database (because the transaction was rolled back).
Now run simple pin_clean -summary (it shows all 0 check points) but there is one. Run pin_clean
without any options, no results are returned and log file has the error PIN_ERR_NOT_FOUND.


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

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