StreamBase Documentation


StreamBase Release Notes

StreamBase 3.7.14.0

Date: June 13, 2008

This topic contains the release notes for StreamBase 3.7.14.0 .

Back Up Existing StreamBase Workspaces and Configuration

If you used previous releases of StreamBase, please create backup copies of your existing StreamBase Workspace and StreamBase Configuration directories, before using StreamBase Studio in this release. Your StreamBase Workspace and StreamBase Configuration directories include your project(s), which in turn contain one or more *.sbapp application diagrams and any associated files from each project. When you create the backup ZIP or similar archive file, have its filename indicate the StreamBase release number those projects used; for example, mySBWorkspace_3.5.zip.

Note: StreamBase 3.7.0 introduced a new layout for the Eclipse platform system that is used by StreamBase Studio. This change is incompatible with any prior saved StreamBase Studio configuration (RT 21170). If you see an error that StreamBase Studio (3.7.x) cannot start, go to the directory where the existing configuration data resides, and rename that directory (for example, to StreamBaseConfigurationBackup_3.5.7). You should then be able to open StreamBase Studio.

The directories are in these default locations:

On Linux:

  • your-home-directory/streambase-workspace/

  • your-home-directory/.streambase/sbstudio-configuration/

On Windows:

  • C:\Documents and Settings\username\StreamBase Workspace\

  • C:\Documents and Settings\username\StreamBase Configuration\

It is a good practice to keep version-specific backups, in the event you uninstall the current StreamBase release, return to a prior version, and experience any problems. When you move from one StreamBase release to the next release, StreamBase Studio may automatically upgrade the XML representation of your applications (if needed). However, if you develop applications and then decide to "downgrade" to a previously used release, the older StreamBase Studio may not recognize some of the settings. If you must use the prior StreamBase release, and if you experience problems, you may need to delete the existing contents of the StreamBase Workspace and StreamBase Configuration directories, and either start over with new projects in StreamBase Studio, or restore the matching version-specific backup copies.

Pointer to What's New

For a summary about what's new in this release of the product, see the StreamBase New and Noteworthy topic. On the FTP download site or the CD media, open doc/interm/noteworthy.html. If you already installed StreamBase, click here:

Pointer to Supported Configurations Information

Before you install StreamBase please read this Release Notes document and then check that your target system matches the hardware and software requirements listed on the Supported Configurations page.

Pointers to Other Documents

When you are ready to install StreamBase, see the Installation Guide. If you are new to StreamBase, read the Getting Started The documentation home page is also a useful resource to view summary information about the guides.

If you are reading this document in printed form, note that the StreamBase online documentation is available in several ways:

  • On the FTP download site or the CD, by opening the doc/index.html file in a browser.

  • From the installed file system, by opening the documentation home page in a browser. The default locations are:

    • /opt/streambase/doc/index.html (UNIX)

    • C:\Program Files\StreamBase Systems\StreamBase\doc\index.html (Windows)

  • In StreamBase Studio, by selecting "Help > Help Contents" from the top menu.

  • On Windows, from the Start menu, by selecting: Start > All Programs > StreamBase > StreamBase Documentation > StreamBase Help

Customer Support

Please go to the Contact Information page, which contains information about the support options. You can send us e-mail or get information from your StreamBase representative about our support portal.

We want to hear from you. Please contact us anytime.

Resolved Limitations

The following table summarizes limitations that were resolved in this and prior releases of StreamBase, starting with the most recent release. A tracking number is specified, allowing you and a StreamBase representative to more easily track issues.

VersionNumberResolution
Fixed in 3.7.14SB-10884

This release adds an additional way to control the size of the internal queue used between a Java StreamBaseClient's main thread and the dequeuing thread. Previously, you could control the number of batches of tuples in the queue using the Java property streambase.max-queue-size, which has a default size of 500 batches. However, if a client gets behind in dequeuing, the server starts sending larger batches, which requires more memory usage by the client. To remedy this situation, there is a new Java property in the StreamBaseClient API: streambase.client.max-tuples-in-queue. The default value is 10000 tuples. This property limits the absolute number of tuples in the queue, which promotes better client behavior. This same Java property also affects the StreamBase-to-StreamBase input adapter.

There is also a new Java property for the server, streambase,sbd.max-tuples-in-dequeue-packet. This property limits the number of packets the server includes in any one dequeue packet. The default value is 10000, which matches the default of the new client property described above. Administrators can set both server and client with matching values to make sure client dequeues are not overwhelmed.

Fixed in 3.7.13SB-10638A large StreamBase application with many client enqueue connections would cause the Statistics manager thread to show increasing CPU usage over time, and sometimes result in a connection error stating "Too many open files." The root cause was identified and fixed.
Fixed in 3.7.12SB-7573The client.isClosed() method in the StreamBase Client API was returning unexpected results. The method was fixed to work as expected, which is to return true when the client connection is closed.
Fixed in 3.7.12SB-6651A problem in the Wombat MAMA adapter was causing StreamBase Server to sometimes crash on shutdown. The cause was identified and fixed.
Fixed in 3.7.11#64565 and #65877A problem in the StreamBase Wombat adapter sometimes caused a ConcurrentModificationException error, requiring the sbd to be restarted. This exception no longer occurs.
Fixed in 3.7.10#61536Incomplete or malformed timestamp strings passed to the StreamBase strptime() function could cause an ArrayIndexOutOfBoundsException error. This was fixed so that such strings return useful error messages and do not halt the containing process.
Fixed in 3.7.10#59823In previous releases, the Reuters Subscribing Input Adapter processed received time fields incorrectly. The published time fields have no time zone indicator and should therefore be treated as UTC values. But, the adapter was treating them as local time values, which inadvertently added a time zone offset to time values when sending the resulting tuples downstream. This was fixed.
Fixed in 3.7.10#58442The library element of the XML grammar of the StreamBase Server configuration file (the .sbconf file) was corrected. This element is used to specify the paths to private Java library files that will be prepended to the JVM's java.library.path. In previous releases, the setting of the library element was inadvertently ignored; as of StreamBase 3.7.10, this element is interpreted correctly.
Fixed in 3.7.9#57799StreamBase stored only the date portion of timestamps when writing to MySQL over JDBC. The problem was fixed.
Fixed in 3.7.9#56623A memory leak in the Excel adapter was fixed.
Fixed in 3.7.9#55594jsbmonitor reported incorrect statistics for memory usage. The problem was fixed.
Fixed in 3.7.9#36207The CSV embedded input adapter did not generate a typecheck error when no fields were defined in the output schema. An error is now generated unless the output schema contains at least one field.
Fixed in 3.7.9#48486sbfeedsim failed to run on Solaris because of a JVM incompatibility. The problem was fixed.
Fixed in 3.7.7#35246In previous releases, performing a filtered subscribe on a non-existent stream could result in a StreamBase runtime compilation error. This was identified and fixed.
Fixed in 3.7.7#40038When using the StreamBase .NET API in previous releases, there was a hard-coded requirement that the sbclient_dotnet.ini file be present in $STREAMBASE_HOME\bin. This requirement was removed.
Fixed in 3.7.7#40588In the upgrade from StreamBase 3.5 to 3.7, in the StreamBase EMS Adapter, the FromJMSMessageConverter interface and DefaultFromJMSMapMessageConverter class were inadvertently moved from their documented location to a different package. To resolve this issue, version 3.7.7 (and later) places this interface and class in two locations: in com.streambase.sb.adapter.jms.enqueue (for compatibility with 3.5.x) and in com.streambase.sb.adapter.common.jms.enqueue (for 3.7.x and later versions). New applications should use the new location.
Fixed in 3.7.6#39535In prior releases, under certain unusual circumstances, an update operator could corrupt the primary index of a table, leading to the appearance of duplicate key values, and potential data loss. This error was identified and fixed.

The rare circumstances that triggered the condition were: an update operator was modifying rows in a query table with a primary key of type string, which was downstream from, but in the same parallel region as, a read operator connected to the same table, which returned three or more rows.

