New and Noteworthy

Date: 17 Jan 2012

This topic summarizes the history of significant changes in StreamBase releases. For current and resolved product limitations, see the Release Notes.

New in StreamBase 7.2.1

Migration Notes

If you are migrating from a 6.x StreamBase release, see the Migration Notes section of the Installation Guide, which includes Migrating from StreamBase 6 to 7. Study this important page to understand the migration steps, behavior changes and API changes in the 7.x series.

Also see the note on migrating persistent Query Table contents in the Behavior Changes section of the 7.2.0 New and Noteworthy.

Fixes

StreamBase 7.2.1 fixes several product limitations, as described in the Resolved Limitations and Known Limitations sections of the Release Notes.

Updates from Previous Releases

StreamBase 7.2.1 inherits the updates and new features added to maintenance releases of previous release series, through and including releases 7.1.7, 7.0.12, and 6.6.18.

The links in the previous paragraph take you to the New and Noteworthy for these releases, where you can find the details of the following inherited new features:

  • New Velocity Analytics adapters

  • New Exegy adapters

  • Behavior change for server configuration file errors

  • Restoration of automatic EventFlow canvas layout with slanted arcs

  • New getParallelRoot() function in the expression language

  • Pattern operator now accepts parameters for window size

  • FIX/FAST support added to the FIX Schema Designer

  • IBM WebSphere MQ and Wall Street Systems adapters updated

  • Thomson Reuters TREP-RT Subscribing Input adapter Updated

  • TIBCO Rendezvous Input adapter updated

  • E-mail Sender Output adapter updated

  • Support added for Vertica 5.0

  • The JAR files supporting the StreamBaseFIX FIX engine and the FIX/FAST protocol updated

  • Thomson Reuters RMDS adapters renamed

  • Utility commands jsbadmin, jsbc, sbbundle, and sbfeedsim updated

  • Documentation updates

New and Updated Features

StreamBase 7.2.1 adds the following updates and new features:

New Feed Simulation Input Adapter

This release adds the Feed Simulation Input adapter, which uses Feed Simulation configuration files to define the adapter's output ports and their schemas, and to determine what data is emitted from each adapter port. Feed simulation configuration files are created with the StreamBase Feed Simulation Editor as usual, and the same files can be used interchangeably with this Feed Simulation adapter and with the command line tool, sbfeedsim. Any data sources, generation methods, and emission rates definable with the Feed Simulation Editor can be used with this adapter. The adapter has a sample, described in Feed Simulation Input Adapter Sample.

64-bit Windows Now Includes 64-bit sbunit Command

In previous releases, the sbunit command was delivered as a 32-bit executable on both 32-bit and 64-bit Windows, which meant that StreamBase JUnit tests ran in a 32-bit JVM. Starting with release 7.2.1, the 64-bit Windows installation of StreamBase includes both 32-bit and 64-bit sbunit commands, so that 64-bit Studio now launches 64-bit StreamBase JUnit tests by default.

PATH Changes for Studio-Launched Server

The PATH environment variable passed to StreamBase Server when launched from Studio now includes the streambase-install-dir/bin directory appropriate for the platform. This feature only affects the ability to locate StreamBase utility commands when run from within StreamBase Server by means of an External Process operator or the SB Admin operator. For Linux, a Studio-launched Server's PATH includes /opt/streambase/bin. For 32-bit Windows and for a 32-bit Server launched from 64-bit Windows, the Studio-launched Server PATH includes streambase-install-dir\bin. For 64-bit Windows, the PATH includes streambase-install-dir\bin64;streambase-install-dir\bin.

In addition, previous releases incorrectly appended the StreamBase home directory itself, streambase-install-dir, to the Studio-launched Server PATH. This was removed from the Studio-launched Server PATH as of this release, which may result in changed behavior if your application came to rely on this undocumented feature in some way.

Expression Language Update

This release adds the getClientIP() function.

StreamBaseMonitor API Update

In previous releases, the StreamBaseMonitor class always included the monitored details for each running operator in the monitored Server. Starting with 7.2.1, you must use the enableOperatorDetail() method to obtain operator details.

What Was New in StreamBase 7.2.0

Fixes

StreamBase 7.2.0 fixed several product limitations, as described in the Resolved Limitations and Known Issues sections of the Release Notes.

Inherited from Previous Releases

StreamBase 7.2.0 inherited the updates and new features added to maintenance releases of previous release series, through and including releases 7.1.6, 7.0.11, and 6.6.17.

New and Updated Features

StreamBase 7.2.0 added the updates and new features shown in the following sections.

 Behavior Changes 

On-Disk Query Table Format Changed

The on-disk format for disk-based Query Tables was updated for release 7.2.0 to improve performance and take into account the new capture data type. Before migrating your application to 7.2, move all files in your Query Table data directory to a backup location. Then proceed as follows, depending on how you use disk-based 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 7.2 will recreate your transient Query Tables in the new 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 7.2 will create empty Query Tables in the new format, which will then 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 7.1 or earlier, then you must extract the persistent data from your current Query Table to a CSV file and reload the data in StreamBase 7.2 in a one-time operation. Use steps like the following:

    1. Open your application in your current StreamBase release.

    2. Add an Input Stream, Query operator, and CSV File Writer adapter. Connect the Query operator to the Query Table of interest.

    3. Configure the CSV File Writer adapter to accept the stream from the Query operator and write all rows to disk in CSV format. Make notes on the CSV options used, such as the field delimiter and whether a header row is written.

    4. Use the Query operator to send a Read operation that reads all rows from the table, and outputs all rows unmodified to a CSV file.

    5. Start StreamBase 7.2 using a new, empty data directory. Load a copy of your application, and let it recreate your Query Table.

    6. In StreamBase 7.2, use a CSV File Reader adapter and another Query operator to reload the data from the CSV file into the new Query Table. Use the same CSV Reader options you used for the CSV Writer in step 3.

    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 7.2. Contact StreamBase Support for assistance in implementing this procedure.

New Schema for Query Table Delta Streams

The schema for newly created Query Table delta streams was updated. The data field was replaced with the new or old fields. The operation field now reports update events as a single event, instead of the previous insert plus delete events. Existing applications that monitor a Query Table delta stream will continue to work without modification.

 New StreamBase Language Features 

Parent Schemas

Schemas can now extend a parent schema, which must be a named schema in the same module or in a module or interface explicitly imported into the current module. The child schema inherits all fields from the parent, then can extend the parent by adding fields appropriate for the local context. In the child schema, you cannot subtract or modify parent fields, but you can override an abstract parent field declared with a capture field (described below).

In any Edit Schema tab in the Properties view, there is now a Parent Schemas link to show the parent schemas in use. If the current schema is empty or is defined with a private schema, click the down-arrow next to the green plus icon and select Add Parent Schema. In the resulting dialog, select among the named schemas defined in or imported into the current module. In StreamSQL, specify parent schemas with the implements keyword in a create schema statement:

create schema child (foo int, bar int) implements parent1, parent2;

StreamBase Studio was updated to allow parent schema assignments when editing named schemas, table schemas, input streams, Union operators, output streams, Query Tables, and Lock Sets. See Using Parent Schemas for details.

Hygienic Modules and Interfaces

Starting with this release, modules and interfaces can be configured as hygienic, and newly created modules and interfaces now default to this behavior. A hygienic module requires that the schema of input streams for a Module Reference must strictly match the schemas configured inside the module. This has the benefit of eliminating field name conflicts and other difficult-to-debug typecheck errors, and allows for faster typechecking. Hygienic modules that require flexible input schemas must use the new capture fields functionality described next. Modules and interfaces created in previous releases retain their flexible settings by default when opened in release 7.2.0 or later. See Hygienic Modules.

Capture Fields

Starting with this release, modules designated as hygienic can be configured to have a capture field on their input stream schemas and table schemas. If a stream connected to a Module Reference contains additional fields not specified in the module's input schema, these additional fields are captured into the capture field, and are then passed around inside the module as an opaque blob. On output from the module, the captured fields are flattened back into the output stream with their original field names and data types.

The capture type is parameterized by a name, and all capture fields in a module with the same capture type name have the same payload type. The scope of the name binding is module-instance, so different instances of a module can capture different sets of fields to the same capture field name.

Input streams and Query Table schemas can contain exactly one capture field, which collects all additional fields. Hierarchical tuples can contain one capture field in each tuple and sub-tuple. Thus, output streams and outgoing table schemas can end up containing more than one capture field to be expanded; all such capture fields are expanded when exiting the module, potentially leading to name conflicts. See Capture Fields.

 Studio: New EventFlow Compare and Team Support 

Studio Now Includes Eclipse EGit

The EGit Eclipse plug-in provides seamless access to files managed by the Git version control system, including projects hosted on the Github repository. EGit documentation is now included as part of the Studio Help system. EGit joins CVS and Subversive as the three team provider version control plug-ins included with Studio.

Studio Open Files from Local History or Version Control Resources

Studio can now open EventFlow or StreamSQL files from the Eclipse local history. With a module file open and active, run WindowShow ViewOtherTeamHistory to open the History view. Be aware that when you open a file from local history, StreamBase typechecking is not run on that file, because resources referenced by the historical file may not also be open in Studio. Use a historical view of a module for quick reference.

Studio can also open files from version controlled resources managed by an Eclipse team provider plug-in. With such a plug-in installed and configured for use with your source code repository, Studio views are extended to allow selection from and browsing of the configured repository.

New EventFlow Compare

In previous releases, the Studio Compare Editor could only compare EventFlow modules as XML text, and could only compare two modules selected in the Package Explorer or one module against its history in the Eclipse local history view. Release 7.2.0 has extensively reworked the Compare Editor so that you can now compare the state of two EventFlow modules, or two versions of the same module, side-by-side in graphical as well as XML text forms. You can also now compare the state of one module against an earlier version or similar version stored in a supported version control system (CVS, Subversion, or Git).

A tree of components in the top panel is much like the Outline view. When you select the Application node at the top, the comparison by default is two side-by-side EventFlow canvases, with differences marked.

When you double-click an individual component in the top panel's tree, the comparison shifts to the Properties view differences between the two versions of that component. You can select individual tabs of the Properties view on either side of the comparison, and the other side tracks the change. The image below compares the Schema tab of the Query Table in the center of each canvas in the image above.

EventFlow Compare now includes a limited merge capability using the Copy selection from left to right and Copy selection from right to left buttons.

Release 7.2.0 includes layout file loaders for selected source control systems, including CVS and Subversion (accessed through the Subversive plug-in). These loaders handle the loading of an EventFlow module's companion .sblayout file when you ask to load the .sbapp module.

There are many ways to start an EventFlow Compare session for two modules, or a module and an earlier version. These include:

  • Compare the currently open module with a version in the Eclipse local history by using the Compare With or Replace With options in the right-click context menu for the EventFlow canvas.

  • Select two similar modules in the Package Explorer view and select Compare WithEach Other from the context menu.

  • Select two versions of the same module from a version control plug-in's history log for that module by selecting two versions and invoking Compare with Each Other from the context menu.

See Comparing EventFlow Modules for further details.

 Studio: EventFlow Debugger Improvements 

The EventFlow Debugger in Studio was extensively rewritten to provide the following new features and changes:

  • The Debugger now provides seamless debugging between EventFlow code and user-written Java code for functions, operators, and adapters.

  • The default, filtered Debug view includes frames that map to EventFlow arcs, and includes Java stack frames for code in custom adapters or operators and in Java code called from them. The default view excludes Java frames for StreamBase-proprietary server-side code.

  • If you toggle to show the unfiltered Debug view, frames that are normally excluded show in gray. Studio does not ship with source code for excluded frames, so attempts to open such source code still fails.

  • Stepping in the new EventFlow Debugger preserves the arc-level step semantics of previous releases, and adds the following:

    • When suspended at an arc that's an input to a custom Java operator, Step Into brings you into the operator's implementation. Specifically, the flow steps to the first line in the operator's processTuple() method.

    • When suspended at a sendOutput call in an operator's processTuple() method (or in a method directly or indirectly called by processTuple()), a Step Into sendOutput brings you back into the EventFlow stream, suspended at the arc that passes the sendOutput tuple to the next operator or stream.

    • When suspended in processTuple, doing a Step Over for a return statement (or stepping while at the closing brace ("}") of the processTuple method) brings you out of Java debugging and suspends at the next EventFlow arc traversed by the stepping process. While suspended anywhere in processTuple, doing a Step Return also brings you out of Java debugging and to the next traversed EventFlow arc.

  • Hit counts on arc breakpoints are now supported. For a given breakpoint, you can specify a hit count of 5, for example, to direct Studio to stop on the fifth time reaching that breakpoint.

  • You can export a set of breakpoints for a module and import them into another copy of Studio for use in the same module or a very similar one.

  • The Variables view now shows the contents of tuple fields, dynamic variables, Query Tables, and capture fields.

    • Tuple fields are now shown at the top level of the Variables view, and no longer need to be toggled open manually.

    • Dynamic variables are shown together in the Dynamic Variables node of the view, and Query Tables are shown in the Tables node. These nodes are shown at the top of the Variables view, but appear in the view only if they have contents.

    • Capture fields are shown when a schema contains one (but capture fields within capture fields are not shown).

  • The Debugger can now stop on breakpoints in early-running code, such as in the init() method for custom operators and adapters. However, to support early breakpoints, you must launch the Debugger in the background as described in Launching the Debugger in the Background.

