StreamBase 6.3.x Release History

This topic lists the significant changes in the StreamBase 6.3.x release series.

What Was New in StreamBase 6.3.12

New and Updated Features

StreamBase 6.3.12 inherited the adapter updates and new features added to previous releases, through and including release 6.2.5. See What Was New in StreamBase 6.2.5 for details.

StreamBase 6.3.12 was a maintenance release that fixed several product limitations, as described in the Resolved Limitations section of the Release Notes.

What Was New in StreamBase 6.3.11

New and Updated Features

StreamBase 6.3.11 inherited the adapter updates and new features added to previous releases, through and including release 6.2.5. See What Was New in StreamBase 6.2.5 for details.

StreamBase 6.3.11 fixed several product limitations, as described in the Resolved Limitations section of the Release Notes.

This release also included the following updates:

Updates and New View for sbmonitor

The sbmonitor utility was updated to provide more detail in the Queues view, and to use moving averages in its statistics. The display also gained a new Sync Threads view, and a new command, U, that toggles on and off the updating of the display. For details, see StreamBase Monitor.

What Was New in StreamBase 6.3.10

New and Updated Features

StreamBase 6.3.10 inherited the adapter updates and new features added to previous releases, through and including release 6.2.5. See What Was New in StreamBase 6.2.5 for details.

StreamBase 6.3.10 fixed several product limitations, as described in the Resolved Limitations section of the Release Notes.

This release also includes the following new features and updates:

New Alpha Trading Systems EMAPI Order Entry Adapters

The StreamBase Alpha Trading System EMAPI Order Entry adapter allows a StreamBase application to submit trade requests to the Alpha Trading System venue. The adapter appears as two icons on the EventFlow canvas in StreamBase Studio: an output adapter for sending orders, and an input adapter for receiving order status updates from the venue. These adapters are described in Alpha Trading Systems EMAPI Order Entry Adapter and have a sample, described in Alpha Trading System EMAPI Order Entry Adapter Sample.

New Alpha Trading Systems EMAPI Market Data Feed Adapter

The StreamBase Alpha Trading System EMAPI Market Data Feed (MDF) Adapter allows a StreamBase application to subscribe to market data from from the Alpha Trading System venue. You can configure one to thirteen Alpha output flows as separate output ports for the adapter. For some of these output flows, Alpha supports replay capability, snapshot capability, or both. This adapter is described in Alpha Trading Systems EMAPI Market Data Feed Adapter and has a sample, described in Alpha Trading System EMAPI Market Data Feed Adapter Sample.

Update for CSV and Binary File Writer Adapters

The CSV File Writer and Binary File Writer adapters were updated to prevent two or more instances of either adapter from writing to the same file simultaneously. Application authors should be aware that this change does not prevent a non-StreamBase external application from writing to the same file being written to by these adapters.

Update for the CSV File Reader Adapter

The CSV File Reader adapter now reports a failure to open its specified CSV file on its optional event port.

New Functions in the Expression Language

The StreamBase expression language gains the following new functions:

What Was New in StreamBase 6.3.9

New and Updated Features

StreamBase 6.3.9 inherited the adapter updates and new features added to previous releases, through and including release 6.2.5. See What Was New in StreamBase 6.2.5 for details.

StreamBase 6.3.9 was a maintenance release that fixed several product limitations, as described in the Resolved Limitations section of the Release Notes.

What Was New in StreamBase 6.3.8

New and Updated Features

StreamBase 6.3.8 inherited the adapter updates and new features added to previous releases, through and including release 6.2.5. See What Was New in StreamBase 6.2.5 for details.

StreamBase 6.3.8 was primarily a maintenance release that fixed several product limitations as described in the Resolved Limitations section of the Release Notes.

This release also included the following updates:

Better Tracking of Description-Only Changes in Studio

StreamBase Studio now flags the current canvas as changed (and thus needing to be saved) for text-only changes in the Description field for components, including Notes. Studio does not run a typechecking pass when it detects changes only in Description fields.

Documentation Updates

The StreamBase documentation includes the following updates and corrections:

What Was New in StreamBase 6.3.7

New and Updated Features

StreamBase 6.3.7 inherited the adapter updates and new features added to previous releases, through and including release 6.2.5. See What Was New in StreamBase 6.2.5 for details.

StreamBase 6.3.7 added the following updates and new features:

New timezoneoffset() Function

The StreamBase expression language now includes the timezoneoffset() function, which returns a signed interval timestamp that expresses the number of hours that the local time zone is offset from UTC. You can subtract the return of timezoneoffset() from any absolute timestamp value to generate a new absolute timestamp that represents the same moment in the UTC time zone. See timezoneoffset() for examples and other uses of the function.

New Property to Preserve Studio Launch Directory

There is a new Java property, streambase.ide.leave-launch-tempdir, that you can add to the startup configuration of StreamBase Studio by means of the STREAMBASE_STUDIO_VMARGS environment variable. When set to true, this property instructs Studio to preserve the temporary directories it creates every time you run or debug an application in Studio. This allows you to inspect and debug the temporary sbd.sbconf file that Studio generates when running applications.

