Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compiling the procedures is impossible in IBExpert when a client program is opened - lock conflict on no wait transaction [CORE5160] #5443

Closed
firebird-automations opened this issue Mar 20, 2016 · 10 comments

Comments

@firebird-automations
Copy link
Collaborator

Submitted by: Shumacher Konstantin (shuma)

Duplicates CORE3766

If the client program calls procedure from the database (for example select * from Proc) in a transaction
"isc_tpb_read, isc_tpb_nowait, isc_tpb_rec_version, isc_tpb_read_committed"
then IBExpert can not recompile it even in the transaction
"isc_tpb_read_committed, isc_tpb_rec_version, isc_tpb_wait"
until the client is completely closed. Error from IBExpert:
"lock conflict on no wait transaction
I'm using Delphi 2007 + FibPlus 7.3 with standard settings of TpFIBTransaction.TRParams for client program.

@firebird-automations
Copy link
Collaborator Author

Commented by: @dyemanov

You seems confusing transaction options for IBE. Error message clearly states that the procedure is being recompiled by IBE in the NO WAIT transaction. And it does not matter what transaction mode the client uses.

@firebird-automations
Copy link
Collaborator Author

Modified by: @dyemanov

Link: This issue duplicates CORE3766 [ CORE3766 ]

@firebird-automations
Copy link
Collaborator Author

Modified by: @dyemanov

status: Open [ 1 ] => Resolved [ 5 ]

resolution: Duplicate [ 3 ]

@firebird-automations
Copy link
Collaborator Author

Commented by: Shumacher Konstantin (shuma)

I installed two servers 2.5.3 and the last of 3. Simply switch the desired server in the services and I try to compile the procedures. IBExpert works perfectly (no reports on conflicts) with version 2.5.3 (and has always worked before), but with version 3 does not work. You mean, i need to make an adjustment in the IBExpert? What kind?

@firebird-automations
Copy link
Collaborator Author

Commented by: Shumacher Konstantin (shuma)

and I did not use the metadata changes (drop, create...), just "select" requests

@firebird-automations
Copy link
Collaborator Author

Commented by: @dyemanov

Sorry, I didn't get from your post that it worked with v2.5.3. I will try to reproduce it and report back.

@firebird-automations
Copy link
Collaborator Author

Modified by: @pcisar

status: Resolved [ 5 ] => Closed [ 6 ]

@firebird-automations
Copy link
Collaborator Author

Commented by: Shumacher Konstantin (shuma)

Pavel, do you think that the issue is closed?

@firebird-automations
Copy link
Collaborator Author

Commented by: @dyemanov

I see that everything works correctly. By default, IBE uses metadata transaction with NOWAIT. As expected, this throws "object in use" error. Changing it in Options / Environment / Transactions to WAIT does not help because override exists at the database alias level. Changing it in Database Registration Info / Transactions to WAIT fixes the problem and procedure gets recompiled successfully.

@firebird-automations
Copy link
Collaborator Author

Commented by: Shumacher Konstantin (shuma)

Thank you very much. I think this feature must be documented in release version.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant