Contents
- What Was New in StreamBase 5.1.10
- What Was New in StreamBase 5.1.9
- What Was New in StreamBase 5.1.8
- What Was New in StreamBase 5.1.7
- What Was New in StreamBase 5.1.6
- What Was New in StreamBase 5.1.5
- What Was New in StreamBase 5.1.4
- What Was New in StreamBase 5.1.3
- What Was New in StreamBase 5.1.2
- What Was New in StreamBase 5.1.1
- What Was New in StreamBase 5.1.0
This topic lists the significant changes in the StreamBase 5.1.x release series.
StreamBase 5.1.10 included the following update:
- Generating Error Tuples From Within a Java Operator or Adapter
-
The following method was added to the Java API:
public void sendErrorOutput(String message)
Use this method to generate error tuples from adapter and operator methods that are not invoked directly or indirectly through the StreamBase operator API. For example, an input adapter that processes messages through a listener interface can use this new method to generate an error tuple.
An adapter or operator typically generates an error tuple by throwing an exception from its
processTuplemethod. However, input adapters that process messages through a listener interface cannot use this technique, because the thrown exception would be caught by the library delivering the message to the adapter rather than by StreamBase Server.
StreamBase 5.1.10 also fixed several product limitations, as described in the Resolved Limitations section of the Release Notes.
StreamBase 5.1.9 included the following update:
- JMS Embedded Output Adapter Change
-
If the configuration file for a JMS Embedded Output Adapter specifies just one server and that server's specification contains just one destination, the schema of tuples processed by the adapter does not require server and destination fields (
__JMSServerNameand__JMSDestinationName).
StreamBase 5.1.9 also fixed several product limitations, as described in the Resolved Limitations section of the Release Notes.
StreamBase 5.1.8 was a maintenance release. See Resolved Limitations for a list of issues resolved in this release.
StreamBase 5.1.7 included the following updates:
- EMS/JMS Adapter Updates
-
The EMS/JMS adapter installation kit previously supported one embedded input adapter and a pair of input and output external adapters. This release adds a fourth adapter to the kit, the EMS/JMS embedded output adapter. The message converter API for using all four EMS/JMS adapters changed, and some limitations in the adapters were fixed. The EMS/JMS adapters now support the TIBCO EMS RELIABLE_DELIVERY mode. See JMS Input and Output Adapters for details.
- SMTP Reader Adapter Clarification
-
The documentation for the SMTP Reader adapter was updated to clarify that the prerequisite libpcap (Linux) or WinPcap (Windows) libraries must be installed and working before using the adapter.
StreamBase 5.1.7 also fixed several product limitations, as described in the Resolved Limitations section of the Release Notes.
StreamBase 5.1.6 included the following updates:
- Feed Simulation Editor Changes
-
The Feed Simulation Editor in the Test/Debug view was updated to better manage mutually exclusive options during selection and save.
- Changes to Reuters Subscribing Adapters
-
The current Reuters RMDS Subscribing Input Adapter and the deprecated Reuters Subscribing Input Adapter were both updated to emit update tuples only when one or more fields of interest change.
StreamBase 5.1.6 also fixed several product limitations, as described in the Resolved Limitations section of the Release Notes.
StreamBase 5.1.5 included the following new features:
- New Reuters RMDS Subscribing Adapter
-
The new Reuters RMDS Subscribing Adapter allows a StreamBase application to receive market data from both Reuters RMDS 5 and RMDS 6 servers. This adapter supersedes the Reuters OMM Subscribing adapter (supporting RMDS 6 only) that was introduced in release 5.1.2. The new RMDS adapter is intended to replace the Reuters Subscribing adapter (supporting RMDS 5 only), which is being phased out.
The Reuters RMDS Subscribing Adapter is described in Reuters RMDS Subscribing Input Adapter.
- New Binary File Input and Output Adapters
-
The new Binary File Reader Input Adapter reads structured binary files created with the new Binary File Writer Output Adapter. The adapters are intended to be used as an adapter pair to write a stream of tuples to a file, then read them back from that file at a different point in your application. You might use the Binary File Writer and Reader as part of a High Availability scenario to preserve the contents of a tuple stream to disk. As part of a failover event, the secondary server in a StreamBase Server cluster pair could restore the contents of a stream with a fast read of the saved binary file.
The Binary File Reader Input Adapter is described in Binary File Reader Input Adapter. The Binary File Writer Output Adapter is described in Binary File Writer Output Adapter.
- Documentation for Clustering and High Availability
-
StreamBase release 5.1.0 introduced a collection of new features to support clustering of StreamBase Servers and other High Availability (HA) features. The new HA support provides a component approach that replaces the monolithic HA support of previous releases.
As of release 5.1.5, the documentation has caught up with the newly added features. Start with the overview page, Clustering and High Availability, which provides an index to the documentation of the various StreamBase features that support HA and clustering.
- Windows Scripts Added to HA Sample
-
In previous 5.1.x releases, the HA sample included Linux scripts to run the sample. The sample now includes Windows scripts as well. Instructions for the sample are in High Availability Sample.
- Some Legacy Clustering Features Removed
-
StreamBase releases through 5.0 included support for an earlier version of StreamBase Server clustering that used the sbclusterd and sbnoded servers. In release 5.1.5, all documentation of these features is removed. The sbclusterd and sbnoded commands themselves are still shipped for compatibility with previous releases. However, these commands are deprecated and will be removed from a future StreamBase release. Sites using these features should begin to migrate to the new clustering and high availability features discussed above.
- StreamBase Studio Enhancement
-
Fields in Studio views that accept input of integers were changed in this release. Previous releases used spinner controls for integer input fields, like the following example from StreamBase 5.0:
Integer input fields in Studio are now simple text boxes, like the corresponding example from StreamBase 5.1.5:
This change allows you to enter negative integers where appropriate, and to enter parameters in the form
${param}. - New Function in the Expression Language
-
The expression language was extended with the
getLeadershipStatus()function. See StreamBase Expression Language and Functions for details.
StreamBase 5.1.5 also fixes several product limitations, as described in the Resolved Limitations section of the Release Notes.
StreamBase 5.1.4 was a limited availability release that included the following feature:
- ActivFeed Adapter Updated
-
The StreamBase ActivFeed Adapter was recompiled to take advantage of the latest available version of the Activ APIs.
StreamBase 5.1.4 also fixed several product limitations, as described in the Resolved Limitations section of the Release Notes.
StreamBase 5.1.3 included the following new features:
- New Reuters OMM Adapter
-
The Reuters OMM Subscribing Input Adapter was added with an optional installation kit. This adapter allows StreamBase applications to receive OMM data from Reuters Data Feed Direct and RMDS 6 Point-to-Point servers. This adapter complements the existing Reuters Subscribing Input Adapter.
- New Feature in Existing Reuters Adapter
-
The Reuters Subscribing Input Adapter now automatically adds metadata fields to the market data output schema, if you do not provide them when using the Edit Schema tab.
- New Parameters for Disk Query Tables
-
To improve disk Query Table write performance, log flushes and checkpoints can be separated. The current
disk-querytable-flush-interval-msconfiguration parameter remains, but the default has been reduced to ten seconds. A new configuration parameter,disk-querytable-checkpoint-count, specifies how many flush intervals to wait before doing a checkpoint. The default is 3, so by default, a checkpoint is still done every 30 seconds. These new defaults are not expected to change the average write rate but should reduce the variance in write rate over time, and have the additional benefit of reducing the default loss window to ten seconds. Some applications and configurations might see measurable improvements.
StreamBase 5.1.3 also fixed several product limitations, as described in the Resolved Limitations section of the Release Notes.
StreamBase 5.1.2 was primarily a base for StreamBase Reuters Edition, and included the following update:
- Tuning Guide Reorganized
-
In both HTML and Eclipse Help documentation, the pages of the Tuning Guide were moved to the Authoring Guide to improve their searchability in Eclipse Help. See Tuning Applications.
StreamBase 5.1.2 also fixed several product limitations, as described in the Resolved Limitations section of the Release Notes.
The StreamBase 5.1.1 release included the following new features and updates. Release 5.1.1 also incorporated the features added in release 5.1.0, which was a limited availability release. See What Was New in StreamBase 5.1.0 below.
- Java 1.6 Qualified
-
Both StreamBase Studio and StreamBase Server are now qualified to run with Sun Java 1.6 JDKs.
- New Platforms Supported
-
Red Hat Enterprise Linux 5 and SUSE Linux Enterprise Server 10 were added to the supported platforms list. Windows Vista is now supported for running StreamBase Studio, but is not supported for deployment of StreamBase Server. Oracle 10g and MySQL 5 were added to the supported JDBC-compliant databases. See Supported Configurations for details.
- Error Streams and Per-Operator Error Ports
-
This release provides a significant advance in error handling for both EventFlow and StreamSQL applications. Error conditions can now be trapped at the operator level and at the module level. Errors are reported as a tuple in a standardized error tuple format, which can be manipulated as data. You can enable an Error Output Port for each operator or adapter individually, which provides a local catch mechanism for that operator or adapter. Separately, you can add an Error Input Stream to a module or application that serves as a global catch for that module or application. You can add one or more Error Output Streams to a module or application that serves as a throw mechanism. Error tuples flow from an inner module to its containing module or application, and eventually to the StreamBase Server instance that is running the application. See Using Error Ports and Error Streams for further information.
- Changes to the Query Operator in EventFlows
-
-
The Query Operator offers more control over optional prefixes that are added to output fields. This makes it easier to disambiguate fields in the output that come from different sources but have duplicate names. See Using the Query Operator for details.
-
The Output Settings tab enables you to control what happens when read and delete queries return no rows. The default behavior is to output tuples with null values. Previously the default was to output no tuples.
See Using the Query Operator for details.
-
- Value-Based Pattern Matching
-
Pattern-matching queries can now be bounded by either elapsed time (for example, all tuples received over one day), or by a range of values in a specified field. Previously, you could use only a time-based window for pattern matching. See Detecting Patterns for details.
- Separation of EventFlow Layout Information
-
EventFlow applications are stored as XML files containing two distinct kinds of information: semantic elements, which control functionality, and layout elements, which control the graphical layout of items on the canvas. You can now separate semantic and layout data in EventFlow applications, and store the two types of data in separate files. You can also remove the layout data from an EventFlow application. See Using EventFlow Layout Options for details.
- Strict Schema Enforcement Option Removed from Module References
-
In previous releases, the Input Ports tab of the Module Reference Properties in EventFlows included the option Override module input schemas with incoming schemas, which strictly enforced the schema for input streams at a module reference. The option was disabled by default. This option was removed in this release, and the default condition was set as if this option was still present and enabled. Therefore, the schema associated with each input port of a Module Reference is now always passed into the referenced application, overriding any module input schema. This feature is described in Defining Module Reference Properties.
- StreamBase Studio Usability Enhancements
-
This release includes the following enhancements to the ease of use of StreamBase Studio:
-
In Studio 5.1, as in previous releases, the last-viewed tab in the Properties view remains selected for each EventFlow canvas icon. Starting with 5.1, the last-viewed setting for each component is stored in the local Eclipse workspace, and is not stored in either the
.sbappEventFlow file or its associated.sblayoutfile. This improves the interoperability of.sbappfiles with version control systems. -
In EventFlow applications, the default behavior of the Union operator is now that unions are loose. That is, input fields can be the union of all fields in the input streams, and if fields are different, nulls are filled in when an input tuple does not have that field. To restore the default behavior of previous releases, the Union operator has a new option, Force strictly matching schemas. This option requires all input streams in a union to have identical fields. It is still a typecheck error to import more than one stream with the same field name, but different types for that name. This new option is not available in StreamSQL, where the UNION statement cannot be used to enforce strictly matching schemas.
-
StreamBase has changed the naming convention used when you copy EventFlow components on the canvas. For example, if you copied a component called Map1, the new component was previously created as CopyOfMap1. If you copied Map1 again, the next copy was called Copy2ofMap1. Now, the same copies would be created as Map1Copy1 and Map1Copy2.
-
The EventFlow Editor can now display different labels. In the Authoring page in StreamBase Studio Preferences, you can choose the type of labels to display over items on the canvas: either the names of module references and adapters, the types of components, or no labels.
-
Where schemas are shown summarized (in the saved schemas view and in the right pane of the Streams pane of the Properties view), StreamBase Studio now shows an approximate sum of the sizes of the fields. For example:
Input1 (2 fields, 20* bytes)
The size is approximate (indicated by the asterisk), because it does not necessarily represent the number of bytes used in memory to represent a tuple. For example, blob data types do not have a configured length and are not included in the size. String sizes are computed based on their declared maximum length, not the number of bytes actually used in memory. And null field types of any data type do not occupy the bytes allocated for them (that is, an integer field whose value is null occupies 0 bytes, not 4 bytes). The feature is described in Saved Schemas View.
-
In the Test/Debug perspective, in both Application Input and Application Output views, you can now right-click and select Copy as CSV. This places the currently selected rows in the system clipboard in the form of comma-separated values.
-
In the Feed Simulation editor, there is a new field, Null String, whose default value is
null. Use this field to specify a null string that is used to set tuple field values to null if the Null String value is encountered either in an input CSV file, or from the specified value being generated as part of customized feed simulation data.
-
- Behavior Change for <jar> and <dir> in Server Configuration Files
-
In StreamBase Server configuration files, the
jaranddirelements are part of thejava-vmsection. In StreamBase releases prior to 5.1.1, the JAR files specifed injarelements and classes found in directories specified indirelements were added to the system classpath. Starting with StreamBase 5.1.1, these specified JARs and classes are added to the classpath of each container. This means that loaded JAR files cannot modify the global server state, which improves the isolation of applications.If the 5.1 behavior causes problems with a legacy application, you can override the new behavior by adding a parameter to the
java-vmsection namedjvm-prepend-classpath. This adds the specified JARs and directories to the system classpath. For example:<java-vm> <param name="jvm-prepend-classpath" value="/path1/path2/example.jar"/> </java-vm>
- Behavior Change for Server Environment Launched from Studio
-
StreamBase 5.0 introduced support for multiple StreamBase installations on the same Windows machine. Starting with release 5.1.1, to provide more robust support for multiple installations, when Studio starts the local instance of StreamBase Server to run or debug applications, it now automatically prepends the directory containing
sbdorsbd.exeto the PATH of the Server's runtime environment. Studio also automatically populates the STREAMBASE_HOME variable in the Server's runtime environment. See StreamBase Command Prompt for important details about maintaining multiple StreamBase installations on the same machine. - Abbreviated Subcommands for Command-Line Interface
-
In the StreamBase command line interface, you can now enter abbreviated forms of the enqueue and dequeue subcommands for sbc and jsbc. The abbreviated subcommands are enq and deq. For example, jsbc enq is equivalent to jsbc enqueue. This feature is described in sbc and sbd topics and the associated man pages.
- New StreamBase-to-StreamBase Output Adapter
-
This release adds the SBD2SBD Output Adapter, which runs within an upstream application, sending tuples to a downstream application. This adapter is used by the High Availability system, and is also available for customer use in complex StreamBase applications.
- New Properties for StreamBase-to-StreamBase Input Adapter
-
Properties were added to the SBD2SBD Input Adapter to support secure connections from upstream StreamBase Servers.
- New Functions in the Expression Language
-
The expression language was extended with the following functions: getContainer(), getNodeName(), and systemenv(). The stdev() and stdevp() functions were enhanced to take and return a timestamp. See StreamBase Expression Language and Functions for details.
- API Changes
-
The StreamBase Java and C++ Client APIs underwent changes, primarily to support the new High Availability features. The details of the API changes are described in API Changes in 5.1.
- .NET API Addition
-
StreamBase 5.0 introduced a new .NET API for creating StreamBase client applications, as described in Creating .NET Clients and Migrating .NET Clients. As of StreamBase 5.1.1, the StreamBase Monitor API (that is, the set of
StreamBase.SB.Monitor.*classes) is now included in the new StreamBase .NET API.
StreamBase 5.1.1 also fixed several product limitations, as described in the Resolved Limitations section of the Release Notes.
StreamBase 5.1.0 was a limited availability release that included the following new features:
- Security Tagging
-
When enabled, the security tagging feature allows a StreamBase application to have a security tag associated with every tuple on every stream. The security tag is automatically added by the StreamBase Server, and is not settable, although it can be accessed by means of a function call.
Security tags can be used for filtering and other computation, to allow flexible management of secure data. The security tag value on a tuple emitted from an operator is calculated based on the input tuple tag and the state of the operator. In general, stateless operators pass the tag through unmodified. Operators with state track the security level of their state, which is the aggregate security level of all tuples that contributed to their state. Operators that read state external to themselves output tags that are the maximum of the external state's tag and the input tuple's tag. Operators that modify state external to themselves modify the tag on the external state to take into account their input tuples' state.
Contact your StreamBase Systems field service representative for help configuring and using the security tagging feature.
- High Availability
-
HA support was improved for 5.1, and provides a building block approach that replaces the monolithic HA support in previous releases.
The new HA support provides: active/active server configuration, fast server restarts, and easier manual configuration of server clusters. StreamBase Servers can be grouped into flexible failover groups in which there is no requirement for coordination between servers, or for one server to assert leadership status. The StreamBase client API was modified to support HA features. A new adapter, HAHeartbeatAdapter, provides the inter-server heartbeat mechanism.
HA support in StreamBase 5.1 is an advanced feature. Contact your StreamBase Systems field service representative for help configuring and using the High Availability features.