Studio's temporary directories are created in the directory defined with the Java system property java.io.tempdir, which is typically /tmp or /var/tmp on UNIX and C:\TEMP on Windows. The temporary directories are named sbstudio-session-nnnn, where nnnn is an integer generated for each run.

C++ Samples Updated

Starting with this release, StreamBase samples that provide a Makefile to build C++ code were updated to work with a simple make command without options. The make -e workaround suggested in the 6.3.6 notes below is no longer necessary, and the Makefiles from these samples can once again serve as models for your own projects that use the StreamBase C++ API.

Documentation Updates

The Administration Guide topic on Running StreamBase Server in Background Mode has a new section that describes the requirement to use full, absolute paths to specify any file system resources when running StreamBase Server in background mode with sbd -b. See Specifying File System Paths in Background Mode. The same page has another new section that clarifies the setup of syslogd on UNIX.

Fixes

StreamBase 6.3.7 also fixed several product limitations, as described in the Resolved Limitations section of the Release Notes.

What Was New in StreamBase 6.3.6

New and Updated Features

StreamBase 6.3.6 inherited the adapter updates and new features added to previous releases, through and including release 6.2.5. See What Was New in StreamBase 6.2.5 for details.

StreamBase 6.3.6 adds the following updates and new features:

New Deutsche Bank AutobahnFX Adapter

This release includes a new embedded adapter, the Deutsche Bank AutobahnFX Trading System adapter, which allows a StreamBase application to retrieve market data from, and submit trade requests to, a Deutsche Bank AutobahnFX trading system. See Deutsche Bank AutobahnFX Trading System Adapter for details, and see the adapter's sample, described in Deutsche Bank AutobahnFX Trading System Adapter Sample.

FIX Adapter Can Now Retrieve FIX Sequence Numbers

The FIX adapter was updated with a new command for the command port that can be used to retrieve the next incoming and outgoing message sequence numbers. See the Get Next MsgSeqNums command in the Input Ports section of the FIX adapter's documentation page.

HA Heartbeat Adapter Updated

The HA Heartbeat adapter was updated and now accepts new commands on its input port and emits a larger set of event strings on its output port. These changes are described in HA Heartbeat Input Adapter.

Bundled JDK Now Includes Header Files

The Sun JDK bundled for private use by StreamBase now includes the header files from that JDK in STREAMBASE_HOME/jdk/include. These are provided as a convenience for programmers and are not required or used by the StreamBase installation.

New Property to Redirect Stack Traces for Java Operators

There is a new Java property, streambase.java-operator.stacktrace-on-warn that can be specified either with the jvm-args or sysproperty elements in the server configuration file. When set to true, exception stack traces from Java operators and adapters are displayed on the server's console.

C++ Version Support on Linux

For building C++ clients or custom functions on Solaris and Linux, StreamBase requires G++ 3.4 through 4.2 . StreamBase does not support building clients or custom functions with G++ 4.3, which is the default compiler on newer Linux distributions. On such distributions, install GCC and G++ 4.2, and set the CXX environment variable before building StreamBase C++ code, including StreamBase samples that include C++ code. For example:

export CXX=g++-4.2
CXX Variable Now Honored by sb-config --cxx on Linux

On Linux, the sb-config -cxx command now honors (but does not validate) the setting of the CXX environment variable. On a Linux system where the default C++ compiler is G++ 4.3, sb-config --cxx normally returns the path to the G++ 4.3 compiler, unless you set the CXX environment variable as described in the previous note. For example, with default settings:

`sb-config --cxx` --version

returns

g++ (distro build info) 4.3.3

But if you first set the CXX environment variable, the same command returns the correct G++ version to use for building StreamBase code:

export CXX=g++-4.2
`sb-config --cxx` --version

returns

g++ (distro build info) 4.2.4

To take advantage of this new feature when building the C++ samples shipped with StreamBase, use the make -e command instead of just make. As an alternative, with the CXX variable set as described above, use the following variation:

make CXX=`sb-config --cxx`

Fixes

StreamBase 6.3.6 also fixed several product limitations, as described in the Resolved Limitations section of the Release Notes.

What Was New in StreamBase 6.3.5

New and Updated Features

StreamBase 6.3.5 included the following updates and new features:

Bundled JDK Version Updated

The version of the Sun JDK installed for private use by StreamBase is now 1.6.0_12. As before, you can override this installed default to use a different supported JDK as described in Using an External JDK. The supported JDK versions are listed in Supported Configurations.

FIX Adapter: Certain Values Read from Configuration File If Null

If your FIX adapter's configuration file contains exactly one pair of values for SenderCompID and TargetCompID, you can now send null values for those fields when sending administrative messages to the command port. The adapter now reads the null values as a trigger to obtain the values for those two fields from the configuration file.

FIX Adapter: New Commands for the Command Port

Two new commands were added to the FIX Input Adapter's Command port: SetSenderMsgSeqNum and SetTargetMsgSeqNum. These allow you to explicitly set the FIX message sequence number of outgoing and incoming messages, respectively. Note that with the SetSenderMsgSeqNum command, no SequenceReset (MsgType=4) message is emitted. The command only sets the adapter's expected next sequence number for incoming messages.

