1

I am experiencing problems with Firebird 3 when I display a stored procedure in Firebird Maestro, and after that I open another Firebird Maestro instance opening the same stored procedure, when I try to change and "recompile" the stored procedure, the error occurs:

Lock conflict on no wait transaction. Unsuccessful metadata update. Object PROCEDURE "" is in use.

The example of two instances of Firebird Maestro is just to make it easier to understand the error. However, when using any other database manager or even database connection components such as IBDAC or Firedac the same error occurs.

If I'm not mistaken, this would not happen when I use Firebird version 2.5.

marc_s
  • 732,580
  • 175
  • 1,330
  • 1,459
Marcoscdoni
  • 955
  • 2
  • 11
  • 31
  • You should not change procedure from two places and compile. you should change from one place compile and then another place and compile. – skafinski Apr 11 '17 at 19:08
  • skafinski Of course. But I do not try to compile both at the same time. In the first instance of Firebird Maestro I only view the stored procedure and this is enough to cause the error mentioned above. – Marcoscdoni Apr 11 '17 at 20:01
  • you probably used Firebird 2.5 SuperServer, where the single-CPU server process and metadata cache is shared by all the connections. The Classic Server or SuperClassic multi-process multi-CPU modes would probably be less permissive and lock the metadata the same way. Regarding FB3 you did not say which mode did you configure it.... – Arioch 'The Apr 12 '17 at 15:31
  • I guess a similar sounding issue was discussed in Russian month or two ago with FB devels, not exactly the same, but similar thing. And AFAIR they said once some Stored Procedure metadata is cached in, it would not be cached out, unless the cache itself dismissed, which only happens when ALL the connections sharing that cache close and the grace period on them expires. – Arioch 'The Apr 12 '17 at 15:33
  • Arioch 'The I've installed Firebird-3.0.2.32703 using Super Server mode. – Marcoscdoni Apr 13 '17 at 22:02
  • Seems already know http://tracker.firebirdsql.org/browse/CORE-4016 – EMBarbosa Jul 28 '17 at 17:50
  • @EMBarbosa known as invalid :-) "Commented by: kattunga Checking my reported bugs I found this one. I was really an idiot, I was using nowait transactions to alter procedures. " And so has to be this SO ticket – Arioch 'The Sep 08 '22 at 11:18
  • @Arioch'The, Yes. Despite the post you are quoting is dated after mine, I was meaning it is known as a "limitation" of a no wait transaction... Thanks for helping clarify. You could post it as an answer though. :) – EMBarbosa Sep 09 '22 at 18:49
  • 1
    @EMBarbosa i would rather continue time paradox games :-) – Arioch 'The Sep 09 '22 at 22:24
  • Does this answer your question? [Differences in "procedure locking" based on the way the client is connecting to the database](https://stackoverflow.com/questions/73638885/differences-in-procedure-locking-based-on-the-way-the-client-is-connecting-to) – Arioch 'The Sep 09 '22 at 22:24

0 Answers0