Method: XmlConv::Util::Application#_execute

Defined in:
lib/xmlconv/util/application.rb

#_execute(transaction) ⇒ Object

survive notification failure



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/xmlconv/util/application.rb', line 41

def _execute(transaction)
  has_error = false
  transaction.transaction_id = next_transaction_id
  SBSM.info "Starting_transaction #{transaction.transaction_id}"
  transaction.execute
  res = transaction.postprocess
  SBSM.info "Postprocessed_transaction #{transaction.transaction_id} res #{res.class}"
  res
rescue Exception => error
  has_error = true
  SBSM.info "error_transaction #{transaction.transaction_id} error #{error} \n#{error.backtrace}"
  transaction.error = error
ensure
  res = ODBA.transaction {
    transaction.odba_store
    @transactions.push(transaction)
    @transactions.odba_isolated_store
  }
  SBSM.info "has_error_transaction is #{has_error} #{transaction.transaction_id} res is #{res.class}" if has_error
  res
end