Before debugging, see the Limitations and Cautions on the EventFlow Debugger page.

 Studio: Operator and Data Construct Updates 

Studio: Changes for the Query Operator

The Properties view for Query operators associated with Query Tables has the following changes:

  • The Operation Settings tab was split into Operation and Fallback tabs.

  • The Output Settings tab was renamed the Output tab.

  • For Query Read and Query Delete operations, the change in the Operation tab is the third option. Instead of match input with these values, followed by a field grid, you now have match input value in "Fallback". Specify the fallback field settings in the Fallback tab.

  • For Query Write operations, the Operation tab has a new look.

  • The Fallback tab and the Operation tab for Query Write operations now shows the operator's input schema in a column on the left, with key values marked with a key icon, and any change for a particular field listed for that field. You now specify either all input fields or none, and you specify all additions or changes to fields in the Additional Expressions grid. You can choose to Set or Ignore any field other than primary or secondary key fields.

  • For Query Write operations, if no matching row is found, you can now specify using alternate field values as listed in the Fallback tab.

See Using the Query Operator for further details.

Studio: Automatic Port Deletion for the Union Operator

Starting with this release, when you delete an arc entering a Union operator, or you delete the component immediately upstream of such an arc, the corresponding input port is automatically removed from the Union operator, and the count of input ports on the Union Settings tab of the Properties view is decremented.

Studio: Parameters Now Accepted in Heartbeat and Metronome Operators

You can now use parameters in the form ${parameter} for the timestamp values in the Metronome and Heartbeat operators.

Studio: Specify Initial Contents for Query Tables

The Properties view for Query Table data constructs has a new tab, Initial Contents. You can now specify that, at module startup, a Query Table is empty (the default setting), or is to be loaded from a specified CSV or JSON file, or is to be loaded from CSV or JSON values specified in the tab.

Any CSV loader file you specify must conform to a strict subset of the CSV features supported elsewhere in StreamBase. A JSON loader file must consist of a series of JSON object rows as defined by the JSON standard. If you provide a mismatched CSV or JSON file, or mismatched rows typed in the Initial Contents tab, the typechecking error is shown in associated Query operators, not in the Properties view for the Query Table itself. See Initial Contents Tab for details.

Studio: New Configure Sources Link for JDBC Tables

The JDBC Table data construct now has a hyperlink labeled configure sources on the Data Source tab of its Properties view. Use the link to open the project's server configuration file. If no configuration file exists for the current project, clicking this link opens the New StreamBase Server Configuration File dialog to create a new, empty configuration file. See Using the JDBC Table Data Construct.

Studio: JDBC Query Operator Reports Reconnection Events

When using a Query operator associated with a JDBC Table data construct, if a reconnection to the data source becomes necessary, a tuple is now emitted on the Error Output Port of the Query operator with the message Attempt reconnect to data source. When the reconnection succeeds, another tuple on this port reports Success reconnecting to data source.

 Studio: New Features and Updates 

Studio: New Annotations Tab

The EventFlow Editor has a new tab named Annotations. This contains a checkbox to make the current module hygienic, as described above, which is enabled by default for new modules. The new tab also contains per-module typecheck warning settings, described in Typecheck Warnings. See EventFlow Editor Annotations Tab.

Studio: Version Field Added to the Metadata Tab

The EventFlow Editor's Metadata tab now has a Version field that takes a string value. Use this field to track version numbers for individual EventFlow modules. The value is stored in the EventFlow XML, for use in EventFlow Compare.

Studio: Background Typechecking

Background typechecking, first seen as a preview feature in release 7.1.4, is now enabled as the default for release 7.2.0. Studio now runs all typechecking operations as a background task, with details visible on demand in the Progress view. Dialogs no longer display during typechecking. This feature allows you to enable the Automatically typecheck components preference even when editing large modules with long typecheck requirements. See Background Typechecking.

Studio: Compiler Cache

Studio now maintains a cache of compiled build artifacts when you run a module in Studio, and uses cached items when re-launching the same module. This can speed up launch times by 30% to 50% on subsequent launches. The cache is automatically maintained such that any portions of an application are rebuilt if changed, but unchanged portions are read from the cache. By default, the cache's location is temporary and starts over with each Studio session. Use WindowPreferencesStreamBase StudioCompiler Cache to specify using a persistent cache directory that maintains the cache between Studio sessions. On the same preference page, there is a Clear Cache Now button. See Compiler Cache Panel.

Studio: Editor for Unchanged Module Closes on Deletion

If an EventFlow Editor session is open for a module, and you delete that module from the Package Explorer view, the Editor session now closes automatically, if there are no unsaved changes pending for that module.

Studio: New Auto-Centering Preference

In the WindowPreferencesStreamBase StudioAuthoring panel, there is a new setting, Center canvas on selection during navigation. The setting is selected by default, preserving the behavior of previous releases, which is to auto-center the canvas on the selected component when navigating in two ways:

  • With the Back and Forward arrows in the Studio toolbar, or

  • In the Outline view, when the Follow Editor button is active.

When you clear this checkbox, Studio highlights the selected component on the canvas, but does not center the canvas. If the component is offscreen when selected, Studio moves just enough of the canvas to make the component visible.

Studio: Output Streams Subtab No Longer Blanked While Editing

In the Properties view, the Output subtab of the Streams tab now remains active while you edit the current component instead of going blank during edits, as before. The output schema shown in this subtab might become out of sync with the edits you are currently making, especially if you have automatic typechecking disabled. In this case, a message warns that this view is stale. As soon as typechecking succeeds, the Output subtab is updated.

Studio: Search Added to View Source

In a View Source dialog, you can now type Ctrl+F to invoke the standard Find/Replace dialog.

Studio: Located Typecheck Warnings in Properties View

In addition to typecheck warning decorations on component icons, typecheck warning text now appears in the Properties view for the affected component. These warnings direct you to the tab and field in error in the Properties view.

Studio: New Per-Module and Per-Project Typecheck Warning Controls

Typecheck warning messages were introduced in release 7.1.0, along with the ability to disable categories of warnings for the Studio workspace as a whole using WindowPreferencesStreamBase StudioTypechecking.

Starting with 7.2.0, you can also specify typecheck warning settings for individual EventFlow modules, or for all modules in a Studio project. For per-module warning settings, use the new Annotations tab of the EventFlow Editor. For per-module warning settings, use the StreamBaseProject Builder panel of the project's Properties dialog. See Typecheck Warnings for an overview, and see the EventFlow Editor Annotations Tab page for warning categories you can control.

Studio: Quick Fix for Typecheck Warnings in the Problems View

Typecheck warning messages seen in the Studio Problems view are now connected to the Eclipse Quick-Fix mechanism. Right-click a warning and select Quick Fix, as described in Typecheck Warning Quick Fixes in the Problems View.

Studio: Application Output View Now Dequeues system.error Stream

The error stream from the system container now appears by default in the Stream drop-down list of the Application Output view, and is by default a member of the (All Output Streams) list. As before, you can use the select link to include or exclude this stream from the output.

Studio: Copy as JSON in Application Output and Input Views

The right-click context menu in both the Application Input and Application Output views now includes Copy as JSON. Invoke this to copy the currently selected input or output tuple to the clipboard as a JSON object. Use this feature to quickly populate the input and expected output tuples for a StreamBase Unit test, using the com.streambase.sb.unittest.JSONTupleMaker class.

Studio: Refactor All JDBC Query Operators in a Module

Studio has a new Refactor JDBC Operators Schema Wizard that walks through a module and inspects all Query operators connected to JDBC data sources. If the SQL Statement in such a Query operator returns a result set, the wizard changes the operator to use the Explicitly declare fields below option, and populates the SQL Results fields grid based on executing the SQL statement and examining the result set. You can also run the wizard to revert all JDBC Query operators back to the Result set from SQL Query option. See Refactor All JDBC Query Operators for details.

Studio: Stream's Schema Description Now Shows in Manual Input View

In the Manual Input view, if the schema for a stream has an entry in its Schema Description field, or if there is a description for a named schema used by the stream, hovering over the information icon for the stream shows that description.

Studio: Feed Simulations From File, Double Quote is Now Default

When defining the structure of CSV files used as data input for feed simulations, in previous releases, Studio's Data File Options dialog used the single quote as the default quote symbol. Starting with release 7.2.0, the default quote symbol for this dialog is the double quote. See Generation Method: Data File.

Studio: Module and Resource Search Path Icons

In the Package Explorer, a project's subfolders that are in either the module search path or resource search path are now marked with the StreamBase logo as an overlay icon.

Studio: New Source Tab in Debug Configuration Dialog

The Debug Configuration dialog now includes a Source (Java) tab, which defines the location of source files used to display source when debugging Java code as part of your StreamBase application. By default, these settings are derived from the current project's Java Build Path. You can override the default settings in the Source tab.

Studio: Custom Icons Supported for Extension Point Operators

Use the General tab of the Properties view for an Extension Point operator to specify a custom icon for that operator to appear on the EventFlow canvas. Icon image files must be in PNG, GIF, or JPG format, and must exist in the project's resource search path. Size your image file as appropriate to fit on the canvas without displacing adjacent operators, aiming for a recommended size of no more than about 64x64 pixels. See Extension Point Operator, and see the ExtensionPoint.sbapp sample in the operator sample group for an example of an extension point with a custom icon.

 Command Line Utility Updates 

Updates for sbadmin

The sbadmin utility has two new commands:

manageJdbcConnections

This command is used with the following syntax:

sbadmin manageJdbcConnections close|count [datasource-name]

If your application has more than one JDBC connection, specify a datasource-name for the connection you want to manage, using a <data-source> name specified in the server configuration file. The count subcommand returns the number of open connections to this data source, while the close subcommand closes the JDBC connection without having to shut down the server or container.

restartContainer
sbadmin restartContainer container-name

The container-name argument is not optional. Restarts the specified container that was previously stopped with the shutdown command.

Updates for sbc and jsbc
readTable

The sbc and jsbc utilities have a new command, readTable, which is used to dump all rows or selected rows of a Query Table or Materialized Window in a running application. You can limit the selection of rows with the --where argument and a predicate expression. Address the table or window as usual with the syntax [containername.][modulename.]tablename, where containername does not need to be specified for the container named default. See the usage text for the sbc and jsbc utilities and the Javadoc for the new StreamBaseClient.readTable() method to understand the command's options.

list tables

The list command of the sbc and jsbc utilities now includes the names of Query Tables and Materialized Windows by default or with the -a option. You can restrict the list to only tables with sbc list tables.

 Expression Language Updates 

The following function was added to the StreamBase expression language in release 7.2.0:

  • Use the contains() function to determine whether a string contains a specified substring. This function returns a boolean value.

    bool contains(haystack string, needle string)
    

The following functions were added in recent maintenance releases:

Comparison expressions that always return null, such as x==null, now result in a warning that you probably meant to use the isnull() function.

 Adapter Updates 

Thomson Reuters RMDS Adapters Renamed

The three Thomson Reuters RMDS adapters were renamed to reflect the new name of the protocol formerly known as RMDS: Thomson Reuters Enterprise Platform for Real-Time, or TREP-RT. The adapters are otherwise unchanged. See:

Thomson Reuters Enterprise Platform for Real-Time Subscribing Input Adapter
Thomson Reuters Enterprise Platform for Real-Time Publishing Output Adapter
Thomson Reuters Enterprise Platform for Real-Time Contribution Output Adapter
Thomson Reuters Enterprise Platform for Real-Time Subscribing Input Adapter Sample
Thomson Reuters Enterprise Platform for Real-Time Publishing Output Adapter Sample
Thomson Reuters Enterprise Platform for Real-Time Contribution Output Adapter Sample
New Summary Column in Thomson Reuters Schema Designer View

The Results grid in the Thomson Reuters Schema Designer view now has an In Summary column, which for each FID row is either blank or contains Yes. Use this column to help select fields when generating a schema for a summary-only tuple. See Thomson Reuters Schema Designer View.

FIX/FAST Support Added to FIX Schema Designer

The FIX Schema Designer (FSD), added in releases 7.0.8 and 7.1.3, now supports the FIX/FAST protocol. FAST stands for FIX Adapted for STreaming, and is a FIX variation used by some trading venues. To design a schema to communicate with such a venue, select FAST Data Dictionary File in the FSD's Select Data Dictionary dialog, then navigate to select the dictionary file provided by the venue. In all other ways, the FSD works the same as before.