FIX Adapter: Custom Admin Message Interceptor Class

Certain FIX venues require the addition of custom fields to FIX administrative messages to be considered valid. For example, a venue may require that a Username and Password fields be added to Logon messages for certain FIX versions.

This release provides a way to add such custom fields manually, by making available to the adapter a custom interceptor class that will be responsible for adding the fields before administrative messages are sent. The FIX adapter topic in the Adapters Guide describes this new feature and provides sample code for the custom interceptor class. See Implementing a Custom Admin Message Interceptor Class.

FIX Adapter: CameronFIX Libraries Updated

The CameronFIX libraries that support the CameronFIX engine were updated to Cameron release 6.3.

TIBCO JAR File Included in Base Kit

To support the TIBCO Rendezvous Subscribing Input and Publishing Output adapters, the StreamBase installation kit now includes version 8.1.2 of the tibrv.jar JAR file from TIBCO that implements the TIBCO Rendezvous Java API.

CSV File Writer Adapter's Property View Reorganized

The properties for the CSV File Writer adapter were reorganized across four tabs in the adapter's Properties view. No new functionality was added.

Copy Field Names from Compare Schemas Dialog

When using the Compare Schemas dialog, you can now select any line, then right-click and select a copy command from the context menu to place the current field name in the system clipboard. Select Copy Field Name for simple fields. Select Copy Qualified Field Name to copy an element of a list in the form list-name.element-name, or to copy a member of a tuple with the form tuple-name.field-name.

Feed Simulation Now Supports Bzip2 Compression

When using Data File generation method for feed simulations, the feed simulator can read input data files compressed with zip or gzip. This release add bzip2 compression to the recognized compression methods. The extension for input data files must be .zip, .gz, or .bz2, respectively, for the three supported compression methods. Compression with bzip2 can result in significantly smaller files, but at the cost of slower reading times.

New API for Operator Property Deprecation

In the StreamBase Java Client library, the SBPropertyDescriptor class has three new methods: deprecated(), IsDeprecated(), and setDeprecated(). These provide a mechanism to deprecate a property for custom operators and adapters. Deprecated properties do not appear in the Properties view for the operator or adapter, but existing modules with that property set can still be used.

New Property to Redirect Stack Traces for Java Operators

There is a new Java property, streambase.java-operator.stacktrace-on-warn that can be specified either with the jvm-args or sysproperty elements in the server configuration file. When set to true, exception stack traces from Java operators and adapters are displayed on the server's console.

Documentation Updates

The StreamBase documentation includes the following updates and corrections, independent of the changes above:

Fixes

StreamBase 6.3.5 also fixed several product limitations, as described in the Resolved Limitations section of the Release Notes.

What Was New in StreamBase 6.3.4

New and Updated Features

StreamBase 6.3.4 included the following updates and new features:

New Feature: Enciphering Passwords and Parameter Values

This release adds the ability to encipher passwords and the value of certain name-value pairs in the StreamBase Server configuration file so that they do not appear as clear text in the file. You encipher text values by means of the new sbcipher command, as described in the feature's new page, Enciphering Passwords and Parameter Values. The reference page for the server configuration file was updated to describe the new enciphered="true" attribute.

New Feature: Improved Support for Stored Procedures

For several releases, StreamBase has supported calls to SQL stored procedures and stored functions to the database defined in its JDBC data source. This release adds support for certain databases such as Oracle that require special handling of the result sets returned from stored procedures. This new feature is described on Using Stored Procedures and on the page for the Query operator.

New TIBCO Rendezvous Subscribing Input Adapter

This release introduces the TIBCO Rendezvous Subscribing Input adapter, which is an embedded adapter that allows a StreamBase application to receive messages published to one or more Rendezvous subjects. This adapter complements the TIBCO Rendezvous External adapter, which remains available. The existing external adapter requires Rendezvous 7.2, whereas the new embedded adapter is Java-based, and is implemented by means of a TIBCO-supplied Rendezvous JAR file. This allows the new adapter to support the versions of Rendezvous supported by the TIBCO JAR file. The new adapter is described on TIBCO Rendezvous Subscribing Input Adapter.

New TIBCO Rendezvous Publishing Output Adapter

The TIBCO Rendezvous Publishing Output Adapter allows a StreamBase application to publish Tibrv messages to one or more Rendezvous subjects. Like the new Rendezvous input adapter, the output adapter is Java-based, and is implemented by means of a TIBCO-supplied Rendezvous JAR file, which allows you to determine what versions of Rendezvous the adapter will support. The new adapter is described on TIBCO Rendezvous Publishing Output Adapter. There is a new sample that illustrates the use of both new TIBCO adapters, described in TIBCO Rendezvous Adapter Sample

New Chronicle for Vhayu Subscription Adapter

This release includes a new Chronicle for Vhayu Subscription adapter, which allows you to subscribe to subjects on a Vhayu Velocity server (or on a Reuters RTCE server, which is based on Vhayu Velocity). This adapter complements the existing Chronicle for Vhayu Query adapter.

JMS Adapter Reconnection

