Problem in nutshell
- executed data updates on couple of tables using dbeaver
- later reads from these tables started failing
- looks like the rows/pages in these tables are locked by the session where updates are done
- cant seem to get the locks released
The details
- connected to an informix db using dbeaver
- updated a column in one row of a table
- added a few rows to another table
- ran selects to verify the updates
- ran a .net app that depends on these tables, and when it attempted to read the data from this table, it started throwing an error
opened another session in dbeaver, ran a select to find the rows i updated, now i get same error
- for the table with updates... SQL Error [IX000]: Could not do a physical-order read to fetch next row. Could not do a physical-order read to fetch next row. java.sql.SQLException: ISAM error: record is locked.
- for the table with inserts... SQL Error [IX000]: Could not position within a file via an index. Could not position within a file via an index. java.sql.SQLException: ISAM error: key value locked
dug in a bit about the errors, understood that it could be due to tables/pages/rows getting locked
- pulled up the current locks on the table using the table sysmaster:syslocks
- confirmed that there are exclusive page locks (may be exclusive row locks, not sure) on the tables that are updated
- confirmed that there are exclusive intent table locks on the tables that are updated
confirmed that the above two are indeed initiated by my dbeaver session using the sysmaster:syssessions table
tried restarting dbeaver, tried restarting pc, but none seem to release the exclusive locks
- my small bit of reading suggests that these should be released automatically, but it doesnt seem like it
How can I get these locks released? any help or direction is appreciated :)