IBM WebSphere MQ and Wall Street Systems Adapters Updated

The input adapters for IBM WebSphere MQ and Wall Street Systems were updated with two new properties: Include Depth Field and Syncpoint on Get. These properties are enabled by default for compatibility with previous releases of these adapters. Disabling both settings significantly improves performance of these adapters. See IBM WebSphere MQ Input Adapter and Wall Street Systems Input Adapter.

CitiFX FIX Adapter Terminology Updated

The labels for properties of the CitiFX FIX adapter where changed to match current usage in the CitiFX specifications, from Spot to ESP and from RFX to RFS. Existing applications will automatically transition to using the new terms.

IP Adapter Family Now Supports 64-bit StreamBase Server on Windows

StreamBase includes four adapters that take advantage of the third-party WinPcap libraries on Windows, or the libpcap libraries on Linux: the HTTP, IRC, POP3, and SMTP input adapters. Starting with release 7.2.0, these adapters now work with the 64-bit version of StreamBase Server on 64-bit Windows, if you install the latest WinPcap libraries. You no longer need to run the 32-bit Server on 64-bit Windows to use these adapters. On Linux, support is still restricted to StreamBase built for 32-bit Linux platforms.

 API Changes 

Use New Client Header For All C++ Development on Windows

When developing C++ native code for Windows using any of the supported compilers, specify the new <streambase/Client.hpp> header file in your code instead of the old StreamBaseClient.hpp file. The new file identifies when the Visual C++ 2010 compiler is in use and arranges for the correct, compiler-specific version of the supporting libraries to be automatically loaded. See Configuring Visual C++.

Performance Improvements in the .NET Client Library

The .NET Client Library was rewritten to improve the performance of creating tuples and accessing tuple field values, with initial tests showing a speedup of 10 to 40 times from the previous API. Most of the .NET API for building StreamBase clients is now a pure .NET implementation, although some classes (such as StreamBaseClient) remain based on the C++ API. (The .NET API for building StreamBase Server monitor applications is unchanged.)

Rewriting most of the API as pure .NET forced some changes in the interface, as described in Migrating .NET Clients in the API Guide. You may need to make source code changes for existing .NET client applications and recompile them in order to accommodate the new API.

Access to Query Tables from Java Operators

Use the provisional new Java interface, TableAccessor, in com.streambase.sb.operator to access Query Tables from user-written Java operators and adapters. This API may change in future releases, but we encourage customers to use it now and report results to StreamBase Technical Support.

Read Query Table Rows from Java Clients

In the Java and C++ Client Libraries, use the new readTable() method in the StreamBaseClient class to display all or a specified number of rows from a Query Table or Materialized Window. The .NET API has an analogous new method StreamBaseClient.ReadTable(). The readTable() functionality is also provided in the form of commands for the sbc and jsbc utilities, described above.

Warning About Schema Names

The Javadoc for the Schema class now includes a warning that all Schema constructors that take a String name argument should only use null as as the schema name when used by clients, custom operators, and custom adapters. Using a non-null schema name may result in unpredictable behavior in Studio while authoring and typechecking, especially when a named schema exists with the same name. The name argument may be deprecated in a future release.

Schema.hasField(String) Removed

The hasField(String) method was removed from the Schema class, leaving hasField(CharSequence). This change requires you to recompile your existing Java code.

Tuple.getSizeUpperBound() Removed

The getSizeUpperBound() method was removed from the Tuple class. This method was not part of the published API, but if your code uses this method anyway, replace it with getTupleLength() (also an unpublished method) or rewrite the code to remove the need to determine a tuple's size in bytes.

ByteOrder Related Methods Deprecated

All methods related to ByteOrder, previously marked with @exclude, but visible with Eclipse's auto-completion feature, are now marked as deprecated.

One .NET Method Renamed

In the .NET Client Library, the StreamBaseClient::SetDynamicVariable() method was renamed as shown here, with an initial uppercase S. The previous spelling with lowercase s was retained for compatibility, but is now deprecated.

SBTestEnvironment and BaseTestEnvironment Simplified

In the com.streambase.sb.unittest package, the SBTestEnvironment interface and its implementation BaseTestEnvironment were simplified to avoid a compile time dependency on sbserver.jar. This change break backwards compatibility on these classes and their subclasses. Most subclasses will only need to delete the method createRuntimeEnv().

 Deprecated Features 

The following StreamBase features are deprecated as of release 7.2.0 and will be removed in a future release:

  • Security tagging.

  • The JDBC External Adapter. Instead, use a JDBC Table data construct and Query operator.

  • The TIBCO Rendezvous External Adapter. Instead, use the embedded TIBCO Rendezvous Input and Output adapters.

  • The Managed Publishing External Adapter for Thomson Reuters RFA for Windows.

  • In previous releases, the External RFA adapter built for 32-bit Linux was also made available privately to meet certain customer requirements; this Linux version is no longer available.

  • The Lock and Unlock operators and the Lock Set data construct.

  • Implicit conversion to string in queries.

  • In predicate-based Aggregate operators, using last field name qualifier is deprecated. Instead, use input.fieldname.

The Materialized Window data construct remains available in StreamBase, but its use is discouraged. Materialized Windows may be superseded in a future release by a new feature with similar capabilities.

 Platform Changes 

Studio Now Based on Eclipse 3.7.1

For release 7.2, StreamBase Studio is based on Eclipse 3.7.1. When installing Studio in the form of plug-ins for a separate copy of Eclipse, you must start with Eclipse 3.6 or 3.7. Eclipse 3.5 is no longer supported for that purpose. See Studio Eclipse Update Site.

Linux GCC 3.3 Edition Retired

For previous StreamBase releases, StreamBase Systems made available a special edition for 32-bit Linux built using the GCC 3.3 compiler, for use with third-party libraries that required using GCC 3.3 or earlier. In particular, this edition supported the privately built Reuters RFA adapter for 32-bit Linux. Advancements in other libraries used by StreamBase make it no longer possible to support the Linux-GCC33 build or the Reuters RFA adapter for 32-bit Linux. Customers using Linux can still subscribe to RMDS 5 feeds using the embedded Thomson Reuters Enterprise Platform for Real-Time Subscribe Adapter (formerly named the Thomson Reuters RMDS Subscribe adapter).

Support for Visual Studio 2010

This release adds Microsoft Visual Studio 2010 to the list of supported compilers for building custom C++ clients and .NET clients on Windows. This means StreamBase now supports version 4 of the .NET framework when used with Visual Studio 2010. See Configure Visual Studio 10.0 Projects to Build Clients for details.

Windows Native SDK Kit Now a Separate Installation

In previous releases, the primary StreamBase kit included the DLL and library files required to build C++ clients and custom functions on Windows. Starting with release 7.2.0, those files are now in a separate kit with its own installation package.

To develop C++ native code for Windows, after you install StreamBase, you must now install the Windows Native SDK Package from the installer file provided as a separate download from download.streambase.com. The same kit is on the StreamBase DVD-ROM and on the downloaded ISO image file. In all cases, the installer file's name is in the form StreamBase-windows-native-SDK-release-datecode.msi. There is one installer package for both 32-bit and 64-bit editions of Windows. Development in a .NET language does not require this kit. See Configuring Visual C++.

Support for Vertica 5.0

This release adds support for Vertica 5.0, both for JDBC access and for high-performance bulk loading with native connectivity.

Logback Version Updated

The bundled version of Logback logging was updated from 0.9.26 to 0.9.30. The version of SLF4J is now 1.6.3.

 Sample Updates 

The sample modules and applications included in the StreamBase kit were updated as follows:

New Sample: Capture Fields for Generic Data Store

Demonstrates how to use a capture field in the schema of a Query Table to make that table reusable in different copies of its containing module. Each instance of the table holds key-value data with different value data types for different instances. See Capture Fields for Generic Data Store Sample.

New Sample: Capture Fields and Parent Schemas

Demonstrates how to use capture fields in conjunction with parent schemas to create a reusable module that can match orders for FX trading in one instance and can match orders for Equities trading in another copy of the identical, unchanged module. The module uses abstract schemas for its input stream and Query Table that become concrete schemas in actual use. See Capture Fields and Parent Schemas Sample.

New Sample: Read Table

Provides sample Java code that illustrates the new StreamBaseClient.ReadTable() method, which is used to display all or a specified number of rows from a Query Table or Materialized Window.

New Sample: Table Operator

Provides sample Java code that illustrates the use of methods in the TableAccessor class that lets Java operators and adapters interact with Query Tables. In particular, this class lets you insert and replace rows, read a single row based on the primary index, perform more complex multi-row queries, delete rows, and truncate entire tables.

Client Sample Updated

The client sample was updated to provide a solutions file for Visual Studio 2010, and to use the new header file, as recommended in API Changes above.

 Documentation Updates 

The StreamBase documentation for release 7.2.0 included the following updates independent of the above updates:

  • A new page in the Authoring Guide, Copy-Paste of EventFlow Components, describes a procedure to prepare a new target module to accept a copy of components that reference schemas or variables in the origin module.

What Was New in StreamBase 7.1.7

Fixes

StreamBase 7.1.7 fixed several product limitations, as described in the Resolved Limitations and Known Limitations sections of the Release Notes.

Updates from Previous Releases

StreamBase 7.1.7 inherited the updates and new features added to maintenance releases of previous release series, through and including releases 7.0.12 and 6.6.18.

New and Updated Features

StreamBase 7.1.7 added the following updates and new features:

New Velocity Analytics Adapters

This release includes two adapters contributed by Thomson Reuters for connecting to the Thomson Reuters Enterprise Platform for Velocity Analytics. These are the Velocity Analytics Broadcast Server Input Adapter and the Velocity Analytics UTSS Output Adapter. Both adapters are illustrated in a new set of samples, described in Thomson Reuters Velocity Analytics Samples.

New Exegy Adapters

Release 7.1.6.2 included a new adapter for the Exegy Ticker Plant data feed. The adapter is described in Exegy Input Adapter in the Adapters Guide, and has a sample, described in Exegy Adapter Sample in the Samples Guide.

In addition, there is a new Exegy Monitoring adapter described in Exegy Monitoring Adapter. The Exegy sample includes modules that illustrate both the Exegy Input and Exegy Monitoring adapters.

Behavior Change for Server Configuration File Errors

Certain typecheck errors in a server configuration file can result in the entire file considered invalid and discarded for a particular run of StreamBase Server. The handling of these errors was changed as of this release.

In previous releases, an error such as a failure to locate the files that support a custom function class would result in logging a warning to the Error Log or Problems view. To ensure that errors of this type are not missed (since they are often the root cause of other application typecheck errors), Studio now shows these errors as an error against the server configuration file itself.

PATH Changes for Studio-Launched Server

The PATH environment variable passed to StreamBase Server when launched from Studio now includes the streambase-install-dir/bin directory appropriate for the platform. This feature only affects the ability to locate StreamBase utility commands when run from within StreamBase Server by means of an External Process operator or the SB Admin operator. For Linux, a Studio-launched Server's PATH includes /opt/streambase/bin. For 32-bit Windows and for a 32-bit Server launched from 64-bit Windows, the Studio-launched Server PATH includes streambase-install-dir\bin. For 64-bit Windows, the PATH includes streambase-install-dir\bin64;streambase-install-dir\bin.

The Return of Slanted Arcs

As of this release, there is a new preference setting in the WindowPreferencesStreamBase StudioAuthoringEventFlow Rendering panel, Use slanted arcs during arc routing and auto-layout.

When enabled (the default), arcs placed by the Layout Application (Ctrl+L) and Reroute Arcs (Ctrl+Alt+L) functions are shown with an angled slant between components. When disabled, arcs are only placed horizontally or vertically, with right angles for every direction change. This feature restores to release 7.1.7 and later the layout cosmetics of StreamBase releases 6.6 and earlier. In addition, an automatically laid out module is now slightly denser than in earlier 7.x releases.

Expression Language Updates

This release adds the getParallelRoot() function.

Pattern Operator Now Accepts Parameters for Window Size

In the Pattern operator, the Window Size field in the Pattern Settings tab now accepts a module parameter in the form ${ParamName}.

FIX/FAST Support Added to FIX Schema Designer

The FIX Schema Designer (FSD), added in release 7.1.3, now supports the FIX/FAST protocol. FAST stands for FIX Adapted for STreaming, and is a FIX variation used by some trading venues. To design a schema to communicate with such a venue, select FAST Data Dictionary File in the FSD's Select Data Dictionary dialog, then navigate to select the dictionary file provided by the venue. In all other ways, the FSD works the same as before.

IBM WebSphere MQ and Wall Street Systems Adapters Updated