The JMS Reader and JMS Writer adapters, in both embedded and external forms, can now be configured to attempt reconnections to the JMS server, and to pause and resume the conversion of messages on JMS destinations to tuples. These new features are described in JMS Input and Output Adapters and JMS External Adapters.

Hotspot FX Adapter Updates

The Hotspot FX adapter was updated to support version 4.9.6 of the Hotspot FX API. The changes include:

  • Two new control adapter output streams were added, MinMDSize and HotspotVersion.

  • The data type of certain fields in the schemas of some output streams was changed. This primarily affected the various *Id fields such as extPriceId, orderId, requestId, and so on.

Because of these changes, if you have an application that uses the Hotspot FX adapter, it may fail typechecking the first time you open the application in release 6.3.4. The typechecking error messages will lead you to the fields whose data types need changing. Once you have made the corrections suggested by the typechecking messages, the adapter runs normally.

Reuters SFC Adapter Updated

The 32-bit Linux version of the Reuters SFC External adapter was recompiled with the latest version of the SFC libraries from Reuters. This fixes the following bugs, shown with their tracking numbers in the Reuters bug tracking system. The adapter is otherwise unchanged.

  • Service Request: 1-3399038389 Crash when using subscribing app with SFC 4.5.3.

  • Service Request: 1-3430202500 Updates stop flowing in but images are still returned.

StreamBase Studio: New Layout File Warning Dialogs

Studio was enhanced to prompt about the presence or absence of layout files. This might occur in two cases:

  • When opening an EventFlow application file that has an associated layout file, where the current Studio preference setting disables the saving of separate layout files. This might occur when opening a Studio project created on a different machine where saving separate layout files was enabled.

  • With the current Studio preference set to always save layout files, when opening an EventFlow application file that does not have an associated layout file.

See EventFlow Layout Options for more on Studio's layout options.

StreamBase Studio: Update to Auto-Completion

In Studio's auto-completion feature (described on Expression Auto-Completion and Content Assistance), an information window on the right provides details about the selected item. This window was enhanced to describe the element types of lists in input fields of type list, and to describe the schemas of input fields with type tuple.

G++ Version Support on Linux

StreamBase requires G++ 3.4 through 4.2 for building C++ clients on UNIX. StreamBase does not support building clients or custom functions with G++ 4.3, which is the default compiler on newer Linux distributions. On such distributions, install GCC and G++ 4.2, and set the CC and CXX environment variables before building StreamBase C++ code, including StreamBase samples that include C++ code. For example:

export CC=gcc-4.2
export CXX=g++-4.2
Documentation Updates

The StreamBase documentation includes the following updates and corrections, independent of the changes listed above:

Fixes

StreamBase 6.3.4 also fixed several product limitations, as described in the Resolved Limitations section of the Release Notes.

What Was New in StreamBase 6.3.3

New and Updated Features

StreamBase 6.3.3 included the following update:

StreamBase Server Run as a Windows Service with Authentication

In release 6.2 and earlier, you could run StreamBase Server as a Windows service, and could also use the StreamBase authentication system when connecting to that server. In releases 6.3.0 through 6.3.2, architectural changes to the server prevented these features from working together. Release 6.3.3 restores the ability to use these features together by providing new Windows registry settings. See Configuring Windows Service with Authentication for instructions.

What Was New in StreamBase 6.3.2

New and Updated Features

StreamBase 6.3.2 included the following updates and new features:

Support Added for Re-Exporting Shared Query Tables

In previous releases, you could mark a Query Table with the Shared attribute, which makes the table visible to Query operators in modules one level higher. Starting with this release, you can now re-export the shared table from module to module, up the chain of nested modules to any depth.

Thus, if module A has a Query Table marked Shared, and module B contains module A, then module B's Query operators can access the table in module A. But in previous releases, that is as far as the sharing went, up one level higher.

Now, if module C contains module B, Query operators in module C can access the table in module A, two levels down. Likewise, if module D contains module C, it can also access the table in module A, and so on up the chain of nested modules.

To support this new feature, the Properties view for Module References has a new feature. The Table Associations tab was renamed the Tables tab, and it now contains a Re-export shared tables control in addition to the existing Associate placeholder tables control. This new control is discussed on the Module Reference Properties page.

New Lime Citrius Quote Adapter

This release includes a new adapter that allows a StreamBase application to subscribe to and receive market data from Lime Brokerage's Citrius Quote delivery system. This adapter is described on Lime Citrius Quote Input Adapter.

CSV File and Socket Input Adapters Now Accept Character Entities

The CSV File Input adapter and the CSV Socket Input adapter were enhanced to accept HTML character entities in the form &#nnn when specifying the field delimiter in StreamBase Studio. This allows you to specify tab-delimited CSV files with &#9, or to specify any other non-standard character as the field delimiter.

New Feature for CSV File Writer Adapter

The CSV File Writer adapter contains a new property, Check for Roll at Startup. If enabled, it causes the adapter to roll the output file at adapter startup if, based on the file's last modification time, the configured roll period, and the current time, the file would have been rolled before the adapter was started.

Fixes

StreamBase 6.3.2 also fixed several product limitations, as described in the Resolved Limitations section of the Release Notes.

What Was New in StreamBase 6.3.1

