Unix Technical Forum

dbaccess with Informix 11.10 Commits on Interrupt!

This is a discussion on dbaccess with Informix 11.10 Commits on Interrupt! within the Informix forums, part of the Database Server Software category; --> This behavior appears to be way too weird for me. I have a stored procedure that runs multiple transactions, ...


Go Back   Unix Technical Forum > Database Server Software > Informix

FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 05-05-2008, 06:53 AM
Zachi
 
Posts: n/a
Default dbaccess with Informix 11.10 Commits on Interrupt!

This behavior appears to be way too weird for me. I have a stored
procedure that runs multiple transactions, and in each one it updates
several records on several tables (like any normal transaction
does...). Then I run this procedure with dbaccess, interrupts with
ctrl-c and gets this (names changed for obvious reasons):

user@db$ dbaccess db1 <<XXX
> EXECUTE PROCEDURE some_procedure(10686,4700000)
> XXX


Database selected.

213: Statement interrupted by user.
Error in line 1
Near character position 57

Warningata Commit is a result of an unhandled exception in TXN PROC/
FUNC/TRI

Data committed.

Database closed.

user@db$




the effect of this is, of course, to screw up the results of the
transaction, as not all tables were updated. I found this out when I
ran teh procedure again with different parameters and got this (names
changed again):


user@db3$ dbaccess db1 <<XXX
> EXECUTE PROCEDURE temp_procedure(10686,5015362)
> XXX


Database selected.

239: Could not insert new row - duplicate value in a UNIQUE INDEX
column (Unique Index:ix_client_req_pk).

100: ISAM error: duplicate value for a record with unique key.
Error in line 1
Near character position 1

Warningata Commit is a result of an unhandled exception in TXN PROC/
FUNC/TRI

Data committed.

Database closed.


which is even worse: an error causes commit! is this a strange new
behavior of cheetah? I was under the impression that an incomplete
transaction will always rollback when the session is disturbed. Am I
wrong?

Zachi
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #2 (permalink)  
Old 05-10-2008, 03:06 PM
Davorin Kremenjas
 
Posts: n/a
Default Re: dbaccess with Informix 11.10 Commits on Interrupt!

On May 4, 2:45*am, Zachi <zklop...@gmail.com> wrote:
> This behavior appears to be way too weird for me. I have a stored
> procedure that runs multiple transactions, and in each one it updates
> several records on several tables (like any normal transaction
> does...). Then I run this procedure with dbaccess, interrupts with
> ctrl-c and gets this (names changed for obvious reasons):
>
> user@db$ *dbaccess db1 <<XXX
>
> > EXECUTE PROCEDURE some_procedure(10686,4700000)
> > XXX

>
> Database selected.
>
> * 213: Statement interrupted by user.
> Error in line 1
> Near character position 57
>
> Warningata Commit is a result of an unhandled exception in TXN PROC/
> FUNC/TRI
>
> Data committed.
>
> Database closed.
>
> user@db$
>
> the effect of this is, of course, to screw up the results of the
> transaction, as not all tables were updated. I found this out when I
> ran teh procedure again with different parameters and got this (names
> changed again):
>
> user@db3$ *dbaccess db1 <<XXX
>
> > EXECUTE PROCEDURE temp_procedure(10686,5015362)
> > XXX

>
> Database selected.
>
> * 239: Could not insert new row - duplicate value in a UNIQUE INDEX
> column (Unique Index:ix_client_req_pk).
>
> * 100: ISAM error: *duplicate value for a record with unique key.
> Error in line 1
> Near character position 1
>
> Warningata Commit is a result of an unhandled exception in TXN PROC/
> FUNC/TRI
>
> Data committed.
>
> Database closed.
>
> which is even worse: an error causes commit! is this a strange new
> behavior of cheetah? I was under the impression that an incomplete
> transaction will always rollback when the session is disturbed. Am I
> wrong?
>
> Zachi


Zachi,

this is not cheetah dependent, this is dbaccess' default behaviour.
It bit me a few weeks ago so I learned my lesson.

export DBACCNOIGN=1

in your environment is your friend. It stops dbaccess transaction
execution and rolls it back.
Check the manuals for the details.

Regards

Davorin
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump


All times are GMT. The time now is 08:42 AM.


Powered by vBulletin® Version 3.6.5
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.2.0
www.UnixAdminTalk.com