Search Postgresql Archives

Re: ESQL/C: a ROLLBACK rolls back a COMMITED transaction

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 5/12/20 10:34 PM, Matthias Apitz wrote:
El día Dienstag, Mai 12, 2020 a las 05:17:33 -0700, Adrian Klaver escribió:

insert into swd_auftrag ..

COMMIT?

This question (if it was a question) I don't understand.

 From your original message:

"The INSERT of 1 row into table swd_daten was OK and commit'ed (marked line)
and a later rollback (last line) seems to roll it back, at least the row
isn't in the table."

It was not clear to me whether:

"[1471] [12.05.2020 15:48:50:478]: ecpg_execute on line 1637: query: insert
into swd_auftrag ( setnr , aufnum , katkey , userid , seqcount ) values ( $1
, $2  , $3  , $4  , $5  ); with 5 parameter(s) on connection sisis
[1471] [12.05.2020 15:48:50:478]: ecpg_process_output on line 1637: OK:
INSERT 0 1"

also COMMITT(ed) or not?

As I said in the original post of this thread:

[1471] [12.05.2020 15:48:50:476]: ecpg_execute on line 1744: query: insert into swd_daten ( katkey , aktion , reserv , id , ansetzung , nettodaten ) values ( $1  , $2  , $3  , $4  , $5  , $6  ); with 6 parameter(s) on connection sisis
[1471] [12.05.2020 15:48:50:476]: ecpg_process_output on line 1744: OK: INSERT 0 1
[1471] [12.05.2020 15:48:50:477]: ECPGtrans on line 6716: action "commit"; connection "sisis"
...

i.e. the COMMIT is done in the same connection(!) right after the
INSERT. There is no other ESQL/C call logged (and done) between.

There is only no ACK from the ESQL/C layer about the COMMIT of
ECPGtrans, but this is a fault in the ESQL/C layer code, because the
ECPGtrans is logged before executing it and afterward if it's done OK no
message is generated.


In your original post you had:

"We're facing in our ESQL/C written application a situation where a
commit'ed INSERT into a table is rolled back. I have here the ESQL/C
logging of the problem:"
...

"The INSERT of 1 row into table swd_daten was OK and commit'ed (marked line)
and a later rollback (last line) seems to roll it back, at least the row
isn't in the table.

Any ideas? The connection is not set to AUTOCOMMIT."

You then included a sequence of log messages that ended with a "rollback". Within that sequence was the INSERT to swd_auftrag. It seemed reasonable to ask whether that INSERT rolled back also. That is if the intent of this thread is to figure out why the INSERT was rolled back. If the thread has changed to fixing ESQL/C logging then ignore the above.


	matthias




--
Adrian Klaver
adrian.klaver@xxxxxxxxxxx





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]

  Powered by Linux