New and Updated Features

StreamBase 6.3.1 included the following updates and new features:

New UBS FIX Adapter

This release introduced a new adapter that allows a StreamBase application to connect to UBS Investment Bank's FX trading infrastructure using the FX2B API, and to exchange FIX messages with it. See UBS FIX Adapter.

New Goldman Sachs Electronic Trading FX Adapter

This release introduces the Goldman Sachs Electronic Trading FX adapter that allows a StreamBase application to connect to a Goldman Sachs Electronic Trading FX platform using the FIX protocol, and to exchange FX trade and price information with it via FIX messages. See Goldman Sachs Electronic Trading FX Adapter.

New Feature in Reuters RMDS Subscribing Adapter

The Reuters RMDS Subscribing adapter now supports meta tuples (the so-called thin tuples). The adapter's properties were reorganized into three tabs in the Properties view. See Reuters RMDS Subscribing Input Adapter.

New Feature in Reuters SFC Adapter

The Reuters SFC external adapter now supports an optional MessageType field in both the fat-tuple and meta-tuple (thin tuple) handlers. See Reuters SFC External Adapter.

Wombat Adapter Supports List Data Type

The Wombat adapter was updated to add support for the list data type, which was added in release 6.3.0.

CSV File Writer Adapter Supports File Compression

Release 6.3.0 added support for file compression to four adapters, as described in the 6.3.0 Adapter Changes section. Release 6.3.1 adds file compression support to a fifth adapter, the CSV File Writer adapter. This adapter gains a new Compress data checkbox in its Adapter Properties tab in the Properties view. Check this checkbox to specify that the output file is to be stored in gzip format with the .gz file extension. See CSV File Writer Output Adapter.

Feed Simulation Editor Dialogs Remember Size

When using the Feed Simulation Editor, if you resize the Data File Options dialog or the JDBC Data Source Options dialog, Studio now saves and restores the new size when you next open those dialogs.

New Option for the sbbundle Command

The sbbundle command now supports the -i option, which you can use to specify a comma-separated list of path names to ignore when generating a StreamBase bundle file. This is especially useful when working on a version-controlled working directory, to exclude the version control system's metadata files or directories from the bundle. For example, sbbundle -i .svn ...

New Operator.size() Method

The Operator class in the StreamBase Client API was enhanced with the size() method, which returns the current size of the operator. The value of size() will be displayed in sbmonitor's Size column. In your custom operators, you can override this method to display the size of an important data structure, such as the size of a queue. Returns 0 by default.

Documentation Updates

The page for the New Embedded Adapter Wizard was rewritten, and now describes the relationship between adapter properties and the GUI controls generated for each property. See Using the StreamBase Embedded Adapter Wizard.

The page for the Wombat MAMA Input adapter was updated with a section describing how to dynamically subscribe to symbols and how to react to timeouts. See Wombat MAMA Input Adapter.

Fixes

StreamBase 6.3.1 also fixed several product limitations, as described in the Resolved Limitations section of the Release Notes.

What Was New in StreamBase 6.3.0

New and Updated Features

 Platform Changes 

Java 6 Now Required

As of release 6.3, both StreamBase Server and StreamBase Studio must be run with a Java 6 JDK. StreamBase has shipped with an embedded Java 6 JDK for all supported platforms since release 6.0. In releases 6.0 through 6.2, you could override the embedded JDK with a supported Java 5 version. However, as of release 6.3, neither StreamBase Server nor StreamBase Studio starts if you try to use a Java 5 JDK.

The StreamBase Client API still supports using Java 5 to develop StreamBase extensions (custom operators, adapters, client applications, and monitor applications). This is to support using custom StreamBase code that integrates with third-party libraries that require Java 5. See Using Java 5 for Custom Extensions for instructions on setting your Java extension projects in Studio to use Java 5. If you are starting a new project or have no third-party dependencies, StreamBase Systems recommends using a supported Java 6 JDK to develop your client code.

New Platform Supported

StreamBase Server and Studio now support 64-bit Windows Server 2008.

New Installation Documentation for Linux and Solaris Platforms

The documentation pages for Installing on Linux and Installing on Solaris were reorganized and rewritten to describe the new shell script wrapper installers for those platforms.

 New List Data Type 

List Data Type Added

Starting with release 6.3.0, StreamBase gains the list data type. A list is an ordered collection of values of a particular data type. The number of elements in a list is determined at application run-time. See list Data Type for an overview.

List-Related Functions Added to Expression Language

To support the list data type, the following new functions were added to the StreamBase expression language:

Studio Enhancements to Support Lists

StreamBase Studio was enhanced to display data of type list in all contexts in which schemas are displayed, including the Application Output view, the Streams tab of the Properties view, the Debugger Variables view, in the Feed Simulation editor, and elsewhere. The Edit Schema tab in the Properties view for various components fully supports adding list data.

You can now use the Manual Input view to send data to a stream that contains lists, using either the default list view, like the following example:

or using list array notation with comma-separated values:

See below for more Manual Input view enhancements in this release, and see Manual Input of Data for details.