Fixed in 3.7.6#35628Errors in a third party Java library were causing a null pointer exception for users of the StreamBase Reuters Subscribing Adapter accessing certain classes of market data. This release of StreamBase incorporates a fixed version of that library, which resolves the errors.
Fixed in 3.7.5#28114The first-row-as-header feed simulation feature was used correctly for mapping the field to a column, but the first row data was still sent onto the stream as data. This was corrected.
Fixed in 3.7.5#30846In previous releases on Windows, the StreamBase Studio Window menu listed the monitor view as available in the Debug perspective. However, it is not really an option because the monitor view was removed and replaced by the Launch Monitor command. In the current release, the monitor view is no longer listed as an option.
Fixed in 3.7.5#31094Under certain circumstances, Java operators could continue to emit tuples after the enclosing adapter was shut down, resulting in a RuntimeException thrown. This was fixed.
Fixed in 3.7.5#34329In previous releases, StreamBase Studio could throw an Array Index Out of Bounds Error when you dropped a custom adapter onto the canvas, if the custom adapter contained errors. StreamBase Studio was fixed to changed to display an error message that will be more helpful to you in diagnosing the underlying adapter configuration problem.
Fixed in 3.7.5#35321In previous releases, compilation errors could occur when feeding large tuples to a lock operator. This was fixed.
Fixed in 3.7.3#33443You should be able to use intermediate streams in non-debug mode by configuring the sbd.sbconf file and adding the -Dstreambase.codegen.intermediate-stream-dequeue = true switch to the jvm-args parameter. For example:

<param name="jvm-args" value="-Xms64m -Xmx256m -Dstreambase.codegen.intermediate-stream-dequeue = true"/>

In the previous release, setting the switch shown did not work properly, and you could only see intermediate streams in debug mode. The problem was fixed.

Fixed in 3.7.3#33407StreamBase did not handle nullable fields correctly when connecting containers.
Fixed in 3.7.3#31420In previous releases, operators were not resumed correctly after a high-availability failover. StreamBase now sets the proper state before a checkpoint is created to make sure that operators are resumed correctly on failover.
Fixed in 3.7.3#31352In previous releases, changes to the Lookup expression field in the Query Settings tab of the Query operator did not correctly trigger re-typechecking. The problem was fixed.
Fixed in 3.7.3#31345In previous releases, the Excel adapter did not allow you to enter fully-qualified stream names into spreadsheet cells. This was an issue when the StreamBase application was running in the non-default container. Now you can enter fully-qualified stream names. For example:

=RTD("StreamBase.RTD", , "STREAM:myContainer.All_Transactions", ...)

Note that is usually better *NOT* to specify container names in Excel cells. That is,

=RTD("StreamBase.RTD", , "STREAM:All_Transactions" , ...)

is generally more maintainable than:

=RTD("StreamBase.RTD",,"STREAM:myContainer.All_Transactions", ...)

Fixed in 3.7.3#31088In previous releases the SCF adapter did not fully support modules: it failed to subscribe and unsubscribe dynamically when the application was not in the default module. The problem was corrected.
Fixed in 3.7.3#30589Under certain circumstances, dragging an item from the palette to an Eventflow editor would drop the wrong item, or not allow any item to be dropped. This was fixed.
Fixed in 3.7.3#29575When processing .sbfs feed simulation files, StreamBase attempted to validate the simulation file's xml namespace url by connecting to www.streambase.com. This validation is not necessary, and was removed.
Fixed in 3.7.3#17886In previous releases, dequeue clients were not always notified when the StreamBase Server (sbd) process was unavailable. The problem was fixed in this release.
Fixed in 3.7.2#31243, #30547, #31000In prior releases, an error could occur in StreamBase Studio when any action resulted in resizing a component's Properties view, if it contained a table of information. Often the exception was: java.lang.ArrayIndexOutOfBoundsException: 4. This problem was fixed.
Fixed in 3.7.1#28152In StreamBase 3.7.0, if you extracted components into a module reference, the created module reference's input and output ports were not connected into the original application diagram. This required you to reconnect the module's ports manually. The problem was fixed for 3.7.1.
Fixed in 3.7.1#28128If your application contains a looping stream (or arc) between components, you must explicitly specify the schema of the looping stream, as described in Creating Arcs, otherwise the schema of the output stream cannot be resolved.

In previous releases, copying the operators in the loop would cause the schema of the looping stream to be shared by the operators. As a result, a change to either looping stream would take effect in both. In this release, such a copy now creates a separate schema for the looping stream. The schemas are initially identical, but you can edit each independently of the other.

Fixed in 3.7.1#27936In StreamBase 3.7.0, time-based Materialized Windows did not release and evict tuples when the specified time elapsed. Instead, they waited for data to arrive on the materialized window input stream before releasing. This has now been fixed: tuples that are read from a time-based materialized window never include any tuples that are not valid for the time-window at the time of the read operation.
Fixed in 3.7.1#29216After an upgrade to StreamBase 3.7 from a prior release, StreamBase Studio failed to launch unless you deleted the StreamBase configuration folder. StreamBase now installs correctly over a previous installation.
Fixed in 3.7.1#26298In previous releases, when you did an Import, StreamBase Studio sometimes did not find all the application resource files. The problem is fixed in this release.
Fixed in 3.7.1#18944Before this release, it was possible for a Java Operator or adapter to add optional input ports but not optional output ports. This release adds support for optional output ports.
Added in 3.7.0#9787 and #9793The Excel adapter now supports a META tag that provides access to StreamBase metadata, including count of configured uriref elements, names of each uriref element, server status, stream count, stream names, field count per stream, and field names, types, and sizes. This is all documented in the StreamBase Adapter for Microsoft Excel documentation. There's a new sample spreadsheet, meta.xls, that illustrates the use of the new META tag.
Fixed in 3.7.0#10485When a StreamBase server fails, the Excel adapter no longer causes Excel to display a dialog containing the message, “The real-time data server 'streambase.rtd' is not responding. Would you like Microsoft Office Excel to attempt to restart the server? Yes/No”.

Instead, the adapter monitors the failed StreamBase server, and when it becomes available, reconnects in the background. The current state of each StreamBase server is available through the new META:SERVER_STATUS tag. The new meta.xls sample spreadsheet shows how this works.

Fixed in 3.7.0#20008In previous releases, a badly-formed sb-microsoft-excel.sbconf file caused Excel to fail. The problem was fixed.
Fixed in 3.7.0#20009In previous releases, the Excel adapter reported an error and failed to continue if any of the StreamBase servers listed in the configuration file were not running. Now, it continues to run, monitoring and (re)connecting to StreamBase servers as necessary. This is helpful during testing or production when multiple servers are in use.
Added in 3.7.0#20010The Excel Adapter interprets an empty URIREF value in the configuration file as the default URI. For example, if the configuration file contains:
<param name="uri" value="sb://foo:10000"/>

and a spreadsheet cell contains:

=RTD("StreamBase.RTD",,"URIREF:", ...)

then this cell will reference the StreamBase server running at URI sb://foo:10000.

Fixed in 3.7.0#14765In prior releases, sbmonitor could not connect to the running sbd server process in a particular scenario. If an outer module controlled output streams, the sbmonitor output could pause for a very long time if a tuple caused a downstream operator to send out many tuples. This problem was fixed.
Fixed in 3.7.0#17738In prior releases, in some cases StreamBase Studio failed to close a ZIP file after a failed import operation. This problem was fixed.
Fixed in 3.7.0#15950In prior releases, the Feed Simulation Editor's drop-down menu to select a column in a trace data file was limited to 10 items, making it impossible to re-allocate any additional columns. This problem was fixed.
Resolved in 3.7.x#10588, #14765Formerly, if a StreamBase application got stuck in an infinite loop, or otherwise became unresponsive, the StreamBase Server might stop producing monitoring information. Because there was no monitoring information produced, sbmonitor could not be used to debug the problem. This was fixed.
Resolved in 3.7.x#10793, #9932Operators that differed only in case did not typecheck correctly. This was resolved.
Resolved in 3.7.x#12633StreamSQL ORDER BY DESC statement is now supported.
Enhanced in 3.5.7#24495The StreamBase Reuters Subscribing Input Adapter was enhanced. This embedded adapter is available via a separate installation kit. Prior to 3.5.7, the adapter could only map the service name and item name into market data tuples. Now the adapter can also map the 4-part subject into all generated market data tuples. 4-part subjects are often needed with fixed-income securities. If you are interested in using the StreamBase Reuters Subscribing Input Adapter, please contact us about this separate kit. It includes the embedded adapter's JAR plus several libraries and sample files.
Resolved in 3.5.7#25514In prior releases, the StreamBase Reuters Subscribing Input Adapter interpreted the send-unchanged-fields-as-null flag with the wrong polarity. If the flag was set to true, a field not present in an update tick incorrectly received the old field value. This problem was fixed.
Resolved in 3.5.7#24390In prior releases of the StreamBase Java Client API, if a StreamBaseClient was instantiated with an invalid URI for the server, StreamBase would throw an exception (as expected: com.streambase.sb.StreamBaseException: java.io.IOException: java.nio.channels.UnresolvedAddressException) but did not properly close the connection socket. This problem was fixed.
Resolved in 3.5.7#25501In prior releases, if you used the keyword null in an expression without explicitly casting it to the appropriate data type, such as int(null), StreamBase Studio did not issue a helpful typecheck message about this user error. This problem was fixed. Now the IDE will issue a typecheck error: "Expression is of type null and must be cast to be used as a field."

