Skip to main content

This content has been archived and is no longer being updated. Links may not function; however, this content may be relevant to outdated versions of the product.

Support Article

Current transaction aborted exception when running Extract Rule

SA-37225

Summary



User getting an exception while running ​Business Intelligence Exchange (BIX) extract, which is resulting in no extract being generated, though there are instances for extraction.

Error Messages



Log file error:

2017-03-24 12:16:09,780 [ PegaRULES-Batch-47] [ ] [ ] ( internal.access.ExtractImpl) ERROR
- SQL Exception could not set last update time
org.postgresql.util.PSQLException: ERROR: current transaction is aborted, commands ignored until end of transaction block
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2198)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1927)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:562)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:420)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:366)
at com.pega.pegarules.data.internal.store.DatabasePreparedStatementImpl.executeUpdate(DatabasePreparedStatementImpl.java:458)
at com.pega.pegarules.data.internal.access.ExtractImpl.writeLastUpdateToDb(ExtractImpl.java:1405)
at com.pega.pegarules.data.internal.access.ExtractImpl.doExtract(ExtractImpl.java:1865)
at com.pega.pegarules.data.internal.access.ExtractImpl.runExtract(ExtractImpl.java:1149)
at com.pega.pegarules.data.internal.access.ExtractImpl.run(ExtractImpl.java:990)
at com.pega.pegarules.session.internal.PRSessionProviderImpl.performTargetActionWithLock(PRSessionProviderImpl.java:1290)
at com.pega.pegarules.session.internal.PRSessionProviderImpl.doWithRequestorLocked(PRSessionProviderImpl.java:1038)
at com.pega.pegarules.session.internal.PRSessionProviderImpl.doWithRequestorLocked(PRSessionProviderImpl.java:847)
at com.pega.pegarules.data.internal.access.ExtractImpl.runEngineExtract(ExtractImpl.java:973)
at com.pega.pegarules.data.internal.access.DatabaseImpl.executeExtract(DatabaseImpl.java:5662)
at com.pega.pegarules.session.internal.mgmt.Executable.executeExtract(Executable.java:8395)
at com.pegarules.generated.activity.ra_action_runextract_7eb17a5ada24845605c3d982093ca8a6.step1_circum0(ra_action_runextract_7eb17a5ada24845605c3d982093ca8a6.java:169)
at com.pegarules.generated.activity.ra_action_runextract_7eb17a5ada24845605c3d982093ca8a6.perform(ra_action_runextract_7eb17a5ada24845605c3d982093ca8a6.java:69)
at com.pega.pegarules.session.internal.mgmt.Executable.doActivity(Executable.java:3527)
at com.pega.pegarules.session.internal.mgmt.base.ThreadRunner.runActivitiesAlt(ThreadRunner.java:646)
at com.pega.pegarules.session.internal.mgmt.base.ThreadRunner.runActivities(ThreadRunner.java:572)
at com.pega.pegarules.session.internal.mgmt.PRThreadImpl.runActivities(PRThreadImpl.java:459)
at com.pega.pegarules.session.internal.async.agent.QueueProcessor.executeBatchTask(QueueProcessor.java:257)
at com.pega.pegarules.session.internal.async.agent.QueueProcessor.execute(QueueProcessor.java:321)
at com.pega.pegarules.session.internal.async.BatchRequestorTask.run(BatchRequestorTask.java:980)
at com.pega.pegarules.session.internal.PRSessionProviderImpl.performTargetActionWithLock(PRSessionProviderImpl.java:1290)
at com.pega.pegarules.session.internal.PRSessionProviderImpl.doWithRequestorLocked(PRSessionProviderImpl.java:1038)
at com.pega.pegarules.session.internal.PRSessionProviderImpl.doWithRequestorLocked(PRSessionProviderImpl.java:920)
at com.pega.pegarules.session.internal.async.BatchRequestorTask.run(BatchRequestorTask.java:697)
at com.pega.jsr166backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:991)
at com.pega.jsr166backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:532)
at java.lang.Thread.run(Thread.java:745)


Steps to Reproduce



Not Applicable


Root Cause



When BIX extraction is run, along with the extraction two other transactions or queries would get executed at the database level.

One for inserting data into pr_extract_time table and other one to update existing records in pr_extract_time table.

In both the case "pr_extract_time" is the one which gets modified based on the extract run.

As there are not enough privileges to allow these transactions using the database user which is configured in the current database rule, the transaction is failing.

There is another warning pertaining to the data type of pxExtractDateTime column as well, which has to be taken care of at the database level.

Resolution



Perform the following local-change steps:

1. Make sure that the user which is used to connect to the database has enough privileges to insert and update the table "pr_extract_time".

2. To overcome the issue with data type, drop the column prExtractDateTime, as there is not much data in this column and recreate the column manually.

Published July 19, 2017 - Updated October 8, 2020

Was this useful?

0% found this useful

Have a question? Get answers now.

Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.

Did you find this content helpful?

Want to help us improve this content?

We'd prefer it if you saw us at our best.

Pega Community has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice
Contact us