Is it normal, that granting access to a table using SQL GRANT command is causing error 12138 - Failure getting schema read lock, to other SQL users reading other tables ? Is there any way to avoid that ? OE 11.3.3.
Yes. It is the expected behaviour. GRANT acquires write serial lock on schema table and prevents other clients to read meta data.
If a client is performing some operation like INSERT or SELECT on a table and if meta data for that particular table is not available in cache, then sql engine will try to get schema read lock and tries to get meta data for the table. During this time, this client may get this schema read lock error if the client that is performing GRANT is not committed/rollback it’s transaction.
If metadata for the table is available in cache, then there won’t be any problem in reading the table rows.
I think, there is no way to avoid it.