The input adapters for IBM WebSphere MQ and Wall Street Systems were updated with two new properties: Include Depth Field and Syncpoint on Get. These properties are enabled by default for compatibility with previous releases of these adapters. Disabling both settings significantly improves performance of these adapters. See IBM WebSphere MQ Input Adapter and Wall Street Systems Input Adapter.

Thomson Reuters TREP-RT Subscribing Input Adapter Updated

The Thomson Reuters Enterprise Platform for Real-Time (TREP-RT) Subscribing Input adapter (formerly known as the Thomson Reuters RMDS Subscribing Input adapter) now supports thin tuples for the MarketPrice message model. Previously, thin tuples were supported for the MarketFeed message model only, although the adapter incorrectly allowed thin tuples to be configured for other message models.

In addition, the adapter gained a new property, Include Subscribe Pass-Thru Field property on the Tuple Properties tab of its Properties view. When selected, this property requires a field named PassThru to be added to the schema of the DynamicSubscribe input port. There are no constraints on this field's data type. The adapter copies the value from this field to a corresponding field of each each market data tuple emitted as a result of the subscription.

TIBCO Rendezvous Input Adapter Updated

The TIBCO Rendezvous Subscribing Input Adapter has a new property, Ignore Advisory Messages. When enabled, the adapter discards messages with subjects that begin with _RV.

E-mail Sender Output Adapter Updated

The E-mail Sender Output Adapter has two new properties, Enable Event Port and Event on Send Success. When the first is enabled, the adapter gains an event output port that emits event tuples when errors occur sending e-mail. When the second property is enabled, the event port also emits a tuple when e-mail is successfully sent.

Platform Support Changes

This release adds support for Vertica 5.0, both for JDBC access and for high-performance bulk loading with native connectivity, and drops support for Vertica 3.5.

The JAR files supporting the StreamBaseFIX FIX engine were updated to version 2.10.7. The JAR files supporting FIX/FAST were updated to version 2.11.8.

Documentation Updates

What Was New in StreamBase 7.1.6

Fixes

StreamBase 7.1.6 fixed several product limitations, as described in the Resolved Limitations and Known Limitations sections of the Release Notes.

Updates from Previous Releases

StreamBase 7.1.6 inherited the updates and new features added to maintenance releases of previous release series, through and including releases 7.0.11 and 6.6.17.

New and Updated Features

StreamBase 7.1.6 was reissued in December, 2011 to include a new adapter:

New Exegy Adapter

This release includes a new adapter for the Exegy Ticker Plant data feed. The adapter is described in Exegy Input Adapter in the Adapters Guide, and has a sample, described in Exegy Adapter Sample in the Samples Guide.

StreamBase 7.1.6 added the following updates and new features:

Thomson Reuters RMDS Adapters Renamed

The three Thomson Reuters RMDS adapters were renamed to reflect the new name of the protocol formerly known as RMDS: Thomson Reuters Enterprise Platform for Real-Time, or TREP-RT. The adapters are otherwise unchanged. See:

Thomson Reuters Enterprise Platform for Real-Time Subscribing Input Adapter
Thomson Reuters Enterprise Platform for Real-Time Publishing Output Adapter
Thomson Reuters Enterprise Platform for Real-Time Contribution Output Adapter
Thomson Reuters Enterprise Platform for Real-Time Subscribing Input Adapter Sample
Thomson Reuters Enterprise Platform for Real-Time Publishing Output Adapter Sample
Thomson Reuters Enterprise Platform for Real-Time Contribution Output Adapter Sample
New Summary Column in Thomson Reuters Schema Designer View

The Results grid in the Thomson Reuters Schema Designer view now has an In Summary column, which for each FID row is either blank or contains Yes. Use this column to help select fields when generating a schema for a summary-only tuple. See Thomson Reuters Schema Designer View.

Update for Several StreamBase Utility Commands

The StreamBase utilities jsbadmin, jsbc, sbbundle, and sbfeedsim were updated to accept the -J option anywhere on the command line instead of its former required first position. You can now specify -J options with or without a following space.

Update for the eval() Function

The expression language's eval() function gained an optional fourth parameter to specify the evaluation cache size. See eval().

What Was New in StreamBase 7.1.5

Fixes

StreamBase 7.1.5 fixed several product limitations, as described in the Resolved Limitations and Known Limitations sections of the Release Notes.

Updates from Previous Releases

StreamBase 7.1.5 inherited the updates and new features added to maintenance releases of previous release series, through and including releases 7.0.11 and 6.6.17.

New and Updated Features

StreamBase 7.1.5 added the following updates and new features:

Performance Improvements in the .NET Client Library

The .NET Client Library was rewritten to improve the performance of creating tuples and accessing tuple field values, with initial tests showing a speedup of 10 to 40 times from the previous API. Most of the .NET API for building StreamBase clients is now a pure .NET implementation, although some classes (such as StreamBaseClient) remain based on the C++ API. (The .NET API for building StreamBase Server monitor applications is unchanged.)

Rewriting most of the API as pure .NET forced some changes in the interface, as described in Migrating .NET Clients in the API Guide. You may need to make source code changes for existing .NET client applications and recompile them in order to accommodate the new API.

Timeout Setting per Query Operator for JDBC Connections

The Query operator associated with a JDBC data construct has a new property, Timeout, on the Query Settings tab of the Properties view. Use this field to specify an integer time in milliseconds after which this particular query times out. You can still use the jdbc-query-timeout option in the <data-source> element of the server configuration file to specify a default timeout for all queries to that data source.

New Property for JDBC Connections

This release adds the Java system property streambase.jdbc.max-repeat-exceptions. The default value of 1 tells StreamBase Server that a single instance of a JDBC exception is regarded as an exception. Specify zero to mean that JDBC exceptions can be repeated without limit. Use an integer, n, greater than 1 to specify that JDBC exceptions might occur n times before succeeding.

C++ Client Library Update

The Timestamp class in the C++ Client Library now uses snap to end of month semantics for the setMonth() method. The following code fragment illustrates how this works:

Timestamp tm;
tm.setYear(2011);
tm.setMonth(10);
tm.setDayOfMonth(31);
// tm now represents October 31, 2011
tm.setMonth(2);
// tm now represents February 28, 2011
New Option for the sbd Command

The sbd command has a new option, --override-version-check. By default, when you ask StreamBase Server to run a bundle file, it checks the StreamBase version that created the bundle and refuses to run a bundle not created with the same major.minor release number. You can use the new option to direct the server to override this check and try to run the bundle file anyway. Incompatibilities between the bundled application and the server may still prevent the bundle from running.

New and Updated Options for the sbargen Command

The --if-modified option of the sbargen command, when determining whether an application needs to be re-archived, now ignores changes in files whose names match the following default regular expression patterns:  .*\.log,  .*\.bak,  .*~, and  #.*#

You can customize the list of exclusion patterns with the new --exclude-pattern option, which can be specified multiple times.

New Expression Language Function

The expression language gained the join() function, the opposite of split(). Use join() to return a string formed by concatenating the members of a list of any type, and interposing a specified character or string between each element.

Excel Adapter Updated

The Excel External adapter was updated such that the buffer-size configuration parameter and TUPLENUM tag are now limited to values between 1 and 1000. Prior to this change, there was no limit on buffer-size, and TUPLENUM was limited to values between 1 and 999.

JMS Adapter Updated

The embedded JMS Input and Output adapters were updated such that the following events are now sent to the Status output port:

Connecting
Connection Failed
Connection Retries Exceeded

In addition, both adapters have a new property Log Full Call Stacks. When selected, exception call stacks are shown independent of the adapter's Log Level setting.

29West LBM Adapters Updated

The 29West LBM Subscribing and Publishing adapters were updated to support pre-defined messages. Enable support for this feature with the new Enable Pre-defined Messages property. The adapters have several other new properties that control how a publish and subscribe adapter pair agree on message definitions in cooperation with the StreamBase schema.

Documentation Updates

The StreamBase documentation for release 7.1.5 included the following changes independent of the above updates:

  • On the Expression Language Functions page, the descriptions for the strptime(), strftime(), and strpinterval() functions now have tables that describe the supported format pattern strings, instead of off-page references to Open Group documentation. The interval() function refers back to strftime() for its pattern string descriptions.

    Likewise, the description of the format_time() function now has a table of the supported pattern characters from the Java SimpleDateFormat class, instead of references to the Java documentation. The parse_time() and timestamp() functions refer back to format_time().

    These changes make it easier for StreamBase developers working on a computer with no Internet access.

What Was New in StreamBase 7.1.4

Fixes

StreamBase 7.1.4 fixed several product limitations, as described in the Resolved Limitations and Known Limitations sections of the Release Notes.

Updates from Previous Releases

StreamBase 7.1.4 inherited the updates and new features added to maintenance releases of previous release series, through and including releases 7.0.10 and 6.6.16.

New and Updated Features

StreamBase 7.1.4 added the following updates and new features:

Beta Feature: Background Typechecking

This release includes a preview of the background typechecking feature, which is expected to be added to a future release. To enable, use WindowPreferences, then open the StreamBase StudioTypechecking panel and select the check box labeled Typecheck EventFlow Editors in background. This directs Studio to run typechecking operations as a background task, with details visible in the Progress view. In the default disabled state, Studio shows a modal dialog box during long typecheck operations.

This feature allows you to enable the Automatically typecheck components preference even when editing large modules with long typecheck requirements. If you encounter any issues using this feature, report them to StreamBase Technical Support.

Windows Installers Are Now Digitally Signed

As of this release, all Windows MSI installer files are digitally signed, including the installers for external adapters and Frameworks.

Aggregate Operator Updated

The field name qualifier input. is now valid in expressions in the Aggregate operator, and has the same meaning as the input1. qualifier.

JMX Management Bean Extended

Since release 7.0, StreamBase Server has been instrumented with a JMX-compliant Managed Bean that provides access to status information and provides control methods similar to the sbadmin command. As of this release, JMX support is extended to allow management of dynamic variable values, and to allow several profiler operations. See JMX Support.

Better Support For Multiple Editor Windows on the Same File

This release of Studio provides better support for opening two or more EventFlow Editor sessions on the same EventFlow file. This feature is described on the EventFlow Editor Canvas topic of the StreamBase Studio Reference.

Studio Now Allows Multiple-Selection Deletes in the Definitions Tab

In the Definitions tab of the EventFlow Editor, the Delete key is no longer blocked if you selected multiple constants, schemas, and table schemas at the same time. This allows you to delete multiple related items in one pass.

Studio New Menu Now Includes Java Class and Interface

As a convenience, the New menu in Studio now includes entries for Class and Interface, which lets you create new Java class or interface files without switching to the Java perspective. If you start this release with an existing Studio workspace from a previous release, you must run WindowReset Perspective to make this feature visible.

Studio New Feature: Insert Global Java Operator Directly Into Arc

Release 7.1.0 introduced the ability to drag an operator from the Palette view and insert it directly into an arc, with automatic reconnection of the arc to the operator's input and output ports. As of 7.1.4, you can now insert a global Java operator into an arc in the same ways. This feature does not work for the StreamBase Admin operator (which has only an input port by default), but works for the other four global Java operators and for any custom Java operators that have at least one input and one output port. The same feature works by selecting the arc of interest, then invoking the O V keyboard shortcut. This feature is described in Inserting a Component Into an Arc.

Imported Projects Now Create java-src Folder

When exporting a Studio project to an archive file, Studio does not add the java-src folder to the archive if the folder is empty. In previous releases, when importing that archive file into Studio, the project would fail typechecking only because of the required but missing java-src folder. Starting with this release, when importing projects from an archive file, Studio automatically adds the java-src folder if not present in the archive.

Two New Expression Language Functions

The functions new_tuple_subset() and new_tuple_subset_loose() were added to the expression language.

.NET Client Library Updated

To provide better alignment of the StreamBase .NET Client Library with the Java Client Library, the .NET API was updated to add new field creation methods to StreamBase.SB.Schema, and to deprecate older field creation methods.

Java Client Library Updated

In the com.streambase.sb.unittest package, in class SBServerManager, the startContainers() methods that accept an initial Set<String> argument were extended to accept null as an empty set. The result is to start all containers.

Trading Technologies Adapter Updated

The Trading Technologies FIX adapter was updated to support through version 7.7.2 of the Trading Technologies data dictionary.

Wombat MAMA Input Adapter Supports MAMA API Version 5

The Wombat MAMA Input adapter was updated to support version 5 of the MAMA API. To specify the use of MAMA version 5, in the adapter's Properties view, for the MAMA Version property, select 4.x and above, which is now the default setting.

TBF Input Adapter Updated

The TBF Input adapter was updated to add new configuration options, QueueCapacity, RequestRetransmitOnHeartbeatTimeout, and to increase the default blocking capacity of the adapter.

IBM WebSphere MQ Adapter Updated