Note that if you want to use an expression that intentionally sets the result to null, you must use one of the data-type-specific null literals, as shown in the following list:

  • int(null)

  • double(null)

  • bool(null)

  • string(null)

  • timestamp(null)

For more information, see Using Nulls in StreamBase Applications, a topic in the Authoring Guide.

Resolved in 3.5.7#25186In prior releases, under certain circumstances in a Java StreamBaseClient, an exception was being thrown with a NULL message. Exception processing code was not expecting null messages. The exception processing code was fixed to deal with null messages.
Resolved in 3.5.6#22793In prior releases, Java custom Aggregate functions could not have String return values. This problem was fixed. To use the fix, a Java custom Aggregate function implements a method with the signature static public int getResultLength() to say the length of the result. (This problem still exists for C++ custom Aggregate functions.)
Resolved in 3.5.4#18265For btree disk-based Query Tables that had multiple field keys, some query expressions inappropriately scanned a large portion of the table. While the correct results were returned, with very large tables this was time consuming and could result in a "Not enough space" error message. This problem was fixed.
Resolved in 3.5.3#13878In prior releases, StreamBase Studio could quit unexpectedly on rare occasions, and the IDE window closed. This problem was fixed.
Resolved in 3.5.3#15469In prior releases, the Limit number of output rows option in a Query operator could be enabled once connected to a Query Table, but did not work properly, and the setting was not retained when you reopened the Query operator's Properties view. This problem was fixed.
Resolved in 3.5.2#15766In the previous release, StreamBase had an issue while connecting to Oracle 9i databases via JDBC. This problem was fixed.
Resolved in 3.5.2#15207Very large StreamBase applications can take a lot of memory to compile. To alleviate this problem, StreamBase provides a new compiler flag that lets you adjust the maximum amount of memory used by the compiler (default is at least 256MB).
streambase.codegen.javac-Xmx

Use this flag the same way as the java -Xmx command-line option:

Specify the maximum size, in bytes, of the memory allocation pool. This value must a multiple of 1024. Append the letter k or K to indicate kilobytes, or m or M to indicate megabytes. Examples:

-Xmx83886080
-Xmx81920k
-Xmx80m
Resolved in 3.5.2#14741In previous releases, if you cancelled an application that was just starting in StreamBase Studio, the sbd process sometimes continued to run in the background, and you had to stop sbd outside of the IDE. This problem was fixed.
Resolved in 3.5.2#14439If an application caused an evaluation exception to be thrown from a disk query table expression, a null pointer exception could also occur. This problem was fixed.
Resolved in 3.5.1#14528Several issues with using JDBC datasources in StreamBase have been fixed.
Resolved in 3.5.0#11012In previous versions, StreamBase installs on Windows overwrote the license file of a previous StreamBase installation. In some situations (for example, when restoring StreamBase Enterprise Edition after temporarily installing the Developer Edition), this could be inconvenient. The StreamBase Developer Edition installation now checks for an existing license file, and moves it to C:\Documents and Settings\username\streambase-license-existing.xml.
Resolved in 3.5.0#13874In StreamBase 3.1.2 and earlier, a merge operator could have unexpected results if both of these conditions were true:
  • An input field was considered a constant (for example, a string coming from a simple output expression like Some String).

  • An input field of the same name existed on the other input stream to the merge and this field was not considered a constant.

If the input field in question were of string type, the StreamBase server could experience a null pointer exception. If the input field were another data type, then the output value could be 0 instead of the expected null data type.

Resolved in 3.5.0#13890Gather with timeout sometimes emitted invalid values for fields that should have had null values.
Resolved in 3.5.0#13948Large schemas could cause compilation failure with the message, CompilationException: compilation errors.
Resolved in 3.5.0#13056Gather with timeout generated zero instead of null for an int field.
Resolved in 3.5.x#4773In previous releases, the StreamBase Adapter for Microsoft Excel would display a value of zero for cells that had no actual data in the stream. This was changed to display "N/A".
Resolved in 3.5.x#6985In previous releases, if an application contained an Output Stream whose schema was explicitly set, and this application was used by another application at two or more levels deep (as a grandchild and deeper), StreamBase Studio might not typecheck the top-level application and might display a typecheck error. This was fixed.
Resolved in 3.5.x#12616Previously, the StreamBase C++ API did not support custom aggregate functions that had String return values. Now a plugin Aggregate function can implement a method with the signature static public int getResultLength() to specify the length of the result. For example:
package com.streambase.sb.expr.test; 
import com.streambase.sb.operator.AggregateWindow;
/** 
  * Class that implements a custom aggregate function that 
    concatenates strings together. 
*/ 
public class StringConcatAggregate extends AggregateWindow {
    StringBuffer buf = new StringBuffer();
    public static int getResultLength() {
        return 100;
    } 
    public void init() {
        buf.setLength(0); 
    } 
    public void accumulate(String s) {
        buf.append(s);
    } 
    public String calculate() {
        return buf.toString(); 
   }
} 
Resolved in 3.1.15#36580A memory leak, discovered in version 3.1.14, was fixed.
Resolved in 3.1.5#15107In previous versions, the StreamBase EMS adapter allowed multiple threads to dequeue messages. Under some conditions the same message was sent more than once, while another message was omitted. The EMS adapter now does not dequeue messages on multiple threads, so this problem does not occur.
Resolved in 3.1.5#14875In previous versions, an application would not typecheck if it contained multiple operators that were marked to run in their own threads, and having exactly the same schema. The problem was fixed in this release.
Resolved in 3.1.5#14650In Version 3.1.4, some extremely large applications could encounter a "code too large" error during typecheck, due to having a large number of streams, each with a large number of fields. This problem was improved, so that the number of fields in a stream no longer matters.
Resolved in 3.1.5#10687In previous versions, the strptime function supported only numeric specifiers for month name fields. The strptime function now supports the UNIX %b , %h, and %B letter codes for months, as in the following expression examples:
{"strptime('2006-Feb-10 11:01:03', '%Y-%b-%d %H:%M:%S')", SOME_TIMESTAMP}
{"strptime('2006-fEB-10 11:01:03', '%Y-%B-%d %H:%M:%S')", SOME_TIMESTAMP}

Note that month letter codes are limited to three characters: long month names like February are not supported.

