Release Notes for StreamBase 3.x

This page lists the StreamBase limitations resolved in release 3.7 and earlier. For issues resolved in the current release, see the StreamBase Release Notes.

Limitations Resolved in 3.x

Version Number Resolution
Fixed in 3.7.14 SB-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.13 SB-10638 A 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.12 SB-7573 The 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.12 SB-6651 A 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 #65877 A 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 #61536 Incomplete 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 #59823 In 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 #58442 The 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 #57799 StreamBase stored only the date portion of timestamps when writing to MySQL over JDBC. The problem was fixed.
Fixed in 3.7.9 #56623 A memory leak in the Excel adapter was fixed.
Fixed in 3.7.9 #55594 jsbmonitor reported incorrect statistics for memory usage. The problem was fixed.
Fixed in 3.7.9 #36207 The 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 #48486 sbfeedsim failed to run on Solaris because of a JVM incompatibility. The problem was fixed.
Fixed in 3.7.7 #35246 In 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 #40038 When 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 #40588 In 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 #39535

In 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 #35628

Errors 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 #28114 The 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 #30846 In previous releases on Windows, the StreamBase Studio Window menu listed the monitor view as available in the SB Test/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 #31094 Under 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 #34329 In 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 #35321 In previous releases, compilation errors could occur when feeding large tuples to a lock operator. This was fixed.
Fixed in 3.7.3 #33443 You 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 #33407 StreamBase did not handle nullable fields correctly when connecting containers.
Fixed in 3.7.3 #31420 In 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 #31352 In 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 #31345 In 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 #31088 In 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 #30589 Under 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 #29575 When 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 #17886 In 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, #31000 In 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 #28152 In 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 #28128 If your application contains a looping stream (or arc) between components, you must explicitly specify the schema of the looping stream, as described in the Arcs topic in the Authoring Guide. 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 #27936 In 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 #29216 After 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 #26298 In 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 #18944 Before 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 #9793 The 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 #10485 When 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 #20008 In previous releases, a badly-formed sb-microsoft-excel.sbconf file caused Excel to fail. The problem was fixed.
Fixed in 3.7.0 #20009 In 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 #20010 The 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 #14765 In 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 #17738 In 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 #15950 In 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, #14765 Formerly, 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, #9932 Operators that differed only in case did not typecheck correctly. This was resolved.
Resolved in 3.7.x #12633 StreamSQL ORDER BY DESC statement is now supported.
Enhanced in 3.5.7 #24495 The 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 #25514 In 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 #24390 In 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 #25501 In 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 in the Authoring Guide.

Resolved in 3.5.7 #25186 In 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 #22793 In 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 #18265 For 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 #13878 In prior releases, StreamBase Studio could quit unexpectedly on rare occasions, and the IDE window closed. This problem was fixed.
Resolved in 3.5.3 #15469 In 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 #15766 In the previous release, StreamBase had an issue while connecting to Oracle 9i databases via JDBC. This problem was fixed.
Resolved in 3.5.2 #15207 Very 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 #14741 In 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 #14439 If 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 #14528 Several issues with using JDBC datasources in StreamBase have been fixed.
Resolved in 3.5.0 #11012 In previous versions, StreamBase installs on Windows overwrote the license file of a previous StreamBase installation. In some situations, this could be inconvenient. The StreamBase 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 #13874 In 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 #13890 Gather with timeout sometimes emitted invalid values for fields that should have had null values.
Resolved in 3.5.0 #13948 Large schemas could cause compilation failure with the message, CompilationException: compilation errors.
Resolved in 3.5.0 #13056 Gather with timeout generated zero instead of null for an int field.
Resolved in 3.5.x #4773 In 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 #6985 In 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 #12616 Previously, the StreamBase C++ API did not support custom aggregate functions that had String return values. Now a plug-in 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 #36580 A memory leak, discovered in version 3.1.14, was fixed.
Resolved in 3.1.13 #32592 In previous releases, if a StreamBaseClient was set up to do buffering and the background enqueue thread encountered an exception, StreamBase did not properly close the connection.
Resolved in 3.1.11 #27507 In previous releases, an OutOfMemory error could occur in High Availability (HA) environments on the secondary machine, during a failover attempt. This HA issue was fixed.
Resolved in 3.1.7 #19326 A memory leak, discovered in version 3.1.6, was fixed.
Resolved in 3.1.7 #17433 In previous versions, setting STREAMBASE_LOG_LEVEL to 2 could cause the StreamBase Server to fail with a a segmentation fault.
Resolved in 3.1.5 #15107 In previous versions, the StreamBase EMS/JMS 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/JMS adapter now does not dequeue messages on multiple threads, so this problem does not occur.
Resolved in 3.1.5 #14875 In 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 #14650 In 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 #10687 In 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 #14536 In 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 #11473 In 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 #11472 In 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 #11469 In 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 #13811 String 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 #13160 In 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 #13052 In 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 #11763 In 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 #10272 Some 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 #10272 Some 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 #10598 In 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 #10599 In 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 #10555 In 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 #10024 In 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 #10055 Previously, 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 #9580 Previously, 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, #4506 Previously 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 #3890 In an Aggregate operator with time-based dimensions, timeouts will now trigger based on wall clock 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 #7107 In 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 #3991 In 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 #4073 Previously, the StreamBase sbfeedsim utility did not support enumerations for timestamp fields. The problem was fixed.
3.0.0 #5456 A 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 #6573 Previously, deleting a secondary index in Studio deleted Query operator expressions. The problem was fixed.
3.0.0 #6851 Previously, 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 #7001 Previously 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 #7104 When 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.
3.0.0 #7197 Previously, 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.