JAR files provided by IBM that support WebSphere MQ are no longer shipped as part of the StreamBase kit. Documentation topics for the IBM WebSphere MQ Input and Output adapters and sample were updated to describe where to install the MQ JAR files you obtain from IBM.

Deutsche Bank AutobahnFX Trading System Adapter Updated

JAR files provided by Deutsche Bank that support the AutobahnFX Trading System are no longer shipped as part of the StreamBase kit. Documentation topics for the AutobahnFX Trading System adapter and its sample were updated to describe where to install the Autobahn FX JAR files you obtain from Deutsche Bank.

UBS FIX Adapter Updated

The data dictionary for the UBS FIX adapter was updated to the latest version.

E-mail Sender Output Adapter Updated

The E-mail Sender Output adapter was updated to send its e-mail messages in a separate, background thread and to add the new Outgoing Message Queue Capacity property. Set this to a value large enough to accommodate the maximum expected e-mail message burst.

Log Output Adapter and Sample Updates

The Log Output Adapter sample was revised to show three examples of formatting that the adapter can apply to log messages. The Log Output adapter topic in the Adapters Guide was revised, corrected, and expanded, and now describes the Log Asynchronously option. The sample's topic in the Samples Guide was revised and expanded.

Binary File Reader Adapter Updated

The Binary File Reader adapter now emits a close event tuple when it finishes reading a file.

Documentation Updates

The StreamBase documentation for release 7.1.4 included the following changes independent of the above updates:

  • The instructions for configuring Visual C++ to build StreamBase clients and custom functions for Windows were expanded and clarified. See Configuring Visual C++.

  • In the Authoring Guide topic for the Query operator, the Output Settings Tab section was reorganized and expanded, and has a new subsection, Using Aggregate Functions. The Group Options Tab section was entirely rewritten and corrected.

  • Notes were added to the Expression Language Features and Dynamic Variables topics to clarify that, in any expression anywhere in StreamBase, unqualified names are resolved first against the names of any dynamic variables in the current module, and then against the names of fields in currently available streams. This means that a dynamic variable named foo can inadvertently mask a field also named foo, depending on context.

  • The section for the -b option on the sbd reference page, and the Background Mode on Windows section of the Server Background Mode and Logging page were rewritten to emphasize and better explain why we discourage running sbd -b on Windows.

  • The expression language's nanotime() function was moved from the Timestamp category to the System category with an updated description.

What Was New in StreamBase 7.1.3

Fixes

StreamBase 7.1.3 fixed several product limitations, as described in the Resolved Limitations and Known Limitations sections of the Release Notes.

Updates from Previous Releases

StreamBase 7.1.3 inherited the updates and new features added to maintenance releases of previous release series, through and including releases 7.0.8 and 6.6.14.

New and Updated Features

StreamBase 7.1.3 added the following updates and new features:

New FIX Schema Designer

This release introduces the FIX Schema Designer, which provides a way to generate named schemas for a set of FIX message types for use with the FIX adapter or any StreamBase adapter that uses the FIX protocol. See FIX Schema Designer View for details.

If you use an existing Studio workspace after installing this release, the FIX Schema Designer view may not appear by default. In this case, either run WindowReset Perspective for the SB Authoring perspective, or directly open the new view with WindowShow ViewOtherStreamBase FIXFIX Schema Designer.

New Private Folders Feature

In the Module Search Path panel of the Project Properties dialog, you can now designate folders as private. Modules and interfaces in private folders remain in the module search path for the containing project, but are removed from the module search for any referencing projects. See Private Module Folders on the Module Search Path page.

New Feature: Insert Adapter Directly Into Arc

Release 7.1.0 introduced the ability to drag an operator from the Palette view and insert it directly into an arc, with automatic reconnection of the arc to the operator's input and output ports. As of 7.1.3, you can now insert an input or output adapter into an arc in the same ways. This feature only works for adapters whose default configuration has at least one input port and at least one output port. If the adapter has more than one input or output port by default, the arc is connected to the first port on that side. Adapters that do not meet this criterion are dropped onto the canvas as before at the arc's location. This feature is especially useful for inserting a Log Output adapter into an arc by dragging the Output Adapter icon from the Palette view to the arc. This feature is described in Inserting a Component Into an Arc.

StreamBase Authentication Updates

StreamBase Server authentication against LDAP servers that formerly required using the StreamBase Proxy Server was moved to StreamBase Server itself, and was updated to authenticate and authorize users against multiple LDAP domains. These features are enabled by means of the following new or updated child elements of the security element of the server configuration file:

  • localhost-only element.

  • param names enabled, truststore, and truststore-password for the ssl-authentication element.

  • The ldap-server-algorithm param now supports the first-hit value in addition to round-robin.

  • New param names role-root, role-search, and role-attribute for the server element allow you to define Active Directory or other LDAP servers using root-dn/password credentials, and to query and retrieve user role information from the LDAP server.

Initial documentation for these features is in comments in the skeleton configuration file generated with sbd -s.

Copy Schema From Dialog Now Supports Interfaces

You can now copy schemas from streams and components in interface files as well as from EventFlow and StreamSQL modules, when using the Copy Schema From dialog. See Copying Schemas in the Authoring Guide.

Studio Now Remembers Selected Output Streams Between Application Runs

For each application or module run in StreamBase Studio, Studio now stores the output streams you select for viewing in the Application Output view, and restores the same stream selection the next time you run the same application. The saved stream selections persist even if Studio is closed and reopened. When you launch another application for the first time, the stream selection in the Application Output view is reset to All Streams.

Module Call Hierarchy View Updated

Entries in the Module Call Hierarchy View now show the name of an Extension Point first, followed by the StreamBase interface file implemented by that extension point. This more accurately reflects the action to expect from double-clicking an extension point name, which is to select and highlight that extension point in the EventFlow Editor for the containing module. To open the interface file itself, right-click and select Open Module File from the context menu, as before.

Trace Debugger Color Legend

The Trace Debugger view now has a link that pops up a reminder of the color legend for the debugger.

.NET Client Library Update

In the .NET Client Library, the StreamBase::SB::Timestamp class was made serializable.

New BM&FBovespa UMDF Adapter

The BM&FBovespa UMDF adapter allows a StreamBase application to connect to BM&FBovespa's Unified Market Data Feed to receive market data in the form of FIX/FAST messages. The adapter uses the high-speed, low-latency StreamBaseFIX engine to decode the incoming FAST messages. The adapter is described in BM&FBovespa UMDF Input Adapter and has a sample, described in BM&FBOVESPA UMDF Input Adapter Sample.

Excel External Adapter Updated

The Microsoft Excel External adapter was updated to optionally prompt for a password, which it automatically enciphers and passes to StreamBase Server for authentication. Enable this feature by setting the prompt-for-password element's value to true in the adapter's configuration file. This feature is described in the Configuration File section of the Excel adapter documentation.

Thomson Reuters RMDS Subscribing Input Adapter Sample Updated

The sample for the Thomson Reuters RMDS Subscribing Input adapter was updated to add useMarketfeedUpdateType=true to its default configuration file. For SSL connections when using the Market Feed message model only, this directs the adapter to emit Market Feed corrections as CORRECTION messages.

Lime Citrius Adapter Updated

The Lime Citrius Quote adapter was updated to use version 2.0.6 of the Lime Citrius API.

TBF Input Adapter Updated

The TBF Input adapter was updated to add a STAMP configuration parameter, RetranRetryWaitTime.

FXall Provider Adapter Updated

The output adapter in the FXall Relationship Trading Provider adapter set was updated to add the Log XML Messages and INFO Level property. Previously, only the input adapter of this adapter set supported this option.

Trading Technologies Adapter Updated

The Trading Technologies FIX adapter was updated to support version 7.6.5.29 of the Trading Technologies data dictionary.

Documentation Updates

The StreamBase documentation for release 7.1.3 included the following changes independent of the above updates:

  • The Rules of StreamBase Execution Order were updated and extended.

  • The Microsoft Excel External Adapter documentation was updated to extend and correct the sample code for publishing tuples to StreamBase from Excel.

  • The reference pages (and man pages on UNIX) for several commands were updated to reflect support for the -J option to specify per-invocation JVM arguments. The -J option is an updated and more convenient alternative to using the STREAMBASE_JVM_ARGS environment variable for this purpose. The commands affected are: jsbadmin, jsbc, jsbclientgen, sbargen, sbbundle, sbcipher, sbd, sbfeedsim, sbprofile, sbproxy, sbrecord, and sbtest. The following commands from external adapter kits also support -J: sb-ems-* and sb-jdbc.

  • The Drools Operator page was updated to reflect the name change of the optional third-party package from Drools Expert to Drools Core and to rework the steps for downloading and installing it.

  • Documentation for the operator-parameter element of the server configuration file was updated and expanded, both in the skeleton configuration file comments and in the StreamBase Server Configuration File XML Reference.

What Was New in StreamBase 7.1.2

Fixes

StreamBase 7.1.2 fixed several product limitations, as described in the Resolved Limitations and Known Limitations sections of the Release Notes.

Updates from Previous Releases

StreamBase 7.1.2 inherited the updates and new features added to maintenance releases of previous release series, through and including releases 7.0.7 and 6.6.14.

New and Updated Features

StreamBase 7.1.2 added the following updates and new features:

Thomson Reuters Velocity Analytics Database Now Supported

The Velocity Analytics tick-store database from Thomson Reuters is now supported for standard JDBC access.

New Studio Typecheck Behavior

In a project refresh, Studio now runs typechecking only for modules that are currently visible in the foreground, and defers typechecking for modules whose tab is in the background. Project refresh occurs when you run StreamBaseRefresh Project Typecheck Environment (Ctrl+F5) or when you save a module or interface used by other modules. Any deferred typechecking runs when you bring a background module to the foreground, including when prompted to save the module on Studio shutdown.

New Studio Typecheck Logging

An SLF4J Logger named EventFlowEditorTypecheck now reports whenever an Editor session typechecks. You can see these logs in the Studio Support Console with StreamBase Logging Level set to DEBUG or higher, or you can specify custom logging for this Logger in your logging configuration file. See Using StreamBase Logging.

Typecheck Warnings in Properties View

Typecheck warnings, introduced in release 7.1.0, are now shown at the top of the Properties view for a component with a warning condition. See Typecheck Warnings.

New Studio Save Optimization

To provide better compatibility with version control systems, in cases where only layout changes have occurred, Studio now saves only the module's .sblayout file. In previous releases, Studio would save both .sbapp and .sblayout files for any change.

StreamBase Authentication Now Supports Enciphered Passwords

Basic StreamBase authentication now supports connecting to StreamBase Server with URLs that include an enciphered password, as described in Enciphering Passwords. This affects all client access to the server, including StreamBase-provided clients such as sbc and sbadmin, and affects access from most adapters.

EventFlow Debugger Performance Improvement

The performance of the EventFlow Debugger was dramatically improved for applications that carry very large schemas with a large number of fields.

Adapter Wizard Updates

The New Adapter Wizard now automatically refreshes the current project's typecheck environment on completion of the wizard, so that the newly created adapter's icon automatically appears in the Project Adapters folder of the Insert Input Adapter or Insert Output Adapter dialog, as appropriate. (The New Operator Wizard gained this functionality in release 7.1.0.) Documentation for both wizards was updated and clarified. See Using the StreamBase Embedded Adapter Wizard and Using the Java Operator Wizard.

New JDBC Query Timeout Parameter

In StreamBase Server configuration files, the param child element of the data-source element accepts a new value, jdbc-query-timeout. This parameter specifies an integer number of milliseconds that StreamBase waits for each JDBC query operation to execute. The default is 0, which means wait forever for each query to return; this default matches the behavior of StreamBase before this parameter was added. Specify a value such as 15000 (15 seconds) to prevent StreamBase Server from hanging in rare cases where the JDBC server never responds to a query. See StreamBase Server Configuration File XML Reference.

Stricter Operator.postShutdown() Behavior

The postShutdown() method of the Operator class was updated to more strictly wait for an operator or adapter's run threads to exit (or time out) before running. This strict behavior of postShutdown() is the default behavior as of this release, and improves the shutdown behavior of all operators and adapters, whether provided by StreamBase or custom. You can restore the postShutdown() method's non-strict behavior by setting the streambase.java-operator.unsynchronized-shutdown system property to true.

Independent Threads Now Registerable for Operators and Adapters

Custom operators and adapters can now register independent threads that are not derived from the Operator class for purposes of thread CPU tracking in StreamBase profiling tools. In the Javadoc for the StreamBase Client Library, see registerUnmanagedThread() and unregisterUnmanagedThread() in Operator.RuntimeEnvironment.

Drools Operator Updated

The Drools operator was updated to add an optional status port specified with the new Enable status port property. This port conveys the status of rules entered at runtime on the dynamic rule port. The documentation page for the operator was updated to clarify the format of rules entered on this port.