New Iterate Operator for EventFlow Applications

  In Studio, the Operators drawer of the Palette view includes the new Iterate operator. Use the Iterate operator to specify a field of type list in an incoming stream, for which the operator will output one tuple for each element in that list. Since list fields can contain a varying number of elements for each tuple, this operator effectively resolves each incoming tuple into multiple outgoing tuples, each of which has the same schema as the incoming tuple, but with one new field prepended by the Iterate operator. The prepended field has the same data type as the list element type of the specified list field in the incoming tuple. The added field is populated with each element of the specified incoming list, in list order, one per outgoing tuple. For more on the Iterate operator, see Using the Iterate Operator.

New FOREACH Clause for SELECT in StreamSQL Applications

In StreamSQL applications, use the new FOREACH clause of the SELECT statement to perform the same task as the Iterate operator, described above. See SELECT Statement.

New Custom Function Resolvers for List and Tuple Data Types

Your custom functions can return list and tuple data types, and can use arguments of list and tuple types, by writing a custom function resolver. When you generate code for a new custom function using Studio's New StreamBase Java Function dialog, the generated Java code includes stubs for custom function resolver classes. Custom C++ functions support list and tuple argument and return types by means of extensions to the XML syntax of the args and returns elements of the custom-functions section of the server configuration file. Both Java and C++ features are explained in Custom Functions with Complex Data Types.

 Developer Productivity Enhancements 

String Field Lengths Removed

The StreamBase string data type no longer has a fixed size, and no longer requires a length specification. Each string itself, of course, still has a specific length at runtime. However, string fields no longer need to be specified with a fixed character size. String length specifications in existing expressions are still accepted for backward compatibility, but are ignored. See also Consequences of String Length Removal in the Behavior Changes section below.

Auto-Completion When Editing Expression Fields

In the Properties view, when editing a field that accepts an expression, you can now type Ctrl+Space to initiate expression auto-completion. This feature is similar to the existing auto-completion in the StreamSQL editor. If the field is empty when you type Ctrl+Space, the auto-completion list shows the names of stream fields you can enter, as well as a list of all functions and operators in the expression language. If you type a few letters, then type Ctrl+Space, auto-completion shows you the expression language functions that match those letters.

See Expression Auto-Completion and Content Assistance for more on auto-completion.

Properties View Function Assistance Overhauled

The Functions and Expression QuickRef tabs of the Properties view's Expressions pane were thoroughly reworked to provide useful function assistance for the auto-completion feature. The syntax for each function was compared to its source code. Errors in function syntax were corrected and descriptions were clarified. Syntax listings now show brackets around optional arguments, and spaces between arguments. The Show in Help links for each function now directly opens the Help section for that function.

Expression Language Documentation Renovated

The documentation for the expression language and its functions was thoroughly revised for this release. The Expression Language page was split into two, one for StreamBase Expression Language Features, the other for the functions themselves, StreamBase Expression Language Functions. All functions now show syntax and return types, and many functions have new, tested examples. The descriptions for all timestamp-related functions were rewritten and updated, with tested examples provided. Two functions added in previous releases are now documented: length() and regexmatch_ignorecase().

The StreamBase Data Types page was expanded, with new descriptions for all data types, and corrections for the timestamp Data Type. The StreamBase Expression Language Features page includes a new section, Evaluating Expressions with sbd --eval with examples showing how to test your expressions at the command prompt before using them in an application.

New Schema Compare Feature in Studio

Select two arcs or two streams in an EventFlow canvas or in the Saved Schemas view by holding down the Ctrl key as you select. Then right-click and select Compare Schemas from the context menu to display the Compare Schemas dialog. See Compare Schemas and Comparing Saved Schemas.

New Insert Operator Feature

You can now quickly insert a Filter, Map, Split, or Union operator between two existing components with a single operation. Select an arc in an EventFlow, right-click and select Insert Operator from the context menu. This menu has a secondary menu from which you can select the operator you want to insert. In previous releases, the same operation required breaking the arc's connection, adding the desired operator, then reconnecting arcs to both sides of the added operator. See Insert Operator Context Menu.

New Application Test Suites Feature

StreamBase now supports test suites, which are folders that contain two or more StreamBase test configuration files, plus the data input and validation comparison resources needed for those tests. You can run all tests in a test suite in a single step, either from StreamBase Studio, or from the command prompt by means of the sbtest utility. See Creating and Running Test Suites.

Samples Updated

Many of the samples shipped with StreamBase were updated to remove string length specifications and to use a Sequence operator instead of a Query table to add sequence numbers. The EventFlow application for some samples was reorganized with groups and annotated with notes.

 Studio New Features 

Manual Input View Enhancements

The Manual Input view was enhanced with several new features:

Focus Selector View Merged with Outline View

In previous releases, StreamBase Studio included the Focus Selector view as a tab behind the Package Explorer view. In this release, the functionality of the Focus Selector view was moved to the Outline View. Use the Graphical Mode button to switch between tree and graphical views in the Outline view. As before, you can select a portion of an EventFlow diagram in the graphical view to quickly navigate around a large EventFlow application.

If you open a workspace created with a previous release, you may see an error regarding the Focus Selector view. You can safely ignore this error and continue working.

Outline View Shows Groups

