- Index

# StreamBase Release Notes

TIBCO StreamBase 10.3

Date: 23 Jul 2018

These are the release notes for TIBCO StreamBase® 10.3.0.4 with internal tracking number 262506.

## Before You Install

Before you install TIBCO StreamBase® and TIBCO® Live Datamart software:

1. Read the New and Noteworthy section of the Release Notes for important information on migrating from previous StreamBase releases.

2. Confirm that your target system matches the hardware and software requirements discussed on Supported Configurations.

3. Read the Installation Guide.

## Documentation Starting Points

Getting Started provides a tutorial introduction to TIBCO StreamBase® and TIBCO® Live Datamart.

Concepts Overview describes the concepts and terminology of TIBCO StreamBase® and TIBCO® Live Datamart.

## New and Noteworthy in StreamBase 10.3.0

This section describes the new and updated features of TIBCO StreamBase® 10.3.0.

### New Features

TIBCO StreamBase® 10.3.0 adds the following updates and new features:

#### New Unified Security Model

Security Model Changes

  The security model in StreamBase 10.3.0 is a significant upgrade over previous releases, providing greater security without sacrificing ease of use during development. See StreamBase Security Model for details. New features include:

  - Unified configuration settings for StreamBase and Live Datamart communication, and for StreamBase Runtime node access communication.

  - New support for an OpenID Connect (OIDC) authentication realm. OIDC is an identity layer on top of the OAuth 2.0 protocol which allows single sign-on for clients to verify your identity based on the authentication performed by an authorization server. The following identity providers are currently supported:

    - Google Identity Platform

    - Auth0

    - Microsoft Azure Active Directory

  - New support for a Kerberos Authentication Realm.

  - Separation of configuration for secure server and secure client communication.

Security Behavior Changes

  Some behavior changes are the result of this upgrade:

  - In previous releases, when communicating with a node on another machine (including on virtual machines and in Docker containers), you could use the `guest` user as a default entry point. Starting with release 10.3.0, at minimum you must configure either a list of trusted hosts or a password for the default user in order to communicate with the remote machine. This is described in Security Configuration Defaults.

  - The epadmin install node command's `trustedhosts` parameter was removed. Instead, you must define trusted hosts using the TrustedHosts root object in a Security configuration file.

#### New Maven Artifact Management

New Repository Handling

  StreamBase 10.3.0 introduces a new way to manage StreamBase-provided JAR files and other artifacts for consumption by its Maven build system.

  - In StreamBase 10.2, artifacts were installed in the `sdk/maven/repo` directory of your StreamBase installation directory. Maven POM files generated by StreamBase Studio in 10.2 were configured to read from this directory as one of its Maven repositories.

  - In StreamBase 10.3.0 and later, artifacts are installed in an archive file. StreamBase Studio then merges the contents of the archive into your local Maven repository, which is usually the`.m2/repository` folder of your home directory. On every start, Studio checks the status of the local repository and merges any missing files back in. This allows the POM files generated by Studio 10.3 to use only standard Maven conventions.

Do Not Open StreamBase 10.2 Workspaces with Studio 10.3

  TIBCO has always recommended against trying to use a Studio workspace from a previous release in a new major release. However, this recommendation is especially important for the StreamBase 10.2 to 10.3 transition because of 10.3's new repository handling described above.

  DO NOT OPEN StreamBase 10.2 project folders in Studio from StreamBase 10.3. See Migrating from 10.2 to 10.3 for further information.

New epdev Command

  StreamBase 10.3.0 introduces the epdev command, which allows you to develop on a machine without a Studio installation, as in a devops environment. Use this command to unpack the shipped Maven artifacts into a machine's local repository. You can also use epdev to correct repository errors, to write the StreamBase artifacts to a non-default repository, to configure a development laptop for offline use, and other tasks. See the epdev reference page or epdev --help for further information.

TIBCO_EP_HOME Variable No Longer Used

  As part of the artifact handling change described above, StreamBase 10.3 no longer requires or uses the TIBCO_EP_HOME environment variable, either by Studio or command-line tools. There is no harm in leaving the variable set, but it is not used.

  However, StreamBase 10.1 and 10.2 still requires that variable. If you are maintaining old and new Studio versions, make sure any shell startup files or Windows scripts set that variable correctly for use only with StreamBase installations before 10.3.

#### New Studio Support for StreamBase Applications

Running Applications in Studio

  StreamBase 10.3.0 introduces support for running StreamBase Applications in StreamBase Studio. Previous StreamBase 10 releases required Apps to be run from the command line with the epadmin command. While epadmin deployment remains the gold standard for production deployment, launching Apps in Studio allows you to test or debug an application consisting of two or more fragments.

  While a StreamBase Application is running, you can stop and restart it from the right-click menu in the Debug view.

New Run Configuration Type

  This release introduces a new Run Configuration type named StreamBase Application. The minimum requirement for this configuration is an application archive (whose filename usually ends with `*ep-application.zip`). This can be generated in Studio with the wizard described next, or on the command line with mvn package.

  Once you have an application archive file, right-click the filename, and select Run As → Run Configurations. In the Run Configurations dialog, create a new StreamBase Application configuration and use the first Browse button on the Main tab to locate the your `*ep-application.zip`. Then click Run. See Run StreamBase Application in Studio.

New Wizard to Generate Application Archives

  As an aid for running StreamBase Apps either with epadmin or in Studio, this release includes a new wizard that first generates fragment archives for all dependent fragments, and then generates an archive for the StreamBase App.

  In previous releases, you had to run Maven Install on the fragment projects you wanted to encapsulate in a StreamBase Application project, and then Maven Install again on the App project. The new wizard reduces those steps to a single menu selection.

Workspace Resolution for Dependencies

  When attempting to locate projects to be designated as Maven dependencies, Studio now looks in the current Studio workspace as well as the local Maven repository. This allows Studio to locate projects without having to run Maven Install on them first.

#### New Unit Test Support for Fragments

