Article ID: 112143, created on Aug 30, 2011, last review on Aug 12, 2014

  • Applies to:
  • Business Automation 5.1
  • Business Automation 5.0

Resolution

In order to maintain transactional consistency PBA-E performs all operations within the set of database transactions. The number of the transaction, in which a public method invocation has been performed can be identified from the PBA-E logs  (see 112141 How to read PBA-E logs). Example of such transaction is brought below:

[11-08-30 18:00:09.178 RDBMS     TH24026 INF] Direct execute [0x9471d28]: BEGIN
[11-08-30 18:00:09.178 BM        TH24026 INF] ---[0] void TransactionServer::Commit()
[11-08-30 18:00:09.291 BM        TH24026 TRC] +++[0] DataPacket* RemoteObject::Call(const char*, DataPacket&, int)(method = JoinTrans, tmout = -2, t
rans #0)
[11-08-30 18:00:09.291 BM        TH24026 TRC] ---[0] DataPacket* RemoteObject::Call(const char*, DataPacket&, int)
[11-08-30 18:00:09.291 BM        TH24026 NTE] Container name: BM_Object_clone_1#28244
[11-08-30 18:00:09.292 BM        TH24026 NTE] Entering method BM_Container.BM_Object_clone_1.WipeOutSecureData(transaction = 28244, user = -1).
[11-08-30 18:00:09.292 BM        TH24026 NTE]   1 input arguments :
                int32_t: 1
...
...

[11-08-30 18:00:09.299 BM        TH24026 INF] +++[0] void TransactionServer::Commit()(BM_Object_clone_1, transaction #28244)
[11-08-30 18:00:09.299 BM        TH24026 NTE] COMMIT of transaction = 28244
[11-08-30 18:00:09.300 RDBMS     TH24026 INF] Direct execute [0x9471d28]: COMMIT



Once the transaction id is identified logAnalyzer.pl tool (`transaction` command, see 9268  log_analyzer.pl - Log analyzer for PBA-E 5.x version) could be used to fetch information about all actions done within this transaction as shown below.

# /usr/local/bm/tools/LogAnalyzer/logAnalyzer.pl -l /usr/local/bm/log transaction 28244
Reading logs from '/usr/local/bm/log'
Checking in 'amt' ...
Find transaction #28244 was started at [11-08-30 18:00:09.286]
Attempt to find transaction #28244 starter ...
Checking in 'TASKRUNNER' ...
Checking in 'www' ...
Checking in 'xmlrpcd' ...
Checking in 'amt' ...
Checking in 'xmlrpcd.3' ...
Checking in 'TASKRUNNER.3' ...
Checking in 'xmlrpcd.2' ...
Checking in 'xmlrpcd.4' ...
Checking in 'TASKRUNNER.1' ...
Find transaction start in 'TASKRUNNER.1'
Transaction #28244 was initiated by function: BM::WipeOutSecureData, starter:TASKRUNNER.1
Checking in 'BM' ...
  [11-08-30 18:00:09.292 BM        TH24026 NTE] Entering method BM_Container.BM_Object_clone_1.WipeOutSecureData(transaction = 28244, user = -1).
  [11-08-30 18:00:09.292 BM        TH24026 NTE]         1 input arguments :
                int32_t: 1

  [11-08-30 18:00:09.292 BM        TH24026 TRC] +++[0] ErrorMessage* BM::WipeOutSecureData()()
  [11-08-30 18:00:09.292 RDBMS     TH24026 INF] Prepare [0x9471d28]: SELECT "T154903392"."AccountID", "T165683448"."DeleteCvvPeriod", "T165683448"."
DeletePmPeriod" from "Account" "T154903392" cross join "ECommerceSettings" "T165683448"  WHERE ((((("T154903392"."Type") = (?)) or (("T154903392"."T
ype") = (?))) or (("T154903392"."Type") = (?))) and (("T165683448"."WipeOutEnable") = (?))) and (("T154903392"."AccountID") = ("T165683448"."Account
ID"))
  [11-08-30 18:00:09.292 RDBMS     TH24026 INF] Execute [0x9471d28]: 1, 2, 0, 1
  [11-08-30 18:00:09.294 RDBMS     TH24026 DBG] Fetch [0x9471d28]: End of fetch.
  [11-08-30 18:00:09.294 BM        TH24026 TRC]  +++[1] Int bPayTool::showCutNumber2()(-1)
  [11-08-30 18:00:09.294 BM        TH24026 TRC]   +++[2] DataPacket* RemoteObject::Call(const char*, DataPacket&, int)(method = checkMethodAccess, t
mout = -2, trans #0)
  LCACC1 check: BM::CheckAccessCutNumber2
  LCACC1 return:BM::CheckAccessCutNumber2 -- true
  [11-08-30 18:00:09.295 BM        TH24026 TRC]   ---[2] DataPacket* RemoteObject::Call(const char*, DataPacket&, int)
  [11-08-30 18:00:09.295 CommObj   TH24026 NTE] ServerObject 0x92e6cb8e(0xb2dfce20) stopped.
  [11-08-30 18:00:09.295 BM        TH24026 TRC]  => 0
  [11-08-30 18:00:09.295 BM        TH24026 TRC]  ---[1] Int bPayTool::showCutNumber2()
  [11-08-30 18:00:09.295 BM        TH24026 TRC] ---[0] ErrorMessage* BM::WipeOutSecureData()
  [11-08-30 18:00:09.295 BM        TH24026 DBG] Waiting for 'ok' to continue from control channel
  [11-08-30 18:00:09.295 BM        TH24026 NTE] Finished method BM_Container.BM_Object_clone_1.WipeOutSecureData(transaction = 28244, user = -1);
  [11-08-30 18:00:09.295 ADict     TH24026 NTE] Language::get("Operation done.") = NOTFOUND
  [11-08-30 18:00:09.299 BM        TH24026 INF] +++[0] void TransactionServer::Commit()(BM_Object_clone_1, transaction #28244)
  [11-08-30 18:00:09.299 BM        TH24026 NTE] COMMIT of transaction = 28244

dc47a2d05ec4d64fb099e4dab79ce579 198398b282069eaf2d94a6af87dcb3ff d863a37023d0fbc15b909ef836e29214 92711db0799e8aefe8e51f12dace0496 caea8340e2d186a540518d08602aa065 e12cea1d47a3125d335d68e6d4e15e07

Email subscription for changes to this article
Save as PDF