Thomson Reuters RMDS Subscribing Adapter Updated

The Thomson Reuters RMDS Subscribing Input adapter was updated to better distinguish quotes from trades. The market data output port now contains an optional ResponseType field, which supersedes the UnsolicitedRefresh field. The field is enabled by selecting the Include OMM Response Type Field property in the Tuple Properties tab in the adapter's Properties view. The field contains SOLICITED or UNSOLICITED for refresh messages, or contains QUOTE, TRADE, CORRECTION, and so on, for update messages.

JMS Adapters Updated

The JMS embedded adapters were updated to support connections to OpenMQ without JNDI.

Deutsche Bank AutobahnFX Adapter Updated

The Deutsche Bank AutobahnFX Trading System adapter was updated to support ladder rungs for swaps and to provide performance enhancements.

CitiFX FIX Adapter Updated

The CitiFX FIX adapter was updated to support the Executable Streaming Prices for Forwards product as well as ESP for Spot. Continue to select the Spot option in the adapter's Properties view for either ESP product.

TBF Adapter Updates

The TBF Input adapter was updated to support the new MaxQueueLength and RetransRetryCount properties in the STAMP session configuration file. See TBF Input Adapter for details.

Documentation Updates

The StreamBase documentation for release 7.1.2 included the following changes independent of the above updates:

What Was New in StreamBase 7.1.1

Fixes

StreamBase 7.1.1 fixed several product limitations, as described in the Resolved Limitations and Known Limitations sections of the Release Notes.

Updates from Previous Releases

StreamBase 7.1.1 inherited the updates and new features added to maintenance releases of previous release series, through and including releases 7.0.6 and 6.6.13. Thus, StreamBase 7.1.1 included the following changes added in 6.6.13:

  • Properties View, Concurrency Tab now accepts parameters.

  • New regexreplace() function.

  • New Bloomberg BPOD Subscribing Input adapter.

  • New Wombat MAMA Publishing Output adapter.

  • Thomson Reuters RMDS adapter updated.

  • Deutsche Bank Trading System adapter updated.

  • Alpha Trading System adapters updated to use Alpha API 4.5.

  • Thomson Reuters RFA adapter updated.

  • API change: new method, confFilePath(), was added to the ServerManagerFactory class.

And included the following updates added in 7.0.6:

  • Extract as Module updates.

  • Studio now supports canvas highlighting after Eclipse text searches.

  • New sbprofile options --roll-size and --roll-time.

  • New options for External Process and StreamBase Admin operators.

  • E-mail Sender Output adapter Properties view has a new X-Header tab.

See the 6.6.13 New and Noteworthy and 7.0.6 New and Noteworthy for details.

New and Updated Features

StreamBase 7.1.1 added the following updates and new features:

New StreamBaseFIX FIX Engine Available

Starting with this release, the FIX adapter can be configured to take advantage of a new FIX engine, StreamBaseFIX, in addition to the QuickFIX/J, CameronFIX, and Appia FIX engines already supported. StreamBaseFIX is derived from the B2Bits Antenna FIX engine from EPAM Systems, and allows high-speed, low-latency communication using the FIX protocol.

StreamBaseFIX can be used with the FIX adapter and with all StreamBase adapters that use the FIX protocol, including the Bolsa Commercio Santiago FIX, Bovespa, CitiFX FIX, Currenex, EBS, FXall FIX, Goldman Sachs Electronic Trading FX, Integral FX Inside FIX, LavaFX, Lime FIX, Nomura FX FIX, Raptor, Trading Technologies, and UBS FIX adapters.

The StreamBaseFIX engine is included with the base StreamBase kit, but its use is separately licensed. Contact StreamBase Systems Technical Support or your StreamBase Sales Engineer for further details.

New Support for Container Connections Within One Container

In previous releases, container connections were restricted to streams exiting one container and entering a stream in a separate container. As of this release, that restriction is relaxed, and you can configure stream to stream connections within the same container, where the destination and source container names are the same. Intra-container connections must be Asynchronous, and the same access restrictions apply: that is, streams you wish to connect to or from in sub-modules must be marked as Always exposed in EventFlow modules, or public in StreamSQL modules.

New Search Path Order Display for Module Explorer

The Module Explorer view shows all StreamBase module files and folders containing such files in the module search path of the currently open EventFlow or StreamSQL module. The default display order is to list files and folders in alphabetical order. Starting with this release, there is a Search Path Order button in the view's toolbar. Click this button to show the view in module search path order. The button's selected state persists between Studio sessions.

Filter for Module Call Hierarchy View

The Module Call Hierarchy view now has a Filter field that lets you show only modules and interfaces whose names match a pattern you specify.

Feed Simulation Editor's Data File Options Dialog Updated

In the Data File Options dialog invoked from the Feed Simulation Editor, the column headings of the File preview grid are now numbered instead of blank when the First row as header option is in its default disabled state. This helps you line up data file columns to field names when using the Map to file control of the same dialog.

In addition, the First row as header option is now automatically dimmed and unavailable if the stream for which you are building a data file specifies an empty schema. Why use a data file as input to a stream with no fields? It is possible to use the Timestamp from column feature even with an empty schema stream, as described in Using Timestamp from Column with Empty Schemas.

New Expression Language Functions

The new nullif() function evaluates two arguments. If the arguments are equal, the function returns null; otherwise, the first argument is returned. This function can be used to evaluate fields before and after an event, and to send a field downstream only if it has changed, otherwise null.

The new eval() function takes either two or three arguments. With two arguments, the function evaluates a simple expression entered as a string and returns the result using the data type of the second argument. With three arguments, the second field contains a tuple, and the expression in the first field can be evaluated against any fields in that tuple. The third argument specifies the return data type. Because of environment limitations, the eval() function does not run successfully at the command prompt with sbd --eval, but runs as expected in EventFlow and StreamSQL expressions.

Reuters Adapter Family Rebranded as Thomson Reuters

The six StreamBase adapters that connect StreamBase applications to the Reuters infrastructure were rebranded as Thomson Reuters adapters. Functionality for all Thomson Reuters adapters remains the same as before.

QuickFIX/J FIX Engine Now Supports Rolling Log Files

The FIX adapter, and all StreamBase adapters that use the QuickFIX/J FIX engine, were updated to take advantage of the version of the LogBack logging libraries included with the StreamBase base kit. This allows you to configure adapter-specific entries in your logback.xml file that specify file rolling for log files that capture QuickFIX/J messages. Contact StreamBase Technical Support if you need help configuring this option.

ActivFeed Input Adapter Updated

The ActivFeed Input adapter was updated to support Activ's Service.WorkstationService address to support multiple connections with shared user credentials. See ActivFeed Input Adapter in the Adapters Guide.

What Was New in StreamBase 7.1.0

Fixes

StreamBase 7.1.0 fixed several product limitations, as described in the Resolved Limitations and Known Limitations sections of the Release Notes.

Inherited from Previous Releases

StreamBase 7.1 inherited the updates and new features added to maintenance releases of previous release series, through and including releases 7.0.5 and 6.6.12.

New and Updated Features

StreamBase 7.1 added the following updates and new features:

 Behavior Changes 

On-Disk Query Table Format Changed

The on-disk format for disk-based Query Tables was updated for release 7.1.0 to improve performance, and to plan for more flexible table and row metadata. Before migrating your application to 7.1, move all files in your Query Table data directory to a backup location. Then proceed as follows, depending on how you use disk-based 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 7.1 will recreate your transient Query Tables in the new 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 7.1 will create empty Query Tables in the new format, which will then 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 7.0 or earlier, then you must extract the persistent data from your current Query Table to a CSV file and reload the data in StreamBase 7.1 in a one-time operation. Use steps like the following:

    1. Open your application in your current StreamBase release.

    2. Add an Input Stream, Query operator, and CSV File Writer adapter. Connect the Query operator to the Query Table of interest.

    3. Use the Query operator to send a Read operation that reads all rows from the table, and outputs all rows unmodified.

    4. Configure the CSV File Writer adapter to accept the stream from the Query operator and write all rows to disk in CSV format.

    5. Start StreamBase 7.1 using a new, empty data directory. Load a copy of your application, and let it recreate your Query Table.

    6. In StreamBase 7.1, 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 7.1. Contact StreamBase Support for assistance in implementing this procedure.

New Error Tuple Format

The schema of the standard StreamBase error tuple was changed to preserve the failing incoming tuple in a more easily parsable form as a string field in JSON object format, rather than a blob field as before. An associated new feature is the parsejson() function that you can use to reconstruct the original failing tuple for further processing. The Error Streams sample was updated to illustrate extracting the failing tuple from the error tuple using parsejson().

This change causes a typecheck error in any module created with an earlier release, when loaded into StreamBase 7.1.0 or later, if the module uses Error Streams or error ports on components.

This release provides a Java system property and environment variable that directs StreamBase Server to emit error tuples using the schema of previous releases. You can set this property to continue working in 7.1.0 or later with a large application in which many modules emit and manipulate error tuples. When you have migrated all modules to take advantage of the new schema, change this property or variable to specify using the new error tuple schema.

You can either set the system property for the JVM that will host StreamBase Server or set the environment variable in the environment in which StreamBase Server will run. The following table shows the settings.

System Property or Environment Variable Value Meaning
streambase.appgen.error-schema-version

STREAMBASE_APPGEN_ERROR_ SCHEMA_VERSION

1 Emit error tuples using the pre-7.1 schema, with the originalTuple field emitted as a blob.
2 Default setting in 7.1+. Emit error tuples using the 7.1+ schema, with the originalTuple field emitted as a JSON object string.
Breakpoints Must Be Removed and Re-added

To allow significant improvements to the EventFlow Debugger, the internal format of breakpoints was changed. Before migrating an existing Studio workspace from a previous release to release 7.1:

  1. Open all EventFlow modules that have breakpoints set.

  2. Remove all breakpoints, keeping notes of which arcs have breakpoints.

  3. After opening the same workspace in release 7.1, re-add your breakpoints.

System Property streambase.uri Deprecated

Starting with release 7.1.0, the JVM hosting StreamBase Server no longer sets the streambase.uri or streambase.sbd.leadership-status system properties. This allows separate server instances hosted on the same JVM (such as can occur when running StreamBase JUnit tests) to respond with separate URIs.

Update any expressions that use systemproperty("streambase.uri") to instead use the new getServerURI() function. To obtain the current leadership status, use the getLeadershipStatus() function.

In Java code, use getRuntimeEnvironment().getURI() to request the server's URI. Do not use the StreambaseURI.fromEnvironment() method in any Java operator or Java function that runs within the server.

Separate .sblayout Files Now the Studio Default

StreamBase Studio's default preference setting for newly created projects is to keep EventFlow layout information in separate .sblayout files. Projects migrated from earlier releases, including some sample projects, retain their previously set layout settings.

As before, Studio respects and preserves the layout status it detects for each individual EventFlow application or module. That is:

  • If Studio detects an .sbapp file with no matching .sblayout file, then it draws the canvas based on the layout information in the .sbapp file. On save, Studio stores any changed layout information back to the .sbapp file.

  • If Studio detects an .sbapp file with matching .sblayout file, then it uses the layout information in the .sblayout file to draw the canvas. On save, Studio stores any changed layout information back to the .sblayout file.

As before, you can create new layout files for one or more application files using StreamBaseEventFlow LayoutExtract to Layout File. For details, see EventFlow Layout Options.

Keyboard Shortcut Behavior Change

When using keyboard shortcuts in StreamBase Studio, be aware of the following new behavior. When components are placed onto the canvas with a keyboard shortcut (or by dragging from the Palette view), the component is now selected, with a cell edit window opened for you to immediately name the new component. When using keyboard shortcuts in sequence to add several components at once, you must now press Esc or Enter to close the edit window before entering the next shortcut. For example, in previous releases, the following shortcut sequence adds an input stream, Map operator, and output stream:

S I    O M    S O

With the new default behavior in StreamBase 7.1.x, this sequence now becomes:

S I Enter   O M Enter   S O Enter

As an alternative, you can temporarily disable the Automatically edit names of newly inserted components option in WindowPreferences, StreamBase StudioAuthoring. Then, run your keyboard sequence without Enter keystrokes, and re-enable the preference afterwards.

 Platform Changes 

New RHEL 6 Support

StreamBase 7.1 adds 64-bit Red Hat Enterprise Linux Server 6 to its list of supported platforms.

Studio Now Based on Eclipse 3.6.2

The version of Eclipse that serves as a foundation for StreamBase Studio was updated to Eclipse 3.6.2, and retains backward compatibility for Eclipse 3.5 plug-ins. If you add third-party Eclipse plug-ins to Studio, make sure they are compatible with Eclipse 3.5 or 3.6.

JDK Version Updated

The Oracle-Sun JDK installed for private use by StreamBase was updated to release 1.6.0_24. 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.