Previous StreamBase 10 releases supported running Java unit tests that load a designated EventFlow fragment, send tuples to it, and look for expected results. Previously, these tests could be run with Run As → Maven Test or on the command line with mvn test. Those methods are still available, but this release adds a new options to the Run As menu.

The two Fragment Unit Test options run the selected Java unit test and connect the results to Studio's JUnit view to see the results as green success or red failure bars. You can select the project's `src/test/java` folder to run all unit test files underneath, or select a package name, if your project has more than one, to run all tests with that package name.

#### New epadmin Syntax and Features

epadmin New Syntax

  The epadmin command now supports Gnu-style parameter syntax with two hyphens prefixing parameter names. You can enter as few letters of each parameter's name that preserves that parameter's uniqueness among the current epadmin target's supported parameters.

  Syntax from previous releases is still supported. In this format, parameters are entered in full without abbreviations and without a prefixed double hyphen. You cannot mix old and new syntax in the same command. See the epadmin reference page for details.

epadmin help Expanded

  The usage text for epadmin commands is greatly expanded and clarified, and you no longer need to connect to a node before seeing usage text. Start with epadmin help, epadmin help targets, and epadmin help globals. Thorough usage text is available for all targets by using epadmin help `targetname`.

epadmin Command Error Message Enhanced

  The returned error message was enhanced for cases when you enter a partial, non-unique parameter for a given epadmin command. The error message now returns the name of conflicting parameters, and also suggests a partial name for the parameter that could enable a successful command execution.

epadmin verify services Command Added

  This command verifies that the UDP broadcast mechanism used by StreamBase Runtime discovery services is working normally on the local subnet. See epadmin --help verify services for details.

epadmin tail logging Command Added

  This command emits new messages as they are added to an engine's log stream. For further notes, see Tail Logging.

#### New Studio Usability Enhancements

New HOCON Configuration Chooser

  This release shows a new HOCON type selection dialog when you run File → New → StreamBase HOCON Configuration File. This dialog organizes HOCON file types in root object categories and lets you enter a search string to narrow the list to matching root objects.

New Console View Output Level Settings

  The Console view was enhanced to allow you to set the level of information displayed when running fragments or applications. When the Console view has fragment or application output to display, a new Format menu in the Console view toolbar sets one of three options: Verbose, Concise, or Minimal.

  The Format menu is a shortcut for selecting one of the same preferences from the Launching panel of Studio Preferences. Concise is Studio's default in StreamBase 10.3.0; in previous releases, the Console always showed Verbose format. For a description of these settings, see Launching Panel.

New Clusters View Display Options

  In previous 10.x releases, the Properties panel of the Clusters view was always placed on the right side of the view. Starting with this release, Studio provides an option to locate the Properties panel on the right or below the Clusters, Nodes, and Engines panel. The new default is below.

Fragment Dependencies Now Shown in Project Explorer

  When one fragment project has a Maven dependency on other fragment projects, a new folder named StreamBase Fragment Project Dependencies appears in the Project Explorer view to show the dependency relationships.

New JDBC Data Source Connection Options

  This release includes the following JDBC configuration connection options:

  - Connection pooling allows all Query operators that use the same data source to share the same connection.

  - Multiple JDBC connections can now be configured in a single HOCON configuration file by using the new JDBCDataSourceGroup root object.

  See StreamBase JDBC DataSource Configuration and JDBC Data Source Overview for a discussion of using the JDBC Table data construct and one or more Query operators to access an external JDBC data source from an EventFlow module.

Copying Schema to Clipboard Now Supported

  Studio now provides the ability to copy the schema of a selected input stream, named schema, or arc to the system clipboard, in either JSON or XML format. This feature allows you to copy a schema ready to paste into the Create Artifact dialog of the Artifact Management Server. See Exporting Schemas to Clipboard for details.

#### New Expression Language Function

New Function to Calculate Great Circle Distance

  This release adds the great_circle_distance() function to the StreamBase expression language.

#### New Platform Support

Additions to Operating System Support

  StreamBase and Live Datamart are now supported for build or staging servers and for production deployment on:

  - Oracle Linux 7

  - Microsoft Windows Server 2016

Oracle JDK Version Updated

  The Oracle JDK version bundled with StreamBase and Live Datamart is now JDK 1.8.0_u171.

Command Line mvn Command Shipped with StreamBase

  StreamBase 10.3.0 and later ships with the open source mvn command installed. If you use a StreamBase Command Prompt on Windows or a StreamBase-configured shell on macOS or Linux, the mvn command is in the PATH, as is the java command required to run mvn.

Windows Service Now Supported

  StreamBase now supports running a StreamBase application as a Windows service, including support for using event logging. See Configuring Windows as a Service for details.

Docker Support Enhanced

  OpenShift Container Orchestration Environments: Cluster auto-scaling is supported using Kubernetes Horizontal Pod Autoscale (HPA) 1.7. See Supported Docker Environments.

Jetty Upgraded

  In StreamBase Studio, the Jetty web server version was upgraded to 9.3.23.v20180228. The upgrade applies to, for example, the TIBCO StreamBase® Web Server Request adapter and the TIBCO StreamBase® Web Server Response adapter, as well as for developing your own applications that require Jetty.

#### New Adapters

New CME iLink Order Routing Adapter

  The adapter named CME Order Routing in previous releases was removed and replaced with the CME iLink Order Routing adapter. This new adapter has a different usage model, which requires applications using the previous version to be modified accordingly. The new adapter includes:

  - Support for CME's Secure Logon procedure

  - Support for Convenience Gateway

  - Support for Market Segment Gateway (with failover support)

  See CME iLink Order Routing Adapter for configuration details and CME Order Routing Adapter Sample for a sample of adapter usage.

New CME Market Data Protocol Adapter

  The adapter named CME Market Data Platform FIX/FAST Input adapter in previous releases was removed and replaced with the CME MDP3 adapter. The new adapter allows StreamBase to receive data from a CME Market Data Protocol (MDP3) connection, and now supports explicit IP address binding for use on multi-homed systems, without requiring additional operating system configuration.

  See CME MDP3 Adapter for configuration details and CME MDP3 Adapter Sample for a sample of adapter usage.