Resolved in 3.1.4#14536In Version 3.1.3, errors were displayed when StreamBase Studio shut down if a disk-based Query Table had an open cursor. The error caused no data loss. Now StreamBase ensures that all tables are closed prior to shutdown.
Resolved in 3.1.4#11473In StreamBase 3.1.3 and earlier, the Reuters RFA adapter rejected attempts to publish status messages in response to new subscription requests. For example, if a client subscribed to an item, and the item was inactive or could not be served by this publisher, the adapter rejected the publish request instead of publishing the closed status for the item. The problem was corrected.
Resolved in 3.1.4#11472In StreamBase 3.1.3 and earlier, the Reuters RFA adapter failed to include the RTL field in the Marketfeed header. Although this field is optional, the US tag is required. This problem was corrected. In addition, the value sent in the FIELD_LIST_NO Marketfeed header is now configurable in the RFA configuration file, and defaults to an empty string.
Resolved in 3.1.4#11469In StreamBase 3.1.3 and earlier, the Reuters SFC adapter did not include a mechanism to convey the active state of an item to the StreamBase application. As a result, an application could not easily detect if a subscription failed. To correct the problem, a new optional field was added to the fat and meta tuple handlers to convey an item's active state. The new field follows the same model as the optional stale field. Note that when an item becomes inactive, the adapter performs an implicit unsubscribe on the item
Resolved in 3.1.3#13811String constants, such as stream names or strings in expressions, are stored as static final variables. The Java class file format cannot have more than 64Kbytes of static data in any class file. Extremely large applications prior to StreamBase release 3.1.3 could exceed this limitation. This would cause studio to be unable to run the application due to compilation errors. Running from sbd would cause a code too large compilation error.
3.1.3#13160In StreamBase 3.1.2 and earlier, client applications that used the StreamBase .NET client API would incur an unhandled exception of type Codemesh.JuggerNET.JuggerNETFrameworkException when run from Visual Studio if Studio was configured to break into the debugger on unhandled Common Language Runtime Exceptions.
3.1.3#13052In StreamBase 3.1.2 and earlier, a gather operator can result in a null pointer exception on the StreamBase server if all of the following conditions are true:
  • The gather has timeouts enabled

  • An input field that is of "string" type and is considered a constant (i.e. coming from a simple output expression like Some String)

  • An input field of the same name exists on another input stream to the gather and this field is not considered a constant

3.1.1#11763In StreamBase 3.1.0 and earlier, StreamBase Studio calls a Java operator's init() method when the operator is dragged to the canvas. This call was removed. init() is now called only when the StreamBase application is started.
3.1.0#10272Some operators (including Join and Query) sometimes gave null pointer exceptions at typecheck time when storing string fields of length zero. String fields of length zero can be created by taking the type of the expression string(null), for example.
3.0.2#10272Some operators (including Join and Query) sometimes gave null pointer exceptions at typecheck time when storing string fields of length zero. String fields of length zero can be created by taking the type of the expression string(null), for example.
3.0.2#10598In StreamBase 3.0.1, a multi-row read Query operator using a disk-based query table, followed by a Delete or Update operator using that same disk-based query table, would cause a deadlock and stop processing of tuples. This issue is resolved in 3.0.2. Memory-based query tables were never affected.
3.0.2#10599In previous releases, StreamBase did not check the length of string fields for disk-based query table operations. As a result, runtime failures occurred. The problem was fixed. Memory-based query tables were never affected.
3.0.2#10555In Version 3.0, StreamBase failed to add directories in the LD_LIBRARY_PATH environment variable (on Linux/Solaris) or the PATH environment variable (on Windows) to the Java VM's native library search path. This could cause the JVM to fail to native libraries included in Custom Java operators or functions. The problem was fixed.
3.0.1#10024In previous releases, disk-based query tables were fully functional but did not exhibit Atomicity, Consistency, Isolation, or Durability (ACID) properties. The problem was resolved in this release.
3.0.1#10055Previously, secondary keys could not be used in disk-based query tables whose properties were configured with the Truncate on startup option set to No. This problem was resolved.
3.0.1#9580Previously, in rare circumstances in HA mode, the C++ client API would crash when the application was terminating. This happened only during application termination, so all data was sent or received correctly. The problem was fixed.
N/A starting in 3.0.0#779, #992, #1588, #4506Previously published release notes about the ODBC operator and ODBC Tables data construct are no longer applicable. The ODBC support was removed from the product. Instead we recommend that you use the StreamBase Adapter for JDBC to access external, JDBC-compliant resources. The StreamBase Adapter for JDBC is documented in an HTML file installed with the separate kit. By default the jdbc.html file is installed in:
  • Windows:

    C:\Program Files\StreamBase Systems\StreamBase\doc\adapter

  • Linux:

    /opt/streambase/doc/adapter

3.0.0#3890In an Aggregate operator with time-based dimensions, timeouts will now trigger based on wallclock time rather than the (now removed) tuple header timestamp. This means that tuples will be emitted after the appropriate time has passed, triggered by the arrival of a new tuple. Additionally, there is no longer a concern with out-of-order header timestamps in applications unioning multiple input streams.
3.0.0#7107In High Availability environments, aggregate operations sometimes erroneously evaluated timestamps to be out of order, causing tuples to be dropped. The problem was fixed.
3.0.0#3991In previous releases, large query table reads could cause StreamBase Server to abort. If a read operation on a large query table (either memory- or disk-based) returned a large number of records at once, the StreamBase Server could run out of memory and abort. The problem was fixed.
3.0.0#4073Previously, the StreamBase sbfeedsim utility did not support enumerations for timestamp fields. The problem was fixed.
3.0.0#5456A Java operator must implement the Parameterizable interface, either directly or through a delegate. Previously, a confusing error message was displayed if a Java operator did not implement the Parameterizable interface. The problem was fixed.
3.0.0#6573Previously, deleting a secondary index in Studio deleted Query operator expressions. The problem was fixed.
3.0.0#6851Previously, if an sbd ran on a machine with a 2.6.x Linux kernel, any sbmonitor run against that sbd displayed the same CPU utilization for all threads. The problem was fixed.
3.0.0#7001Previously on Windows using Java 1.5.0, running StreamBase applications containing Java operators that were assigned to regions, could cause sbd to abort with a Non-std::exception error message. The problem was fixed.
3.0.0#7104When you create Java clients with the StreamBase API, you can use the sbclient.jar instead of the sbclient-all.jar. Previously, both were provided with the StreamBase kit for. Now only the sbclient.jar is included. For more information about adding sbclient.jar to your classpath, see Creating Clients in the API Guide.
3.0.0#7197Previously, if you used custom Java operators, and the jars that you imported into your project contained incompatible class definitions, then the StreamBase Server sometimes exited without displaying any useful diagnostic information. Now a NoSuchMethodException message is displayed.
2.5.4#9844Previously, the sbfeedsim -s command generated faulty code in the output file. Specifically, it failed to close all the stream elements when there were multiple streams. The problem was fixed.
2.5.4#10037Previously, there was a problem using Range Specifications in the Query Settings tab of the Query operator. Specifically, setting the Start Operation on a double field to > or >= did not work properly. As a result, attempts to retrieve entries using ranges did not work. The problem was fixed.
2.5.2#8808In previous releases, the StreamBase Monitor statistic for the QIN (the number of tuples currently on each component's input queue) did not properly account for Query Tables. This error resulted in QIN values that were too low. This problem was fixed.
Enhanced in 2.5.2#9029Coinciding with the StreamBase 2.5.2 release, the separately installed StreamBase Adapter for JDBC was enhanced to support polling scenarios. That is, the adapter can be configured to run a query periodically, typically to synchronize a Query Table in the StreamBase application with an external, JDBC-compliant database. For information about obtaining the StreamBase Adapter for JDBC kit, please contact your StreamBase representative. Or send us email at mailto:support@streambase. Note that the adapter's documentation is installed with the separate kit. Assuming that you already have StreamBase installed, the default target for the adapter's documentation is STREAMBASE_HOME/doc/adapter/jdbc.html.
2.5.1#8360In previous releases, the BufferedTupleList data structure did not correctly manage null fields. This problem was fixed.
2.5.0#7486In previous releases, if the Gather operator received a null value for its group-by or order-by field, the output tuples emitted by the Gather operator may have had incorrect values. This problem was fixed.
2.5.0#6863In previous releases, if a Java operator threw an exception, StreamBase Studio reported an Exception During Java Method Call message, with no further details. The error message now contains more information, such as class locations, methods, and line numbers.
2.5.0#5503In previous releases, data consistency problems could occur with disk-based Query Tables, if the StreamBase Server (sbd) terminated without going through an orderly shutdown. This problem was fixed. This release introduces a default server configuration that provides log-based transactions for the disk table data. If you plan to use them in your StreamBase application, it requires a special license agreement. Please discuss the details with your StreamBase representative. For information about the transactional configuration parameters, please see Defining a StreamBase Server Configuration in the Administration Guide. For related information, see Using the Query Table Data Construct to Share Data in the Authoring Guide.
2.5.0#5140In previous releases on Solaris, a StreamBase Server (sbd) process could not run unless the directory containing libjava.so was set in the LD_LIBRARY_PATH environment variable. This step is no longer necessary.
2.5.0#2824In previous releases on Linux, if Mozilla 1.7 was your default browser, the StreamBase Studio Help window may have remained open (and the hyperlinks were inactive) after you closed the IDE. This problem was fixed.
2.5.0#2698In previous releases on Windows, if Firefox was your default browser, StreamBase Studio could not launch HTML files listed in a project's Resources folder. This problem was fixed.
2.5.0#1942In previous releases on Solaris, there was an issue with building StreamBase C++ clients. A third-party component, boost, which StreamBase uses, includes a Solaris system include file. It contains a symbol that used to clash with a symbol in a boost header file. This problem was fixed.

