Skip to Content
author's profile photo Former Member
Former Member

Sybase IQ 16 SP 08.32,problems with concurrent operations

Hi, i´m facing a problen with a project that involves multiple concurrent inserts and updates on a IQ table, i have read that in sybase IQ 16 you have the "blocking" option to deal with this, so we turned it on , but we are still facing the problem, the message says this :

transaction <number> attempted to access <table name> created by transaction <number>.

We tried with the default value (0 for indefinied) for the blocking_timeout option, as well as a very large value (100000) but still no luck,does anything else needs to be configurated for the "blocking" option to work?

Then we also tried with the RLV(row level versioning) aplied to this table, and it seemed to work well, however sometimes(and sometimes don´t) the Insert statements returns 2 duplicate values for the primary key(identity column).

For the problem of the duplicate identity column, we found the note "2208642 - SAP IQ: duplicate insert issue with RLV table" ,this note mentions an error that is very similar to mine and says that it is fixed in IQ 16 sp 10.03, but wen we go to to downloads, we can´t find this version ,the last one is :16.0 SP10 PL02 -> IQSERV160010P_2-20011184.ZIP EBF 25000 .

The inserts and updates have been tested outside stored procedures, inside stored procedures, with "commits" at the end, with commits at the beggining and we could not make it work.

Does anybody has any suggestions?

Thank you!

Add a comment
10|10000 characters needed characters exceeded

Assigned Tags

Related questions

1 Answer

  • Best Answer
    Posted on Oct 21, 2015 at 11:27 PM

    blocking_timeout: When the blocking option is on, any transaction attempting to obtain a lock that conflicts with an existing lock waits for the indicated number of milliseconds for the conflicting lock to be released. If the lock is not released within blocking_timeout milliseconds, an error is returned for the waiting transaction.

    Set the option to 0 to force all transactions attempting to obtain a lock to wait until all conflicting transactions release their locks.

    Identity column support for RLV tables have been added in IQ 16 sp10.04 1-off (linuxamd64) and sp11 due in Dec.

    You can also get around duplicate insert value insert by creating unique HG index on identity column or setting identity_enforce_uniqueness database option,

    You will need to upgrade to IQ 16 sp10.03 full release and then applying sp10.04 patch

    IQSERV160010P_3-20011180.TGZEBF 25175: 16.0 SP10 PL03 3Info 119614402.09.2015
    Add a comment
    10|10000 characters needed characters exceeded

    • IQ allows one writer per table, blocking/blocking_timeout only gives time for other transaction to wait for that amount of time, if lock is released in that time, transaction will proceed , else will raise error. If application can handle it can submit failed transaction.

      For concurrent writers to same table, but not same page, you will need to use RLV, and for identity column support, upgrade server to IQ 10.04. you will need to open incident and request fix for windows platform.

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.