Throughout StreamBase, in both EventFlow and StreamSQL programs, there is a single concept of a parameter, and a single ${param}
syntax to resolve parameters to their values. Parameters can be declared at various points in an application or configuration
file, each having different scope and order of precedence. In general, there are two categories of parameters:
The following provides an overview of the ways parameters are used in StreamBase. See the linked pages for each parameter category for further details.
Module parameters are declared at the module level, and their scope is the containing module. In EventFlow programs, declare module parameters in the Parameters tab of the EventFlow Editor. In StreamSQL programs, declare module parameters with the CREATE PARAMETERS statement. You can reference module parameters in expressions in any operator or adapter in the containing module. You can set values for module parameters in a number of ways. Module parameters are evaluated at module load time, when the container holding the module is started by its hosting StreamBase Server.
If a module parameter is declared with a default value, and you do not specify a value at runtime with any of the available methods, then the module is run using the default value for that parameter. If you do not declare a default value, the containing module does not pass typechecking.
Global parameters are declared in the <operator-parameters>
element of the server configuration file. They have global scope for all modules in all containers running on the StreamBase
Server instance configured by that file, and can be referenced in any expression in any module running on the server. You
set initial values for global parameters in the same <operator-parameter>
element that declares them. Global parameters are initialized at server start time when the server configuration file is
read.
Like most globally-set values, global parameters can complicate application debugging. For the majority of use cases, TIBCO recommends using module parameters over global parameters.
You can narrow the focus of an <operator-parameter>
element by specifying a qualified path in StreamBase path notation to an individual operator. See <operator-parameter> for details.