eFTL Adapters Now Available

  This release includes the following new eFTL adapters:

  - TIBCO StreamBase® Subscribe Adapter for TIBCO eFTL®, which allows a StreamBase application to receive eFTL messages. See TIBCO eFTL Subscribe Input Adapter for details.

  - TIBCO StreamBase® Publish Adapter for TIBCO eFTL®, which allows a StreamBase application to publish eFTL messages. See TIBCO eFTL Publish Output Adapter for details.

New Kafka Adapter Added

  The TIBCO StreamBase® Output Adapter for Apache Kafka Consumer Commit allows StreamBase applications to perform commit operations for a given consumer operator. The commit can be a commit of all topics and partitions or be a more granular approach and specify the topic, partition, and offset to commit. See Kafka Consumer Adapter for more information.

New Web Server Adapters Added

  This release includes the following new web adapters:

  - TIBCO StreamBase® Web Input Adapter allows the StreamBase application to receive JSON formatted tuples via an HTTP POST request. For adapter details, see Web Input Adapter.

  - TIBCO StreamBase® Web Output Adapter allows the system to stream tuple data in JSON format to one or more connected web sockets. For adapter details, see Web Output Adapter.

  See Web Streams Adapter Sample for a sample of the adapters' usage.

New Task Scheduler Adapter

  The TIBCO StreamBase® Task Scheduler adapter allows Studio to fire events at specific intervals. See Task Scheduler Adapter Samples for sample usage and Task Scheduler Adapter to learn more about its properties.

### Changes in Functionality

The following changes in functionality occurred between releases 10.2.1 and 10.3.0.

#### Studio Changes

Select Configuration Files from Other Projects

  In previous releases, in a Run Configuration dialog for an EventFlow fragment, you could select from among the configuration files in the `src/main/configurations` and `src/test/configurations` folders for the current project only. Starting with 10.3.0, you can select configuration files from other projects in the workspace as well. This feature is a convenience for short-term testing only. Configuration files designated this way do not automatically become part of the current project's archive.

Properties View, General Tab

  In the Properties view for all global Java operators and adapters, in the General tab, previous releases combined the operator or adapter line with the operator or adapter class name into a single long line. Starting with 10.3.0, the fully qualified class name is on a line of its own. As before, you can select and copy the class name for pasting elsewhere, such as into a Java JUnit file.

#### Installation Changes

Some Windows Command-line Tools were Moved

  Only on Windows installations, certain command-line tools were moved to the `bin64` directory of your StreamBase installation. If the PATH contains both the `bin` and `bin64` directories (as provided by the StreamBase Command Prompt), you can expect no changes. The commands that moved are:

  jsbadmin | sb-config
  jsbc | sbfeedsim
  jsbclientgen | sbprofile
  sbcipher |

#### HOCON Configuration Changes

Creating Fragment Projects No Longer Generates fragment.conf

  In previous releases, creating a fragment project in Studio would automatically generate a `fragment.conf` file in `src/main/configurations` as a configuration placeholder. Studio no longer generates this file for new fragment projects. In most cases such `fragment.conf` files contained nothing meaningful to the project being created. You can still generate a Fragment Definition HOCON file manually and configure it as required.

Trusted Hosts Configuration Supports New Formats

  StreamBase and Live Datamart trusted host configurations now support partially qualified domain names and IPv6 addresses. See Trusted Hosts for more information.

Fragment Specifications Now Require Only the Top-Level Fragment

  In previous releases, if you used the `fragments` object under a `nodeTypes` definition in the ApplicationDefinition root object of the application HOCON type, you had to separately list the top-level fragment and all of its dependent fragments (if any). Starting with StreamBase 10.3.0, you only need to specify the top-level fragment in a node type's fragment list, and transitive dependencies are automatically included.

memorySizeBytes Property Now Has a Minimum Value

  The `memorySizeBytes` property of the ApplicationDefinition configuration type configures the size of transactional memory for a node. That property now has a minimum value of 512 MB, which has also been its default value. Previous releases allowed you to configure a lower value for this property.

Sparse Partitions are now Foreign Partitions

  Sparse partitions were renamed to foreign partitions. Other than terminology, however, the feature is unchanged. The Sparse Audit Output column in the epadmin display partition command was changed to Foreign Partition Audit Option.

#### epadmin Changes

export logging Now Requires enginename

  The epadmin export logging command's `enginename` parameter is now required (it was previously optional). Release 10.3.0 removes support for exporting logging configuration for all engines using a single command.

display configuration No Longer Shows Principal

  The Principal column was removed from the epadmin display configuration command output. The node audit log can now show the user who made changes to the configuration state.

In the realm Target, the --realm Parameter is Renamed

  The --realm parameter is now --name throughout the epadmin `verb` realm command.

#### Operator Updates

Model Operators Include New Input Schema Option

  The input schema for the JPMML, H2O Model Evaluator and Spark/MLlib Model Evaluator operators now optionally allows you specify the model name field against which the input tuple should execute. If the field is missing or null, then existing functionality of executing against all loaded models occurs.

Distributed Router Operator Change

  Error handling changed in the Distributed Router operator when using the Broadcast routing policy. Previous releases would return an error if a target node reported an error. StreamBase now ignores these errors. Change your Distributer Router configuration accordingly.

#### Adapter Updates

CME Adapters Replaced

  Both adapters that provide connections to Chicago Mercantile Exchange resources were replaced in this release. See New Adapters above.

LogLogic Adapter Name Changed

  The TIBCO StreamBase® Adapter for TIBCO® LogLogic Unity's name changed to TIBCO StreamBase® Adapter for TIBCO® LogLogic. The adapter's functionality remains unchanged. See TIBCO LogLogic Query Input Adapter for adapter information.

HDFS Adapter Suite Now Supports Amazon S3 Connectivity

  The HDFS adapter suite was enhanced to support connectivity to an Amazon S3 file system. The enhanced adapters are:

  - TIBCO StreamBase® Binary File Reader For Apache Hadoop Distributed File System (HDFS)

  - TIBCO StreamBase® File System Adapter for HDFS

  - TIBCO StreamBase® CSV File Reader For Apache HDFS

  - TIBCO StreamBase® File Reader For Apache Hadoop Distributed File System (HDFS)

  - TIBCO StreamBase® Regular Expression File Reader For Apache Hadoop Distributed File System (HDFS)

  - TIBCO StreamBase® Binary File Writer For Apache HDFS

  - TIBCO StreamBase® CSV File Writer For Apache Hadoop Distributed File System (HDFS)

  - TIBCO StreamBase® File Writer Adapter for Apache HDFS

  - TIBCO StreamBase® XML File Writer for Apache Hadoop Distributed File System (HDFS)

  New samples illustrate how to access the Amazon S3 file system using the TIBCO StreamBase® File Writer for Apache Hadoop Distributed File System (HDFS) and TIBCO StreamBase® File Reader for Apache Hadoop Distributed File System (HDFS). See Amazon S3 File System Access via HDFS Adapters.

Spotfire Automation Services Adapter API Changed

  To provide support for three versions of the TIBCO Spotfire automations services, the TIBCO StreamBase® Output Adapter for TIBCO Spotfire® Automation Services now features an API version drop-down list and deprecates the Previous Version Compatibility check box.

  With this change the default API version is now 1.0, which may break existing implementations. Use version 0.1 to return to functionality that works with Spotfire 7.4 and below, or use version 0.2 to return to functionality that works with Spotfire releases 7.5 to 7.12. For more information regarding this adapter's properties, see Spotfire Automation Services Output Adapter.

FTL Subscribing Input Adapter Improved for Security and Latency

  The TIBCO StreamBase® Input Adapter for TIBCO FTL® was enhanced to include support for secure connections, durables and inline mode. Additionally, you can now programmatically change the ContentMatcher string for the subscription. For more information about these and other properties, see TIBCO FTL Subscribing Input Adapter.

UDP Send and Receive Adapters Enhanced

  The TIBCO StreamBase® Input and Output adapters for UDP now include a new property to specify which network interface adapter to bind. If left blank (default), the adapters function as before and bind to all interfaces.

  Additionally, the adapters now both include a Data Transformer tab which allows you to specify multiple options to set up how the received or sent data will be transformed.

  See UDP Sender Output Adapter and UDP Receiver Input Adapter for details regarding the Sender Output and Receive Input adapters, respectively.

Multiple Kafka Consumer and Producer Adapter Changes

  Most of the individual options located in the Advanced tab of the Properties view for the Kafka Consumer and Producer Adapters were removed in favor of a grid where you can enter key-value pairs for advanced options. These options are based on the adapters being upgraded to Kafka version 11:

  https://kafka.apache.org/0110/javadoc/org/apache/kafka/clients/producer/ProducerConfig.html
  https://kafka.apache.org/0110/javadoc/org/apache/kafka/clients/consumer/ConsumerConfig.html
  https://kafka.apache.org/0110/javadoc/constant-values.html

  If an advanced feature of a Kafka adapter was set with StreamBase 7.7.2 or earlier, it may no longer be a Kafka option, and thus now missing from the Properties view. If an advanced feature does still exist, you must now use the configuration key and value to reset the option.

  Consumer groups are now supported as part of the upgrade of the Kafka Consumer adapter Kafka version 11. As a result of the upgrade, simple consumer functionality is now deprecated.

  The Kafka Consumer adapter's advanced configuration settings are no longer restricted to be set per adapter. The adapter now supports advanced configuration options per subscription tuple.

  See Kafka Producer Adapter and Kafka Consumer Adapter for further information about Kafka adapter functionality.

Tuple2Avro and Avro2Tuple Operators Can Now Specify Avro Schema

  The Tuple2Avro and Avro2Tuple operators can now specify an Avro schema when converting between binary Apache Avro records and tuples. If no value is specified, the operator continues to generate an Avro schema from the input/output tuple schema as before.

IBM WebSphere MQ Adapter Suspend and Resume Behavior Changed

  When suspended, the TIBCO StreamBase® Input Adapter for IBM MQ Series now stops emitting tuples. The message thread continues to run and receive messages but those messages are discarded. For adapter details, see IBM WebSphere MQ Input Adapter.

Web Reader Adapter URL Encoding Options Added

  The TIBCO StreamBase® Web Reader adapter previously included a single option to specify URL encoding. Two options are now available:

  - Decode HTML results — decodes strings before output.

  - URL Encode Post Data — specifies URL-encoding the PostData value.

  See Web Reader Input Adapter for adapter option details.

Web Server Adapters Enhanced

  This release includes additional functionality for the context path of the TIBCO StreamBase® Web Server Request adapter. Now, the context path can also contain path variables in the form of {`varname`}. Additionally, the Web Server Request Adapter can now convert:

  - JSON requests to tuples

  - XML requests to tuples

  - Binary requests to a series of tuples containing the request POST data

  The Web Server Response Adapter can now convert:

  - Tuples to JSON responses

  - Tuples to XML responses

  - Tuples to POST responses

  See Web Server Request Adapter and Web Server Response Adapter for details.

File Reader Adapter Now Reads Hierarchical Files

  The TIBCO StreamBase® File Reader adapter now allows you to specify a folder or filename for reading files. If you specify a folder, all files contained therein that match the given glob pattern are read. For more information regarding this adapter's properties, see File Reader Input Adapter.

JMS Consumer Operator Adds Synchronous Tuple Emission Option

  The JMS Consumer operator now includes a new setting: Emit Tuples Synchronously. This optional setting causes the operator to wait until the tuple is fully processed before dequeueing the next message from the JMS server. In this way, implicit backpressure can be applied to the upstream server if the incoming traffic becomes unmanageable.

