About MLE Execution Contexts
An MLE execution context is a standalone, isolated runtime environment, designed to contain all runtime state associated with the execution of JavaScript code. Runtime state includes global variables as well as the state of the language environment.
-
With dynamic MLE execution, where you can create and use dynamic MLE contexts explicitly
-
For calls from SQL and PL/SQL to functions exported by an MLE module
Dynamic Execution
Properties of dynamic MLE contexts are determined by the environment used at the moment the execution context is created. You have explicit control over which execution context is used for each dynamic MLE snippet, with each execution context running code on behalf of a single user.
There is no limit to how many dynamic MLE execution contexts can be created in a session, or how they are shared across different code snippets. Code snippets in JavaScript share all global variables with other code snippets running in the same execution context.
MLE Modules
Contexts for MLE module calls from SQL or PL/SQL are created implicitly on demand. Here, the properties are determined by the MLE environment referenced in the call specification at the moment of context creation. The environment can be used to specify language options and to make MLE modules available for import.
MLE modules never share an execution context with other modules or dynamic MLE snippets. Additionally, separate execution contexts are used when code from the same MLE module is executed on behalf of different users. MLE creates a dedicated execution context for each combination of MLE module and environment. Two call specifications that specify either different modules or different environments are executed in separate module contexts.
See Also:
-
Specifying Environments for MLE Modules for more information about MLE environments
- Execution Contexts for information about how execution contexts are used to enforce runtime state isolation
Parent topic: Overview of Multilingual Engine for JavaScript