For EventFlow applications, the Outline view now includes a category for groups. By default, this category shows only if the currently active EventFlow Editor actually has one or more groups. (As before, you can set a Studio preference to show all categories in the Outline View, even when empty.)

Feed Simulation Editor New Feature

The Feed Simulation editor has a new checkbox, Prefill and loop on Tuple buffer, in the Processing Options section. When enabled, this option specifies that the feed simulation is to run in a loop, starting over and resending the first tuple in the buffer after it reaches the last tuple in the buffer. Use this feature to continuously replay a known, repeatable data set, or to generate a longer data set from a known one. See Using the Prefill and Loop on Tuple Buffer Feature for more information.

Feed Simulation from JDBC Data Source Supports Vhayu Velocity

In a previous release, the Feed Simulation mechanism gained the ability to read from a table in a JDBC database to obtain tuples for feeding into an application under test. Release 6.3 adds the ability to specify a Vhayu Velocity database as one of the available feed simulation JDBC data sources. You must obtain the Velocity JDBC driver from Vhayu. (StreamBase supports this driver only as a feed simulation data source, and not for use with the JDBC Table data construct.)

Since the Reuters Tick Capture Engine is based on Vhayu Velocity, this feature also allows you to read from an RTCE database to obtain tuples for feed simulations.

Unit Test Recording Can Exclude Inactive Streams

When recording application input in a Unit Test recording, StreamBase Studio now offers an option to record only active streams, rather than all streams in the application. The option is enabled by default. (This feature refers to Unit Test recording, as described in Creating and Running StreamBase Tests, not to the Recordings view feature of Studio.)

New Palette View Icons for Global Adapters

In StreamBase Studio, the Palette view now shows new icons for most adapters in the Global Adapters & Operators drawer.

 Server New Features 

Inner Module Stream Dequeuing and Enqueuing

In previous releases, streams in inner modules were not available for dequeuing or enqueuing with the sbc command (except when running an application in debug mode). However, starting with release 6.3, you can designate any of a module's input or output streams to be available for dequeuing or enqueuing, no matter how deeply that module is nested in a complex application. In EventFlow applications, mark streams with the new Always expose Stream checkbox on the General tab of the stream's Properties view. In StreamSQL applications, mark streams with the new PUBLIC modifier for CREATE STREAM, like this example: create public output stream Outstream; Public streams are not supported in recordings of StreamBase applications. See Defining Input Streams, Defining Output Streams, CREATE INPUT STREAM Statement, and CREATE OUTPUT STREAM Statement.

Table Delta Streams

This release adds a new stream type for a particular use case, table delta streams. A table delta stream is associated with a Query Table. Tuples are emitted on the delta stream for every insert, delete, or update event that occurs on the associated Query Table. Table delta streams are useful in any design pattern that requires change notification. For example, you can use table delta streams in a trading application where there is a requirement to listen for changes to the consolidated order books. Table delta streams are also useful in high availability design patterns where you want to maintain a replication of a Query Table based on a log of changes to the table. You can see table delta streams in action in the new table replication sample.

New Predicate Dimension for Aggregate Operator

When using the Aggregate operator, you specify aggregate policies using one or more dimensions. Previous releases offered a choice among tuple-based, time-based, or field-based dimensions. Release 6.3 adds a fourth dimension type, predicate dimensions. Use a predicate dimension to open, emit from, or close aggregate windows based on predicate expressions that you define. This feature is described in Using the Aggregate Operator and in Aggregate Operator: Predicate-Based Dimension Options. There is a sample for the feature in the operator sample group, described here.

Streams Information Shown in sbmonitor

When using the sbmonitor command to view statistics about a running StreamBase application, you can press L to toggle between views of thread and queue information in the lower half of the display. As of release 6.3, pressing L also toggles to a third view showing stream information. The new view shows the name of each output and input stream in the running application, including system container streams, and shows a running count of the total tuples emitted from each stream, and the number of tuples emitted during the most recently monitored time period. See Streams View.

New Query Table Replication Sample

This release adds a new sample demonstrating a high availability design pattern. The new sample, table-repl, shows how to replicate a StreamBase Query Table on servers in a high availability cluster. The schemas in the sample table are order schemas typically used in a trading application. See Query Table Replication Sample.

HA Sample Updated to Demonstrate Symmetrical Deployment

The high availability sample in sample/ha was modified to demonstrate how to run the same application on primary and secondary servers using the exact same coordinating application, ha.sbapp. In previous releases, this sample was implemented with slightly different coordinating applications for the two servers, haprimary.sbapp and hasecondary.sbapp. See High Availability Sample.

New sbd --suspend Option

You can use sbd --suspend to start StreamBase Server with all applications in all containers suspended. You can override the suspension for individual applications by specifying the suspend="false" attribute for the application element in the server configuration file.

sbc describe Command Extended

When using sbc describe on Query operators, the output now includes the query plan for that operator.

New Configuration File Parameter for JDBC Data Sources

This release adds a new StreamBase Server configuration file parameter for use in configuring JDBC data sources. The new jdbc-dont-reconnect-regexp parameter is similar to the existing jdbc-reconnect-regexp, but is used to specify the database error messages for which you do NOT want to retry communicating with the database server. The new parameter is described in the <data-source> section of the configuration file documentation page.

 Frameworks Support 

