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.