Sybase 12 to behave like Oracle and SQL Server 2014 – non blocking transaction read

lockingsybase

We utilize an ODBC connection so our code can access various databases – namely Oracle, Sybase 12 and SQL Server 2014.

NOTE : We have a table called which we use for locks. This table only ever has one record in it and it is either empty or populated with whom has the lock.

I have a scenario where whilst the application has an ODBC connection to Oracle or SQL Server 2014 the application runs fine, the test scenario being – two processes accessing the db – one doing a long running task the other doing short tasks. If I connect to Sybase and do the same activities one of the processes blocks (the short task one). I am guessing here that in Sybase the lock table is written to, locked grabbed, and released within a transaction and the other process is awaiting the commit\rollback on the transaction to use the table next.

Why does it work in SQL Server 2014 and Oracle but block in Sybase 12? What option needs to be ON\OFF in Sybase 12 to get the behavior of Oracle and SQL Server 2014?

Best Answer

I finally found the options of the database in Sybase Central and had a play with various options and I got it to work with turning ON "allow_snapshot_isolation" it was OFF by default.