sbd
StreamBase Server — the StreamBase event processing server
DESCRIPTION
sbd
is the StreamBase Server daemon, the server process that listens for and acts upon client requests (commands and data) in
a StreamBase application. The StreamBase Server accepts incoming streaming data, manages execution queues, and performs the
real-time processing work as defined in the specified application.
The sbd command takes one of five files types as the
argument:
application-file
--An EventFlow application, with .sbapp extension.
|
--A StreamSQL application, with .ssql extension.
|
--A StreamBase deployment file, with .sbdeploy extension.
|
--A precompiled application archive file with .sbar extension, generated with the sbargen command.
|
--An application bundle file with .sbbundle extension, generated in StreamBase Studio or with the sbbundle command.
|
To stop a running sbd process, use the sbadmin shutdown command.
For EventFlow and StreamSQL application files and for deployment files, sbd typechecks and compiles the specified application on the fly, then runs the compiled application. Precompiled application archive files are run immediately. Application bundle files are unpacked to a temporary directory on the sbd server's host computer. The top-level EventFlow or StreamSQL application in the bundle is then compiled, reconciling any references to modules, external operators, and external adapters. The compiled top-level application is then run.
You do not specify containers on the sbd command line. Instead you write a StreamBase deployment file (.sbdeploy
) to define one or more containers. For backward compatibility, you can also specify containers in a server configuration
file (.sbconf
), but TIBCO recommends migrating to deployment files for this purpose.
As an alternative, you can start a server process with the sbd command and no options or arguments, then use the sbadmin addContainer
and modifyContainer
commands to add containers and applications on the fly to the running server.
OPTIONS
-b
-
On UNIX, sends the server process into background mode. On UNIX, using this option sends server log messages to the log4j logging back end instead of the default Logback back end. The log4j configuration file shipped with StreamBase is installed in
$STREAMBASE_HOME
/etc/log4j.configuration
, and the default configuration on UNIX is to send all output to syslog.On Windows, TIBCO discourages using
sbd –b
at the StreamBase Command Prompt except for short-term testing. Instead, the–b
option is designed to be used when specifying the command line used when starting StreamBase Server as a Windows service, as described in Running StreamBase Server as a Windows Service.On Windows, the
–b
option sends log messages to log4j logging as on UNIX, and log4j is configured to write to the Windows Event Log by default. However, on Windows,sbd –b
does not start a true background process. In addition, runningsbd -b
from the StreamBase Command Prompt results in several benign console warning messages that complain of multiple SLF4J bindings, as explained in Background Mode on Windows. -d
[key=value
],--debug
[key=value
]-
Use either version of this option to prepare StreamBase Server to accept connections from the EventFlow Debugger in StreamBase Studio. The server starts as usual and echoes a line like the following on the console:
Listening for transport dt_socket at address: 8000
This option is actually a convenient way to express three separate JVM options. When run without arguments,
--debug
makes the following settings:-agentlib:jdwp=transport=dt_socket,address=0.0.0.0:8000,server=y,suspend=n -Dstreambase.appgen.debug=true -Dstreambase.codegen.compile-debug=-g:vars,lines
As an optional argument to
--debug
, you can specify one or morekey-value
pairs in a comma-separated list with no spaces to override the settings of theagentlib:jdwp
line (except that you cannot override thetransport
setting), or to specify other JDWP settings. Override theaddress
key to specify a different port on which the server is to listen for debugger connections. Override thesuspend
key to cause the server to start and immediately suspend, waiting for a debugger connection. Suspending immediately allows you to hit breakpoints that occur early, such as those in theinit
andtypecheck
methods of custom Java operator or adapter code.If your application includes custom Java code, provide a server configuration file for the command-line launch that specifies a
<java-vm/dir>
path to thejava-bin
directory of your Studio project (or other directory that contains your Java classes). For example:sbd -f sbd.sbconf --debug suspend=y myapp.sbapp
If you have more complex requirements, you can still start the server in debug mode by specifying the same three settings that
--debug
makes, but instead use separate-J
lines:sbd \ -J-agentlib:jdwp=transport=dt_socket,address=0.0.0.0:8000,server=y,suspend=n \ -J-Dstreambase.appgen.debug=true \ -J-Dstreambase.codegen.compile-debug=-g:vars,lines \ ...
--datadir
directory
-
Sets the directory to be used for persistent data in disk-based Query Tables. If this is not specified, or the special value "+TEMP+" is used, a temporary directory is created on server startup and deleted on shutdown. The path specified with this option on the sbd command line takes precedence over other ways to specify the location of persistent data. See the
STREAMBASE_DATA
environment variable for a list of the precedence order. --eval
expression
-
Evaluates a StreamBase simple
expression
and exits. You can evaluate simple expressions but not aggregate expressions with--eval
.For both Windows and Linux, use double quotes around the expression you are testing. For example:
sbd --eval "cbrt(27)"
(double) 3.0If you need to quote strings or tuple fields in your expression, use single quotes inside the expression's double quotes. For example:
sbd --eval "list('alpha', 'beta', 'gamma')" (list(string)) [alpha, beta, gamma]
-f
config-file-path
-
Specifies the location of the server configuration file for sbd to read on startup. Without the
-f
option, sbd uses the same internal default configuration as printed by thesbd -s
command. Use-f
to override this default configuration by specifying a particular configuration file to use. It is an error to specify-f
with a StreamBase bundle file argument, because the bundle already contains a bundle-specific configuration file. -h
,--help
-
Displays a syntax reminder message, then exits.
--install-service
-
Windows only. Creates a new StreamBase service with the name specified in the
--service-name
parameter. The idea is to allow you to define multiple StreamBase services that start at system boot time. --intermediate-stream-dequeue
-
Enables intermediate stream dequeuing. See Intermediate Stream Dequeuing in the Test/Debug Guide.
-J
jvm-option
-
Specifies a system property setting or other JVM argument to be passed to the JVM running the server. This option does not substitute for putting StreamBase Server JVM arguments in the
<jvm-args>
element of the server configuration file. Use this option to specify temporary settings that affect only the current invocation of sbd. You must specify multiple-J
options to specify multiple JVM arguments.You might use
-J
to increase the heap allocated by the JVM in order to compile and run a very large application, to set the log level to assist debugging, or to set a system property temporarily when you cannot update the server configuration file.For example, specify
-J-Xmx2G
. Use the full option syntax forjvm-option
that you would use at the Java command line, including the initial hyphen. For example, specify-J-Dstreambase.log-level=2
to increase the log level for this invocation of sbd.Your
jvm-option
argument might require surrounding quotes, depending on the characters it contains and the shell you are using. However, do not use quotes to escape the spaces between separate JVM arguments; instead use separate-J
options. For example:-J-Xms512M -J-Xmx2G
--override-version-checking
-
Directs StreamBase Server to override version checking of bundles. By default, when StreamBase Server runs a bundle file, it checks the StreamBase version that created the bundle and refuses to run a bundle not created with the same
major.minor
release number. If you override version checking, incompatibilities between the bundled application and the server may still prevent the bundle from running. -p
TCP-port
-
Sets the listen port of the sbd server, overriding any setting in
sbd.sbconf
. The default is10000
.Note
The
-p
option is not supported for applications that have StreamBase authentication enabled (because there is no way to specify a username and password) or in conjunction with the multiple URI syntax. --remove-service
-
Windows only. Removes an existing StreamBase service with the name specified in the
--service-name
parameter. -s
-
Prints the skeleton configuration file to standard output and exits.
--service-name "servicename,Service Display Name"
-
Windows only. Specifies the StreamBase service name and the display name to be installed or removed. The
servicename
term is used as a prefix in the Windows Registry key name. TheService Display Name
portion is used in the Services control panel listing. Both arguments are required and must be separated by a comma. TIBCO recommends that you begin eachService Display Name
with the wordStreamBase
, to make it easier for you to manage multiple StreamBase services in the Services control panel.sbd --install-service --service-name "sbd2,StreamBase My Application Two"
--suspend
-
Start the server with applications in all application containers suspended (the
system
container is never suspended). You can override the suspension for individual configured to applications by specifying thesuspend="false"
attribute for the<application>
element in the server configuration file. --use-custom-logging
-
Has the same effect as setting the
STREAMBASE_USE_CUSTOM_LOGGING
environment variable, as described in Using StreamBase Logging in the Administration Guide. The advantage of this switch is that it can be used when sbd is run as a Windows service, so that an alternate logging system can be specified without needing to set a global environment variable. --version
-
Prints version information and exits.
-w
,path
--working-directory
path
-
Specifies a directory from which this instance of sbd is to be run. This option is especially useful when running sbd in the background, or starting it from a script that changes directories before launching sbd. This option does not specify the module search path, which still must be specified normally as described on the Module Search Path page.
The
-w
option changes to the specified directorypath
before starting the server. You can specify an absolute path, which is likely to be machine-specific, or a path relative to the default startup directory for sbd, as described below. When running a bundle file, the-w
path is the location where the bundle file is unzipped before running its contents.This option causes sbd to change to the specified directory very early in its startup sequence. When used, every file the server needs to reference, including files specified on the sbd command line, must be specified relative to that working directory, or must be absolute paths.
The default startup directory for sbd run in the foreground is the current directory of the launching process. Thus, when invoked directly at the command prompt, it is the shell's current directory. When invoked from a shell script, it is the script's current directory.
The default startup directory for sbd run in the background depends on the operating system. When running sbd -b on UNIX, the default startup directory is the file system root (/). For sbd run as a Windows service, the default startup directory is
%windir%
\System32
.
EXAMPLES
By default, StreamBase Server uses an internally stored configuration. You can view the default configuration by using the
-s
option. For example:
sbd -s | more
In the next example, the user specifies a StreamBase application on the command line. StreamBase Server starts and loads the application:
sbd /home/myapps/trading.sbapp
In the next example, the user creates a local copy of the default server configuration file.
sbd -s > /home/mydir/mysbd.sbconf
The user makes edits, and then specifies the local copy on the sbd command line. Note that the -f
flag and its parameter must come before the application name. After you make changes in
, start sbd to use the edited file as in the following example:
mysbd.sbconf
sbd -f /home/mydir/mysbd.sbconf trading.sbapp
The next example adds a new StreamBase service on Windows to be automatically started at boot time.
sbd --install-service --service-name "sbd2,StreamBase My Application Two"
The next example shows several eval
subcommands and their outputs. The first evaluates an expression with no quote delimiters. The second expression requires
quotes because it contains spaces. The third requires quotes because the parentheses would otherwise be interpreted by the
shell or command window. The fourth requires quotes because it contains spaces and to avoid the parentheses being interpreted
by the shell.
$ sbd --eval 2e3*6
(double) 12000.0
$ sbd --eval "2 % 7"
(int) 2
$ sbd --eval "pow(2,3)"
(double) 8.0
$ sbd --eval "timestamp('2012-12-21 9:22:34')"
(timestamp) 2012-12-21 09:22:34.000-0500
FILES
The configuration file for sbd is named sbd.sbconf
by default. There is one sbd.sbconf
file per StreamBase instance per node. The default sbd.sbconf
file can be generated with sbd -s
.
ENVIRONMENT
STREAMBASE_DATA
-
Optional. Sets the directory to be used for persistent data in disk-based Query Tables. The precedence order for determining the directory is described in STREAMBASE_DATA.
STREAMBASE_RETITLE_TERMINALS
-
Optional. If set to any value, StreamBase command-line utilities assign a terminal window title to match the name of the executable being run. By default terminal titles are not affected.
STREAMBASE_LOG_LEVEL
-
Optional. Sets the minimum severity of messages that StreamBase writes to logging output. Default is 0, which gets NOTICE level messages and higher. Reasonable values are -1 (which disables NOTICE messages and shows only WARN, ERROR and FATAL messages), 1 (which adds INFO messages to the standard messages), and 2 (which adds DEBUG messages).