Re: Error while updating a table - Mailing list pgsql-general
From | sivapostgres@yahoo.com |
---|---|
Subject | Re: Error while updating a table |
Date | |
Msg-id | 1852089030.3173833.1744961512201@mail.yahoo.com Whole thread Raw |
In response to | Re: Error while updating a table (Laurenz Albe <laurenz.albe@cybertec.at>) |
Responses |
Re: Error while updating a table
|
List | pgsql-general |
Thanks Laurenz,
Now I need to do 2 things.
1. Correct my application to catch errors and do either Rollback or commit. This part is running smoothly from all other computers, so far. Nevertheless I'll check that for any missing catch.
2. Find the faulty entry and do rectify.
For the second part, how to identify that culprit query? Seems this has happened a few days back. At that time, we had some power issues that made network to fail.
To proceed, we need to find the culprit query? How? Where? No idea what was the pid then, as all computers were shut down every night.
Any possibilities? steps?
Happiness Always
BKR Sivaprakash
BKR Sivaprakash
On Friday 18 April, 2025 at 12:24:54 pm IST, Laurenz Albe <laurenz.albe@cybertec.at> wrote:
On Fri, 2025-04-18 at 05:49 +0000, sivapostgres@yahoo.com wrote:
> We use PowerBuilder along with PostgreSQL.
>
> PostgreSQL 15.7 (Ubuntu 15.7-1.pgdg24.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 13.2.0-23ubuntu4) 13.2.0, 64-bit
>
> Suddenly, one system starts throwing an error while updating a record from PowerBuilder.
> The same update statement (window) works fine, when run from other computers. Error
> occurs only when the statement is run from a particular computer. The SQL Statement is
>
> Update public.co_voucherseries_transaction_branch
> Set vouchernumber = <new number>
> Where companycode = '100'
> And branchcode = '001'
> And accountperiodid = 1
> And voucherseries = 'SERIES'
> And voucherversion = 'version'
> And activestatus = 'Y' ;
>
> The error is
> SQLSTATE=25P02
> ERROR: current transaction is aborted, commands ignored until end of transaction block;
> Error while executing the query
>
> Through googling, I found that last transaction was not properly rolled back.
> The (Postgresql) Linux server will be shut down every night and re-booted next day morning.
>
> Don't know when this error has occurred.
>
> Now I need to rectify this error? How to do it? Any help is really appreciated.
You would have to improve the code quality of the application, which does not seem
to do correct error handling or transaction management.
That error means that the *previous* statement (or one of the statements earlier in
the same database transaction) has caused an error. In PostgreSQL, that means that
the transaction is aborted, and the following statements until the end of the
transaction will receive the error you experience.
So one of the following must be the case:
- the previous statement caused an error, but you didn't detect or handle that
- the previous transaction run on the same database connection caused an error,
but you forgot to run ROLLBACK
Yours,
Laurenz Albe
> We use PowerBuilder along with PostgreSQL.
>
> PostgreSQL 15.7 (Ubuntu 15.7-1.pgdg24.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 13.2.0-23ubuntu4) 13.2.0, 64-bit
>
> Suddenly, one system starts throwing an error while updating a record from PowerBuilder.
> The same update statement (window) works fine, when run from other computers. Error
> occurs only when the statement is run from a particular computer. The SQL Statement is
>
> Update public.co_voucherseries_transaction_branch
> Set vouchernumber = <new number>
> Where companycode = '100'
> And branchcode = '001'
> And accountperiodid = 1
> And voucherseries = 'SERIES'
> And voucherversion = 'version'
> And activestatus = 'Y' ;
>
> The error is
> SQLSTATE=25P02
> ERROR: current transaction is aborted, commands ignored until end of transaction block;
> Error while executing the query
>
> Through googling, I found that last transaction was not properly rolled back.
> The (Postgresql) Linux server will be shut down every night and re-booted next day morning.
>
> Don't know when this error has occurred.
>
> Now I need to rectify this error? How to do it? Any help is really appreciated.
You would have to improve the code quality of the application, which does not seem
to do correct error handling or transaction management.
That error means that the *previous* statement (or one of the statements earlier in
the same database transaction) has caused an error. In PostgreSQL, that means that
the transaction is aborted, and the following statements until the end of the
transaction will receive the error you experience.
So one of the following must be the case:
- the previous statement caused an error, but you didn't detect or handle that
- the previous transaction run on the same database connection caused an error,
but you forgot to run ROLLBACK
Yours,
Laurenz Albe
pgsql-general by date: