On 11/6/20 11:10 AM, Jiří Činčura wrote:
It must be bound to the Database class instance.
It's talked about routines instance in
https://github.com/FirebirdSQL/firebird/blob/master/doc/README.external_routines.txt
For the engine, it must be the same.
In the document I see only:
===
When Firebird wants to load an external routine (function, procedure or
trigger) into its metadata
cache, it gets (if not already done for the database*) the external engine
through the plugin
external engine factory and asks it for the routine. The plugin used is the one
referenced by the
attribute plugin_module of the external engine.
* This is in Super-Server. In [Super-]Classic, different attachments to one
database create
multiple metadata caches and hence multiple external engine instances.
===
The loading of the plugin is kind of clear. But at the moment I'm looking for
answers for these questions:
* When is the EE plugin going to be unloaded?
In FB3 - when database is closed.
In FB4 - when last attachmnet using engine is closed
* Will the server, in a single process, call the plugin factory concurrently in
case i.e. two concurrent command executions happen (concurrent execution is
obvious)?
There is intermal synchronization (RWLock) in EE manager which ensures
no concurrent execution
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel