Current StreamBase 10.4.3 Release Notes

These are the release notes for the TIBCO StreamBase® component of TIBCO® Streaming 10.4.3.

New Features

TIBCO® Streaming 10.4.3 adds the following updates and new features:

New LDAP Adapter Suite Added

Three adapters are now available to allow a Stre amBase applications to connect and read data from an LDAP server:

See this sample page for a demonstration of these adapters.

Morningstar Adapter Now Updated

The TIBCO StreamBase® Adapter for Morningstar Quotes Feed is now updated to the V2 feed. See Morningstar Quotes Feed Input Adapter for adapter configuration details.

RabbitMQ Adapters Now Support TLS/SSL Connections

The RabbitMQ adapter suite now supports TLS/SSL connections to RabbitMQ servers. See the following adapter pages for configuration options:

JDBC Connections Now Explicitly Set Autocommit to True

When connecting to a JDBC data source, the setAutocommit method is called on the connection. This enhancement was added to accommodate JDBC drivers that do not explicitly set their autocommit connection to true by default.

Audit Failure Message Now Improved

The audit failure message seen when deploying an invalid application archive was improved. The message now provides more troubleshooting details regarding the archive.

Oracle JDK Version Updated

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

Documentation and Sample Updates
  • The Custom Java simple function and Custom Java aggregate function samples were ported to StreamBase 10 format and updated for clarity, with their sample documentation pages updated to match. Both samples now illustrate the support for multiple aliases to the same method, as introduced with this release.

  • Documentation for the Python operator was updated to reflect current Python versions supported. Documentation for the Python sample was rewritten to clarify the steps to run each sample, especially the P04 sample.

  • Documentation in the sbengine configuration type for the dataAreaPath and pluginFunctions objects was significantly updated and clarified.

Changes in Functionality

This release includes the following changes in functionality:

In Unit Test Cases, Calling loadDeploy() No Longer Auto-starts

In unit test cases, calling loadDeploy() directly or indirectly via loading and activating configurations of HOCON type would auto-start the containers pertaining to unit test cases. As of 10.4.3, those containers no longer start automatically.

This issue only affects containers referenced by deployment configuration. Previous behavior:

  • load node deployment configuration

  • server.loadApp() — containers started too early

  • server.startContainers() — did not do anything

Current behavior:

  • load node deployment configuration

  • server.loadApp() — containers not started

  • server.startContainers() — now starts containers

New Custom Function Syntax to Support Multiple Aliases

To express more than one alias for the same method, use the new methodName property in a configuration file of type sbengine to specify the name of the method to be invoked. In this case, do not also express the method name as the index to this configuration block; instead use any unique string as the index term. If methodName is used, the index term is ignored. For example, the following block configures two aliases for the calculate method, using two placeholder strings abc and xyz as index terms.

pluginFunctions = {
  java = {
    abc = {
      methodName = "calculate"
      alias = "hypotenuse"
      autoArguments = true
      className = "com.tibco.ep.sample.Hypotenuse"
      type = "simple"
    }
    xyz = {
      methodName = "calculate"
      alias = "calchyp"
      autoArguments = true
      className = "com.tibco.ep.sample.Hypotenuse"
      type = "simple"
    }
    ...

Deprecated and Removed Features

StreamBase 10.4.3 includes the following deprecations:

Velocity Analytics Adapter Deprecated

The TIBCO StreamBase® Output Adapter for Velocity Analytics UTSS is now deprecated and is expected to be removed in a future release.

Migration and Compatibility

Kafka Adapter Library Updated

The Apache Kafka adapter suite is now built against version 2.1.0 of the Apache Kafka libraries using Scala 2.11.12.

StreamBase Known Limitations

This section describes known limitations as of the current release of the TIBCO StreamBase® component of TIBCO® Streaming. 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.

CQS‑4679 All identical adapters and operators in an application that use the Operator getlogger() method share the same log level configuration.
Description

If you have multiple identical StreamBase or LiveView operator or adapter instances based on a given Java class in a StreamBase fragment, they all share a Logger object, and the log level of the last instance to be initialized is used.

Workaround Parameterize the log level of all the adapters of a specific class and expose that parameter through the fragment's engine.conf file.
SB‑46208 Multiple aliases to the same method not allowed until release 10.4.3.
Description

The HOCON syntax for defining aliases for custom Java methods did not allow a way to define more than one alias for the same method.

Workaround Upgrade to release 10.4.3 or later and use the methodName property in your HOCON alias definitions.
SB‑45974 Workspace error after importing a project with dependencies on JARs not present.
Description

You may encounter saved Studio projects that have dependencies on JAR files that cannot be shipped with that saved project, such as JARs with licenses independent of StreamBase. In some cases, such projects cannot be resolved, even with Maven>Update project. This can happen with StreamBase examples that use TIBCO EMS, because the JAR files that implement EMS are licensed separately from StreamBase.

Workaround Before trying to run such projects, obtain the referenced JAR files from their vendor and Maven-install them to your local Maven repository (or to a site-specific network repository), as described in Using External JAR Files.
SB‑45757 Typecheck failure: "Could not find" resource file.
Description

The EventFlow Editor can get into a state where a resource file, such as a CSV file used to preload a Query Table, is not found during typechecking, resulting in a typecheck failure with no corresponding entry in the Problems view.

Workaround Re-run the EventFlow Editor's typechecker with with Ctrl+T (Windows) or Cmd+T (Mac). Note that the menu command Refresh Project Typecheck Environment invoked with Ctrl+F5 (Windows) or Cmd+R (Mac) does not resolve this condition; you must run the Editor's typechecker independently.
SB‑45183 ResourceUnavailableException after stopping two nodes and restarting one node.
Description When stopping more than one node in a cluster, on restart of just one of the stopped nodes a ResourceUnavailableException error can be thrown.
Workaround Restart all the stopped nodes concurrently or reinstall the node before restarting.
SB‑45182 Default availability zone may not be created correctly when cluster stopped and started.
Description If a node in a cluster is stopped and then restarted, the default availability zone may not be created correctly.
Workaround Remove the node and reinstall before starting.
SB‑45146 Welcome launch bar shows a large red square.
Description The Welcome launch bar that appears in Studio's bottom right status bar is missing an icon, which the system replaces with a red square. On Windows, this red square can be confused with the Console view's red Terminate button.
Workaround None.
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 (including USB-C-to-Lightning cables) while Personal Hotspot is NOT enabled on the iPhone. Under these conditions, StreamBase Runtime nodes can fail to start, possibly emitting an error message similar to "can not see the local file system. Deploy to remote nodes is not supported."
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‑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 LiveView 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 LiveView 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.

StreamBase Resolved Issues

This section provides a list of errors corrected in release 10.4.3 of the TIBCO StreamBase® component of TIBCO® Streaming.

Fixed in 10.4.3
Number Resolution
TIBCO StreamBase® 10.4.3 incorporates all fixes resolved in the release 10.0 series through 10.4.0 and all fixes resolved in the release 7.7 series through 7.7.7.
SB‑46362 When connecting to URIs, the WebSocket Client Read Adapter now checks for ws versus wss protocols and configures the SSL accordingly.
SB‑46311 Updates would occur after unsubscribing to an item through the Thomson Reuters Enterprise Platform Subscribe Adapter. This was resolved so that RFA 6 no longer incorrectly removes a subscription when a snapshot completes. (This was only required for RFA 5, which was previously announced as no longer supported.)
SB‑46288 Under rare conditions it was possible for a remove event for a aggregation result set to be lost. This was fixed.
SB‑46282 The to_seconds function was incorrectly truncating results to the nearest integer value. This incorrect truncation is no longer done.
SB‑46279 Restarting a node that had disk-based Query Tables failed with a type mismatch in previous releases. This was resolved.
SB‑46216 The CME MDP3 adapter's subscription file would incorrectly pass spaces that users inadvertently added to either side of the file's security description. The security description field is now trimmed before usage.
SB‑46208 The HOCON syntax for defining aliases for custom Java methods did not allow a way to define more than one alias for the same method. This was corrected in release 10.4.3 by adding the methodName property, described in sbengine.
SB‑46202 The HDFS CSV File Writer adapter would ignore the User property on file connection at startup. This was fixed.
SB‑46176 The OSI PI adapters were unable to connect to a server that was not configured to be available via UDP. When the adapters failed to connect, a message warned of network or credential errors. Now, the adapters will add the server and try to connect if not found during discovery.
SB‑46175 The OSI PI adapters would ignore the Connect on Startup property (when selected) and attempt to connect anyway. This was fixed.
SB‑46168 Query Tables configured to use transactional memory in a parallel region could cause a hard crash in previous releases. This was resolved.
SB‑46121 This release resolves code generation failures that would occur when there were multiple aggregate field dimensions when the Aggregate operator was stored in transactional memory. Also resolved: code generation failures when multiple aggregate time or field dimensions are configured when the Aggregate operator was stored in both heap and transactional memory.
SB‑46104 The HOCON-to-Java data binding did not correctly process configuration files containing associative arrays whose keys contained dots AND whose values were arrays of objects. This was resolved.
SB‑46069 Previously, loading a fragment using a disk-based Query Table would fail with SQL errors if the Query Table's schema contained a field of type list(tuple). This failure was resolved.
SB‑46032 A known MQTT defect affected the MQTT Client Publish Adapter when using Qualify-of-Service (QoS) level zero (0). QoS 0 now works properly after upgrading the referenced library to 1.2.1.
SB‑46024, SB‑45666, SB‑45603, Query Table Delta Streams were significantly improved to address issues related to assertion and exception errors. Errors could occur if the Delta Stream tuple contained a list field, or when sending data containing a boolean field in a replica Delta stream. This release also resolves invalid type errors that could occur when timestamp fields are used.
SB‑45980 In some cases, the epadmin rebalance availabilityzone command failed to take into account nodes in the zone. The command was updated so that it uses the list of nodes set in the zone. Previously the command relied on the list of nodes used on the configured partitions, which could be inadequate.
SB‑45906 Nested lists in Query Tables — when stored in transactional memory — would fail. For example, a Query Table field declared as: bloblistlist list(list(blob)) would fail and return either an assertion error (if enabled) or invalid data. This was resolved.
SB‑45781 If an entry in a Query Table is not replicated locally, an update to the remote entry may fail to update. This fix resolves and applies to transactional memory Query Tables.