How Studio Uses Server Configuration Files

Naming Convention

When StreamBase Studio runs applications, it recognizes and uses server configuration files only under the following conditions:

  • The configuration file is named sbd.sbconf.

  • The configuration file is at the root of the Studio project.

Configuration files with other names or in other locations are not used by Studio when running applications.

How Studio Uses Configuration Information

The presence of an sbd.sbconf file at the project root overrides some, but not all, Studio default settings.

When StreamBase Server is run from the command prompt, the sbd command's typecheck environment is completely determined by its current directory and by settings in the server configuration file. For example, if the top-level application has a reference to a module in another directory, there must be a <module-search> directive in the configuration file pointing to that directory.

By contrast, Studio has a more complex typecheck environment, which must be active both while authoring and when launching applications. Accordingly, Studio always generates and uses a temporary server configuration file when launching applications. There are two cases:

  • If there is no sbd.sbconf file at the project root, Studio generates a temporary configuration file that characterizes the current project's module search path, resource search path, Java Build Path, and any project references.

  • If an sbd.sbconf file exists at the project root, Studio merges the elements in that file with its generated configuration file.

If the current Studio project has a project reference to another Studio project, then any definitions, schemas, interfaces, and application modules in the referenced project are available to the current project. Studio's generated configuration file takes into account all resources available in referenced projects.

Configuration Elements Preserved and Ignored by Studio

When Studio runs StreamBase Server with its generated configuration file, it must reconcile settings in an sbd.sbconf file with the settings of its own typecheck environment. The sbd.sbconf file itself is not altered in any way. All reconciliation of elements occurs in the generated internal configuration file. In this reconciliation, Studio performs the following actions:

Studio preserves these elements:
  • In the <global> element, all <plugin> location paths.

  • In the <global> element, any paths to module files in <module-search> child elements go through the following process:

    • The paths are read.

    • Any environment variables in the path are substituted (except that STREAMBASE_HOME is always matched to Studio's home, not the value of an external variable).

    • Relative paths are resolved relative to the root of the project.

    • The adjusted paths are then appended to the Studio project's module search path.

  • In the <global> element, any paths to resource files in <operator-resource-searth> child elements go through a similar process to the above, and are appended to the Studio project's resource search path.

  • All <server> settings except <param tcp-port>.

  • All <page-pool> settings.

  • In the <runtime> element, any <param> child elements.

  • All <custom-functions> definitions.

  • All <sbmonitor> settings.

  • In the <java-vm> element, any <param> or <sysproperty> child elements. (Remember that these affect the JVM of the server being launched, not Studio itself. See Java VM Memory Settings.)

  • All <data-sources> settings.

  • All <operator-parameter> definitions.

  • Any <error-handler> settings.

  • All <jms-connections-defaults> elements.

Studio stores module and resource paths rooted in the Studio workspace. By contrast, the configuration file's <module-search> and <operator-resource-search> elements can store any file system path. In appending sbd.sbconf paths to Studio's module and resource paths, Studio reconciles the relative and absolute paths in the two systems such that any path that leads outside the Studio workspace is ignored.

Studio Ignores these elements:
  • In the <server> element, any <param tcp-port> setting.

  • In the <runtime> element, any <application> child elements.

  • All <security> settings.

  • All <security-tagging> settings.

  • All <authentication> settings.

  • All <high-availability> settings.

  • In the <java-vm> element, any <jar>, <dir>, or <library> child elements. Instead, Studio substitutes the project's Java Build Path.

Remember that running applications in Studio is a convenience for testing and debugging applications under development, and is not designed to emulate the full performance of StreamBase Server run on its own. See Studio Performance Note.

Back to Top