### Deprecated and Removed Features

StreamBase 10.3.0 has the following deprecations.

#### RHEL 6 Deprecated

Support for Red Hat Enterprise Linux 6.x is deprecated and is expected to be removed in a future release.

#### Deprecated HOCON Configuration Features

The following HOCON configuration features are deprecated but are still supported for backward compatibility:

Local Admin Authentication Realm

  In the Security HOCON type, the entire Local Admin Authentication Realm root object is deprecated. Use Local Authentication Realm instead.

principals Property

  The `initialPrincipals` property replaces the deprecated `principals` property when configuring a Local Authentication Realm root object of the Security HOCON type.

JDBCDataSource Root Object

  The `JDBCDataSource` root object in the JDBC Data Source configuration type is deprecated and replaced with the `JDBCDataSourceGroup` root object, which allows you to configure more than one JDBC data source definition in the same file.

#### Subclipse Deprecated

Studio compare features no longer support Subclipse, which is now removed. Instead, use Subversive.

#### sbcipher Command Deprecated

Password and other string data enciphered with the sbcipher command is still deciphered and used in StreamBase 10.3.0 and later. Going forward, however, use the epadmin encrypt secret and master secret features of the security model introduced in 10.3.0 and described in Encrypting Sensitive Configuration Data.

#### XML Normalizer Operator Deprecated

The XML Normalizer operator is now deprecated. Applications that use the operator continue to compile and run, but the operator no longer appears in the Operators and Adapters dialog. Documentation for the operator and its sample were removed.

#### Deprecated Visual Studio 2010 for C++ Removed

Visual Studio 2010 for C++, which was announced as deprecated in the StreamBase 10.2.1 New and Noteworthy, is now removed from the Windows SDK. TIBCO recommends using Visual Studio 2012 as the baseline for C++ client development.

#### sbproxy Command Removed

Previous StreamBase releases relied on the sbproxy command to provide a secure listener for StreamBase server. Starting with release 10.3.0, StreamBase server supports a native TLS listener. Thus, the sbproxy command was removed as inoperable with release 10.3.0's new security model.

### Migration and Compatibility

Migration Guide Provided

  This release provides a guide for customers migrating from previous StreamBase 10.x releases in Migrating from 10.2 to 10.3.

JMS and TIBCO EMS Adapter Configuration Files New Format

  StreamBase 10.3.0 introduces a new HOCON configuration type for configuring JMS and TIBCO EMS server connections, using the JMSAdapter root object in the com.tibco.ep.streambase.configuration.adapter type.

  Prior to Release 10.3.0, configuration for JMS and EMS operators was stored in `src/main/resources/adapter-configurations.xml`. For migrating projects to 10.3.0, the `adapter-configurations.xml` file still works, with no modifications necessary. Edits made in 10.3.0 with Studio's JMS Editor automatically converts the JMS configuration to a new file in HOCON format, and then comments out the same configuration from the XML file. See JMS and TIBCO EMS Configuration Editor.

StreamBase Studio Now Based on Eclipse 4.7.3

  StreamBase Studio, StreamBase Manager, and LiveView Desktop are now based on Eclipse 4.7.3. In Studio, you may notice that some menu items are in different places. Some formerly generic dialog buttons labelled OK and Close now state the action to be performed instead.

  LiveView Desktop users may be prompted to upgrade their workspaces because the Eclipse 4.7 workspace format has changed. StreamBase Studio silently updates the workspace format. However, TIBCO strongly recommends importing your projects from previous releases into a new, unused Studio 10.3 workspace rather than trying to reuse a previous release's workspace.

Commented Substitution Variables Inside Quoted Strings No Longer Ignored

  Prior to StreamBase 10.3.0, substitution variables commented AND inside a quoted string were ignored in configuration files of HOCON type. As of 10.3.0, they are no longer ignored.

## Limitations Resolved in 10.3.0

This section provides a list of errors corrected in release 10.3.0 of TIBCO StreamBase®.