Back to Top ^

Special Notice: sbclient-all.jar Removed

The following information was pointed out in the StreamBase New and Noteworthy topic. However, just to ensure that you find this notice, we are repeating it here.

Previous releases of StreamBase installed redundant JAR files named sbclient.jar and sbclient-all.jar. These two JARs contained the same set of files. Starting with StreamBase 3.0.0, we no longer install the sbclient-all.jar file. Please check your scripts. If necessary, please change any sbclient-all.jar references to sbclient.jar.

Back to Top ^

Known Limitations

This section describes known limitations in the current release of StreamBase. If you find other problems, please contact us. For each problem listed in the following table, a tracking number is specified. These numbers enable you and a StreamBase representative to more easily track the status of issues while solutions are being developed. Whenever possible, workarounds are described in the table.

#37149shutdown() called with a container-qualified URI shuts down the container, not the server.
DescriptionThe Javadoc documentation for StreamBaseAdminClient.shutdown() correctly states that it shuts down the server. However, if you create a StreamBase admin client with a URI specifying a container, shutdown() shuts down the container, not the server.
WorkaroundMake sure the URI you use for the shutdown call does not say "default" container.
#35429sbd cannot run applications that generate class files with too long a name.
DescriptionIf you use modules, StreamBase can generate internal class names that are too long, causing problems running the StreamBase Server (sbd).
WorkaroundTo avoid this problem, use small module reference names and minimize module nesting as much as possible.
#33330When an application is running in StreamBase Studio on Windows, the Manual Input view and other views can lose details.
DescriptionThis is a known Eclipse bug. The problem occurs when you use the tab key. Borders around fields, other decorations, and some controls can disappear.
WorkaroundMinimize and then maximize the window, or resize the affected view.
#1395Clients that exceed page limit buffer size disconnect with no explanation
DescriptionWhen a StreamBase client exceeds its maximum number of pages (for example, because it's not dequeueing fast enough to keep up with the rate at which tuples are being generated), the StreamBase Server (sbd process) disconnects the client and prints a message saying that it has done so. However on the client side, no error is reported. Instead, it looks like an unexplained dropped connection.
WorkaroundEdit the *.sbconf configuration file for the StreamBase Server that will process your application, and increase value of the max-client-pages parameter.
#1450init.d script uses hardcoded port number
DescriptionIf you change /opt/streambase/etc/sbd.sbconf to point to a port other than 10000, then the "stop", "restart", and "status" commands in the /etc/init.d/streambase script do not work properly. Those commands assume that sbd is running on port 10000.
WorkaroundEdit the commands in the /etc/init.d/streambase script to use the -p option, to force sbd to run on the port that you specified in the modified sbd.sbconf file.
#1456Explicitly-provided schema in loops are order sensitive
DescriptionIf you use a loop, the order of the fields in your explicitly-provided schema must match that of the output schema. Otherwise you will get a typecheck error indicating that your explicitly-provided output schema does not match your actual output schema.
WorkaroundClick on the loop arc, then in the Properties view click the option: "Update using the schema that StreamBase Studio detected on one of the Union input ports." This action will rearrange the order of the explicitly-provided schema to match that of the input schema. You can also manually change the order of the fields using the Properties View for the loop arc.
#1838C++ code is not binary compatible between releases
DescriptionIf you use either the C++ client API, plugin functions, or plugin aggregates, you must recompile them from source in order to use them in this release. Without recompiling, StreamBase will return an error message at runtime:
bin/sbd: error while loading shared libraries: libsbclient.so.4:
       cannot open shared object file: No such file or directory
WorkaroundRecompile your C++ code from the original source, against the new headers.
#1935StreamBase Server may leave temporary directories in /tmp
DescriptionIf a StreamBase Server exits abruptly and it was not set up to use a persistent data directory, then it may leave behind a temporary directory with a name like /tmp/sbdata-25224. If enough of these directories accumulate, then you can encounter a conflict when the numbers are reused, which will prevent the StreamBase Server from starting. This issue is more commonly encountered on Solaris, where the numbers are recycled more quickly.
WorkaroundSpecify a persistent data directory by setting the STREAMBASE_DATA environment variable or by specifying the --datadir command line flag to sbd..
#1948Online documentation navigation menu requires JavaScript
DescriptionThe StreamBase "standalone" online documentation (accessible from the file system, or via the Windows Start menu, outside of StreamBase Studio) has a navigation menu which requires that JavaScript be enabled in your browser.
WorkaroundIf you elected to disable JavaScript in your browser, you can still navigate within the online documentation. For example, on the home page's main text, there is a list that provides "href" links (no JavaScript) to each documentation module's Contents page, which in turn provide href links to the HTML documents. If you dislike HTML documentation, you may print the PDF files that are provided with the online docset.
#2048Issues with Linux kernel versions 2.6.8 to 2.6.10
DescriptionLinux kernel versions 2.6.8, 2.6.9, and 2.6.10 have a known bug in their thread handling code. This bug can cause sbd to exit immediately after servicing its first client request. For more information, see http://www.ussg.iu.edu/hypermail/linux/kernel/0410.2/1650.html.
WorkaroundThis bug was fixed in Linux kernel 2.6.11, however please note that StreamBase does not support any Linux kernel other than version 2.4.21, as shipped on Red Hat Enterprise Linux version 3.0. In particular, note that this problem is present in the kernel shipped with RHEL 4. Setting the environment variable STREAMBASE_IGNORE_SIGHUP to "1" may also help you work around this problem, should you encounter it.
#2197IPv6 addresses will not work
DescriptionStreamBase Server can only connect to IPv4 addresses. If you try to connect using IPv6 addresses the connection will be refused.
WorkaroundNone.
#2414Files edited outside StreamBase Studio are not refreshed immediately
DescriptionFor .sbapp and .sbfs files that were created using StreamBase Studio and are still open in StreamBase Studio, modifications made using an external editor are not refreshed in the current StreamBase Studio editor.
WorkaroundIf edits were made outside of StreamBase Studio and you now want to use the latest file, right-click the project that contains the changes you made and click Refresh.
#2437Client API doesn't fail if connecting to HA sbd with no secondary specified
DescriptionWhen you connect to a StreamBase Server (sbd) configured for High Availability(HA) without specifying a secondary sbd, the client API should fail, but does not. This means that you are not getting any benefit from using the HA sbd, because the point of HA is to implement a fail-over sbd to take over processing when the first sbd shuts down for any reason.
WorkaroundSpecify a secondary HA sbd in the connection url. For details, see Using the High Availability Features.
#2572Feed Simulations exported from StreamBase Studio cannot be used with sbfeedsim
DescriptionIf you export a feed simulation created within StreamBase Studio, it will create a file with an .sbfs extension. In most cases, this file cannot be used directly with the sbfeedsim command-line tool.
WorkaroundYou must edit the file by hand, to make it conform to the XML format required by the sbfeedsim tool. Or, in a subsequent StreamBase Studio session, import the exported .sbfs file into a project, and use it in the IDE.
#2585 and #7361From Windows, custom-simple-function and custom-aggregate-function samples do not work with Solaris server or 64-bit Linux server
DescriptionOn Windows, the installed custom-simple-function and custom-aggregate-function samples contain library files (log.so and stdev.so, respectively) that are built for Linux. These custom functions will work properly only when StreamBase Studio is connected to a 32-bit Linux server, not a Solaris server, or a 64-bit Linux server.
WorkaroundTo use the custom-simple-function and custom-aggregate-function samples with a Solaris server:
  • On the Windows or Linux machine where you are running StreamBase Studio, use the "File > Import Sample..." menu item to import the plugin- function or plugin-aggregate sample into your workspace.

  • Remove log.so or stdev.so from the sample project.

  • Copy /opt/streambase/sample/plugin-function/log.so or /opt/streambase/ sample/plugin-aggregate/stdev.so from your Solaris server machine to your Windows client machine.

  • Use the "File > Import..." menu item to import the copied log.so or stdev.so into the sample project.

#2612Java client API does not disconnect if user connects only to secondary
DescriptionIf you connect a client via the Java API to only the secondary server in HA mode, when the secondary is shut down, the client does not automatically exit.
WorkaroundAlways use the HA URI (specifying both the primary and secondary servers) when the server is in HA mode.
#2653Cannot use sbmonitor to monitor the secondary in an HA pair
DescriptionYou cannot run the StreamBase Performance Monitor (sbmonitor) against a high-availability secondary server that is in standby mode. You also cannot monitor a primary/secondary pair as a unit. Thus there is now way to monitor a StreamBase application on the secondary server.
WorkaroundNone.
#2811LockDirectoryException error encountered when starting StreamBase Server
DescriptionThere may be a number of cases when you would encounter the LockDirectoryException error. If the message indicates "File exists," either another instance of StreamBase Server (sbd) is currently running or the prior instance of StreamBase Server was improperly shut down.
WorkaroundIf another StreamBase Server (sbd) is running, change the .sbconf file to point the datadir element (within the <server> ... </server> element) to a different directory. If there is no other StreamBase Server running, you must manually delete the directory named in the "File exists" message.
#2846In HA, tuples may be lost if client-to-server connection fails
DescriptionIn High Availability environments, tuples may be lost if the connection between a client and the StreamBase server fails.
WorkaroundOne workaround is to set the STREAMBASE_TUPLE_CONNECTION_TIMEOUT environment variable to 0 (disabling the timeout). This can lessen the chance of the connection begin dropped; however, be aware of a potential drawback to this workaround: clients in HA environments may then react slowly to hung server.
#3097HA is disabled if socket is busy after failover
DescriptionIn a High Availability (HA) configuration, if a failover happens, the secondary server will attempt to open a socket on which to listen for messages from the primary server, should it ever be restarted.

If that socket is already being used by some other program on the same machine, the failover will succeed, but the HA functionality will be disabled. Consequently if the former primary server restarts, it cannot function as the new secondary server. This means that subsequent failures will not be able to failover.

On the new primary server, you will see a message similar to the following:

error Can't start primary server on port XXXX: <reason> Secondary taking over but HA disabled

WorkaroundTo run the StreamBase application in HA mode, you will need to shutdown the StreamBase Server processes on both machines, check that the port is not in use, and restart.
#3236StreamBase Studio on Windows requires requires permission to open ports
DescriptionUsers of the StreamBase Studio on Windows may find that Windows asks whether or not the program "javaw" should be given permission to listen to network ports. This is part of the Windows firewall behavior, and is expected. We recommend you allow StreamBase Studio permission to listen to network ports.
WorkaroundAfter giving permission once, you should not be prompted about this again.
#4289Data sent to multiple streams may get out of order
DescriptionThe StreamBase Server does not preserve the relative ordering of input tuples received on different input streams. This affects tools such as sbfeedsim, which replays recorded data. It also affects the client API, if tuples are enqueued to different streams.
WorkaroundIn some cases you may be able to use a Merge operator to reorder your input data. However, note that the Merge operator can block in some situations and therefore may not be appropriate. In general, it is best to avoid sending data to different input streams in the first place, if the relative order of tuples on those streams must be preserved.
#4434Venturi Compression Client 2.3 crashes StreamBase clients on Windows
DescriptionIf you have Venturi Compression Client 2.3 installed, StreamBase client programs will crash as soon as they try to connect to the sbd. This program is installed by default by the Verizon Wireless Access Manager, among other programs, so you may not be aware that you have it installed. If you cannot run or debug any programs when running locally on a Windows machine, this issue may be affecting you.
WorkaroundEither uninstall the Venture Compression Client (merely disabling it is insufficient), or upgrade it to version 3.1 or better. Note that newer versions of the Venturi Compression Client may not be supported by the other software on your machine.
#4451Java API IOException when client program is suspended
DescriptionA program using the StreamBase Java API may receive an unexpected IOException if it is suspended (using either Ctrl-Z, or kill -SIGSTOP). The IOException is thrown when the program is resumed or placed in the background. The exception may be thrown even if there is no network traffic at the time. This issue does not apply to Windows systems.
WorkaroundDo not suspend StreamBase clients written in Java.
#4824For Java operators and modules, typechecking may occur regardless of connections
DescriptionJava operators and modules are typechecked independently of their connections to other components. For modules, this may result in errors that do not clearly describe the problem. For example, if you have an application containing a module with its inputs connected, then delete an input stream that the module references, and then return to the referencing application, the arc (connection) will be dropped. However the following typecheck message will appear: "Error in referenced application: <input> lacks required attribute 'stream'".
WorkaroundNone.
#5088Java Operators not supported in applications opened externally
DescriptionJava Operators are not supported in applications opened via File/Open External File or when opened from your Operating System's shell. You may encounter errors when trying to edit properties on any Java Operators in the application. This includes double-clicking on an .sbapp icon, from within Windows Explorer, email attachments, as so on.
WorkaroundIn StreamBase Studio, you must import the application into a Project, before editing any Java Operators.
#5175Pre-2.0 Aggregates May Have Initial Display Problem on Dimensions Tab
DescriptionFor Aggregate operators that existed prior to version 2.0, you may not be able to see all the columns in the Dimension tab's table without having to use the Properties view scrollbar.
WorkaroundClick to another component on the canvas, and then back to the Aggregate operator to re-select it. This will reset the size of the Dimensions tab's table columns, which should allow you to see all the information.
#5327Error messages while creating Java operators lack detail
DescriptionAny exceptions during the creation of a Java operator from within StreamBase Studio will result in a "Can't make new object: (operator name)" message, with no additional information.
WorkaroundRun the application in sbd directly for additional diagnostic information. Verify the correct JAR files are specified in your project's Custom Libraries. Verify the classes are in the JAR files. Verify that the manifests of the JAR files are correct. For more information, see the Java Operator API documentation. The debug console may have additional diagnostics.
#5389Relocatable RPMs install incorrect symlinks in /usr
DescriptionThe Linux RPM packages are relocatable. This means that the default installation location of /opt/streambase can be changed to a different location. However, if this is done, symlinks are still installed in /usr/bin and /usr/lib that point to /opt/streambase.
WorkaroundEither edit the symlinks by hand, or use the tarfile instead of the RPMs to install StreamBase on Linux.
#5400Java Operator with zero inputs does nothing
DescriptionWhile it is not an error to create a Java Operator with zero input ports, the processTuple method will never be called, thus the Java Operator can never emit any tuples.
WorkaroundNone.
#5580"Downgrading" to Prior StreamBase Release May Cause Problems
DescriptionIf you uninstall the current StreamBase release and then "downgrade" to a prior version, such as moving from StreamBase 2.1.0 to 2.0.7, the older StreamBase Studio may not display portions of its user interface, such as the Run, Debug, and Stop icons.
WorkaroundUse the "Window > Reset Perspective" menu option to restore the default user interface icons and menus.
#5607Viewing a Query operator can modify its properties
DescriptionIf you open properties on a Query Operator whose input stream or query table schema have changed since last edit, StreamBase Studio may modify certain parameters.

For example, if the fields available in the Output Settings tab have changed on either the input stream or at the associated Data Construct, the Output Settings tab may (in explicit output field mode) auto-select new output fields.

WorkaroundNone.
#6539Mozilla issue with StreamBase Studio Welcome page and Help
DescriptionOn Linux, the StreamBase Studio Welcome page and Help require that Mozilla is installed and can be located. If you removed Mozilla, or installed it in a non-standard location, or moved it, the Welcome page or Help may not appear.
WorkaroundBefore using StreamBase Studio, set the environment variable MOZILLA_FIVE_HOME to the path of your Mozilla installation. For example, on Linux, set it to:
MOZILLA_FIVE_HOME=/usr/lib/mozilla-1.7.3
export MOZILLA_FIVE_HOME 
#6910Recordings and Feed Simulations are Strongly Tied to Application/Stream Names
DescriptionIn StreamBase Studio, if you create a StreamBase recording or a feed simulation that was associated with a particular application its stream names, and you then rename the application filename, you may find that the IDE is unable to run the recording, or unable to display the feed simulation in its editor.
WorkaroundEither rename the application file back to its previous name, or use a text editor to edit the .sbfs file in your project's Feed Simulations (or the corresponding file in the project's Recordings directory).
#7191Using non-member Schema.Field to access a Tuple Does Not Throw Useful Exception
DescriptionThe StreamBase client API does not throw a useful exception if you inadvertently reference the wrong Schema while using Schema.Field to access a Tuple. Under C++, no exception is thrown and memory corruption may occur. Under Java, an ArrayIndexOutOfBoundException is thrown.

This applies both to using fields from other schemas, or to using the Field objects that were used to create the Schema. Fields that are used to create a schema are not fully initialized, and so you must get the actual Field from the new Schema object in order to access the fields of a Tuple.

WorkaroundNone via the API; you must examine your client code and verify that the correct Schema is referenced.
#7215Aggregate dimensions do not support advance on infinite dimensions
DescriptionIn an Aggregate operator's Properties View, the Dimensions tab includes a setting for Window Size. One of the size options is "Do not close window based on this dimension". If selected, this dimension cannot cause the closing of a new window for the Aggregate. If a new window is never opened, this creates an infinite sized window that never closes (for the life of the StreamBase Server). Application designers may set up this feature, for example, to ensure that an Aggregate processes an entire day's volume of streaming data. However, a limitation is that Aggregates with infinite dimensions do not support an Advance value that you set in the Opening Policy.
WorkaroundNone.
#7346Heartbeat and Metronome do not respect pause in the debugger
DescriptionThe pause command in the debugger will not prevent Heartbeat and Metronome operators from outputting tuples due to the passage of time. This could cause unexpected results when debugging applications that make use of these operators.
WorkaroundNone. For more information about these operators see the Heartbeat Operator and Metronome Operator documentation.
#7367Heartbeat tuples don't continue after HA failover
DescriptionOnce a Heartbeat operator has received an input tuple, it will emit heartbeat tuples periodically thereafter. However, if the Heartbeat operator is used in an HA configuration and a failover occurs, then heartbeat tuples will cease until the Heartbeat operator receives another input tuple. This could result in an application ceasing to produce output after a failover.
WorkaroundNone. For more information, see the Heartbeat Operator documentation.
#7406Silent failure in clusters if a node's host name resolves to 127.0.0.1
DescriptionThe StreamBase Cluster Manager's configuration file lists the host name of each node in the cluster. The Cluster Manager resolves these names into IP addresses before sending information to the nodes themselves. If any of the host names resolves to 127.0.0.1 (the universal IP address for the local machine) then the Cluster Manager will end up telling nodes to connect to their local machine, rather than the correct remote machine. This may happen if one of the nodes is running on the same machine as the Cluster Manager itself. When this happens, no error is displayed by the Cluster Manager or the nodes.
WorkaroundEither run the cluster manager on a separate machine from all the nodes, or use IP addresses instead of host names in the configuration file.
#7449Daylight Saving Time changes in 2007
DescriptionThe U.S. Congress recently passed legislation that changes the date on which Daylight Saving Time takes effect for the years 2007 and beyond. This change is not yet supported by StreamBase, so any timestamps between 2 a.m. March 11, 2007 - 2 a.m. April 1, 2007 or between 2 a.m. Oct 28, 2007 - 2 a.m. Nov 4, 2007, local time, will be off by one hour.
WorkaroundEither use UTC timestamps, or include explicit timezone offsets from UTC. Note that all timestamps printed by StreamBase utilities do include an explicit timezone offset from UTC.
#8174Inconsistent support for undo in StreamBase Studio
DescriptionMany editing operations in Studio cannot be undone. This includes operations such as renaming operators, editing query tables, copying schemas, adding operators from the palette, editing feed simulations, etc.
WorkaroundThe Revert command in the File menu can be used to undo all changes since the last time a file was saved.
#8833StreamBase installation: unsaved work in open applications may be lost.
DescriptionClicking the Ignore button in the Files in Use dialog during installation ensures that a reboot of your system will be required. If you are working in other applications during installation, note that on completion, the installer will present you with an option to reboot and you may inadvertently agree to the reboot (as you are typing or clicking) without having saved your work first.
WorkaroundEither close all applications when the installer presents the "Files in Use" dialog, or do not work in other applications until the installation process has completed.
#8954Ignore Workbench Errors Related to Regions View
DescriptionRegions defined in pre-3.0 StreamBase applications have been replaced with new concurrency options, described in the StreamBase Execution Order and Concurrency Options topic of the Authoring Guide. As a result, when starting StreamBase Studio, you may see the following message:

Cannot restore StreamBase Studio workbench

WorkaroundYou can ignore this workbench layout message, and click OK.

Note, however, that if you defined regions in pre-3.0 releases of StreamBase, you should examine each component in your application after opening it in StreamBase Studio. In the Properties view for each component, make sure that the concurrency option ("Run this component in a separate thread") is appropriately set - either checked or unchecked. You should only check the concurrency option for a module reference or an individual operator if you know that it can run without dependencies on other components in the application.

#9620Finding sbd process failure details
DescriptionWhen StreamBase Studio runs an application, it launches the server process (sbd) in the background. If sbd fails for any reason, the IDE will try to report the reason to you. However, depending on the failure, the actual message that StreamBase Studio displays may not contain enough information.
WorkaroundTo get more information about the reason for the sbd process failure, click Help > About StreamBase Studio > Configuration Details > View Error Log.
#9691Feed Simulation view on Linux is inconsistent
DescriptionOn Linux, if a feed simulation contains an error, the error icon (the red X) tooltip that contains the error message may not appear if the mouse hovers over it.
WorkaroundOpen the feed simulation in the Feed Simulation Editor to see the error message.
#9749StreamBase Help Requires JavaScript
DescriptionThe StreamBase Help system requires JavaScript. If you do not have JavaScript enabled, or if you disable it, the Help will not work properly. For example, context may be lost if you click the Show in External Window option from the StreamBase Studio menu for Window >Preferences.
WorkaroundIf you do not wish to enable JavaScript for all web visits, you can set your blocking script to not block JavaScript for localhost:<any-port>. If you want to only allow one specific port for the script-unblocking, open StreamBase Studio, select Window > Preferences > Help Server, and set the port number there.
#9869In HA mode, client hangs when timeout EV set
DescriptionThe C++ Client API can hang when the client application is in the process of terminating in HA mode if the environment variable STREAMBASE_TUPLE_CONNECTION_TIMEOUT is set to 0.
WorkaroundIn HA mode, do not set the environment variable STREAMBASE_TUPLE_CONNECTION_TIMEOUT to 0.
#10291JVM crash during StreamBase Application compilation
DescriptionWhen a StreamBase Server first loads an application, it compiles it to Java code using the Sun Java compiler. Some StreamBase applications can cause the Sun Java compiler to crash during this phase. If this happens, the StreamBase Server will display a stack trace that mentions OopFlow::build_oop_map. StreamBase is pursuing this issue with Sun, but in the meantime if you encounter this issue, please contact StreamBase for assistance in modifying your application to avoid the error.
WorkaroundMake slight changes to your application until the error no longer occurs. We are unfortunately unable to provide guidance about what specific changes to make.
#103202.5.x persistent tables cannot be used with 3.0.x
DescriptionPersistent query tables created in StreamBase Version 2.5.x cannot be used in StreamBase Version 3.0.x.
WorkaroundIf you upgrade to StreamBase 3.x, delete any persistent tables and create new ones using the new StreamBase version.

If the existing table contains critical data, you can save the data before upgrading StreamBase. For example, create a simple application in StreamBase 2.5 that writes the entire contents of the table to an output stream. Then, use sbc to run the application and write the output to a file. After the upgrade, create a simple application in StreamBase 3.x that reads the data into a persistent Query Table.