Trial Kits Available in 64-bit Versions

Trial installation kits of StreamBase Developer Edition are now available in both 32-bit and 64-bit versions for both Windows and Linux.

 EventFlow Language Features 

Typecheck Warnings

StreamBase now supports warning messages issued during typechecking in addition to the typecheck error messages long supported. Warnings provide guidance on settings that may cause complications, but do not prevent the EventFlow or StreamSQL module from compiling and running. For example, you might see a warning for a Query operator connected to a Query Table that a proposed Read operation will result in a full table scan.

Warning icons appear in the tab for a module that has warnings, on its entry in the Package Explorer view, in hover text over the component that has the warning, and as an overlay for that component's icon on the canvas. Typecheck warnings can also be issued on the console by StreamBase Server at runtime.

You can suppress warnings by category from appearing on the canvas by means of a new Preferences page, WindowPreferences, StreamBase StudioTypechecking, as described on Studio Preference Settings. The number and type of warnings, and the number of ways to suppress warnings, are both expected to increase in future releases. See Typecheck Warnings for further details.

Support for Empty Schemas

In StreamBase 7.1+, it is no longer a typecheck error to leave most schemas empty and undefined. This feature is described in a new page in the Authoring Guide, Using Empty Schemas, and empty schemas are referenced on relevant pages throughout the documentation.

List Coercion

Lists of numeric data types now participate in the StreamBase data type coercion rules described in Data Type Coercion. For example, a list(int) and a list(long) will successfully merge as the two inputs of a Union operator, with the list(int) elements automatically promoted to longs. Two list(tuple) will merge if an adequate supertype of both tuple schemas can be found.

Coercion rules are not applied for output streams with declared schemas.

Escaped Identifiers

The naming rules for StreamBase identifiers were broadened. StreamBase now supports a syntax for escaping identifier names that contain reserved characters, as described on Identfier Naming Rules. The escaped identifier syntax is #"name", a pound or hash symbol, with the string in double quotes. Escaped identifiers work throughout StreamBase for the names of all components, including schemas, fields, operators, tables, lock sets, modules, containers, and data sources. For example, you can use this syntax to name a field the same as a StreamBase reserved word, such as #"AS". As before, identifier names can include Unicode characters as long as Unicode support is enabled for both Studio and Server, as described in Unicode Support.

Where Clauses on Container Connections

You can now specify a where clause for a container connection that specifies a predicate expression that limits the tuples sent over that connection. Since you can make more than one container connection to the same stream, you can now connect to one stream multiple times, with a different filter predicate for each. Container connection where clauses are expressed in any of the following ways:

  • With the --where "expression" argument to the sbadmin modifyContainer command.

  • With the where="expression" attribute of the <container-connection> element in StreamBase deployment files.

  • With the Container connection filter expression field in the Advanced tab of the Properties views for input streams and output streams.

New Options for sbadmin listConnections

The sbadmin listConnections command now supports the following options:

--current  Shows active client connections currently conveying tuples.
--old  Shows clients still running but disconnected from the server.
--all  Shows both current and old client connections.
--clearOld  Removes client connections that are running but disconnected from the server.
Static Evaluation for Some Expressions

StreamBase now avoids having to call at runtime any functions that return the same for every call, and that have no side effects. This improves runtime performance for expressions that do not need to be computed for every tuple.

Profiling Now Collects JVM Garbage Collection Statistics

The CSV output of the sbprofile command now includes statistic lines with prefix G that show garbage collection events for the JVM hosting StreamBase Server. See Profiling for details, and see the StreamBaseMonitor API changes that support this feature.

 StreamBase Server: New Features 

New Low Latency Switch

This release supports a new system property, streambase.low-latency-mode. This provides a single switch that enables several other properties to direct StreamBase Server to run in low latency configuration. Setting this property to true performs the following subordinate actions:

  • Enables the low latency option on all StreamBase to StreamBase adapters, including those used internally to implement remote container connections.

  • Enables the streambase.tcp-nodelay system property, which disables the Nagle algorithm on network connections.

  • Sets the system property streambase.queue-flush-interval to zero, which disables queue flushes for client connections.

  • Sets low latency mode on dequeue output queues.

 Studio: New Features 

Skip Deep Typechecking Option

The StreamBase StudioAuthoring page in Studio Preferences has a new option that allows you to avoid full-depth typechecking of Extension Points and Module References that have all output schemas explicitly set. This can greatly speed up typechecking for some large applications.

Refactor, Rename, and Extract Interface Changes

Studio 7.1 has the following changes to support easier renaming of components and refactoring of names throughout a project, and to create a new interface by extracting its components and definitions from an existing module.

  • The context menu for the EventFlow Editor canvas now includes Refactor, with a submenu.

  • The Extract as Module menu command formerly at the top level of the canvas context menu was moved to RefactorExtract as Module.

  • There is a new RefactorExtract Interface menu command. This command operates only when the current module (independent of the current selection) includes streams defined with named schemas and Query Tables with shared or placeholder status and defined with a table schema. In this case, Studio extracts the streams, components, named schemas, and table schemas from the selected components and creates a new StreamBase interface file with those definitions.

  • There is a new SchemaRefactor to Table Schema menu command that operates only when the current selection is a Query Table defined with a private table schema. Use this option to promote a table's private schema to a named table schema in the Definitions tab.

  • In the Definitions tab of the EventFlow Editor, and in the Interface Editor, the context menu for existing schemas and constants now includes both RefactorRename and RefactorMove.

    • RefactorRename opens a dialog for you to specify a new name. The new name is then propagated to all locations (optionally including all expressions) where the old name was used in all modules and interfaces in the current module search path.

    • RefactorMove opens a dialog with a drop-down list of all modules and interfaces in the current module search path. Select a module or interface, and the current definition is moved to that file.

  • You can now rename components and groups directly on the canvas by selecting the component, pressing F2, and typing into the cell editor that appears. You can also invoke the rename cell editor by invoking Rename from the canvas context menu. F2 renames the component in the local module only, and does not propagate the name change.

  • When you drop a component onto the canvas by dragging from the Palette view or with a keyboard shortcut, the newly dropped component's name is now automatically selected and in edit mode. Type a name for the new component and press Enter or press Esc to close the cell editor and accept the default name. This new behavior is enabled by default, but can be disabled in the Studio Preferences dialog.

  • Names entered with non-alphanumeric characters are automatically escaped with the #"name" syntax described above.

Extract as Module Updates

In previous releases, the RefactorExtract as Module command (in the context menu of the EventFlow canvas) was extracting all parameters and their settings from the parent module to the new child module. The command was updated such that it now extracts only parameters actually used by the components selected for extraction. Parameters with default values in the parent module are copied with the same values to the child module. Parameter settings in the child module are updated to link to the parent module's parameter values, in the form ParamName = ${ParamValue}.

At extraction time, you can now specify the location of the new child module to be extracted. This can be a subfolder of the current project, or another project folder in the module search path. These changes are described on the rewritten Extract as Module page in the Authoring Guide.

Create New Ports On the Fly While Dragging

For operators that have a user-controlled number of ports (including Split, Union, Filter, Gather, and Pattern), in previous releases, you had to specify a new port in the target operator's Properties view, then go back and drag an arc to the new port (or from the new port, for a Split).

Starting with this release, you can now drag an arc to or from a hover port that appears in gray in the bottom right corner while the mouse hovers over the operator. The hover port for a Filter operator is circled in red in the following illustration:

Drag an arc from the hover port to another component, or drag an arc from another component and drop it onto the hover port, and a new input or output port is created for that operator automatically.

New Behavior for Dragging Module or Extension Point to Canvas

In previous releases, dragging an Extension Point icon to the canvas dropped a new, unconfigured Extension Point for which you still needed to specify the interface that the operator referenced. Similarly, dragging a Module icon to the canvas dropped an unconfigured Module Reference and a reminder dialog.

Starting in 7.1.0, dragging a Module icon to the canvas opens a File Chooser dialog showing all EventFlow and StreamSQL files in the current module search path (essentially duplicating in the dialog what the Module Explorer view shows). Dragging an Extension Point icon to the canvas opens a File Chooser dialog showing all interface files in the module search path. In both cases, select the desired module or interface, and a Module Reference or Extension Point is placed on the canvas, ready for final configuration. See Referencing a Module for the behavior differences between the two methods.

Manual Input View Shows Field Descriptions

If an input stream's schema has field-level descriptions, the description text for a field can now be seen in the Manual Input view as a tooltip when the cursor is in that field.

Studio Supports Canvas Highlighting After Eclipse Text Searches

This release adds Studio highlight and location support for text searches in StreamBase file types in the Studio workspace initiated by the Eclipse SearchFile dialog. After a search, in the Search view, use the up and down arrow buttons (or the Ctrl+. shortcut) to select each found location in sequence. Starting with this release, selecting a found location in the Search view opens the editor for the StreamBase file in which the search phrase was found, and highlights the containing line. For EventFlow files, the component that contains the search phrase is selected and centered on the canvas. This feature is described in a new Authoring Guide page, Text Search in Studio.

Regular Expression Filtering for Trace Files

When generating trace files for a running application that you will use for tuple tracing in the StreamBase Trace Debugger, you can now specify a regular expression filter string to narrow the tuples collected in the trace file. Specify this regular expression in the Advanced tab of the Launch Configuration dialog for the module of interest.

Better Reporting of Typecheck Progress

For long-running typecheck operations, the Progress Information dialog now reports component names as they are being checked, information about a module when typechecking passes into one, and, for JDBC Query operators, the JDBC data source.

Garbage Collection Statistics Now Included in sbprofile Output

The StreamBaseMonitor API was updated to collect garbage collection statistics from a running application, along with the statistics already collected. The CSV output format of the sbprofile command was modified to display garbage collection statistics in output lines with the prefix G. See Profiling.

New Application Compilation Statistics

The StreamBase panel of the Properties dialog for EventFlow and StreamSQL files now shows statistics for the selected file after it has been compiled by StreamBase Server at least once. Statistics are shown for the selected module and all submodules it references. See Application Statistics on the new StreamBase File Properties page.

New Context Menu Shortcuts to Populate Module Search Path

For subfolders in a Studio project folder in the Package Explorer view, the StreamBase option in the context menu now offers two new sub-menu options: Add to Module Search Path and Add to Resource Search Path. If the selected folder is already in one of those search paths, the Add to is seen as Remove from.

Application-Running Information Bar Now Includes Full StreamBase URI

The currently running text message is shown in the information bar at the top of the Editor canvas of a running application now shows the full StreamBase URI, including container name, if not default. See Running Applications in Studio.

Studio Function Assistance Updates

In Studio's Properties view, when you first open the Chooser sub-panel of the Functions tab, the list of functions now opens only to the category level. Open individual categories to browse for a function, or used the filter text field to search for a function name or pattern.

Eclipse Quick Fix to Add Client Library

When editing Java code in StreamBase Studio in a project to which you have not yet added the StreamBase Client Library to the Java Build Path, invoking the Eclipse Quick Fix options with Ctrl+1 now offers to add the Library for you.

File Locks by Team Provider Plug-ins Now Supported

StreamBase Studio now supports file locks imposed by Eclipse team provider plug-ins that implement version control systems.

Descriptions Now Supported for Constants, Table Schemas, Streams in Interfaces

You can now add a description field to document the purpose of constants defined in the Definitions tab of the EventFlow Editor. The Add Table Schema dialog has a new Description tab in which you can document the purpose of a table schema definition as a whole. (You can still populate the separate Description field in the Schema tab of the same dialog, which documents the purpose only of the schema aspect of a Table Schema definition.) In the Interface Editor, you can now add a description for a stream, independent of the description for the stream's schema.

See Using Table Schemas and EventFlow Editor Definitions Tab for details.

New Launch Configuration Option: Filter Trace Data

The Advanced tab of the Launch Configuration dialog has a new option. The check box for the Filter trace data using this regular expression when tracing field allows you to specify a regular expression that narrows the tuples stored in trace output being collected in that run. See The Advanced Tab on the Editing Launch Configurations page.

Tooltip Changes

When dragging an arc to an input port of a Module Reference or Extension Point, the tooltip for that port now appears, which allows you to see which input stream in the referenced module that port is mapped to.

The tooltip text for a failing component, shown when the mouse hovers over the component, shows typecheck error and warning text first, before the component's description.

Open StreamBase Command Shell Menu on Linux

For many releases on Windows, Studio has provided the Open StreamBase Command Prompt menu option in the StreamBase context menu for project folders in the Package Explorer view. Starting with 7.1.0, Studio on Linux now provides an analogous option, Open StreamBase Command Shell.

Background Option for Load Component Exchange Dialog

The Import from StreamBase Component Exchange dialog now provides a check box labeled Download components in the background.

URLs in Studio Text Contexts Can Appear as Hyperlinks