Fixed in 10.3.0
Number | Resolution
--- | ---
TIBCO StreamBase® 10.3.0 incorporates all fixes resolved in the release 10.0 series through 10.3.0 and all fixes resolved in the release 7.7 series through 7.7.4.
SB‑44502 | If a Query Table or Table Schema was based on a named schema, then the partitioning drop-down menu in the table editing toolbar might have been disabled. It is now enabled, thereby allowing you to specify a partition when appropriate.
SB‑44475 | In previous releases, the `querytable` administration target would only work for query tables in a top-level module. This was fixed and query tables in nested modules are now correctly handled.
SB‑44457 | Specifying one or more substitution name-value pair definitions in a fragment launch configuration (as opposed to a naming a file of substitution name-value pairs), would not actually use those definitions during the launch. This was fixed.
SB‑44202 | In previous releases, having an EventFlow fragment that contained a Query Table with no data distribution policy prevented the running a JUnit test. Now unit tests do run in these circumstances, with an INFO message issued. Tuples are added to the Query Table, but the data is not partitioned.
SB‑44168 | An issue prevented the OSI PI adapter from loading the .NET OSI PI DLL. This was fixed for the entire OSI PI adapter suite.
SB‑43899, SB‑29388 | When logging off the StreamBase HP FIX engine, the FIX adapter was put into a state that prevented the logon command from working when attempting to log on again. This was fixed.
SB‑43848 | An issue prevented the Kafka Producer adapter from closing on error, regardless of the option for doing being set. This was fixed.
SB‑43797 | The Kafka Consumer and Producer adapters were fixed to address an issue that prevented suspend and resume behavior from working correctly.
SB‑43648, SB‑43458 | Artifact deployment could fail when the PMML model operator pulled in artifacts from an Artifact Management Server (AMS) via the Artifact Distribution Service (ADS) — and when the default container was explicitly set for deployment in AMS. Now, the default container name is no longer required for deployments.
SB‑43783 | This release fixes an issue that prevented new models from completely replacing existing ones, when loaded from the JPMML Model Evaluator Operator's control port.
SB‑43621 | There was a problem where duplicate entries could mistakenly appear in the fragments drop-down list in the Manual Input view's Output Streams and Input Streams views. This problem could occur immediately after the launch dialog for an EventFlow fragment launch disappeared, when running a second EventFlow fragment launch. This was fixed.
SB‑43566 | The `Operator.evaluate` Java API would previously return a value of zero for data types int, long, double and Boolean if their values were in fact null. This was fixed so that null is returned in these cases.
SB‑43479 | An issue caused the JPMML Model Evaluator operator to issue NaN errors when running PMML models containing special characters and spaces in the data field names. The operator now unwraps any field name that uses escaped identifier syntax before trying to compare to any field names in the actual models. This ensures the field names will now match. The unwrapped name now also appears in the log for easier reference.
SB‑43464 | This release fixes an issue that prevented EventFlow applications from launching if an undefined data distribution policy was defined for a query table in a unit test case. A warning is now generated. Tuples are still added to the query table in shared memory, but data is not partitioned.
SB‑43413 | All field types were updated on the TERR operator to check for a data index range. Now, a null value is returned when trying to access an index beyond what is in the TERR object.
SB‑43293 | This release fixes an issue in Studio's module drag and drop capability that prevented file names from converting to fully qualified names, when dropped into nested projects.
SB‑43161 | Previously, MQTT Input adapters using the same shared connection would output messages for all topics — whether they subscribed to the topics or not. Now, each adapter outputs messages only for the topics to which they are subscribed.
SB‑43111 | Previously, Studio would return a ResourceNotFoundException typecheck error if an EventFlow module containing a Decision Table application called for another module's Decision Table file. This was fixed.
SB‑43032 | This release fixed a URI parameter encoding issue in the Web Reader Input adapter.
SB‑42764 | The WITS adapter typecheck could fail if the `stringNullValue` adapter configuration option was missing. Now, the adapter no longer emits an NPE error if the WITS adapter configuration is missing that option.
SB‑42746 | The Web Reader adapter's status port schema was only set during typecheck and thus was required to be set at initialization, with the runtime version of the schema. As a result, the adapter was not passing capture fields to the error output port. The Web Reader adapter's status port now works correctly with capture fields.
SB‑42394 | In previous releases, a collision between virtual network interfaces and the StreamBase Runtime caused (a) extremely slow node installation times on Windows and/or (b) when more than one fragment was run at the same time, nodes would self-destruct, leaving no evidence in log files. Virtual network interfaces are installed as a part of virtualization hypervisor software such as Oracle VirtualBox, Microsoft Hyper-V, or VMware Workstation. This collision occurred only on Windows, and was triggered by installing Docker for Windows, which requires and enables Hyper-V. The cause of the collision was identified and corrected, and no longer occurs with StreamBase releases 10.3.0 and later. See Programs with Incompatibilities for workarounds if you are running an earlier StreamBase 10 release.
SB‑42250 | Model artifacts deployed from the Artifact Management Server to a StreamBase cluster via the Artifact Distribution Service (ADS) would occasionally fail to deploy on all nodes. The underlying deadlock was fixed to address this issue.
SB‑41775 | In cases when the Kafka driver detected a TCP/IP connection drop, the Kafka Consumer adapter would emit an inaccurate warning message describing the cause. The Kafka Consumer now correctly reports the failure error when the adapter exceeds the maximum number of retries.

## Known Limitations

This section describes known limitations in the current release of TIBCO StreamBase®. Each item includes a tracking number, description, and workarounds when possible.

Known limitations for using the EventFlow debugger are described separately, in the Limitations, Tips, and Tricks section of the Using the EventFlow Debugger page.

SB‑44282 | Error when building Docker images in Studio on Mac.
Description | An error results when following the steps on a Mac to build a Docker image containing a StreamBase Application. The Console view references a failure to locate the docker-credential-osxkeychain command.
Workaround | To make sure `/usr/local/bin` is in Studio's PATH, start Studio by typing `sbstudio &` at a StreamBase-configured Terminal shell prompt.
SB‑44167 | iPhone connected to Mac can cause node launch failures.
Description | Conditions: an iPhone is connected to a Mac with a USB-to-Lightning cable while Personal Hotspot is NOT enabled on the iPhone. Under these conditions, StreamBase Runtime nodes can fail to start.
Workaround | Unplug the iPhone, or enable Personal Hotspot (whether or not you actually use Personal Hotspot).
SB‑42478 | Cluster Monitor fails to start in the same cluster as monitored.
Description | Attempting to start the Cluster Monitor in the same cluster as other applications can fail.
Workaround | Run the Cluster Monitor feature in a separate cluster from the one containing the applications being monitored.
SB‑42410 | Duplicate engine log files.
Description | Duplicate engine log files exist in both the node directory's top level and in its `logs` subdirectory. The other user visible log files are now all located in the `logs` subdirectory.
Workaround | None. The engine log files in the node directory's top level can be ignored. The same information is available in the engine log files found in the `logs` subdirectory. The duplicate log files are expected to be removed in a future release.
SB‑42324, SB‑30773, SB‑30846 | Inconsistent containerName behavior.
Description | If you define a StreamBase container name with the `containerName` parameter of the `sbengine` HOCON configuration type, the runtime behavior is different for fragments run in Studio compared to epadmin launches. Studio places the EventFlow module in a container named default, following standards set in StreamBase 7.x, whereas epadmin honors the configuration-set container name.
Workaround | None.
SB‑42408 | ADS: load failure if artifact is not replicated on each node.
Description | Using dynamic partitioning for the Artifact Distribution Service (ADS) will cause duplicate key errors when loading artifacts, if the artifacts are not replicated to all nodes in a cluster.
Workaround | Ensure that artifacts are replicated to all nodes in a cluster.
SB‑42407 | Artifacts reported as missing and duplicate created after cluster shape change.
Description | The Artifact Distribution Service (ADS) can report existing artifacts as missing and create duplicate artifacts after a node is added or removed from a cluster, if high availability is not configured.
Workaround | Configure high availability for ADS if the cluster shape is going to be changed.
SB‑42093 | Reloading the entire node configuration when attempting to configure the cluster monitor fails.
Description | Attempting to reload a cluster monitor configuration embedded in a node deploy configuration file using the epadmin load configuration command quietly does nothing.
Workaround | Create a separate configuration file with just the cluster monitor configuration and load and activate that configuration.
SB‑41896 | Studio Support Wizard screen capture can fail on Mac.
Description | The StreamBase Support Wizard screenshot feature preview may not display properly under certain multi-monitor and/or Retina display hardware conditions.
Workaround | Use the Support Wizard to guide you to continue; the Support zip file will still contain the screenshot that you can verify in the archive prior to sending to TIBCO. For more information on the Support Wizard, see StreamBase Support Wizard for Troubleshooting.
SB‑41099 | Calling Help via management API throws null pointer exception
Description | Executing `help` commands using the `DtmCommand.execute` method in the management API fails with an exception.
Workaround | None. This issue is expected to be resolved in a future release.
SB‑35326 | Shutting down at debugger breakpoint causes engine to fail with an error.
Description | Stopping a JVM with a breakpoint set in the debugger can cause the JVM to exit with an error that requires the node to be removed and reinstalled.
Workaround | Ensure that no breakpoints are set in a debugger when shutting down a JVM.
SB‑32239 | Bogus `FATAL Invalid response` trace seen when stopping a node.
Description | When deploying fragments, a misleading fatal error message may be returned when terminating the fragment or the node on which it is deployed. For example:
    MESSAGE: dtm : FATAL(RQ:A.dstest): Invalid response: <ready/>
