Contents
- New in StreamBase 6.5.4
- What Was New in StreamBase 6.5.3
- What Was New in StreamBase 6.5.2
- What Was New in StreamBase 6.5.1
- What Was New in StreamBase 6.5.0
- What Was New in StreamBase 6.4.12
- What Was New in StreamBase 6.4.11
- What Was New in StreamBase 6.4.10
- What Was New in StreamBase 6.4.9
- What Was New in StreamBase 6.4.8
- What Was New in StreamBase 6.4.7
- What Was New in StreamBase 6.4.6
- What Was New in StreamBase 6.4.5
- What Was New in StreamBase 6.4.4
- What Was New in StreamBase 6.4.3
- What Was New in StreamBase 6.4.2
- What Was New in StreamBase 6.4.1
- What Was New in StreamBase 6.4.0
- What Was New in StreamBase 6.3
- What Was New in StreamBase 6.2
- What Was New in StreamBase 6.1
- What Was New in StreamBase 6.0
- What Was New in StreamBase 5.1
Date: 1 Mar 2010
This topic summarizes the history of significant changes in StreamBase releases. For current and resolved limitations see the StreamBase Release Notes.
StreamBase 6.5.4 fixes several product limitations, as described in the Resolved Limitations section of the Release Notes.
StreamBase 6.5.4 inherits the updates and new features added to maintenance releases of the 6.4 release series, through and including release 6.4.12.
StreamBase 6.5.4 adds the following updates and new features:
- Windows 7 Supported
-
Both 32-bit and 64-bit Windows 7 are now supported platforms for running StreamBase Studio and StreamBase Server on x86_32 and x86_64 hardware.
- Bundled JDK Version Updated
-
The version of the Sun JDK installed for private use by StreamBase is now 1.6.0_18. 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.
- New Gain GTX Adapter
-
The GAIN GTX adapter allows a StreamBase application to receive Foreign Exchange market data from, place orders with, and receive trading-related events from a GAIN GTX ECN server. The GAIN GTX adapter is a single, bidirectional adapter that can both send and receive GTX messages. To facilitate its use in EventFlow diagrams, the adapter is represented as an input adapter and an output adapter, with separate icons in the StreamBase Studio Palette view. These icons must be used as a pair that shares a single GTX connection. The new adapter is described in GAIN GTX Adapter, and has a sample, described in GAIN GTX Adapters Sample.
- New FTEN SX2 Adapter
-
The StreamBase FTEN SX2 Adapter allows a StreamBase application to listen to SX2 feeds. An SX2 feed is a multicast UDP channel that may have one or more message types, such as Top of Book, Full book, or Trade. The adapter can be configured to have up to ten basic outputs corresponding to message types. The new adapter is described in FTEN SX2 Market Data Feed Adapter, and has a sample, described in FTEN SX2 Market Data Feed Adapter Sample.
- Microsoft Excel Adapter Updated
-
The Microsoft Excel External adapter received several updates:
-
The Excel adapter now supports the StreamBase list and tuple data types.
-
The Excel publish adapter now uses a background thread to detect and report connection outages to StreamBase Server and reconnect as necessary.
-
Error message dialogs from the Excel publish adapter now have improved wording that points more directly to the source of the error.
-
The Excel adapter's
RTDPubobject has a newClearReadBuffermethod. Calling this method forces the adapter to discard its buffered tuples for all active subscriptions, request a refresh from Excel, and return an empty value (VT_NULL, which shows up as#N/Ain the spreadsheet) for every subscribed topic on the subsequent refresh.
The adapter's documentation page was updated to reflect these changes. The adapter's publish sample now illustrates the new
ClearReadBuffermethod. -
- CSV File Reader Adapter Updated
-
The CSV File Reader adapter now has a new adapter property, Map Control Port to Event Port. Enable this option to pass all information received on the control input port to the event output port. When enabled, this property adds a tuple field to the tuple received by the event output stream. The additional field contains the entire tuple of the control input stream passed to the adapter. See CSV File Reader Input Adapter.
- Wombat Adapter Updated
-
The Wombat MAMA Input adapter was updated with new handling for recap timeouts from the Wombat server: the adapter now logs these timeouts, then ignores them and continues processing.
- Feed Simulation Data File Options Updated
-
The Data File option of the Feed Simulation Editor now recognizes the data files with file name extension
.bin.gz. Files with that extension are presumed to have been generated with the StreamBase Binary File Writer adapter with that adapter's compression option enabled. See Generation Method: Data File for the list of file name extensions recognized by the Feed Simulation mechanism.The Data File Options dialog was also updated to clarify error messages when a specified timestamp column does not match the Timestamp format field. Error messages now show the column number (or column name for a data file with headers) of the data file column with the offending timestamp. This helps you pinpoint the source of the error in large data files with more than one column of timestamp data.
- Start Menu Items Updated
-
On Windows installations, the entries placed in the Start menu by the StreamBase installer now have release numbers for the StreamBase Command Prompt and for links to documentation. This change helps distinguish StreamBase versions on computers that have more than one StreamBase release installed, when searching with the Start menu's Search field on Windows Vista or Windows 7.
- Documentation Updates
-
The StreamBase documentation for release 6.5.4 includes the following updates, independent of the changes above:
StreamBase 6.5.3 fixed several product limitations, as described in the Resolved Limitations section of the Release Notes.
StreamBase 6.5.3 inherited the updates and new features added to maintenance releases of the 6.4 release series, through and including release 6.4.10, including the nanotime() expression language function.
StreamBase 6.5.3 added the following updates and new features:
- New StreamBase Component Exchange
-
Starting with this release, StreamBase Systems hosts the StreamBase Component Exchange, which is an online repository of StreamBase applications, libraries, and utilities, created by StreamBase users and members of the StreamBase team, made freely available to all users of StreamBase. You can download components from the Component Exchange in two ways:
-
Directly from within StreamBase Studio 6.5.3 or later.
-
From http://www.streambase.com/components/ for use with StreamBase 6.4 or later.
Both methods are described on StreamBase Component Exchange.
-
- Bundled JDK Version Updated
-
The version of the Sun JDK installed for private use by StreamBase is now 1.6.0_17. 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.
- Studio: New Insert Adapter Dialogs
-
In StreamBase Studio, when the EventFlow Editor is active, Studio now has a new format for the dialogs invoked from → (or the A I keyboard shortcut) and from → (or the A O keyboard shortcut). These resizable dialogs list both Global Adapters and Project Adapters (if any exist in the current module search path). You can type a search string in the filter field to narrow the list of adapters to those whose name matches your search string. See EventFlow Keyboard Shortcuts for examples.
- New Timestamp Builder for Feed Simulations
-
When using a CSV or data file as input for a feed simulation, it might happen that the column containing date information is in one column while the time information is in another column. This release introduces the Timestamp Builder feature, which allows you to designate one or more CSV or data file columns as containing portions of a single timestamp. The new feature is described in Using the Timestamp Builder Feature.
- Feed Simulations Can Read Binary File Writer Files
-
The feed simulation system can now read binary files generated with the StreamBase Binary File Writer adapter. Such files must have the
.binextension, including files generated with the Binary File Writer's compression option. You must generate the binary files with the same release of StreamBase currently running the feed simulation. - New FXall Relationship Trading Adapters
-
New in this release are the FXall Relationship Trading Adapters, a matched pair of input and output adapters. These adapters allow a StreamBase application to create trades or deals that can then be executed in the FXall Request for Quote trading environment. The new adapters are described in FXall Relationship Trading Adapter and have a sample, described in FXall Relationship Trading Adapter Sample. The new adapter pair is separate from the FXall FIX adapter, which remains in the product.
- Update for Wall Street Systems Adapters
-
The Wall Street Systems input and output adapters both gained new User ID and Password properties in their Properties views, which allows them to be used at sites that require authentication when connecting with the Wall Street Systems server. See Wall Street Systems Input Adapter and Wall Street Systems Output Adapter for details.
- Update for FIX Adapter with Appia FIX Engine
-
The configuration file for the Appia FIX engine now includes a
checkremote-idsetting. Use this setting to specify that outgoing messages are to be returned to the application when the connection id down, rather than stored and forwarded, the default behavior. See FIX Adapter. - New Automatic HA Feature
-
Automatic HA was introduced in release 6.5.0. As of release 6.5.3, automatic leadership control was extended to allow you to specify your own HA container name instead of using the automatically created container named
HA. Using your own HA container allows you to specify container connections and other relationships, while still taking advantage of automatic leadership control. The new feature is implemented as the newha-containerparameter for thehigh-availabilityelement in the server configuration file. See high-availability and Automatic HA. - New Functions in the Expression Language
-
The StreamBase expression language gained the following new functions:
StreamBase 6.5.2 fixed several product limitations, as described in the Resolved Limitations section of the Release Notes.
StreamBase 6.5.2 inherited the updates and new features added to maintenance releases of the 6.4 release series, through and including release 6.4.8.
StreamBase 6.5.2 added the following updates and new features:
- 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.
- New Functions in the Expression Language
-
The StreamBase expression language gains the following new functions:
- Documentation Updates
-
The description of the Query operator's Operation Settings tab was revised and expanded.
StreamBase 6.5.1 fixed several product limitations, as described in the Resolved Limitations section of the Release Notes.
StreamBase 6.5.1 inherited the updates and new features added to maintenance releases of the 6.4 release series, through and including release 6.4.8. This included the following new adapters, new in release 6.4.8:
StreamBase 6.5.1 added 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_16. 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.
- Studio Warning Message On Opening EventFlow with Missing Imports
-
Since release 6.4.0, EventFlow application files (such as
myApp.sbapp) can import definitions of constants and named schemas from a separate EventFlow file (such asdefinitions.sbapp). As of release 6.5.1, when Studio attempts to open a file with imports, but the imported file cannot be located, Studio displays a warning message that the situation must be resolved. Go to the Definitions tab of the newly opened application file to identify the missing module imports file. - Studio Now Reopens to the Last Open Tab
-
StreamBase Studio now preserves the last-opened tab of each EventFlow application file (Editor tab, Definitions tab, and so on) and reopens each file to the same tab.
- Update for Lime Citrius Quote Adapter
-
The Lime Citrius API used by the StreamBase Lime Citrius Quote Input adapter was upgraded from version 1.4 to version 1.6.1.
- StreamBase .NET Client API Build Changes
-
In previous releases, the StreamBase .NET client API could fail to load into certain AppDomains, instead showing load errors that included the phrase
BadImageFormatExceptionor "The module was expected to contain an assembly manifest." This issue was resolved by building the StreamBase .NET client assembly in a different way. In addition, theStreamBaseMonitorAPI is now delivered as a separate, platform-independent assembly. There are noStreamBaseClientorStreamBaseMonitorAPI changes as a result of this build change..NET client applications that do not use the
StreamBaseMonitorAPI do not need to make any changes. .NET client applications that do use theStreamBaseMonitorAPI now need to add a reference to the new assembly namedsbmonitor. - Update for Embedded TIBCO Subscribing Input Adapter
-
The TIBCO Subscribing Input adapter was updated with a new property, Enable Dynamic Subscriptions Port. When enabled, this property gives the adapter another input port to which you send control tuples that cause the adapter to dynamically subscribe to or unsubscribe from subjects.
- Expanded Type Conversions for Embedded TIBCO Adapters
-
The TIBCO Rendezvous Subscribing Input and Publishing Output adapters now have a greatly expanded set of available conversions between StreamBase and Tibrv data types. These changes include:
-
The adapters support conversions between StreamBase lists and Tibrv messages in which list elements appear multiple times with the same name in a Tibrv message.
-
To publish such messages, include the StreamBase list field name with a non-array Tibrv type in the type override file. For example,
MyListOfIntField,I32. -
The subscribing adapter automatically now assembles StreamBase lists from Tibrv messages that contains repeated fields with the same name.
-
-
The publishing adapter's Enable Publishing Lists Of Tuples property was deprecated, and lists of tuples are now published using the Tibrv MSGARRAY type. Lists of tuples can be published as multiple fields by including the StreamBase list field name with the MSG type in the override file. For example,
MyListOfTuple,MSG. -
A new property, Generate Unique Tibrv Field Names, was added to the publishing adapter. When enabled and publishing multiple Tibrv fields per StreamBase list field, this property causes the adapter to generate unique Tibrv field names
,listfieldname_0, and so on.listfieldname_1
-
StreamBase 6.5.0 fixed several product limitations, as described in the Resolved Limitations section of the Release Notes.
StreamBase 6.5.0 inherited the new adapters and new features added to previous maintenance releases of the 6.3 and 6.4 release series, through releases 6.3.9 and 6.4.6. This includes the following new features:
-
Embedded JMS Reader and JMS Writer adapters are now packaged in the base kit.
-
New Field Serializer Global Operator. See Using the Field Serializer Operator.
-
New adapters: EBS Live XML Input Adapter, FXall FIX Adapter, LavaFX FIX Adapter, Hotspot Itch Input Adapter, and Twitter Adapter.
-
New tail option for the CSV File Reader adapter. See CSV File Reader Input Adapter.
-
New recover gaps option for the Wombat MAMA Input adapter. See Wombat MAMA Input Adapter.
-
Various updates for the embedded TIBCO adapters. See TIBCO Rendezvous Subscribing Input Adapter and TIBCO Rendezvous Publishing Output Adapter.
-
New expression language functions: timezoneoffset(), milliseconds(), and get_millisecond().
StreamBase 6.5.0 added the following updates and new features:
- On-Disk Query Table Format Changed
-
The on disk format for Query Tables has been updated for release 6.5.0. Before migrating your application to 6.5, move all files in your Query Table data directory to a backup location. Then proceed as follows, depending on how you use Query Tables:
-
If your application uses disk-based Query Tables for transient storage, such as for counters or sequence numbers, then move all files out of your Query Table data directory (or specify a new, empty data directory) before migrating your application to this release. StreamBase 6.5 will recreate your Query Tables in the current format.
-
If your application loads a Query Table from a file on startup, perhaps for use as a lookup table, then your table's data is already preserved. Move all files out of your Query Table data directory or specify a new, empty data directory. StreamBase 6.5 will create new format Query Tables, which will be reloaded with data by your application.
-
If your application uses persistent data stored in a disk-based Query Table that was created with StreamBase 6.4 or earlier, then you must extract the persistent data from your current Query Table to a CSV file and reload the data in StreamBase 6.5. Use steps like the following:
-
Open your application in your current StreamBase release.
-
Add an Input Stream, Query operator, and CSV File Writer adapter. Connect the Query operator to the Query Table of interest.
-
Use the Query operator to send a Read operation that reads all rows from the table, and outputs all rows unmodified.
-
Configure the CSV File Writer adapter to accept the stream from the Query operator and write all rows to disk in CSV format.
-
Start StreamBase 6.5 using a new, empty data directory. Load a copy of your application, and let it recreate your Query Table.
-
In StreamBase 6.5, use a CSV File Reader adapter and another Query operator to reload the data from the CSV file into the new Query Table.
Preserve an installation of your current StreamBase release to read the old Query Table data until you are confident the data has been migrated successfully to release 6.5. Contact StreamBase Support for assistance in implementing this procedure.
-
-
- Studio's New Handling of .sblayout Files
-
StreamBase Studio now respects and preserves the layout status it detects for each individual EventFlow application or module. That is:
-
If Studio detects an
.sbappfile with no matching.sblayoutfile, then it draws the canvas based on the layout information in the.sbappfile. On save, Studio stores any changed layout information back to the.sbappfile. -
If Studio detects an
.sbappfile with matching.sblayoutfile, then it uses the layout information in the.sblayoutfile to draw the canvas. On save, Studio stores any changed layout information back to the.sblayoutfile.
As before, you can create separate layout files for one or more application files using → → . The Studio Preference setting to manage layout status now affects only newly created application files going forward. For details, see the rewritten EventFlow Layout Options page.
-
- Studio's Handling of Native Library Files at Project Root
-
As of release 6.5.0, Studio no longer gives any special treatment to DLL or
.sofiles stored at the root of a Studio workspace project. In previous releases, such files were presumed to be native library files that implement a custom C++ plugin. The removal of special treatment based on folder location means you must now add an explicitpluginorlibraryelement in the server configuration file for each DLL or.sofile that you explicitly want to load as part of your StreamBase application. - Server Now Directly Supports Older Clients Without a Proxy
-
In previous releases, StreamBase Server supported only the protocol specific to its own StreamBase release, and StreamBase clients built with previous releases had to connect to newer servers by means of the StreamBase Proxy Server, sbproxy. This limitation was lifted, and StreamBase Server now directly supports the protocols of previous StreamBase releases back through 3.7.
You no longer need to run sbproxy for the purpose of protocol matching, but sbproxy is still required to support SSL or LDAP secure connections to StreamBase Server. Clients can still connect to the server through sbproxy, which now passes protocol handling through to the server and displays an informational warning on the console.
- Precompiled Archive Files Can Now Be Included in Bundles
-
You can now include a precompiled application archive (
.sbar) version of the primary application file when creating a StreamBase bundle for deployment, if the archive file is present in the project folder. This works both when creating a bundle in Studio and at the command prompt, where you can now use the sbbundle -c command. - Server Can Run Bundle That Contains a Precompiled Archive
-
StreamBase Server was updated to start an application bundle using an
.sbarfile if it finds one in the bundle, and if the.sbarand server are from the same release. If the releases do not match, the server skips the.sbarfile and starts the top-level EventFlow file in the bundle. - CSV File Reader Adapter Has New Default for Null String
-
In previous releases, the CSV File Reader Adapter had the empty string as the default setting for its NULL string property. Starting with 6.5.0, this adapter has
nullas the default setting for the NULL string property, which aligns the CSV File Reader adapter more closely with the default null string used by the CSV File Writer adapter and with other StreamBase adapters. - External Process Operator
-
In release 6.4.3, the External Process operator gained the ability to specify string instead of blob as the data type of fields added to the output tuple by the operator. As of release 6.5.0, string is the default type for such fields. See Using the External Process Operator.
- New Installer for 64-bit Windows
-
Release 6.5.0 provides a unified installer for supported 64-bit Windows platforms. In previous releases, installing StreamBase on these platforms required running the standard 32-bit installer and then a second installer that overlaid the 64-bit programs and libraries. The installer for 64-bit Windows now performs in one pass all the actions of the former two-stage installation. Installing and using StreamBase on 64-bit Windows is described in Installing and Running StreamBase on 64-Bit Windows.
- EventFlow XML Format Updated
-
As is standard with StreamBase releases, the XML syntax of EventFlow files was updated to support the new features described on this page. When you use Studio 6.5 to open and save a module defined in a previous release, the file's format is automatically updated.
Note
Once an EventFlow module file has been saved in the 6.5 format, it can no longer be opened with previous StreamBase releases. If you are experimenting with release 6.5's new features without yet committing to an upgrade, back up your application files and use copies with 6.5. You can also import your existing Studio projects into a new, blank 6.5 workspace with → → → .
- Studio Now Based on Eclipse 3.5.1
-
StreamBase Studio is now based on, and requires, Eclipse 3.5.1. This allows you to install third-party Eclipse plug-ins that support or require Eclipse 3.5, including plug-ins that add version control to Studio.
- New Welcome Page
-
The Welcome page for StreamBase Studio uses a new layout that explains the available options without requiring the use of a mouse to hover over each button.
- Studio Tabs Are Now Bold to Show Content
-
In the EventFlow Editor in StreamBase Studio, the tabs at the bottom (other than the Editor tab) are now shown in boldface if that tab has any content. The following example shows the Editor tab active, but the bold font tells you at a glance that there is at least one constant, named schema, or table schema defined in the Definitions tab, and there is either a module description or a custom icon specified in the Metadata tab.
- Chronicle Connection Data Construct Removed
-
The icon for the Chronicle Connection data construct was removed from the Data Construct drawer of the Palette view, and the former Chronicle adapters were reconfigured to work as standard StreamBase adapters. No functionality is lost with this change, and the databases formerly supported as Chronicle Connections are still supported, including the native library fast-load features for certain databases. If your StreamBase application accesses or loads a database formerly supported with a Chronicle Connection, that connection is automatically migrated when you open and save the application in release 6.5. If your server configuration file specified
type="chronicle"in adata-sourceelement, it is automatically migrated totype="jdbc".
- New User Interface for Output Settings and Aggregate Functions Tabs
-
StreamBase 6.5.0 introduces a new and clarified way to assemble the fields of the outgoing tuple in Query and Map operators, and to apply aggregate functions in the Aggregate operator. In the new interface, you specify field changes as a group, or one field at a time in separate tables. The separate tables apply to fields from the input stream, fields from the associated Query Table, and fields additional changes determined by expressions. The changes you specify are applied in top-down order, both in the order of tables in the tab, and in the order of field expressions in each table. See Output Settings Tab for a discussion of the new user interface.
- Use Subfields in Output Settings Properties
-
You can now directly specify subfields for output by writing a fully qualified path using standard dot notation. For example, if the incoming schema for a Map operator has a field
NYSEFeedof type tuple, with a subfield namedsymbol, you can useNYSEFeed.symbolin the Field Name column to directly add, replace, remove, or include the field in the output of the Map operator. You can use these fully qualified paths in the Field Name column of any table in the Output Settings tab of Map and Query operators, and in the Aggregate Functions tab of Aggregate operators. - Use Wildcards in Output Settings Properties
-
In the same places you can use subfield path names, you can now use an asterisk wildcard to specify all fields of the incoming stream, or to specify all subfields of a tuple field. In the following example, the output settings for a Map operator specifies adding a new field of type tuple,
OrigStream, to the output of the operator. Each field of the input stream is mapped to the same-named subfield of theOrigStreamfield. When using a wildcard in the Expression column, you must also use an asterisk in the Field Name column.
- Query Operator with Insert Operation Now Takes Expressions
-
In the Output Settings tab for the Query operator in previous releases, for Insert operations, the Expressions option was unavailable. Using the new interface for the Output Settings tab, you can now add, replace, or remove fields based on expressions by using the Additional Expressions table.
- Behavior Change: No Default Prefixes in Query and Aggregate Operators
-
In previous releases, when using the Query operator's Output Settings tab, Studio provided the default prefix
input_for fields from the input stream,_tablefor fields the current table, and, for updates,_old, for fields from the table before the update. When using the Aggregate operator, in the Aggregate Functions tab, Studio provided the default prefixinput_. In release 6.5, Studio now defaults to no prefix. You can still specify a prefix in all the same cases. - Map Operator Accepts the input Qualifier
-
Previous releases required you to use
input1as the qualifier of a field name (such asinput1.), even though the Map operator has only one input. You can now specifyfieldnameinputas the qualifier for fields in a Map operator's input stream.
- Declared Schema for Output Streams
-
The output stream gained the ability to specify a declared schema for outgoing tuples. The default configuration, as in previous releases, is that the schema for these components is inherited from upstream components and is shown read-only in the Properties view. However, you can now instead specify the exact schema you expect outgoing tuples to have, which allows StreamBase to apply typechecking to confirm or report departures from your declared schema.
- Declared Schema for Union Operators
-
The Union operator also gains the ability to specify a declared schema for outgoing tuples. In this case, the Require this schema option supplements the existing options to specify loose and strict typechecking of the schemas of the operator's input ports. As with output streams, specifying a declared schema allows StreamBase to apply typechecking to confirm or report departures from your declared schema.
- New Table Schemas
-
This release introduces the table schema, which is a form of named schema for a set of Query Tables that completely defines the structure of those Query Tables, and ensures that all Query Tables in the set are identically defined. A table schema includes not only the table structure of a Query Table, but its primary and secondary indices as well. You can apply a table schema by name to two or more on-disk or in-memory Query Tables to quickly assign the same structure to those Query Tables, and you can import table schemas from modules in the Module Search Path. Table schemas are described in Using Table Schemas.
- New Drools Operator
-
This release includes the new Drools operator in the Global Operators & Adapters drawer of the Palette view in StreamBase Studio. The Drools operator is a global Java operator that provides a way for StreamBase applications to implement rule-based decision-making in the course of an EventFlow application. This operator embeds version 5 of the Drools Expert rules engine, also known as JBoss Rules. You implement the operator by providing a rules file and a Java Interface file that describes the fields of interest in the operator's incoming tuple. See Using the Drools Operator and Drools Operator Sample.
- New input Qualifier for Dynamic Variables
-
When defining a dynamic variable, your updating expression might need to refer to more than one field in the updating stream to build your expression. Starting with release 6.5.0, you can qualify such field names with
input.instead of repeating the updating stream's name. Thus, for a dynamic variable that updates from the sum of two fields,alphaandbeta, in an updating input stream namedUpdateVariable, you can specify either of the following as your updating expression:UpdateVariable.alpha + UpdateVariable.betainput.alpha + input.beta
- Studio Now Supports Direct Specification of Native Library Path
-
You can now use the standard Eclipse Java Build Path mechanism to specify the location of a native library (DLL or
.sofile) called by Java source files or by a JAR file in a StreamBase project. In previous releases, the only way to specify such locations was with thelibrarychild element of thejava-vmelement of the server configuration file, and that method is still supported. See Java Build Path in the Project Properties page for instructions. - Specify Container Connections in Stream Properties
-
This release provides a new Container Connections field on the Advanced tab of the Properties view for both input and output streams. The field accepts a StreamBase expression that resolves to the qualified name of a stream in another container. There are some restrictions on container start order when using this feature, as described on Container Connections. This feature supplements and does not replace the other methods of establishing container connections, which remain available.
- Application Launch Improvements
-
Application launches from Studio are simplified and no longer require two dialog boxes. Launch failures are now reported using the standard Eclipse mechanism.
-
Studio's
Starting ServerDialog Can Now Be Backgrounded -
Studio now supports setting any launch configuration to run in the background. This places the Starting StreamBase Server dialog sequence in the background so that control of Studio returns immediately after the launch. Large multimodule applications can take a moment to load and initialize, so this setting frees Studio for productive use while waiting for a large application to start. To specify this condition, edit the application's run configuration; in the Common tab, check the Launch in background checkbox and click .
- SB Manager Perspective
-
All the application monitoring and management functions of StreamBase Manager are now available automatically when you run applications in StreamBase Studio. The views that comprise the standalone StreamBase Manager utility are now available in the new SB Manager perspective in Studio. To view StreamBase Manager statistics for the running application, switch to the SB Manager perspective, which is automatically connected to the running server instance. You can go back and forth at will between the SB Manager and SB Test/Debug perspectives as you analyze your running application.
StreamBase Manager can still be run as a separate, standalone utility using its Start menu entry in Windows, or using the sbmanager command from the command prompt in UNIX.
- No Welcome Screen for StreamBase Manager
-
The standalone StreamBase Manager utility no longer opens by default with a Welcome screen. If no connections have been made, Manager now provides reminder messages in each view to help you get started. If you have previously connected to a running server, Manager remembers and shows the URLs of its last connections. Right-click the URL of interest and select Connect from the context menu to reconnect to the same server and port.
- StreamBase Manager Help
-
The Help system booklet for StreamBase Manager and the SB Manager perspective is now available at the same top level as the primary StreamBase documentation in the Eclipse Help viewer.
- New SB Trace Debugger Perspective
-
In release 6.5.0, the SB Trace Debugger perspective replaces the SB Trace Browser perspective. As before, you can use this perspective to review and analyze runtime trace files generated for a running application, as described in Runtime Tracing. New in 6.5.0 is the ability to debug through a trace file, line by line, with automatic highlighting of the current place in the associated EventFlow module.
- New Trace Launch Mode
-
Release 6.5.0 offers a third launch mode for running applications in Studio. In addition to Run and Debug modes, you can now start an application in Trace mode, and you can edit and store Trace mode launch configurations in the same way as Run and Debug mode configurations. When you run an application in Trace mode, the following sequence occurs:
-
Studio runs the application normally, and automatically starts recording a trace file for the main application in the default container.
-
Send tuples to the application manually or with a feed simulation.
-
When you stop the application, Studio automatically switches to the SB Trace Debugger perspective, with the newly-recorded trace file already loaded. You can now use this perspective to follow the progress of a single tuple through your application.
-
- Trace Files Now Stored as UTF-8
-
Trace files generated from a running application are now saved with UTF-8 encoding. This preserves any Unicode characters in tuple fields in the trace file.
- Component Error Message Improvements
-
Messages reporting an error in the configuration or use of a component are shown in the Properties view and in other Studio views. These error messages are now more detailed and provide better reporting of the location of the error. Error messages now report the exact field or table cell with the problem, and provide a hyperlink to take you to that location. Errors in a component in a referenced module now report a path that leads you to the exact inner module that contains the failing operator.
- Better Names for Newly Dropped Java Operators and Adapters
-
In previous releases, when you dragged an adapter or global Java operator icon from the Palette to the canvas, the newly dropped icon's initial name was a generic one, such as
Java1orInputAdapter1. As of release 6.5.0, newly dropped icons receive a name based on the name of the dragged adapter or global operator:CSVFileReader1,ExternalProcess3, and so on. If you program custom operators or adapters, the new default name for dropped targets is based on the name defined withsetShortDisplayName(). - Refactor to Named Schema
-
Select any schema-bearing component in the EventFlow Editor canvas, right-click, and select → from the context menu. This opens the Promote to Named Schema dialog, which allows you to save the schema of the selected component as a named schema, accessible in the Definitions tab for the current module. At the same time, you can ask Studio to locate components in the current module that have a compatible private schema, and to apply the newly named schema to some or all of those components. See Promoting a Private Schema to a Named Schema.
- Open StreamBase Command Prompt Here
-
On Windows platforms only, the context menu for projects in the Package Explorer view now contains the Open StreamBase Command Prompt Here action. Invoke this action to open a StreamBase Command Prompt whose current directory is the selected project's directory in the Studio workspace.
- Extensions for the Quick Connect Keyboard Shortcut
-
The keyboard shortcut X X is used to quickly draw connection arcs between two selected components in the EventFlow canvas. As of 6.5.0, the X X shortcut is extended to work with more than two component selections. You can drop several stream and operator icons on the canvas, select them all, then use X X to draw all the arcs between components in left to right order. If the selection includes a data construct and there is an unequivocal connection to Query operators available, X X also automatically draws the association arcs. See Keyboard Shortcuts for further detail.
- Updates to Expression Cell Autocompletion
-
The autocompletion feature is invoked with Ctrl+Space when editing an expression in a Properties view table cell. Autocompletion now takes into account any currently selected text in the cell when presenting its completion proposals.
- Navigate Component Selection History
-
Studio keeps a history of the selections you make among individual components in the EventFlow canvas. You can use Alt+Left to move backwards in that selection history, and Alt+Right to move forward. These keys go back or forward to the previous or next selected component in the history, even if that selection is in another EventFlow Editor canvas.
You can also navigate your selection history using the yellow left and right arrows in the main Studio toolbar
. Use the drop-down arrows next to these arrow icons to
see your navigation history in list form. Select a location in the list to
navigate directly to that location.
- Create a Canvas Group From a Single Selection
-
In previous releases, the Create Group action did not appear in the EventFlow Editor's context menu unless two or more components were selected. You can now create a group starting with only one icon selected, adding components to the group later.
- Application Output View Module Selector Organized by Module
-
When running or debugging a top-level application that references one or more modules, the Output Stream Selector dialog (invoked from the Application Output view) now organizes the available output streams hierarchically, to help you locate the streams of interest. See Select Multiple Streams.
- EventFlow Visual Debugger Shows In-Memory Query Tables
-
When using StreamBase Studio's Visual Debugger for EventFlow applications, you can now inspect the contents of in-memory Query Tables in the Variables view.
- Simultaneous EventFlow and Java Debugging
-
If your EventFlow application includes custom Java code, you can now switch back and forth between debugging your EventFlow application and debugging your Java code. Use the Toggle debugging mode button
on the right side of the Debug view's toolbar to switch modes.
- Debugger Efficiency Improved
-
The efficiency of the visual debugger was improved to allow debugging of larger applications.
- Performance Improvements in Applications with Wide Schemas
-
Internal changes were made to significantly improve the performance of StreamBase Server when processing an application with 50 to 100 fields per tuple.
- Performance Improvements for Many Connected Dequeue Clients
-
Internal changes were made to significantly improve the performance of StreamBase Server when processing an application with a large number of connected and active dequeue clients. In one test scenario with 80 dequeue clients, the tuples per second processing rate was two to three times faster than with previous releases.
- sbadmin listConnections Shows Protocol Family Number
-
To help administer multiple client versions connecting to StreamBase Server 6.5, the sbadmin listConnections command now reports the protocol family for each connected client. The protocol family is effectively a superset of the StreamBase release number that categorizes StreamBase releases that use the same server connection protocol. For example, the connection protocol did not change between StreamBase releases 6.4 and 6.5, so clients from both versions report 6.5 in the protocol family field in the output of listConnections. The protocol family version generally changes for StreamBase releases that add a new data type.
- sbadmin listConnections Shows Connected Stream Name
-
The sbadmin listConnections command now reports the name of the input stream each client is connected to.
- New Support for Slow-Dequeuing Clients
-
StreamBase 6.5.0 includes new support for design patterns where one or more connected clients consume data at a slower rate than the server produces it. In previous releases, the server automatically disconnected unresponsive clients on the presumption that they were hung or had lost communication. The new support for slow-dequeuing clients is implemented as a new parameter setting,
slow-dequeue-client-wait, for thepage-poolelement of the server configuration file; and as changed behavior for the existingmax-client-pagesparameter. These settings affect all connected clients. See the page-pool section of the StreamBase Server Configuration XML page for details on these settings. - Server Configuration File Changes
-
You can now specify
paramelements as an alias forparameterelements, which are both child elements of themodule-parameterelement.
- New Feature: Automatic HA
-
Automatic HA is a set of time-saving StreamBase configuration settings that let you quickly and automatically implement commonly used aspects of high-availability design patterns. The currently supported automatic HA features are automatic leadership control and automatic table replication. See Automatic HA.
- New HA Samples
-
The
HAandtable-replsamples were reworked to illustrate both automatic HA and manual customization. Both samples now provide a basic version of the sample that uses automatic HA features, and a custom version of the sample that illustrates the same design pattern accomplished with manual configuration settings, which provides more control over options. See High Availability Sample and Query Table Replication Sample.
- JDBC Query Sample Is Now Separate
-
The JDBC Query sample, formerly part of the operators group of samples, is now provided in its own sample directory. This allows the operators sample group to load in Studio without a warning. As before, the JDBC Query sample must be configured with a
data-sourceentry in the sample's server configuration file before it can be used. - New Log4j Sample
-
A new sample is provided in STREAMBASE_HOME/sample/logging-log4j that illustrates how to use the logging back end provided by StreamBase to load and use log4j as the logging front end. The sample also illustrates how to write a simple Java operator that writes log messages to the console, and how to set log4j logging levels in that operator.
- Adapters Removed
-
The following adapters were removed from the StreamBase base kit:
-
The Reuters Subscribing Input Adapter was deprecated in release 5.1; as of release 6.5.0, it is removed from the StreamBase base kit. This adapter's replacement, the Reuters RMDS Subscribing Input Adapter, remains available as the recommended way to connect to your Reuters infrastructure.
-
The Opentick data feed ceased operation in 2008. Accordingly, the StreamBase Opentick adapter was removed from the StreamBase base kit.
-
- New Environment Variable for JDBC Feed Simulations
-
When using a JDBC database as the source of input tuples for a feed simulation, you must make the database vendor's JDBC JAR file available to Studio. Previous releases recommended copying the JAR file to a certain location in the StreamBase installation. Starting with this release, you can also use the new
STUDIO_BOOT_CLASSPATHenvironment variable as an alternative.Independent of either method above, in order to use the command-line sbfeedsim with a JDBC data source, you must place the JDBC JAR file in the standard CLASSPATH. These subjects are discussed in Feed Simulation with a JDBC Data Source.
- New Default Setting for a JDBC Configuration Parameter
-
The default setting of the
jdbc-batch-timeout-msparameter of thedata-sourceelement in the server configuration file was changed to 60000 ms (60 seconds). In previous releases, the default was –1, which specified not flushing a JDBC batch buffer based on a time interval.
For release 6.5.0, the StreamSQL language was updated with the following features:
-
Support for table schemas was added with the CREATE TABLE SCHEMA statement, used as in the following example:
CREATE TABLE SCHEMA NASDAQ_TableSchema ( Symbol string, Name string, Price double, Color string, Description string ) PRIMARY KEY (Symbol) USING HASH SECONDARY KEY (Price,Color) USING BTREE; -
StreamSQL now supports predicate-based aggregate windows. Use syntax as illustrated in the following example:
SELECT firstval(now()) AS StartTime, lastval(now()) AS EndTime, sum(Volume) AS TotalVolume, vwap(Price, Volume) AS VWAP FROM out__Union1_1[PREDICATE OPEN ON out__Union1_1.OpenWindow EMIT ON out__Union1_1.EmitWindow || out__Union1_1.CloseWindow CLOSE ON out__Union1_1.CloseWindow] INTO OutputChunkedTrades; -
IMPLEMENTS was added to the StreamSQL reserved words list, StreamSQL Reserved Words.
- API Changes
-
StreamBase 6.5.0 includes the following changes in the StreamBase client API:
-
When developing custom operators and adapters, you can now use the convenience exception
PropertyTypecheckExceptioninOperator.typecheck()to throw property-related exceptions. This allows Studio to decorate with a red X the exact field or table cell in your operator's Properties view that does not pass typechecking. -
The new
JavaTypePropertyDescriptorclass is used by authors of custom operators and adapters to provide a chooser dialog to the end-user that allows the user to select a Java class or interface name in the current Studio project's Java Build Path. -
The Studio wizards that generate starting code for a new custom Java operator or adapter were updated to generate code that uses Enum property descriptors.
-
In the
Tupleclass, allsetString()methods now have a new variant that takes aCharSequence. No existing methods were changed. -
In the Operator class, the obsolete and deprecated methods
setSessionState()andgetSessionState()were removed. These methods were formerly part of the HA support of releases 5.0 and earlier, and have not been active since release 5.1.
-
- Expression Language Changes
-
The StreamBase expression language was extended with the following new functions:
-
get_conf_param() and its variations: get_boolean_conf_param(), get_int_conf_param(), get_long_conf_param(), and get_double_conf_param().
- Third-Party Library Changes
-
StreamBase release 6.5.0 includes the following changes in third-party libraries:
-
The version of QuickFIX/J bundled to support several FIX-related adapters was updated to 1.4.0.
-
The version of slf4j was upgraded from 1.5.0 to 1.5.8.
-
The version of logback was upgraded from 0.9.9 to 0.9.15.
-
- Documentation Updates Independent of New Features
-
StreamBase release 6.5.0 includes the following documentation updates, corrections, and new pages that were incorporated independent of the new features discussed above:
-
In Studio Help and the independent sbhelp utility, the contents column on the left side now shows only page links, not links to sections within pages. This reduces the clutter of the contents and makes topic pages easier to find.
-
In general, topic pages were reorganized to discuss a single topic and were given shorter, on-topic page titles. This increases the likelihood of a search for a phrase locating the primary page for that subject at the top of search results.
-
The Authoring Guide was reorganized top to bottom, with all topic pages now placed in a category in the contents.
-
The Getting Started Guide was updated to reflect the latest Studio features and recommended best practices, and its screen shots now reflect Studio as of the current release.
-
In the StreamBase Studio Reference, discussion of the EventFlow Editor was separated into its own section, EventFlow Editor Reference.
-
The Query operator's page in the Authoring Guide was split into two:
-
One page discusses the standard Query operator as used with Query Tables and Materialized Windows.
-
One page discusses the Query operator used with JDBC Tables.
-
-
New pages dedicated to topics that were formerly discussed in passing as part of other topics: Module Imports, Project References, Difference Comparisons, Query Table Overview.
-
Thoroughly reworked pages: Container Connections, Using Named Schemas, StreamBase Project Properties, Using Arcs.
-
F1 help and Help button links in Studio dialogs were reworked to eliminate most missing help text.
-
- Properties View Help Button Extended to Global Operators and Adapters
-
In previous releases, when you selected a StreamBase operator, data construct, or stream in the canvas to show its Properties view, clicking the Properties view's circled-? Help button opened the Studio Help system directly onto the documentation page for the selected component. Previous releases offered this Help button feature for any component taken from the Operators, Data Constructs, or Streams drawers of the Palette view.
As of release 6.5.0, this Help button feature is extended to work with StreamBase-supplied adapters and global Java operators found in the Global Operators & Adapters drawer. As before, the selection is tab-specific. That is, for many adapters, the Help page opens directly onto the section of the page that discusses the currently selected tab in the Properties view.
For module references, custom Java operators, or custom Java adapters, clicking the Help button opens a generic Help page appropriate for the component category.
StreamBase 6.4.12 fixed several product limitations, as described in the Resolved Limitations section of the Release Notes.
StreamBase 6.4.12 inherited the new features added to maintenance releases of the 6.3.x release series, through and including release 6.3.10.
StreamBase 6.4.12 added 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_18. 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.
- Updates for Wall Street Systems and IBM WebSphere MQ Adapters
-
The input and output adapters for Wall Street Systems and for IBM WebSphere MQ gained the following new features:
-
New support for bindings mode, which allows either adapter pair to connect directly to a local queue manager, instead of communicating through a network. This support is enabled by the Bindings Mode checkbox in the Properties view of each adapter.
-
New User ID and Password properties in their Properties views, which allows them to be used at sites that require authentication when connecting with their servers.
For details, see Wall Street Systems Input Adapter, Wall Street Systems Output Adapter, IBM WebSphere MQ Input Adapter, and IBM WebSphere MQ Output Adapter.
-
- New Environment Variable Supports Custom Logging
-
The new environment variable
STREAMBASE_USE_CUSTOM_LOGGINGmakes it easier to replace StreamBase's default Java logging system with an alternative logging system. Set this variable to true to automatically callsbclient-no-logging-backend.jarwhereversbclient.jarwould be used. Under these conditions, the JAR files that implement your alternative logging system must be locatable on StreamBase Server's classpath (and StreamBase Studio's classpath), or must be specified in ajarchild element of thejava-vmelement of the server configuration file. See Using StreamBase Logging for more on using alternative logging systems. - Documentation Updates
-
The StreamBase documentation for release 6.4.12 includes the following updates, independent of the changes above:
-
The Container Connections page has a new section describing the parameters you can specify in the URI to a remote server.
-
The description of the expression language's strftime() function was updated for accuracy.
-
StreamBase 6.4.11 fixed several product limitations, as described in the Resolved Limitations section of the Release Notes.
StreamBase 6.4.11 inherited the new features added to maintenance releases of the 6.3.x release series, through and including release 6.3.10.
StreamBase 6.4.11 added the following updates and new features:
- Update for FIX Adapter with Appia FIX Engine
-
The configuration file for the Appia FIX engine now includes a
checkremote-idsetting. Use this setting to specify that outgoing messages are to be returned to the application when the connection id down, rather than stored and forwarded, the default behavior. See FIX Adapter. - Update for Lime Citrius Quote Adapter
-
The Lime Citrius Quote Adapter was updated to support the Lime server's top-of-book view. This feature is enabled by toggling the new Enable Top-of-Book checkbox on the Subscription Properties tab of the adapter's Properties view. See Lime Citrius Quote Input Adapter
StreamBase 6.4.10 fixed several product limitations, as described in the Resolved Limitations section of the Release Notes.
StreamBase 6.4.10 inherited the new features added to maintenance releases of the 6.3.x release series, through and including release 6.3.10.
StreamBase 6.4.10 added 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_17. 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.
- Update for the MarketFactory Adapters
-
The MarketFactory API used by the StreamBase MarketFactory adapters was upgraded to version 1.6.6. This change affects the input schema used in both the Market Factory Trading Input adapter and the MarketFactory Enhanced Market Data Input adapter.
- Update for the JMS Adapters
-
The JMS adapters were updated to include an initial context builder for connecting to an IBM WebSphere Application Server and IBM WebSphere MQ Server. See JMS Input and Output Adapters for an example of the configuration settings that use this option.
- New Function in the Expression Language
-
The StreamBase expression language gained the following new function:
StreamBase 6.4.9 fixed several product limitations, as described in the Resolved Limitations section of the Release Notes.
StreamBase 6.4.9 inherited the new features added to maintenance releases of the 6.3.x release series, through and including release 6.3.10.
StreamBase 6.4.9 added the following updates and new features:
- New Digitech D3 Streaming Interface Adapter
-
The StreamBase Digitec D3 Streaming Interface input adapter allows a StreamBase application to retrieve market data from the Digitec D3 Pricing Engine. The adapter is described in Digitec D3 Streaming Interface Adapter, and has a sample, described in Digitec D3 Streaming Interface Adapter Sample.
- 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 Lime Citrius Quote Adapter
-
The Lime Citrius API used by the StreamBase Lime Citrius Quote Input adapter was upgraded from version 1.4 to version 1.6.1.
- New Functions in the Expression Language
-
The StreamBase expression language gains the following new functions:
The following expression language function is newly documented in this release:
- Documentation Updates
-
The StreamBase documentation for release 6.4.9 included the following updates, independent of the changes above:
-
The Module Imports page was updated to reflect current functionality.
-
The reference page for the sbadmin command was expanded to include a discussion of stopping and restarting containers.
-
StreamBase 6.4.8 fixed several product limitations, as described in the Resolved Limitations section of the Release Notes.
StreamBase 6.4.8 inherited the new features added to previous releases, through and including release 6.3.9.
StreamBase 6.4.8 added the following updates and new features:
- New MarketFactory Trading Adapters
-
The MarketFactory™ Trading adapter allows a StreamBase application to place orders and receive trading-related events from a MarketFactory Trading server. The MarketFactory Trading adapter is a bidirectional adapter implemented as a pair of input and output adapters as described in MarketFactory™ Trading Adapter. The adapter has a sample, described in MarketFactory Adapters Sample.
- New MarketFactory Enhanced Market Data Input Adapter
-
The MarketFactory Enhanced Market Data input adapter allows a StreamBase application to receive enhanced FX market data from a MarketFactory Enhanced Market Data server. This adapter is described in MarketFactory™ Enhanced Market Data Input Adapter and shares the sample for the MarketFactory Trading adapters described above.
- New IBM WebsSphere MQ Adapters
-
The IBM WebSphere MQ input adapter allows a StreamBase application to retrieve messages from an IBM WebSphere MQ server. The input adapter is described in IBM WebSphere MQ Input Adapter.
The IBM WebSphere MQ output adapter allows a StreamBase application to publish messages to an IBM WebSphere MQ server. The output adapter is described in IBM WebSphere MQ Output Adapter. Both input and output adapters share a sample, described in IBM WebSphere MQ Adapter Sample.
- New Wall Street Systems Adapters
-
The Wall Street Systems input adapter allows a StreamBase application to retrieve messages from an Wall Street Systems server. The input adapter is described in Wall Street Systems Input Adapter.
The Wall Street Systems output adapter allows a StreamBase application to publish messages to an Wall Street Systems server. The output adapter is described in Wall Street Systems Output Adapter. Both input and output adapters share a sample, described in Wall Street Systems Adapter Sample.
- Update for Microsoft Excel Adapter
-
In previous releases, the Microsoft Excel adapter, when configured to enqueue to multiple StreamBase Server instances, issued an error when encountering the first non-responding server instance. The adapter was updated to create enqueuers for all currently active servers.
- Updates for TIBCO Rendezvous Input Adapter
-
The TIBCO Rendezvous Subscribing Input adapter was updated to process cache requests in the background using a configurable number of threads that are created on demand and are destroyed when all cache requests have been serviced. The cache request timeout is now a configurable option, as described in TIBCO Rendezvous Subscribing Input Adapter.
- 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.
- Interstream Ordering Now Preserved
-
StreamBase Server was enhanced to preserve interstream ordering in cases where a single stream of tuples is split into multiple input queues entering the StreamBase application. Multiple input queues might occur when an adapter (such as the FIX adapter) routes incoming messages to multiple ports, or when an adapter is configured to run in separate parallel threads.
Interstream ordering is now preserved when parallel modules are specified, and when a Java operator uses
Operator.sendOutputAsync()with multiple output ports. However, interstream ordering is not preserved when mixingsendOutputAsync()andsendOutput().A consequence of this update is that queues are now created on demand, and only when parallel modules are in use. The names of queues (as seen with sbc list and other commands) now have an instance variable appended. For example, a parallel module queue formerly named
default.InputStream1is now nameddefault.InputStream1:0. If there are multiple instances of this set of queues, the sequence number is incremented.
StreamBase 6.4.7 fixed several product limitations, as described in the Resolved Limitations section of the Release Notes.
StreamBase 6.4.7 inherited the new features added to previous releases, through and including release 6.3.9.
StreamBase 6.4.7 added 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_16. 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.
- Appia FIX Engine Support for FIX Adapter
-
The FIX Input and Output adapters now include support for the Appia FIX engine from Orion Tradesoft in addition to the QuickFIX/J and CameronFIX FIX engines already supported. The option to use the Appia FIX engine applies to the basic FIX adapter as well as to all StreamBase adapters based on the FIX adapter. See FIX Adapter for information on configuring the FIX adapters to use the Appia FIX engine.
- 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 CSV File Writer Adapter
-
The CSV File Writer Adapter was updated to generate rollover file names that use 24-hour notation when using the Max Roll Seconds property.
- Update for the Comstock Adapter
-
The Comstock adapter now reports its internal queue size on the console and shows warnings when the queue size crosses certain size thesholds.
- API Change
-
The
SchemaandStreamBaseClientclasses now have constructors that call out every exception, which helps you build well-behaving custom adapters. - Documentation Updates
-
The StreamBase documentation for release 6.4.7 included the following updates and corrections, independent of the changes above:
-
The Project Properties page was updated to reflect current functionality.
-
The cheat sheet for the Error Streams sample was reworked to match the updates in the Error Stream sample.
-
StreamBase 6.4.6 fixed several product limitations, as described in the Resolved Limitations section of the Release Notes.
StreamBase 6.4.6 inherited the new features added to previous releases, through and including release 6.3.9.
StreamBase 6.4.6 added the following updates and new features:
- Update for Lime Citrius Quote Adapter
-
The Lime Citrius API used by the StreamBase Lime Citrius Quote Input adapter was upgraded from version 1.4 to version 1.5.3.
- StreamBase .NET Client API Build Changes
-
In previous releases, the StreamBase .NET client API could fail to load into certain AppDomains, instead showing load errors that included the phrase
BadImageFormatExceptionor "The module was expected to contain an assembly manifest." This issue was resolved by building the StreamBase .NET client assembly in a different way. In addition, theStreamBaseMonitorAPI is now delivered as a separate, platform-independent assembly. There are noStreamBaseClientorStreamBaseMonitorAPI changes as a result of this build change..NET client applications that do not use the
StreamBaseMonitorAPI do not need to make any changes. .NET client applications that do use theStreamBaseMonitorAPI now need to add a reference to the new assembly namedsbmonitor. - Update for Embedded TIBCO Subscribing Input Adapter
-
The TIBCO Subscribing Input adapter was updated with a new property, Enable Dynamic Subscriptions Port. When enabled, this property gives the adapter another input port to which you send control tuples that cause the adapter to dynamically subscribe to or unsubscribe from subjects.
- Expanded Type Conversions for Embedded TIBCO Adapters
-
The TIBCO Rendezvous Subscribing Input and Publishing Output adapters now have a greatly expanded set of available conversions between StreamBase and Tibrv data types. These changes include:
-
The adapters support conversions between StreamBase lists and Tibrv messages in which list elements appear multiple times with the same name in a Tibrv message.
-
To publish such messages, include the StreamBase list field name with a non-array Tibrv type in the type override file. For example,
MyListOfIntField,I32. -
The subscribing adapter automatically now assembles StreamBase lists from Tibrv messages that contains repeated fields with the same name.
-
-
The publishing adapter's Enable Publishing Lists Of Tuples property was deprecated, and lists of tuples are now published using the Tibrv MSGARRAY type. Lists of tuples can be published as multiple fields by including the StreamBase list field name with the MSG type in the override file. For example,
MyListOfTuple,MSG. -
A new property, Generate Unique Tibrv Field Names, was added to the publishing adapter. When enabled and publishing multiple Tibrv fields per StreamBase list field, this property causes the adapter to generate unique Tibrv field names
,listfieldname_0, and so on.listfieldname_1
-
- Updates for Embedded TIBCO Adapters
-
The embedded TIBCO Rendezvous Subscribing Input and Publishing Output adapters were updated with the following features:
-
Support was added for overriding the Tibrv data type in published messages, and in published lists of StreamBase ints, longs, and doubles.
-
Support was added for publishing and receiving blobs as I8ARRAY or U8ARRAY types.
-
Support was added for requesting values from the rvcache on start-up.
-
- New Environment Variable for JDBC Feed Simulations
-
When using a JDBC database as the source of input tuples for a feed simulation, you must make the database vendor's JDBC JAR file available to Studio. Previous releases recommended copying the JAR file to a certain location in the StreamBase installation. Starting with this release, you can also use the new
STUDIO_BOOT_CLASSPATHenvironment variable as an alternative.Independent of either method above, in order to use the command-line sbfeedsim with a JDBC data source, you must place the JDBC JAR file in the standard CLASSPATH. These subjects are discussed in Feed Simulation with a JDBC Data Source.
- Documentation Updates
-
The StreamBase documentation for release 6.4.6 includes the following updates and corrections, independent of the changes above:
-
The Studio cheat sheet demonstrating the use of error ports and Error Streams was updated to reflect changes in recent releases.
-
The pages for the TIBCO input and output embedded adapters were updated with a new section on the TIBCO middleware requirements.
-
The server configuration file reference was updated to include the
jdbc-batch-timeout-msparameter of thedata-sourceelement. See theparamelement of the StreamBase Server Configuration XML reference. -
New or updated page: Profiler View.
-
StreamBase 6.4.5 fixed several product limitations, as described in the Resolved Limitations section of the Release Notes.
StreamBase 6.4.5 inherited the new features added to previous releases, through and including release 6.3.8. See What Was New in StreamBase 6.3.8 for details.
StreamBase 6.4.5 added the following updates and new features:
- Synchronized Timestamp Groups in Feed Simulations
-
This release includes a new option in the Feed Simulation Editor that allows you to specify two or more streams as members of a group of streams in the current feed simulation file for which StreamBase coordinates delivery of tuples in timestamp order. See Using Synchronized Timestamp Groups for more on using this feature.
- New Field Serializer Global Operator
-
The Palette view's Global Operators and Adapters drawer now includes the new Field Serializer operator. When your application only needs to process a small subset of the fields of a large tuple, you can use the Field Serializer operator to serialize the unused fields of a large tuple into a single blob field, leaving untouched the fields that your application must process. At the end of your processing chain, after processing the fields of interest, use the same operator to deserialize the blob field to reconstruct the tuple's unused fields. This effectively compresses a large tuple as it passes through your application, for a potential throughput and performance improvement. For details, see Using the Field Serializer Operator.
- CSV File Reader Adapter: New Tail Option
-
The CSV File Reader adapter was enhanced with the ability to process records as they are appended to the input CSV file. This feature is controlled with three new properties on the Adapter Properties tab of the Properties view: Tail Mode, Ignore Existing Records, and Tail Update Interval. See CSV File Reader Input Adapter for details.
- Wombat Adapter: New Recover Gaps Option
-
The Wombat MAMA Input adapter has a new property, Recover Gaps, in the Subscriptions tab of the Properties view. This property allows the adapter to recover from sequence number gaps by requesting a recap. See Wombat MAMA Input Adapter.
- Behavior Change for FIX Adapter
-
The FIX adapter was modified to exhibit the following behavior. When attempting to link with a FIX Output adapter, a FIX Input adapter first looks for a match inside its own module. If none is found it attempts to link with FIX Output adapters in other modules of the application. In the latter case, the Output adapter is expected to have a name unique across the entire application to avoid ambiguities.
- Update in Code Generated By New Operator and Adapter Wizards
-
When using the New Operator or New Adapter wizards to generate code for a custom operator or adapter, in previous releases, when you specified a property of type
enum, the wizards generated code that used theEnumPropertyDescriptorclass in the BeanInfo file for your component's class. Starting with 6.4.5, these wizards now generate code that uses the newJavaEnumPropertyDescriptorclass. See the Javadoc documentation for the StreamBase Client API for more on the difference between these classes. - Studio on Linux with Firefox 3.x
-
For StreamBase 6.4.x only, on Linux platforms only, StreamBase Studio may fail to start if you are using a newer release of the
xulrunnerpackage that accompanies Firefox 3.x. In the 6.4 documentation, see the Xulrunner Issues page in the Installation Guide for special instructions. - API Changes
-
Release 6.4.5 introduces the following new features in the StreamBase Java client API.
-
The new class
com.streambase.sb.TupleCopieris a utility class that copies fields from one tuple to another, using the schemas of the two tuples to determine the fields to copy.TupleCopieris more efficient than using the Tuple class'sgetField()andsetField()methods to copy portions of a tuple. If your intent is to duplicate a tuple exactly, theTuple.clone()is a more efficient option. -
The
copyField()method was added to theTupleclass, which is used to copy a single field from one tuple to another, using the schemas of the source and destination tuples.
For details, and for an example of using
TupleCopier, see the Javadoc documentation for the StreamBase client API. -
- Documentation Updates
-
The StreamBase documentation for release 6.4.5 includes the following updates and corrections, independent of the changes above:
-
There is a new page in the Authoring Guide, Unicode Support, that assembles onto one page the information about StreamBase's support for Unicode character sets.
-
The Using the Feed Simulation Editor page was updated, and portions of that page were moved to the new Feed Simulation Timestamp Options page.
-
An example is now provided to help understand the coalesce_tuples() function.
-
StreamBase 6.4.4 fixed several product limitations, as described in the Resolved Limitations section of the Release Notes.
StreamBase 6.4.4 inherited the new features added to previous
releases, such as the new timezoneoffset() function, through and
including release 6.3.7. See What Was New in StreamBase 6.3.7 for details.
StreamBase 6.4.4 added the following updates and new features:
- Embedded JMS Reader and Writer Adapters Now in the Base Kit
-
StreamBase has long provided four JMS adapters: input and output adapters in both embedded and external forms. Before this release, all four JMS adapters were supplied in a separate installation kit. Starting with release 6.4.4, the embedded JMS Reader and JMS Writer adapters are now installed as part of the base kit. The two external JMS adapters are still provided in a separate installation kit, for possible installation on a machine separate from the host running StreamBase Server.
- Update for JMS Adapters
-
The JMS adapters, both embedded and external, were enhanced to support specifying an arbitrary number of extra JNDI context parameters, using the new
jndi-extra-propertieschild element of thejms-serverselement in the adapter's configuration file. This allows a JMS adapter to connect to JMS implementations such as IBM WebSphere that require custom property settings. See the skeleton configuration file for your JMS adapter for further details on the new element. - New EBS Live XML Input Adapter
-
The EBS Live XML input adapter allows a StreamBase application to connect to the ICAP EBS Live data feed to receive XML-based market data. The EBS Live XML adapter is an input-only adapter, and is described in EBS Live XML Input Adapter.
- Independent Logging for JMS Embedded and EBS Live Adapters
-
The embedded JMS Reader and JMS Writer adapters were enhanced with a new Log Level property. This allows these adapters to participate in the StreamBase slf4j logging system, but allows the adapters to have log level settings that are independent of the hosting StreamBase Server. That is, you can set the logging level for either adapter to a higher level (with more debugging messages) without increasing the logging level for the hosting server. The EBS Live XML adapter also participates in this new adapter logging feature, also providing an independent Log Level property.
- TIBCO Publishing Adapter Update
-
The TIBCO Rendezvous Publishing Output adapter was updated with a new property that supports publishing lists of tuples. See TIBCO Rendezvous Publishing Output Adapter.
- Performance Optimizations for the zip() Functions
-
The performance of the zip() and unzip() functions were optimized to allow efficient use in complex expressions like the following:
indexof(unzip(list(Tuple(...))).fieldPath, fieldValue[, int start])
- Documentation Updates
-
The StreamBase documentation includes the following updates and corrections, independent of the changes above:
-
The Using Nulls page was reworked and was supplemented with new Null Lists and Null Tuples sections.
-
The pages for the CSV File Writer Output Adapter and CSV File Reader Input Adapter were updated to reflect the recent change to multi-tab layout of their Properties views.
-
The Profiling StreamBase Applications page and sbprofile reference page were clarified and corrected.
-
The Execution Order, Concurrency, and Parallelism and Using the Query Table Data Construct pages were updated to clarify that StreamBase does not support exporting a Query Table from a module marked with the Run in parallel threads option from the Concurrency tab in the Properties view.
-
StreamBase 6.4.3 fixed several product limitations, as described in the Resolved Limitations section of the Release Notes.
StreamBase 6.4.3 inherited the new features added to previous
releases, such as the new timezoneoffset() function, through and
including release 6.3.7. See What Was New in StreamBase 6.3.7 for details.
StreamBase 6.4.3 added the following updates and new features:
- New FXall and LavaFX Adapters
-
This release includes the FXall FIX adapter and the LavaFX FIX adapter, which allow you to connect to and exchange FIX messages with the Accelor FXall FX trading infrastructure, and the trading infrastructure provided by Lava Trading Inc., respectively. See FXall FIX Adapter and LavaFX FIX Adapter for details.
- New Hotspot Itch Adapter
-
The Hotspot Itch Input adapter allows a StreamBase application to subscribe to and receive order information from Hotspot ECN book. The Hotspot Itch adapter is described in Hotspot Itch Input Adapter and has a sample, described in Hotspot Itch Input Adapter Sample.
- E-Mail Sender Output Adapter Updated
-
The E-Mail Sender Output adapter now supports authentication with the target SMTP server through three new properties: Use Authentication, Username, and Password. The adapter's properties were reorganized into two tabs in the Properties view, Connection Properties and Message Properties. See E-mail Sender Output Adapter.
- Profiling Documentation Updated
-
The documentation of the StreamBase profiling feature was extensively rewritten and clarified. The mystery of the Operator Size column in Studio's Profiler view, and in the output of the sbprofile command, is now resolved. See Profiling StreamBase Applications and the reference page for the sbprofile command.
- New Expression Language Functions for Milliseconds
-
The expression language now includes the milliseconds() and get_millisecond() functions.
- New Option for Runtime Tracing
-
You can now specify the
--traceBufferedoption when setting up runtime tracing, to disable buffering of generated trace files. This slows down performance considerably, but makes it possible to use tracing as part of debugging a live application. See Runtime Tracing for details. - Trace Browser Formatting Change
-
In the Trace Browser, formatted timestamps for entries are now displayed with the milliseconds portion of seconds. This helps distinguish closely occurring entries from each other.
- New Property for External Process Operator
-
The External Process operator has a new property on its Command Arguments tab in the Properties view. The property, Command output type, specifies the data type of three fields of the output tuple:
stdout,stderr, and (if enabled)cmdline. In previous releases, these fields were always of the blob data type, and that remains the default for backward compatibility. The new property allows you to specify the string data type for these fields. See Using the External Process Operator for more on this operator. - HA Sample Updated
-
The sample in
sample/hathat demonstrates high availability design patterns was updated to illustrate an approach to a manual fallback scenario. The sample has the following changes:-
There is a new command script,
startprimaryassecondary, that restarts the primary node as the secondary. -
The
ha.appapplication was updated so that the HA Heartbeat adapter is restarted in the correct mode depending on the current leadership status. -
All commands sent by an External Process adapter were moved into a module that contains
RunSBAdminCommand.sbapp, which retries external commands if they fail. -
Trace flags were added to the
sbd.sbconffile to allow the use of tracing to explore the workings of the sample in detail.
-
StreamBase 6.4.2 fixed several product limitations, as described in the Resolved Limitations section of the Release Notes.
StreamBase 6.4.2 inherited the new adapters and features added to previous releases, through and including release 6.3.6, which introduced the Deutsche Bank AutobahnFX Trading System adapter. See What Was New in StreamBase 6.3.6 for details.
StreamBase 6.4.2 adds the following updates and new features:
- FX Aggregation Framework
-
StreamBase 6.4.2 supports the StreamBase FX Aggregation framework. You can now fully integrate the FX Aggregation framework with your trading infrastructure to support the acquisition, normalization, blending, and aggregation of market data as required for foreign exchange trading. The framework supports market data feeds from Currenex, EBS/ICAP, Goldman Sachs Electronic Trading, and UBS Investment Bank. Contact your StreamBase Systems representative if you are interested in evaluating this framework.
- New Twitter Adapter
-
The Twitter adapter allows a StreamBase application to connect to the web service provided by Twitter, Inc. It can both send and receive Twitter status messages, commonly called tweets, and can send advanced commands and queries, as described in Twitter Adapter. The adapter has a sample, described in Twitter Adapter Sample.
- Python Client API Now Supported
-
The Python client API is now included as a supported StreamBase API for building client enqueuer and dequeuer applications. Release 6.4.2 adds the following features to the Python API:
-
The Creating StreamBase Python Clients topic is now part of the API Guide, and describes how to set the
PYTHONPATHenvironment variable to gain access to the Python client API. -
The API is documented in Pydoc format, linked from the first page of the API Guide, or directly from this link.
-
On 32-bit Windows, two distributions of Python are now supported:
-
The 32-bit ActivePython release 2.6 from ActiveState.
-
The 32-bit Windows binary installer for Python 2.6.x from python.org.
-
-
- New Feature in HA Sample
-
The HA sample now includes a new test application,
hbtester.sbapp, that helps you learn about the interaction of two instances of the HA Heartbeat adapter and to test different scenarios for using it. See the Running the Heartbeat Tester Sample section of the HA sample's documentation page.
StreamBase 6.4.1 fixed several product limitations, as described in the Resolved Limitations section of the Release Notes.
StreamBase 6.4.1 inherited the adapter updates and new features added to previous releases, through and including release 6.3.5. See What Was New in StreamBase 6.3.5 for details.
StreamBase 6.4.1 added the following updates and new features:
- Behavior Change: Debug Mode No Longer Enables ISD
-
Starting with release 6.4.1, intermediate stream dequeuing (ISD) is no longer enabled by default when launching an application in debug mode from within Studio. This change allows larger StreamBase applications to be debugged on limited memory systems, including 32-bit Windows hosts. You can still enable ISD when it is explicitly needed, as described in Intermediate Stream Dequeuing.
The ISD feature allows you to dequeue for debugging purposes from the output ports of operators anywhere in your application, not just from explicit output streams. In previous releases, ISD was enabled by default when debugging an application. When ISD is enabled, the StreamBase Server instance hosting your application consumes considerably more memory, to the point that you might not be able to successfully launch large applications.
- Studio Configuration Directory Renamed
-
The name of Studio's configuration directory (but not the workspace directory) was renamed to include the third digit of the release number. Thus, for this release, the configuration directory is:
%APPDATA%\StreamBase\StreamBase Studio 6.4.1
On Linux, the Studio configuration directory for this release is:
~/.streambase/streambase-studio-6.4.1
This was done to avoid an Eclipse issue when upgrading from older to newer releases and reusing the same configuration directory. Studio uses the new configuration directory name automatically, and thereby avoids the issue. If you do encounter an error when adding third-party plug-ins to Studio, remove the configuration directories for the current and most recent Studio releases and restart Studio.
The configuration directory holds minor information such as the index for the Help system, and is automatically reconstructed when absent. Your StreamBase projects in your workspace directory are not affected, and you can and should re-use the workspace directory from release 6.4.0 with 6.4.1.
- Studio Can Specify Module Parameters for Top-Level Module
-
Release 6.4.0 provided the ability to specify module parameters in the Containers tab of the Run or Debug Configurations dialog, in order to pass parameters to modules loaded in containers. Release 6.4.1 adds the ability in the Main tab to specify parameters for the top-level module run in the container named
default. - Studio: Modules Drawer of Palette View Clarified
-
In the Modules drawer of the Palette view, module entries are no longer listed with their containing workspace folder pathnames. This cleans up the view for large applications with dozens of modules. To determine the containing folder for any module, hover the mouse over its entry in the view.
- Studio: Named Schema Displays Clarified
-
In StreamBase Studio, in the Definitions tab of the EventFlow Editor, the display of named schemas now shows field names, data types, and field descriptions in different colors, to improve readability. For fields of type tuple and list, subfields are no longer shown in parentheses after the field name. Open the field's plus sign to see the field names.
- Studio: Re-exported Tables Included in Outline View
-
Query Tables can be marked to be re-exported up the chain of modules, as described in the Tables Tab section of the Module Reference page. Starting with release 6.4.1, tables re-exported in this way are now included in the Outline view of the module that contains a module reference to a module with re-exported Query Tables.
- TIBCO Embedded Adapters Now Support Field ID
-
The TIBCO Rendezvous Subscribing Input adapter has a new property, Find Fields by ID. If enabled, the adapter first tries to match Tibrv message fields to StreamBase fields using the Tibrv field ID, before falling back to the default name mapping mechanism. See TIBCO Rendezvous Subscribing Input Adapter for details.
The TIBCO Rendezvous Publishing Output adapter now supports publishing Tibrv fields by Field ID. See TIBCO Rendezvous Publishing Output Adapter for details.
- Configuration File Module Parameters Can Now Be Enciphered
-
There are several ways to specify the values of module parameters, as described in Using Module Parameters. One of those methods, specifying
module-parameterentries in the server configuration file, now supports the text encipherment feature that was added in release 6.3.4. See application for details and an example. See Enciphering Passwords and Parameter Values for more on the encipherment feature. - 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. - Python Client API Updates
-
The Python client API is included in release 6.4 as an unsupported preview release. Release 6.4.1 adds the following features:
-
The preliminary Python client API documentation was updated and expanded. On Linux platforms with the default installation location, open the following file:
/opt/streambase/doc/apidocs/python/index.html.On Windows, open C:\Program Files\StreamBase Systems\StreamBase.6.4\doc\apidocs\python\index.html.
-
On Linux platforms, release 6.4.1 now includes the Python client API built for four Python versions: 2.3, 2.4, 2.5, and 2.6. Set the
PYTHONPATHenvironment variable to the location of the appropriate client library for the Python version on your system, as described in the above-referenced documentation. -
The Python client API is now included on 32-bit Windows platforms. The Windows version supports the 32-bit ActivePython release 2.6 from ActiveState. In a StreamBase Command Prompt, set the
PYTHONPATHenvironment variable as described in the above-referenced documentation.
-
StreamBase 6.4.0 fixed several product limitations, as described in the Resolved Limitations section of the Release Notes.
StreamBase 6.4.0 inherited the adapter updates and new features added to previous releases, through and including release 6.3.4. See What Was New in StreamBase 6.3.4 for details.
| Navigation Links | |
|---|---|
| Studio New Features | Behavior Changes |
| Runtime New Features | Adapter Changes |
| Frameworks Support | Compiler Support and API Changes |
- EventFlow Format Updated
-
As is standard with StreamBase releases, the XML syntax of EventFlow modules was updated to support the new features described below. When you open a module defined in a previous release in Studio 6.4 and save it, the file's format is automatically updated.
Note
Once an EventFlow module file has been saved in the 6.4 format, it can no longer be opened with previous StreamBase releases. If you are experimenting with release 6.4's new features without yet committing to an upgrade, back up your application files and use copies with 6.4. You can also import your existing Studio projects into a new, blank 6.4 workspace with → → → .
- Studio Based on Eclipse 3.4
-
StreamBase Studio is now based on Eclipse 3.4. This allows you to install third-party Eclipse plug-ins that support or require Eclipse 3.4, including plug-ins that add version control to Studio.
- Studio UI Changes
-
To support the new features described below, Studio has the following changes to its user interface:
-
The EventFlow Editor has the following changes:
-
The Named Schemas tab is now named Definitions.
-
There is a new Dynamic Variables tab.
-
The Metadata tab is now the last tab.
-
-
In the SB Test/Debug perspective, there is now a Profiler View that shares the lower left folder with the Application Output, Application Input, and Variables views.
-
There is a new perspective, SB Trace Browser.
-
In the Run/Debug Configurations dialog, the Containers tab now supports operator parameters, and there is a new Environment tab.
-
- Dynamic Variables Now Module Scoped
-
In previous releases, dynamic variables were declared in the Properties view for an operator or adapter, and their scope was the containing operator or adapter. Starting in this release, dynamic variables are declared in the new Dynamic Variables tab of the EventFlow Editor, and their scope is the containing module. See Using Dynamic Variables.
- Dynamic Variable Migration
-
When you use release 6.4 to open a prior release's EventFlow application that contains operator-scoped dynamic variables, you may encounter one or more of the following:
-
Studio attempts to promote operator-scoped variables to module-scoped dynamic variables. During the promotion process, operator-scoped dynamic variables that have identical names, updating streams, updating expressions, and initial values are collapsed into a single module-scoped dynamic variable.
-
The attempted promotion sometimes results in a naming conflict if same-named operator-scoped variables have different settings. In this case, Studio renames conflicted variables and shows the Dynamic Variables Upgraded dialog to notify you which variables were affected.
-
In the Dynamic Variables tab of the EventFlow Editor, you might encounter a typecheck error with a message such as:
In update expression for dynamic variable. In previous releases, StreamBase inferred the data type of dynamic variables by testing the update expression. Now, variable types are inferred from the initial value. The result is that a small number of applications that passed typechecking in previous releases now fail. In these cases, use a casting function (int(), double(), and so on) to cast the initial value to the desired data type.var-name, cannot convert expressionexpr-nameof type double to type int
-
- New Module Scoped Constants
-
This release adds support for constants defined at the module level. Use the EventFlow Editor's new Definitions tab to manage constants as well as named schemas and imports. You designate the value of a constant with an expression, which is calculated once, when the module is initialized. In StreamSQL, use the new CREATE CONSTANT statement to define module-scoped constants. See Defining Constants.
- Import Named Schemas and Constants
-
This release adds the ability to import all or a selection of the named schemas and constants from another module to the current module. The modules from which you can import must be in the current module's Module Search Path. For large, multi-module applications, this allows you to define commonly used schemas and constants in a central module, and import them from the central module as needed by other modules in the application. Manage module imports in the new Definitions tab of the EventFlow Editor. In StreamSQL, use the new IMPORT statement for the same purpose. See Using Module Imports.
- Edit Expression Window
-
Studio now provides an optional edit window for editing long expressions in operator and adapter Properties views. To open the edit window, click to select the expression field of interest, then click the ellipsis (three dots) on the lower left of the field, or press F2.
This opens a resizable edit window for the field, which allows you to insert returns and spaces to style the expression for readability. Spaces and returns in the expression are preserved in the EventFlow file and persist between editing sessions. The auto-completion feature introduced in release 6.3 operates as expected in the edit window. Press F1 to open the Streams and Functions tabs of the Properties view alongside the edit window.
When done, click or press Ctrl+Enter to save your edits and return to the Properties view.
- Commenting Out EventFlow Components
-
This release allows you to comment out or disable a branch of an EventFlow application. You might do so when trying to isolate a problem, or you might disable portions of an application during development that are only needed at deployment time. Disabled branches appear greyed out on the canvas, as in the example below. When running an application with a disabled branch, tuples do not flow through any disabled branches.
This feature is described in the Studio Reference, in the following section: Commenting Out.
- New Profiler View
-
Release 6.2 added the ability to profile a running StreamBase application to gather statistics about the operators, threads, and streams in the application as it runs. This release add Studio support for profiling. You can now see statistics for the application currently running in Studio by opening the Profiler view in the SB Test/Debug perspective. Click to begin the display of statistics, which refreshes every second.
Remember that the profiling system shows meaningful statistics only for operators that have run for a while with a significant amount of data, and will show zero otherwise. Click the Include Operators with zero time button in the view's toolbar to see a row for each operator in the application regardless of the statistics gathered. See Profiling StreamBase Applications for details.
- New Trace Browser
-
This release adds a fourth StreamBase-specific perspective to Studio, the SB Trace Browser perspective. Use → → or the Open Perspective button on the Studio toolbar to open the perspective.
Runtime tracing was added in release 6.2.1, as described in Runtime Tracing, and provided several ways to generate a trace file that records every tuple passing through an application, optionally filtered by operator name. This release provides a new Trace Browser to open and examine trace files, and to search for patterns of interest in trace files. You must still set up for and generate your trace files as described in Runtime Tracing. The Trace Browser only opens traces produced with release 6.4 or newer. Traces generated with earlier releases cannot be read.
- Feed Simulation Editor Can Copy Schemas from Existing Streams
-
In the Feed Simulation Editor, in the Simulation Streams section, the Add button was replaced with two new buttons, and . Use the button much like the old Add button to define the fields of an input stream to feed, field by field. To save time, you can instead use to select an input stream in any module in your workspace. The selected stream and its fields are then automatically copied to the Simulation Streams table.
- Asynchronous Option for External Process Operator
-
The External Process Operator gained a new checkbox, Run this command asynchronously, in the Advanced tab of its Properties view. Enable this checkbox to run the specified command without holding any server locks. This allows you to call sbadmin shutdown and other such commands that attempt to place locks, without causing a deadlock situation. See Using the External Process Operator.
- Support for Module Parameters in Launch Configurations
-
You can now specify values for module parameters when defining a run or debug configuration in Studio. This is only relevant for launch configurations that specify one or more containers in which to run an application's modules.
Use this feature to assign runtime values to predefined parameters. As is standard with module parameters, you must declare module parameters in the Parameters tab of the EventFlow Editor, and optionally provide a default value. Then, in the Run/Debug Configurations dialog, with a StreamBase configuration selected, select the Containers tab. Select a container row in the first table, then specify one or more parameter name and value pairs in the second table. Each parameter name must match a name you defined in the EventFlow Editor's Parameters tab.
- New Environment Tab for Launch Configurations
-
You can now specify the settings for environment variables when defining a run or debug configuration in Studio. In the Run/Debug Configurations dialog, with a StreamBase configuration selected, select the Environment tab. You can define new, application-specific variables, or you can override or append to existing system environment variables. Use Select to show a current list of the system's environment variables, from which you can select one or more. You cannot use this feature to replace or override the
STREAMBASE_HOME,PATH,STREAMBASE_JVM_ARGS, orSTREAMBASE_LOG_LEVELvariables. - Project Property Changes
-
The StreamBase portion of the Properties dialog for projects was reorganized and clarified. To set project properties, select the top-level folder of a project in the Package Explorer, right-click, and select Properties from the context menu. The settings for the Module Search Path and Resource Search Path were split into separate child pages, and the top StreamBase page now contains explanations of the available settings. You can now specify which subfolders of the current project's folder contain modules or operator resources. Module and resource folders specified in the current project are automatically exported to any project that references the current project.
- New Icon Overlays for Query Operators and Query Tables
-
To help distinguish the purpose of different components in the canvas for large applications, the Query operator now has an overlay icon to show whether it represents a Read, Write, or Delete operation.
Query operation type Overlay image Icon with overlay Read open book
Write pencil
Delete eraser
Similarly, the icon for Query Tables now shows with a green dot if the table is marked Shared, or with a green triangle if the table is marked Placeholder. Standard tables marked Private have no overlay.
- Studio Now Adds STREAMBASE_HOME to Classpath Variables
-
Studio now automatically adds a classpath variable named STREAMBASE_HOME to the Eclipse Classpath Variables preferences in → , then → → . You can then use the variable when setting paths to libraries and JAR files to be included in a project's Java Build Path. For example, include
STREAMBASE_HOME/lib/sbclient.jar.The variable's setting is generally the same as the environment variable of the same name, but its value is taken from the StreamBase Installation Location setting on the StreamBase Studio preferences page. If you change the path setting on that preferences page, the classpath variable automatically updates to match.
- New Option for Aggregate Operator
-
In the Properties view for the Aggregate operator, the Group Options tab now has a self-explanatory checkbox, Omit Group By fields in output.
- Studio Now Runs 64-bit Server on 64-bit Windows
-
On 64-bit Windows systems, with the 64-bit Windows StreamBase overlay kit installed, Studio now runs the 64-bit version of StreamBase Server by default. To override this default, customize a run or debug launch configuration and check the Use 32-bit StreamBase Server checkbox on the Main page of the launch configuration dialog.
- New StreamBase Manager Feature
-
The StreamBase Manager utility gains a new Streams view in this release. This view shows, for the currently connected application, all input and output streams with a count of tuples that have passed through each stream. As with other StreamBase Manager views, the Total column counts tuples passed since monitoring began, while the Latest column counts tuples in the most recent snapshot interval. See StreamBase Manager.
A Streams view was added to the console-based sbmonitor utility in release 6.3. This change in StreamBase Manager brings the two monitoring utilities back to parity.
- Extended Support for Setting Module Parameter Values
-
This release adds several new ways to assign runtime values to module parameters, which must be already declared in the module. Declare module parameters in the Parameters tab of the EventFlow Editor, and optionally provide a default value. In StreamSQL, use the CREATE PARAMETERS statement.
The new ways to assign module parameter values are:
- Module Parameters in Configuration File
-
This release introduces the
module-parameterschild element of theapplicationelement of the server configuration file. Eachmodule-parameterselement can have one or moreparameterelements, which havenameandvalueattributes. The parameter value is passed to the top-level module loaded in the container. For example:<application file="example.sbapp" container="instance1" datadir="" enqueue="ENABLED" dequeue="ENABLED" suspend="false"> <module-parameters> <parameter name="outputfile" value="instance1.csv"/> </module-parameters> </application>This new element sets values for module parameters, which have scope in the module in which they are declared.
By contrast, the existing
operator-parameterelement creates and sets values for global parameters that have scope in all modules running on the current StreamBase Server instance. - New Option for the sbadmin Command
-
The sbadmin addContainer command was extended to support a new option:
--parameter=paramName=paramValue. - New Option for the sbargen Command
-
The sbargen command was extended to support the
or-P--parameteroptions, which take aparamName=paramValueargument. This allows you to specify runtime values for module parameters when generating a runnable StreamBase archive (.sbar) file. - Client API Changes
-
In class
StreamBaseAdminClient, theaddContainer()method now supports the--parameteroption, which takes aparamName=paramValueargument. (See API Changes for more.)
- Changes to Runtime Tracing
-
Runtime tracing allows you to generate tuple trace files as described in Runtime Tracing. This feature was changed to generate two trace files. The trace file itself now has an
.sbtraceextension. The command also generates a trace metadata file with.sbtrace-metaextension, which is used by the new Trace Browser described above.You can now specify that trace files are automatically compressed with Gzip by adding the new
--traceCompressoption to the sbadmin command that generates your trace files. In this case, the trace file is generated with .sbtrace.gzextension. The new Trace Browser automatically unzips compressed trace files when reading them. - New Metadata Qualifier for Query Table Output Settings
-
In the Query operator, when configured for a read operation, you can specify the fields output from the operator with expressions specified in the Output Settings tab. This release adds a new qualifier,
metadata, that can be used as part of such expressions when the associated data construct is a Query Table. You can also use themetadatakeyword with some of its values in the lookup expression for the read query. The accepted values formetadataare the following:-
metadata.rowNumber -
metadata.tableModificationCount -
metadata.rowModificationCount
The metadata values are explained in The metadata Qualifier in the Query operator's topic.
-
- New Property to Redirect Stack Traces for Java Operators
-
There is a new Java property,
streambase.java-operator.stacktrace-on-warnthat can be specified either with thejvm-argsorsyspropertyelements in the server configuration file. When set to true, exception stack traces from Java operators and adapters are displayed on the server's console. - Expression Language Updates
-
The
append()function was extended to accept more than one list element to append to its argument list. See append(). - StreamSQL Syntax Updates
-
In addition to the new CREATE CONSTANT and IMPORT statements described above, the syntax of StreamSQL has the following changes:
-
When using APPLY MODULE, you can now omit the
.sbappfile extension, resulting in statements such asAPPLY MODULE myapp;. -
In the CREATE WINDOW statement, you can now specify TUPLES PARTIAL to designate a partial window. The TIME and VALUES windows are partial by default.
-
- Support for Smart Order Routing Framework
-
The StreamBase Smart Order Routing Framework is validated with, and fully supports, release 6.4. Contact StreamBase Systems for more information.
- Studio Now Automatically Saves Launch Configurations
-
In previous releases, Studio's Run and Debug functions had default settings, and you created a launch configuration manually when you wanted to specify non-default settings for a particular run or debug session.
Starting with release 6.4.0, a new launch configuration is automatically created for you the first time you run or debug a module, with the configuration taking the name of the top-level application being run. The next time you run or debug that module, Studio reuses the saved launch configuration. These launch configurations are created with default settings, and you can edit or copy them to specify custom settings.
- Some Typecheck Errors Not Marked in EventFlow Canvas
-
There is now a class of typecheck errors that cannot be marked on the EventFlow canvas with color changes, including global application errors that are not assigned to any particular component. In these cases, Studio flags the application's tab in the EventFlow Editor with a red X, and shows a message across the top of the canvas reminding you to look in the Problems view for details on the error.
- Resources Folder No Longer Special
-
In StreamBase releases 3.7 and earlier, Studio project folders always contained a subfolder named
Resourcesthat was automatically placed in the current project's operator resource search path. Starting with release 5.0, a StreamBase-specific project directory structure was no longer required, but, for compatibility with imported projects from earlier versions, Studio continued to honor the special meaning of any project subfolder namedResources. However, starting with release 6.4.0, subfolders namedResourcesare no longer automatically placed in the operator resource search path. - Studio Configuration Folder on Windows Renamed
-
As a consequence of moving to Eclipse 3.4, the configuration folder for StreamBase Studio has a name change. The location for StreamBase 6.3 and earlier was:
%APPDATA%\StreamBase\StreamBase Studio
n.mConfigurationwhere
n.mis the release number. Starting with release 6.4, the configuration folder is now:%APPDATA%\StreamBase\Streambase Studio
n.mFor Linux, the new configuration folder location is:
~/.streambase/streambase-studio-
n.m
Release 6.4 includes all the new adapters and new adapter features introduced since the release of 6.3.0.
See What Was New in StreamBase 6.3.4 for details on the following adapter changes:
-
New TIBCO Rendezvous Subscribing Input Embedded Adapter
-
New TIBCO Rendezvous Publishing Output Embedded Adapter
-
New Vhayu Subscription Adapter
-
JMS Adapter Gains Reconnection Features
-
Hotspot FX Adapter Updated
-
Reuters SFC Adapter Updated
See What Was New in StreamBase 6.3.2 for details on the following adapter changes:
-
New Lime Citrius Quote Adapter
-
CSV File and Socket Input Adapters Now Accept Character Entities
-
New Feature for CSV File Writer Adapter
See What Was New in StreamBase 6.3.1 for details on the following adapter changes:
-
New UBS FX2B FIX Adapter
-
New Goldman Sachs Electronic Trading FX Adapter
-
New Feature in Reuters RMDS Subscribing Adapter
-
New Feature in Reuters SFC Adapter
-
Wombat Adapter Supports List Data Type
-
CSV File Writer Adapter Supports File Compression
- API Changes
-
The Java client API was extended with the following methods. See the Javadoc documentation for details on these additions.
-
Class
Operatorhas a new method,getResourceFile(). -
In class
StreamBaseAdminClient, theaddContainer()method now supports the--parameterand--traceCompressoptions. -
In class
StreamBaseAdminClient, themodifyContainer()method now supports the--traceCompressoption.
-
- New Key-Value Control Type for Operators and Adapters
-
You can now specify a
Java.util.LinkedHashMapwhen defining controls for a custom Java operator or adapter. Studio displays these controls as a grid where the end-user can specify key-value pairs as parameters for your operator or adapter. To add a control of this type with the New StreamBase Java Operator or New StreamBase Embedded Adapter wizards, selectMap <String, String>from the property drop-down list in the New Operator/Adapter Property dialog. - 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.
- Visual C++ 9.0 Supported for Client Applications on Windows
-
StreamBase now supports building C++ client applications for Windows using Visual C++ 9.0, a component of Microsoft Visual Studio .NET 2008. See Configuring Visual C++ for setup instructions.
This support is in addition to the existing Windows compiler support. Thus, StreamBase now supports three compilers for building C++ clients for 32-bit Windows:
-
Visual Studio .NET 2003 (Visual C++ 7.1)
-
Visual Studio .NET 2005 (Visual C++ 8.0)
-
Visual Studio .NET 2008 (Visual C++ 9.0)
For 64-bit Windows, you can build C++ clients with Visual C++ 8.0 or 9.0.
-
- G++ Version Support on Linux
-
StreamBase requires G++ 3.4 through 4.2 for building C++ clients or custom functions 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
CCandCXXenvironment 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
- New Python Client API (Currently Unsupported)
-
As an unsupported feature, Linux installations of StreamBase now include a Python version of the StreamBase client API. Advanced users who wish to use this version of the API can find documentation in
/opt/streambase/doc/apidocs/python. The Python API is provided without support, and issues reported with this API cannot be addressed at this time. This feature is provided for the benefit of early adopters, and is subject to change based on customer feedback.
-
Java 6 is now required.
-
List data type added along with dozens of new list-related expression language functions.
-
New Iterate operator in Studio and SELECT ... FOREACH in StreamSQL.
-
Field lengths for strings removed.
-
File compression options were added to the CSV and Binary Reader and Writer adapters.
-
Bzip compression supported added for feed simulations.
-
New EBS adapter.
-
New UBS FIX adapter.
-
New Goldman Sachs Electronic Trading FX adapter.
-
New New Lime Citrius Quote adapter.
-
New Vhayu Subscription adapter.
-
New TIBCO embedded adapters.
-
New Deutsche Bank AutobahnFX adapter.
-
New Predicate Dimension for Aggregate Operator.
-
Table Delta Streams.
-
Inner Module Stream Dequeuing and Enqueuing.
-
Studio: Manual view updates.
-
Studio: Focus Selector view merged with Outline view
-
Studio: new schema comparison feature.
-
Studio: new auto-completion feature when editing expression fields.
-
Server now runs as a Windows service with StreamBase authentication
See StreamBase 6.3.x Release History for the detailed history of each 6.3.x release.
StreamBase 6.2 introduced the following new features:
-
Embedded adapters moved to the base kit.
-
New installer scripts for UNIX.
-
Support for bundling applications in the
.sbbundleformat for deployment. -
Enhanced Application Output view.
-
JDBC data sources for feed simulations.
-
Streams tab in the Properties view now shows both input and output schemas.
-
Support for deprecation of adapters and operators.
-
Refactoring support extended.
-
New CSV container connections.
-
New
syspropertyelement in server configuration files. -
Unicode support extended.
-
New sbbundle command and updates for the sbadmin and sbfeedsim commands.
-
New FIX adapter.
-
New Currenex adapter.
-
New EBS adapter.
-
Log4j logging support added for server in background mode.
See StreamBase 6.2.x Release History for the detailed history of each 6.2.x release.
StreamBase 6.1 introduced the following new features:
-
Multiple node support for HA design patterns.
-
Reliable stream to stream connections using a JMS server.
-
New Sequence operator.
-
Per-container data directories.
-
Launch applications in containers in Studio.
-
Improved support for the tuple data type and nested schemas.
-
Ability to pause and resume feed simulations in Studio.
-
Feed simulations automatically paused while debugging.
-
Reuters Schema Designer and Reuters RFA Configuration Wizard added.
-
Reuters Embedded Input adapters moved to the base kit.
-
SSH keyboard-interactive authentication supported for connecting to StreamBase Server.
-
New Hotspot FX adapter.
-
Bundled JDK updated to 1.6.0_10.
-
Default maximum JVM memory increased.
-
Support for the StreamBase Smart Order Routing Framework.
See StreamBase 6.1.x Release History for the detailed history of each 6.1.x release.
StreamBase 6.0 introduced the following new features:
-
Studio based on Eclipse 3.3.
-
Simplified Run and Debug buttons in Studio.
-
Refactoring support.
-
A visual debugger to step through EventFlow applications in Studio.
-
Unit testing of individual modules in Studio and at the command line.
-
Profiling StreamBase applications.
-
Named schemas stored as part of an EventFlow application.
-
The tuple data type and hierarchical data by means of tuples within tuples.
-
A new extensible logging system.
-
Support for 64-bit Windows Server 2003.
-
JDK 1.6 bundled for all supported platforms.
-
Better UTF-8 support.
-
Shortcuts for StreamBase URIs.
-
Synchronous container connections.
-
SSH keyboard-interactive support for StreamBase Server authentication from Studio.
-
New adapters: Once, POP3 Reader, HTTP Input, IRC Input, Log Output, Hotspot FX Trading System.
-
Chronicle support for Vhayu Velocity and Reuters RTCE.
See StreamBase 6.0.x Release History for the detailed history of each 6.0.x release.
StreamBase 5.1 introduced the following new features:
-
A new approach for supporting clustered and highly available StreamBase solutions. The legacy clustering features of older releases was deprecated.
-
Error Streams and per-operator error ports.
-
Support for security tagging of tuples.
-
Qualified to run with Java 1.6.
-
Support for new platforms and new JDBC databases.
-
Query operator changes.
-
New Pattern operator to provide pattern matching based on values as well as time.
-
Optional separation of semantic and layout information in separate EventFlow application files.
-
New StreamBase to StreamBase Output Adapter.
-
New functions in the expression language.
-
Additional parameters for disk query tables to improve write performance.
-
Updates for the ActivFeed adapter.
-
Performance updates and support for TIBCO features for the JMS adapters.
-
Ongoing usability enhancements in StreamBase Studio.
See StreamBase 5.1.x Release History for the detailed history of each 5.1.x release.