A well-formed URL in any text-based editor in Studio now becomes a clickable hyperlink by holding down the Ctrl key while hovering the cursor over the URL. This applies to Studio text editors for README.txt files, server configuration and deployment files, StreamSQL files, and EventFlow files viewed as text. This also applies to URLs in the Description tab in the EventFlow Editor.

Outline View Changes

The Outline view now shows different icons to distinguish Query Tables and JDBC Tables. Query operators now have different icons depending on whether they are configured for Read, Write, or Delete operations.

Keyboard Shortcut Changes

As in previous releases, the keyboard shortcut O Q drops a Query operator on the canvas, but the operator's icon does not show its Read, Write, or Delete overlay decoration until you configure the operator. Release 7.1.0 supports the following new keyboard shortcuts, which drop a Query operator onto the canvas with its overlay decoration already in place. After you connect the newly dropped Query operator to a data construct, the Operation field in the Query Settings tab is preselected.

Q  R — Drops a Query operator with Read overlay decoration
Q  W — Drops a Query operator with Write overlay decoration
Q  D — Drops a Query operator with Delete overlay decoration

These shortcuts and many more are described on the newly reorganized and expanded Studio Keyboard Shortcuts page.

Java Operator and Adapter Wizard Changes

The New Java Operator and Adapter Wizards were updated to include Schema in the drop-down list of Property types in the New Operator/Adapter Property dialog invoked by the Add button on the wizard's second page. Select this property type to generate an Edit Schemas tab in the Properties view for your generated operator or adapter. See the table in Property Data Type Determines Generated Control on the Using the Embedded Adapter Wizard page for further details.

In addition, the New Java Operator wizard now automatically refreshes the current project's typecheck environment on completion of the wizard, so that your new operator automatically appears in the Project Operators folder of the Insert Java Operator dialog.

 Studio: Component and Canvas Updates 

JDBC Query Operator Changes

The Query operator when connected to a JDBC Table data source was updated as follows:

  • Tabs in the operator's Properties view were reorganized and renamed for clarity.

  • The SQL statement field on the Query Settings tab now prompts with field name suggestions when composing your SQL statement.

  • Escaped braces now work in the SQL statement field on the Query Settings tab.

  • The Output Settings tab now uses one or two field grids plus an Additional Expressions grid like the ones used by the Map, Query, and Gather operators.

    • For Query Read operations, this tab has three grids: SQL Result Fields, Input Fields, and Additional Expressions.

    • For Query Update, Delete, and Insert operations, this tab has two grids: Input Fields and Additional Expressions.

  • In the Result Settings tab, when specifying explicitly declared fields for the SQL Results fields, a new option Execute query and populate fields allows you to fill in the declared fields grid automatically. This setting has the advantage of no longer requiring a database query during typechecking.

  • In the Result Settings tab, the Ignore Any Results from Query option was removed from the options for the SQL Results fields.

In addition, the following performance changes were made when using the JDBC Query operator:

  • JDBC queries are now double buffered and batches are run asynchronously.

  • Precompiled archive files (.sbar files) that contain JDBC queries now allow the use at runtime of a different database instance with a compatible schema.

  • A new parameter is available for the <data-source> element in the StreamBase Server configuration file. Set param name="jdbc-connection-timeout" value=integer, where integer specifies the number of milliseconds to wait before JDBC connections will time out.

Gather Operator Changes

The Gather operator's Output Settings tab in its Properties view was updated to use field output grids and an Additional Expressions grid, like the ones used in the Output Settings tabs of the Map and Query operators. See Using the Gather Operator.

Aggregate Operator Changes

In the Properties view for Aggregate operators, presentation of the settings for existing dimensions was simplified in the Dimensions tab. The same information is shown as before, but now reduced from seven to three columns, with the details of each dimension's settings explained in simple text, instead of in columns that might be empty for a particular predicate. The Edit Dimension dialog did not change, only the presentation of the results in the Dimension tab.

Filter Operator Changes

In the Filter operator, the behavior of the Up and Down arrows in the Predicates grid was improved. In previous releases, on the Predicate Settings tab of a Filter operator's Properties view, the up and down arrows allowed you to reorder which predicate applied to which output port.

Starting with 7.1.0, the Up and Down arrows also move the arcs connected to each output port without needing to remove and reconnect them. Thus, for example, if a Filter operator's port 2 is connected to an output stream named BigTradesOnly, you can move the predicate for port 2 to port 1 with the Up arrow, after which port 1 is the port connected to stream BigTradesOnly.

Query Table Connecting to Module with Placeholder Table

When connecting a data arc from a Query Table to a Module Reference that contains only one Query Table marked as a placeholder table, in the Tables tab of the Module Reference, the placeholder table association is now filled in automatically.

New XML Normalizer Operator

The XML Normalizer operator, previously available as an external operator with a separate installation package, is now included in the base StreamBase package. Drag the Java Operators component to the canvas, and select XML Normalizer Operator from the resulting dialog. As before, the operator does not support list and tuple data types. The operator is described in Using the XML Normalizer Operator and has a sample, described on XML Normalizer Operator Sample.

Color Setting Changes

Starting with release 7.0.0, you can change the default colors and fonts for most elements of the Studio interface in the Studio Preferences dialog, in GeneralAppearanceColors and FontsStreamBase. This feature was extended in release 7.1 in the following ways:

  • A reminder link to the Colors and Fonts preferences page is now at the top of the StreamBase StudioAuthoringEventFlow Rendering preferences page.

  • The default background color for Groups is now specified in the Colors and Fonts dialog.

  • The default background color for Module References and Extension Points can now be set independent of the color for other components.

Group Changes

EventFlow Groups have the following updates in this release:

  • Group information is now stored in .sblayout files, if those are in use.

  • You can lock the current layout of a Group by selecting the Lock Layout check box in the Group's Properties view. When locked, everything inside the Group keeps its orientation relative to each other during a request to re-layout the containing module. Groups inside a locked Group are also locked, and the inner Group's Properties view has its Lock Layout check box disabled.

Note Changes

You can now set the background color for individual Notes independently for each Note in the General tab of the Properties view for the Note. The setting for each note is independent of the default Note background color, which is specified, as before, in the GeneralAppearanceColors and FontsStreamBase page of Studio Preferences. There is now a keyboard shortcut to place a new Note on the canvas: / (a single slash). On Windows, you can also drag text from another drag-enabled Windows application to the EventFlow canvas, which creates a Note containing that text.

 Studio: Debugger Improvements 

The EventFlow Debugger in StreamBase Studio was improved in the following ways:

  • The Debugger was sped up dramatically, reducing the impact on server-side throughput and latency while running the debugger. In test applications running under the debugger, the time of one tuple passing through a complicated execution path was reduced by a factor of 50.

  • The rendering of execution paths through an EventFlow module was improved. Among other changes, there is now a black border around the current operator and arc.

  • Breakpoints now support hit counts, accessible in the Breakpoint Property Editor.

  • The contents of disk-based Query Tables can now be inspected in the Debugger's Variables view. (Memory-based Query Tables were already viewable while debugging in previous releases.)

  • The contents of dynamic variables can now be inspected in the Variables view. Be aware that the Sequence operator uses dynamic variables as part of its implementation, so you will see a dynamic variable entry for the sequence IDs generated by Sequence operators in the module through which you are stepping.

  • The Debugger now supports exporting and importing breakpoint settings. Use FileExport, then Run/DebugBreakpoints to save all or a selection of breakpoints in a release 7.1.x EventFlow module. Use FileImport to load a set of exported breakpoints into the same or a very similar EventFlow module in 7.1.x.

    Because of this release's change in breakpoint format, you cannot use the Export-Import feature to export breakpoints from a module in a previous release and then import them into the release 7.1.x version of that module.

Be sure to remove all breakpoints before opening a Studio project in 7.1.x that you last saved in a prior release. Open the project first in the prior release, remove the breakpoints and take notes on where they are. Then open the project in 7.1.x and re-add the same breakpoints.

See Limitations and Suggestions on the Using the EventFlow Debugger page for further suggestions on making the best use of the EventFlow Debugger.

Known Limitations

 Expression Language Updates 

The StreamBase expression language gained the following new aggregate functions:

  • andall(f) — Performs an AND operation on all values in window or column f and returns the boolean result.

  • orall(f) — Performs an OR operation on all values in window or column f and returns the boolean result.

  • firstnonnullval(f) — Like firstval(), but returns the first non-null value in window or column f.

  • lastnonnullval(f) — Like lastval(), but returns the last non-null value in window or column f.

  • maxn(count, f) — Returns a list with count elements containing the count number of maximum non-null values in window or column f.

  • minn(count, f) — Returns a list with count elements containing the count number of minimum non-null values in window or column f.

  • firstn(count, f) — Returns a list with count elements containing the first count non-null values in window or column f.

  • lastn(count, f) — Returns a list with count elements containing the last count non-null values in window or column f.

    When using the last four functions with an Aggregate operator, the value of count must remain the same for the duration of the Aggregate's window.

The expression language gained the following new simple functions:

  • andall(bool b1, bool b2, bool b3, ...) — Performs an AND operation on the provided boolean arguments and returns the boolean result.

  • orall(bool b1, bool b2, bool b3, ...) — Performs an OR operation on the provided boolean arguments and returns the boolean result.

  • getServerURI() — Returns the StreamBase URI of the currently running StreamBase Server. (This function was also introduced in the 7.0.5 release.)

  • tojson() — Accepts a tuple argument and returns the tuple's field values as a JSON list (not a StreamBase list).

  • parsejson() — Accepts a JSON-formatted string, in either JSON array or JSON map format, and returns a tuple.

  • The existing strptime() function now accepts %Z and %z formatting strings to specify the time zone.

Both simple and aggregate andall() and orall() functions have special null handling behavior described on their respective pages.

Functions whose values do not change over the lifetime of an Aggregate window can now be used within aggregate expressions. For example: sum(x/firstval(x)) and sum(x/openval("dimension1")).

 Adapter Changes 

64-bit Excel Adapter

The Microsoft Excel External adapter is now available in both 32-bit and 64-bit editions. The two editions provide identical functionality for their target Excel editions. Each edition has a separate installer, and the two editions cannot coexist on the same PC. If you have the 64-bit edition of Excel 2010, the 64-bit Excel adapter supports connectivity to large-scale StreamBase data.

The 64-bit Excel adapter is only appropriate for use with the 64-bit edition of Office 2010 on 64-bit Windows; having 64-bit Windows and 32-bit Office 2010 is not sufficient. Be aware that Office 2010's default and recommended configuration is to install 32-bit Office 2010, even on 64-bit Windows, to retain maximum compatibility with third-party plug-ins, most of which are still 32-bit. Run FileHelp in Excel to determine whether your Excel installation is the 32-bit or 64-bit edition. If you are running 64-bit Excel 2010, then you must install the 64-bit Excel Adapter kit.

Updates for the StreamBase to StreamBase Adapters

The StreamBase to StreamBase input and output adapters were updated as follows:

  • Both adapters have a new Low Latency property on the Adapter Properties page of their Properties views. Select this check box to configure an adapter instance to favor low latency over throughput.

  • Both adapters now accept more than one connection to streams in other containers hosted in the same StreamBase Server:

    • In the StreamBase to StreamBase Input adapter's Properties view, you can configure up to ten output streams from which to receive tuples, and you can specify a different filtered subscription predicate for each stream connection.

    • In the StreamBase to StreamBase Output adapter's Properties view, you specify the primary downstream stream's name on the Adapter Properties tab, then add any number of downstream streams in the grid on the Additional Streams tab.

 API Changes 

The StreamBase Client Library was updated as follows:

  • The previously deprecated Schema#sameFieldDescriptions was removed.

  • #sameSchemaDescriptions was previously marked @exclude, and is now removed.

  • In both the C++ and Java APIs, two methods were added: StreamBaseClient.getTupleEnqueueCount() and StreamBaseClient.getTupleDequeueCount(). This allows your client applications to obtain the number of tuples they have enqueued or dequeued.

  • The StreamBaseMonitor API for both Java and .NET now supports reporting JVM garbage collection data. Look for getGCollectors() in the SystemInfo class, and a new class SystemInfo.GCInfo.

  • The Java package com.streambase.sb.client has a new class, ClientSettings. Use this class to set and modify various settings for StreamBaseClient and StreamBaseAdminClient client applications. There are new ctors on StreamBaseClient and StreamBaseAdminClient that take a ClientSettings object as an argument.

  • In the Java API, there are new interface classes Operator.SharedObject and Operator.SharedObjectManager that implement and manage objects that can be shared between operators in the same container.

 Documentation Updates 

The StreamBase documentation for release 7.1.0 included the following updates independent of the changes noted above:

New and Noteworthy Archives

See the New and Noteworthy Archives for descriptions of the updates and new features added to previous StreamBase releases.