Workaround | This message can be safely ignored.
SB‑30948 | Trouble using the TERR operators on macOS.
Description | On macOS, EventFlow modules that use the TERR operators with TERR versions before 4.4 fail to start even when using the Use Embedded TERR check box. This includes the TERR operator samples shipped with StreamBase.
Workaround | If you can, update to TERR 4.4 or later, which is included with StreamBase 10.2.1 and later. If you must use a TERR version before 4.4, there are extra configuration steps on macOS, compared to Windows and Linux. These steps are detailed in the Operating System Configuration for TERR sections of the pages that describe the TERR Operator and the TERR Predict Operator.
SB‑30898 | On Windows only, virtual network adapters slow fragment startup with StreamBase before 10.3.0.
Description | If you have Oracle VM VirtualBox® or Microsoft Hyper-V installed, and one or more of your virtual machines has its virtual network adapter activated, this slows down the launch of EventFlow and LiveView fragments into a StreamBase Runtime node by several minutes.
Workaround | Upgrade to StreamBase 10.3.0 or later, where this issue is corrected. If you must use an earlier release, temporarily disable the network adapter feature of your VirtualBox VMs as described in Windows and Virtual Network Interfaces.
SB‑30270 | Failure to start Studio or Manager by double-clicking on macOS Sierra or High Sierra
Description | MacOS releases 10.12 Sierra and 10.13 High Sierra have a security model that is stricter than previous releases. As part of their security, these releases automatically block unsigned, downloaded application bundles with `.app` extension from being able to run. Unfortunately, this affects the application bundles for StreamBase Studio 10.x and StreamBase Manager 10.x.
Workaround | See the list of suggested workarounds in Starting StreamBase Studio on macOS Sierra.
SB‑29050 | Error when debug stepping into or stepping over a Decision Table operator.
Description | When using EventFlow debugging, stepping into or over a Decision Table operator is not supported.
Workaround | Set your breakpoints upstream or downstream. Also, consider using the features of the Decision Table Analyzer to get a debug-like view of how the operator responds to different input tuples.
SB‑28856 | Deleting decision table rows does not re-number rule IDs.
Description | When using the Decision Table editor to delete and then add a new decision table rule, the rule ID does not renumber. For example, by deleting row 5 and adding a new row, the rule ID numbering is now 1...4, 6.
Workaround | None.
SB‑28669 | Error message: Grows beyond 64KB.
Description | In rare cases, compiling small StreamBase applications can produce an error message containing the words `Grows beyond 64KB`.
Workaround | Contact TIBCO StreamBase Technical Support for a workaround for this issue.
SB‑28598 | Multi-container StreamBase applications cannot use the same ActiveSpaces metaspace.
Description | StreamBase applications deployed with multiple containers receive `metaspace already exists` errors when attempting to connect to the same TIBCO ActiveSpaces metaspace from different containers.
Workaround | None.
SB‑28452 | Delta stream arc limitations in the EventFlow Debugger.
Description | If a delta stream arc is a direct connection between a Query Table and an Output Stream, and if that arc has a Debugger breakpoint, the breakpoint is not hit at during debugging with the EventFlow Debugger. Similarly, while debugging, stepping over to try to reach that arc does not suspend on that arc.
Workaround | Insert a no-op Map operator between the Query Table and the Output Stream. Then a breakpoint on the arc between the Query Table and the Map does work, and stepping over reaches that arc as well.
SB‑26629 | RPM installation method issues on RHEL 7
Description | StreamBase and Live Datamart are supported on Red Hat Enterprise Linux version 7.x. The archive installer is the recommended installation method. If you use the RPM installation method, RHEL 7 issues several warning messages during installation that complain about file removal failures, and issues an overall warning that RHEL 7 "may not be compatible with this version of StreamBase." Despite these warnings, the installation does succeed. The only consequence is that `rpm -e` fails as an uninstallation method.
Workaround | Remove StreamBase directories manually to uninstall an RPM installation on RHEL 7. Otherwise, all StreamBase and Live Datamart processes run as expected on RHEL 7.
SB‑26927 | Error message ``NamedSchema` is not a function that can be called`.
Description | In compiling the updating expression for a dynamic variable where the expression references a named schema, if a field in the tuple presented by the updating stream also has the same name as the named schema used in the expression, the field is instead evaluated as a function. This raises the error ``NamedSchema` is not a function that can be called`. This compilation behavior and language ambiguity was introduced along with the function data type.
Workaround | The required migration step is to rename either the field or the named schema to eliminate the ambiguity.
SB‑26237 | Constant definitions used as component properties are not used at runtime.
Description | StreamBase Studio properly typechecks defined constants when used in operator properties, but at runtime substitutes their names instead of their values.
Workaround | Do not use defined constants when specifying operator properties.
SB‑26017 | Asynchronous timeouts for Gather operators in parallel applications can be inaccurate
Description | High availability applications that include Gather operators may incorrectly compute timeout intervals because the operator relies on now() instead of calling out to the parallel scheduling service.
Workaround | None
SB‑22297 | Commented-out error input streams consume error tuples.
Description | An error input stream, despite being disabled with the EventFlow comment-out feature, still catches errors thrown, but consumes any incoming errors and fails to pass them on.
Workaround | To temporarily disable error streams, copy them to a placeholder module and remove them from the active module.
SB‑21843 | In the TableAccessor API, ClassCastException is thrown if not using a Tuple from TableAccessor#createRow.
Description | If methods in the `com.streambase.sb.operator.TableAccessor` interface that accept a Tuple are not provided a Tuple retrieved from `TableAccessor#createRow`, a ClassCastException may be thrown by the API.
Workaround | Always use `TableAccessor#createRow` when using TableAccessor API methods.
SB‑20449 | Display issues with years before 2 AD.
Description | The timestamp data type can hold timestamp values in the range -(2^62) to (2^62)-1, and can successfully display any future date in the next 146 million years and any past date to around year 2 AD. However, the year value for dates earlier than 2 AD may not display correctly.
Workaround | None.
SB‑18294 | Union operator: sub-field order of tuple fields must match with strict options.
Description | When using the Union operator with its Strict union or Declared schema options, the order of sub-fields of tuple fields must match exactly. This is in contrast with the default Loose union option, where strict sub-field ordering is no longer required.
Workaround | None.
SB‑16594 | Extract as Module feature copies items instead of importing them.
Description | The Extract as Module feature makes a copy of the source module's definitions and named schemas, and places the copies in the newly created module. Best practice would be to import those features from the source module to the new module, and to copy all imports from the source to new modules.
Workaround | After using Extract as Module, manually convert the copied definitions and named schemas to imports.
SB‑14133 | On Linux, sb-config --cxx returns a setting for G++ newer than 4.5.
Description | On Linux, in StreamBase samples that build C++ code, some of the example Makefiles show sb-config --cxx as the correct usage to determine the G++ compiler to use. On newer Linux distributions, this command returns the distribution's default G++ compiler, which may not be supported for building StreamBase client code, and sb-config does not honor the CC and CXX environment variables.
Workaround | On such systems, install GCC and G++ 4.5, and edit the Makefiles to specify `CXX=g++-4.5`.
SB‑13398 | Filter operators with very large predicate settings may result in a runtime EvalException error.
Description | Filter operators with several output ports and complex expressions to evaluate for each port may result in a `com.streambase.sb.runtime.exceptions.EvalException` error when attempting to run the application that contains such a filter.
Workaround | Add another Filter operator and split the predicate settings between the two Filter operators.
SB‑13113 | Application output view does not display UTF-8 characters.
Description | Both StreamBase Server and StreamBase Studio are fully capable of processing and displaying Unicode character sets, but neither is set to do so by default.
Workaround | Follow the instructions in Unicode Support to configure StreamBase Server, Studio, and any StreamBase client applications to process the UTF-8 character set.
SB‑10792 | The Query operator converts a JDBC data type differently when using explicit schemas than when using database data types.
Description | When explicit schemas are used, the Query operator does not use database metadata to determine the mapping between JDBC data types and StreamBase data types. The JDBC data type `Types.TIME` is normally converted to an interval timestamp since it has a time, but no date component. But when explicit schemas are used, there is no database type information, so `Types.TIME` is converted to an absolute timestamp.
Workaround | None.
SB‑10486 | Hierarchical data restrictions.
Description | Patterns by value do not support using the tuple data type for their on-value portion. Similarly, tuple subfields cannot be used as the index or primary key of a Query Table.
Workaround | Design schemas so that the intended sort field or key is a top-level numeric or timestamp field, as described in StreamBase Pattern Matching Language.
SB‑10363 | No StreamBase data type corresponding to Sybase timestamp.
Description | When used with Sybase data sources, both EvenfFlow and StreamSQL fail to convert timestamps, resulting in typecheck errors. This is because the Sybase `timestamp` is based on the Sybase `varbinary` data type.
Workaround | In EventFlow or StreamSQL code that will be used for Sybase data sources, use the Sybase `datetime` data type instead of `timestamp`.
SB‑6862 | Not all databases have native blob support.
Description | For example, Microsoft SQL Server and Sybase do not have blob support. For these databases, you can write blobs into varbinary and possibly other types. But when blobs are read from a select statement, they are returned as strings, not blobs.
Workaround | Add a Map operator and convert the string to a blob.
SB‑5882 | Tuple dimensions do not reset counter when another dimension closes a window early.
Description | A tuple-based dimension that closes due to other dimensions (for example, after another dimension times out) does not reset its counter. When this happens, the next window will close based on the total number of tuples received, resulting in a partially full dimension.
Workaround | None.
SB‑4559 | Join timeout is not asynchronous.
Description | Join timeout in the Join operator is not asynchronous. That is, the Join operator does not remove a tuple from its buffer until the timeout has passed and another tuple arrives on the same input stream. Tuples received on one input stream do not affect the buffer of the other input stream.
Workaround | None.

## Previous Release Notes

See Previous Release Notes for the history of new features, updates, and resolved issued in previous TIBCO StreamBase® 10 releases.