#10674Some disk drive configurations can corrupt disk-based query tables
DescriptionSome caching disk drives do not guarantee the sequencing of disk writes, nor do they guarantee that all the writes to the drive have actually happened. This behavior improves disk performance, but at the risk of data corruption in the event of a power outage or equipment failure. StreamBase will be vulnerable to this kind of data corruption if your StreamBase application uses disk-based query tables.
WorkaroundDisk drives with this behavior usually have a driver-level setting to turn this capability on or off. For example, the driver may present you with a checkbox labeled Enable write caching on the disk. Unchecking this box would prevent the problem from occurring.
#13017Join timeout is not asynchronous
DescriptionJoin 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.
WorkaroundNone.
#14207Typecheck problem with DB2 JDBC datasources
DescriptionSQL INSERT statements submitted to a JDBC datasource in a Query operator or in an APPLY JDBC statement may pass typechecking even when they contain errors. This problem was detected only with an IBM DB2 datasource.

For example, the following statement passes typechecking even if the named table or fields do not exist in the JDBC datasource:

APPLY JDBC DB2 "INSERT INTO mytable (id, name) VALUES({id},
{name})" FROM InStream INTO OutStream;
WorkaroundRun the StreamBase application. If an error occurs against an INSERT statement, verify that the table name is correct. You can validate the INSERT statement by running it against a test database.
#14238Memory problem with external JDBC datasource queries
DescriptionThe StreamBase Server can fail with an OutOfMemoryError exception while running an application with a JDBC query that generates a large result set using MySQL.
WorkaroundNote: Make sure you are running MySQL Version 5 or greater. StreamBase access to JDBC datasources does not support earlier versions such as MySQL Version 4.

If you experience the problem described, consider limiting the number of rows that MySQL can read at one time. You can do this by enabling the new jdbc-fetch-size parameter in the data-sources section of the StreamBase server configuration file, and setting it to the Java Integer.MIN_VALUE literal, -2147483648. Note that, although other JDBC drivers interpret a positive jdbc-fetch-size value as a hint, MySQL drivers ignore all values except this magic value. See Using JDBC Data Sources for details.

#14485StreamBase Studio doesn't always notice server shutdown
DescriptionIf a StreamBase Server process quits unexpectedly while running in StreamBase Studio, the IDE sometimes may not notice the server shutdown.
WorkaroundWe recommend that you click the double-red Stop All icon () to stop the server before trying to run an application again.
#14507Tuples can be reordered when sent through loops
DescriptionWhen building applications with loops, the stream with a predeclared schema (the blue stream) should be an input to the Union operator for correct performance. If the blue stream is at a different point in the loop, the application will typecheck and run, but messages may be re-ordered. For sufficiently long-running loops, resource exhaustion can occur.
WorkaroundIf possible, ensure that the stream with a predeclared schema (the blue stream) is an input to the Union operator.
#14745SBAPP-to-SSQL Conversion Assistant Does Not Support Parallel Operators
DescriptionIf your EventFlow .sbapp has individual operators that are marked for parallel operation, the SBAPP-to-SSQL Conversion Assistant cannot generate equivalent functionality in the generated .ssql application because there is no direct analogy for parallel operators in StreamSQL.
WorkaroundAfter the conversion, if appropriate for your application (no dependencies on data in other operations), you can use an APPLY PARALLEL MODULE ... statement or APPLY PARALLEL JDBC ... statement in the StreamSQL .ssql file. For details about the APPLY statement, see the StreamSQL Guide.
#14747Deadlock with downstream updates of a JDBC select
DescriptionBy default, multiple Query operators connected to JDBC Table data constructs run in the same thread. That is, one Query operator waits to run until the preceding one in the flow runs to completion. As a result, deadlocks can occur when the output of one Query operator feeds the input of another, both are running in the same thread (neither is marked parallel), and both are using the same database table.
Workaround

For a full discussion and options, see the section titled, Avoiding Deadlocks With JDBC Queries, in the

Using JDBC Data Sources topic.

For example, one workaround is to mark one or more of the Query operators as parallel to break the deadlock: in an EventFlow application set the concurrency option, as described in Using the Query Operator to Use or Modify Shared Data; in a StreamSQL application add the PARALLEL keyword to the APPLY JDBC statement, as described in APPLY Statement.

#14763Problem when tuple in top-level module consumes large amounts of CPU time
DescriptionIf the processing of a single tuple in the top-level module consumes a large amount of CPU time, contained parallel modules that are connected directly to output streams will see their output blocked until the tuple/operator releases the CPU and the tuples can be passed to the network.
WorkaroundPut the time-consuming computation into its own parallel module. This workaround may not solve the issue in all cases, because inter-module queues can grow very large, but may help in many cases.
#14807Problem running large applications in debug mode
DescriptionVery large applications that run in standard mode may not start in debug mode, with errors such as "code too large".
WorkaroundOrganize the application into smaller modules.
#15898C++ Custom Aggregate functions cannot return a string
DescriptionCustom aggregate functions that are implemented in C++ cannot return a string.
WorkaroundCreate the custom aggregate in Java.
#25004 and 25009Embedded Adapters and StreamSQL
DescriptionIn .ssql StreamSQL applications, you cannot specify that an embedded adapter should start in a paused state, and you cannot manage the state of a running adapter in a .ssql application (although you can with .sbapp EventFlow applications.
WorkaroundUse an EventFlow application with embedded adapters.
#25228Include Package with Custom Java Functions
DescriptionIf you use a custom Java function (simple or aggregate) with no package, javac returns a compile error.
WorkaroundPut the function in a package.
#25825Input Adapter output and the Application Output View
DescriptionInput adapters that read data from files, such as CSV Input Adapter, when run under StreamBase Studio, may start so quickly that their output is not caught by the IDE, if they have completed reading the file before the IDE connects to the running server.
WorkaroundThe workaround is to mark the adapter to start paused, and manually start it with sbadmin after the application is running.
#26255Feed Simulation Editor's Data Rate Edit and Save Issue on Linux
DescriptionIn StreamBase Studio, the Feed Simulation Editor lets you set the rate at which data will be generated for a stream. That is, the number of tuples per second. On Linux only, if you use the keyboard to enter an integer in the Data Rate textbox, the new value might not be saved.
WorkaroundAfter clicking into the textbox and entering the value, press Enter or change the cursor's focus (for example, press Tab); then press the Save icon or enter CTRL-S. Note that if you press CTRL-S while your cursor is within the Data Rate textbox, the new value is not saved; you must press CTRL-S again.
#26477SBAPP-to-SSQL Conversion Assistant Resets Modules Parameters to Default Value
DescriptionIf you run the SBAPP-to-SSQL Conversion Assistant on an EventFlow application that makes use of module parameter references, the resulting .ssql application will not have any module parameter references. They are replaced by their default value.
WorkaroundAfter the conversion, edit the .ssql file to add the non-default module parameter values.
#26888Issue with Parameterized Modules and Custom Java Operators or Embedded Adapters
DescriptionIn .sbapp EventFlows, parameterized modules cannot be used with custom Java operators or embedded adapters.
WorkaroundEmbed your custom Java operator or custom embedded adapter in a StreamSQL-defined module (see the APPLY MODULE statement in the StreamSQL Guide), and use an EventFlow module reference, through which you optionally share parameter values.
#27060Tuple dimensions do not reset counter when another dimension closes a window early
DescriptionA 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.
WorkaroundNone.
#27349Evaluation exceptions in Data Parallelism key and Subscribe predicate should not be handled by upstream operator
DescriptionIf an evaluation exception occurs for a Data Parallelism key, or in a filtered subscribe predicate, the exception is thrown and caught by the upstream operator, and reported as an error in the upstream operator.

One incorrect side effect is that if one predicate in filtered subscribe fails, then predicates that come after it in the list are not executed and tuples are not delivered. Similarly, if other operators are downstream and only one is set for data parallelism, the other operators may not see tuples. Which operators see tuples is effectively non-deterministic.

WorkaroundEither ensure that you do not have errors in the expressions, or use catchexception() as a wrapper.

Back to Top ^