Support for Smart Order Routing Framework

The StreamBase Smart Order Routing Framework, introduced for releases 6.1 and 6.2, is fully supported on release 6.3. Contact StreamBase Systems for more information.

 Adapter Changes 

EBS Adapter

The EBS adapter, introduced in release 6.2.3, allows StreamBase applications to connect to the EBS/ICAP foreign exchange venue and exchange FIX messages with it. The EBS Adapter is described in EBS Adapter.

FIX Adapter Gains Support for Lists

The FIX adapter, and the Currenex and EBS adapters based on it, were updated to take advantage of the new list data type.

CSV and Regex File Reader Adapters Support File Compression

The CSV File Reader adapter and the Regular Expression File Reader adapter can both now read files compressed in the zip or gzip formats. Both adapters require the target file to have the extension .zip or .gz, and both adapters expect to find exactly one text file inside each compressed file. This feature allows these adapters to read market data files provided by a market data vendor in compressed format, without needing to uncompress the files in advance.

Binary File Writer and Reader Adapters Support File Compression

The Binary File Writer adapter has a new checkbox in its Adapter Properties tab in the Properties view. Check the Compress data checkbox to specify that the output file is stored in the gzip format with .gz file extension. The Binary File Reader adapter now automatically reads gzipped files created with the Binary File Writer adapter.

 Behavior Changes 

Change in StreamBase Server's Appearance in Process Lists

StreamBase Server's appearance has changed in process lists such as the Windows Task Manager or the output of ps on UNIX. In previous releases, a running StreamBase Server instance appeared as sbd or sbd.exe in lists of running processes.

Starting with release 6.3, when running with the bundled JDK, look for sbd-java in such lists on UNIX. On Windows, look for two processes in the Task Manager, one named sbd.exe, the other sbd-java.exe. If you need to close a hung server process on Windows, kill the sbd-java.exe process, which will close the sbd.exe process.

If you are running the server with an external JDK, the server does not appear as sbd-java. In this case on UNIX, you can identify the process running the server by searching for sbserver.jar in the process list.

Consequences of String Length Removal

As a consequence of the removal of string lengths:

  • The Size column was removed from all Edit Schema tabs throughout StreamBase Studio.

  • In the expression language, strlen() still returns the length of its argument, but strresize() now performs no action. You can still use strresizetrunc() to truncate strings.

  • You might see runtime JDBC errors from the Query operator or JDBC adapter. Some static checking of JDBC table sizes is no longer possible, which can lead to database-specific errors, possibly including data truncation, if a StreamBase application attempts to insert into a JDBC table string values that are too wide for the JDBC table's schema.

  • When configured to generate random string data, a feed simulation defaults to sending strings of length 4.

Command Line Debugger Removed

As of release 6.3, the command line debugger, sbdb, was removed from StreamBase installation kits. The sbdb debugger has been deprecated since release 6.0, when Studio's visual debugger was introduced. The override system property, streambase.codegen.support-legacy-debugger, is no longer recognized or supported.

The removal of sbdb changes the meaning of the SBDeveloper role in the StreamBase authentication system. In previous releases, the SBUser role was authorized to run sbc, while the SBDeveloper role was authorized to run both sbc and sbdb. As of release 6.3, the SBDeveloper role still exists, but no longer allows any more privileges than the SBUser role. See Enabling StreamBase Server Authentication for more on the authentication system.

New Timeout Default for Unit Tests

The default dequeue timeout in the StreamBase Test Editor was changed from 0 to 20 seconds. This does not change existing test configuration files, only newly created test files.

Studio: Ctrl+Space Shortcut Redeployed

In previous releases of StreamBase Studio, in the EventFlow Editor, the Ctrl+Space keyboard shortcut was defined as an alias for the DiagramCenter Selection menu option. Starting with release 6.3.0, the Ctrl+Space shortcut was redeployed for use as the Eclipse-standard command to initiate command auto-completion, described above. You can still run Center Selection from the Diagram menu, or from the right-click context menu for a selected component in the EventFlow Editor.

Studio No Longer Autodetects 3.7 Workspace

In releases 5.0 through 6.2, StreamBase Studio would detect an attempt to open and use a workspace created with release 3.7 or earlier. Studio 6.3 no longer attempts to detect and convert workspaces from Studio 3.7 or earlier, and attempting to open such a workspace now results in an Undefined error. You can still use FileImportStreamBaseProjects from StreamBase Studio 3.x to manually import and convert older projects.

Using 3.7 Clients With 6.3 Proxy Server

To use StreamBase 3.7 clients with StreamBase Server and the proxy server from release 6.3 or later, you must set the environment variable STREAMBASE_PACKING_PERCENT to zero on the hosts (and user environments) running both the proxy server and the client.

 API Changes 

StreamBase 6.3.0 included a number of modifications to the StreamBase Client libraries. For details on these changes, see API Changes in 6.3.

Fixes

StreamBase 6.3.0 also fixed several product limitations, as described in the Resolved Limitations section of the Release Notes.