Enterprise RTView®
User Guide

Version 5.3c1 Release Notes

Alerts

15397: Alert Dialog Enhanced

In the Display Builder the following changes have been made to the Alert Dialog: The Filters panel has been relocated below the Alerts table and by default is hidden. A new checkbox labeled "Show Filters" will show or hide it. A usage note has been added to the dialog to remind the user that while alerts are selected in the table, they are edited in the Object Properties dialog. When filtering the alert table with a name filter, unnamed alerts will always be included in the filter results.

Commands

15352: Command confirm dialog now appears on correct linux dual screen

Command Confirmation Dialog now appears on correct screen for Multi- headed X11 displays. Previously Command Confirmation Dialogs may have appeared centered on the wrong screen for Multi-headed X11 displays. This is now no longer the case.

Customization

15345: Poll Once (Static Data) data no longer updated by preview

Previously data obtained by a data attachment, with an update mode of Poll Once (Static Data) , may have been updated more than once when a similar data attachment with a periodic update mode existed. This is no longer the case, and data will only be updated once for a data attachment with an update mode of Update Mode: Poll Once (Static Data)

Data Server

15382: Improved support for setting data server via a substitution

In a data attachment, if Data Server is set to a substitution (say, $server), it is now possible to set $server = __none, which is equivalent to setting Data Server = <none>. It is also possible to set $server to an empty string, which is equivalent to setting Data Server = <default>. Those values were not supported via substitution in previous releases.

Data Sources

15453: Data Source row filtering enhanced to support multiple columns

In the Display Builder, the Data Adapters that support row filtering have been enhanced to allow multiple columns to be indicated for the filter and multiple values to compare against for each column. The following data adapters are affected: Caches, IBM Websphere, RRD, XML, Log4J, Splunk. As of this release there is no specific user interface for entering multiple filter columns and sets of filter values; the lists must be typed into the corresponding dialog field. Multiple columns will be specified as a semicolon-separated list. Filter values will be specified as a nested list where values for a given column are comma-separated, and each group of comma-separated values is separated by a semicolon. For example: Column names: col1;col2;col3 Filter values: val1,val2;val3,val4;val5,val6 The resulting table returned would be those rows where the values of val1 OR val2 are in col1 AND the values of val3 OR val4 are in col2 AND the values of val5 OR val6 are in col3. Spaces around separators are not allowed. If a column name contains a semicolon it should be enclosed in single quotes ('). Likewise if a filter value contains a comma it should be enclosed in single quotes. The list of column names will be validated against the names found in the data table and if any is invalid the dialog will indicate this. Likewise the filter values will be validated to insure there is the correct number of values or values sets to correspond to the number of column names, and that the filter values are correct for the data type of the corresponding column. For backwards compatibility, if there is only one column name and a list of filter values then the values may be separated by semicolons.


15468: Available columns now in order of occurrence in SPLUNK and Log4j

Available Columns in Select Columns Dialog now displayed in correct order for Log4j and Splunk Attach to data dialogs Previously the Available Columns in the Select Columns Dialog for Log4j and Splunk Attach to data dialogs were not displayed in their order of occurrence in the returned data table.They are now displayed in their order of occurrence in the table.

Cache Data Source

15215: Enhance cache object to allow easier setting of history info

Support for cache persistence has been improved. A cache object can now be configured so that its history table and current table contents will be saved to a database by the RTView Historian, and those contents can now be restored automatically when an RTView application is started. Once a cache object is so configured and saved to a display (rtv) file, that file can be used as both a cache definition file and an historian data configuration file. The following cache object properties are involved in cache persistence. 1) historyTableName - As in the previous version, this is the name of the database table in which the cache's history table should be saved. The value assigned to this property may contain substitutions. The historian will create this table, if it does not already exist. When rows are appended to the cache's history table, the historian will append those rows to the database table. If the cache's timestampColumName property is set, the historian will assume that column will be used for sorting and purging rows in time order and will not append its own timestamp columns to the table. Before the data is stored in the database, the cache's schemaTable, if any, is applied. With these latest changes, an RTView application will now automatically query the database table for the initial rows to be loaded into the cache's history table, provided that: * the initialTable property is not attached to data (indicating that the user has configured an explicit query to load the cache history) * the timestampColumName property is set, so that it can be used to sort the SQL query result by time. The number of rows loaded by the query is limited by the cache object's maxNumberOfRowsProperty. 2) currentTableName - The name of the database table in which the cache's current table should be saved. The value assigned to this property may contain substitutions. The historian will create this table, if it does not exist. On each update to the cache's current table, the historian will either create or update the corresponding rows in the database table, using the cache's indexColumns to locate the rows. If no indexColumns are defined the historian will replace the entire table on each update. If the deleteTable property is used to delete rows from the cache's current table, the historian will also delete those rows from the database table. At startup of an RTView application, the database table will be queried for the initial rows to be loaded into the cache's current table. This property is not supported for the type double cache. This property is not supported in combination with the Historian -kdbformat option. 3) databaseName - The name of the database that contains the history and/or current tables for this cache. If left blank, the name "RTVHISTORY" is assumed. Substitutions can be used in this property. 4) quoteColumnNamesFlag - If checked (the default) then column names will be quoted in all SQL queries and commands for this cache. This is important for databases that do not preserve the case of column names unless they are quoted. However, in prior RTView releases, column names were not quoted when database tables were created, so this flag can be unchecked for backward compatibility. For these properties to work as described above, the cache definition file must also specified as an Historian data configuration file. See the RTView Historian documentation for details. The -nohistory option can be specified on the command line to prevent RTView from loading initial cache data from the database as described above.


15385: Data from initialTable no longer in wrong order in cache history

In the previous release, it was possible for data loaded via the initialTable property to appear out of sequence in the cache's history table. This has been fixed.

15401: deleteTable handling of multi-row tables improved

In prior releases, if a table with 2 or more rows was attached to the deleteTable property of an obj_cache_table, under some conditions the wrong rows were deleted from the cache's current table. This problem is fixed.

15433: add timeSpan property to cache objects.

A property named timeSpan has been added to obj_cache_table and obj_cache_double. The property specifies the time span for which rows will be kept in the cache history table. The property can specify a number of seconds, or it can specify a number followed by a single character indicating the time interval, where the valid characters are: y for years (365 days) M for months (31 days) w for weeks (7 days) d for days h for hours m for minutes s for seconds By default, timeSpan is blank, which means that rows are not removed from the history table according to their timestamp. As in prior releases, the maxNumberOfRows property limits the total number of rows in the history table, regardless of their timestamps. The timeSpan property only determines the time span for row kept in the cache history table by the cache data source. It does not affect the database storage, if any, associated with the cache.

15434: New property allowDuplicatesInHistoryFlag

A property named allowDuplicatesInHistoryFlag has been added to the cache table object. By default, this property is checked. If it is unchecked, then before the cache data source adds a new row to the history table, it will first check if an existing row has the identical timestamp and index column values and if so the existing row will be replaced with the new row. This feature requires additional overhead, so if duplicate history rows are acceptable or are unlikely to occur, the allowDuplicatesInHistoryFlag property should remain checked.

15486: Data Server now pushes cache table changes in all cases

In prior releases, if a data server client opens a display with an attachment to a cache table and the Column(s) field in the attachment is blank, and a second client opens a display with an attachment to the same cache table but where the Column(s) field = *, then the data server would only send updates to the first client when the contents of the cache table changed. This problem is fixed.

15490: New indexColumnNamesForDelete property

A property named indexColumnNamesForDelete has been added to the cache table object. This property can be used to remove defunct rows from the cache's current table, after each update to the table. A subset of the index column names should be specified as the value of the property. On each update to the cache, the set of values contained in the update for the specified columns is recorded. After the update, any row in the current table that has matching values for those columns, but was not updated, is considered defunct and is removed from the current table. For example, say the cache table has columns named Host, PID (process id) and CPU, and indexColumnNames = Host;PID. The valueTable property receives updates from agents running on multiple hosts. The data table applied to valueTable from each agent contains all the processes for the corresponding host. Say the cache.current table contents are as follows: Host, PID, CPU h1, 1234, 22.2 h1, 3456, 33.3 h1, 8765, 44.4 h2, 6464, 12.3 h2, 4579, 55.3 When an update for a host is applied to valueTable, if there are any rows in the current table for that host where the PID does not appear in valueTable, (because the process has terminated) the row should be deleted from the current table. Accordingly, the indexColumnNamesForDelete property is set to "Host". Then if the following table is applied to valueTable by the agent for host h1: Host, PID, CPU h1, 1234, 88.8 h1, 8765, 77.7 the resulting cache.current table contents will be this: Host, PID, CPU h1, 1234, 88.8 h1, 8765, 77.7 h2, 6464, 12.3 h2, 4579, 55.3 Note that the row for PID 3456 on host h1 was deleted (since it did not appear in valueTable) and the other rows for h1 were updated. The rows for host h2 were not changed, since valueTable contained no rows for host h2.

15504: Float data type not processed properly by Cache

If historical data is loaded from a database into a cache history table and then live data is appended to the history table, values of zero may incorrectly appear in a column if the data type is float in the live data and double in the database, or vice versa. This has been fixed.

JMX Data Source

15496: Now able to invoke getThreadInfo(long p1) on a ThreadMXBean

Previously it was not possible to successfully invoke the overloaded getThreadInfo operation on a ThreadMXBean in the JMX Adapter. It is now possible to invoke the overload of the getThreadInfo operation with a single long argument (p0 = threadID) that returns the thread info for a thread of the specified id with no stack trace.

SQL Data Source

15416: Crash when two ds threads use a db connection simultaneously

In the prior release, if the Historian was configured to use an ODBC connection to Microsoft SQL Server, then under some conditions the following exception could occur: SQLException: [Microsoft][ODBC SQL Server Driver]Connection is busy with results for another hstmt This problem is fixed.

StreamBase Data Source

15311: Support added for multiple connections

The Enterprise RTView Data Adapter for StreamBase receives data via streams from one or more connections. In previous releases that data was identified internally only by the name of the stream; so if the same stream was received from two connections simultaneously, the data adapter did not distinguish the source, which could lead to confusing or erroneous results. In the current release the data is now identified by both connection and stream. A column named "conn" is now added to each incoming "tuple"; it will contain the name of the connection as defined in the Application Options dialog. Data attachments may be made to a stream from a specific connection, in which case they will receive only tuples from that connection, or to "*", in which case they will receive tuples from any connection delivering that stream (the previous behavior). If a stream is written out to a history file it will now contain the connection name, and if it is read back in that information will be used to identify the source. If a history file from a previous release without connection information is read in, its tuples will be applied to all attachments for that stream.

TIBCO Hawk Data Source

15346: Hawk alerts now cleared in RTView if agent expires

In previous releases, alerts on an expired agent were not cleared in RTView unless the display showing the alerts was closed and reopened. This has been fixed.

15457: Rerequest retransmitted alerts for agents that expire

In previous releases, Hawk alerts were not always handled correctly if an agent expired and came back up. When the agent expired, the alerts currently showing in RTView were cleared, but when it came back up, RTView was not requesting retransmission of those alerts, so their status was not updated to the current alert status. This has been fixed. Note that retransmission of existing alerts only requested if the Rate to Request Existing Alerts is greater than 0.

15491: Include Index Columns option has been added

A new Include Index Columns option has been added to the TIBCO Hawk data source. If enabled, 3 new columns will be available for all TIBCO Hawk data attachments, except those to the RTViewDs microagent: AgentName - the name of the agent MicroAgentName - the name of the microagent MicroAgentInstance - the instance of the microagent These columns will show up as available Return Fields in the Attach to TIBCO Hawk Data Dialog. If * is used for the Return Field, they will be appended to the subscription data.

15492: Disable Data Cache option has been added

A Disable Data Cache option has been added to the TIBCO Hawk Methods and Alerts tab in the Application Options dialog. This option allows the user to disable the caching of data in the Hawk Data Source. When selected, the initial update on data attachments to multiple agents will return a table with a row for each agent, but subsequent updates include only the rows that have changed. This option is useful when using Hawk data attachments as input to the Cache data source or the Historian. This option was already supported with the -hawknocache command line option, but it is now available from the options dialog as well.

15513: Attach to Hawk Data dialog now retains window size

The Attach to Hawk Data dialog has been modified so that window size information is retained after the user resizes the window and closes/reopens the dialog.

WMI Data Source

14944: Microsoft WMI Data Adapter added

The WMI (Windows Management Instrumentation) Data adapter is now available. The WMI Data adapter allows you to obtain Management Information from local and remote computers running the Windows operating System. WMI data is obtained via WQL (WMI Query Language) statements. WMI is a windows specific Technology. The WMI Data adapter requires the .NET Version 2.0 (or above) RunTime installed on the machine it will run on. An Example of local WMI data is shown in the Data Sources demo.


Demos

JMX Monitor

15500: The JMX Monitor Demo has been enhanced to use client side caches

The JMX Monitor demo has been enhanced to use client side caches for the JVM Summary and JVM Memory Screens.

Display Server

15392: Initial data delay in thin client when using data server reduced

If the display server requests data via the data server, then there can be a delay between the time when the user opens a display in the thin client and when data appears in the display. This delay time has been reduced.

15560: Fix for MBean error in Display Server

In the previous release, accessing the Display Server's JMX Manager MBean could cause the Display Server to throw an OpenDataException. This has been fixed.

Distribution

14860: Add/Remove Programs listing no longer includes duplicate version

Previous versions of RTView included the version twice in the list of currently installed programs in the Add/Remove Programs applet. This has been fixed.

Drill Down

15384: Link object now drills down to correct display in thin client

A problem in the thin client in which a drill down from a link object did not open the correct display has been fixed.


Functions

14660: Filter by Row supports multi-column, multi-value filtering

In the Display Builder, the Filter By Rows function has been enhanced to allow multiple columns to be indicated for the filter and multiple values to compare against for each column. Multiple columns will be specified as a semicolon-separated list. Filter values will be specified as a nested list where values for a given column are comma-separated, and each group of comma-separated values is separated by a semicolon. For example: Column names: col1;col2;col3 Filter values: val1,val2;val3,val4;val5,val6 The resulting table returned would be those rows where the values of val1 OR val2 are in col1 AND the values of val3 OR val4 are in col2 AND the values of val5 OR val6 are in col3. Spaces around separators are not allowed. If a column name contains a semicolon it should be enclosed in single quotes (' '). Likewise if a filter value contains a comma it should be enclosed in single quotes. Note also the following: 1. If there are more column names than filter values (or value lists) or vice-versa, the extra names or values/value lists will be ignored. 2. If there is an error in designating a column name, that name and its associated filter values/value lists will be skipped. In the above example, if col2 were not found in the input, val3,val4 will be ignored and col3 will still be filtered on val5,val6. 3. For backwards compatibility, if there is only one column name and a list of filter values then the values may be separated by semicolons.

15275: GroupByTimeAndUniqueValues handles text columns differently now

The GroupByTimeAndUniqueValues function treats text columns more cleanly. Before the changes to GroupByTimeAndUniqueValues all numerical algorithms involving text values would result in a value of "" on output. Now all text calculations show the contents of the last row to be compacted in any text field.

15276: GroupByTimeAndUniqueValues handles bool columns differently now

The GroupByTimeAndUniqueValues function treats boolean columns more reasonably. Before the changes to GroupByTimeAndUniqueValues all numerical algorithms involving boolean values would result in a value of false on output. Now all boolean calculations show the contents of the last row to be compacted in any boolean field instead of a false.

15277: GroupByTimeAndUniqueValues handles date columns differently now

Before the changes to GroupByTimeAndUniqueValues all numerical algorithms involving date values would result in a value of "" on output. Now all date calculations that result in a compacted row show the contents of the last row to be compacted in any date field instead of a blank.

15278: GroupByTimeAndUniqueValues handles NaN better

The GroupByTimeAndUniqueValues fucnction was optimized for better NaN handling. Before the changes to GroupByTimeAndUniqueValues all numerical algorithms involving NaN values would result in a value of NaN on output. Now all calculations that see NaN substitute zero so that all other non-NaN values are at least considered.

15290: Restrict to Data Combinations now in GroupByTimeAndUniqueValues

The Group By Time And Unique Values function has been given an additional argument, "Restrict To Data Combinations". As in the Group By Unique Values function, if this argument is set to 0 then the returned data will contain all possible combinations of unique values found in the specified Index Columns, but if it is set to 1 then the returned data will be restricted to only those combinations that occur in the data.

15371: Deadlock if SETSUB function triggered by NOW function fixed

In prior releases, a deadlock can occur in the Display Builder or Display Viewer if a display contains a setsub function that is triggered by a now or a getsub function. This problem is fixed.

15377: Help dialog for Evaluate Expression functions updated

The help text for the Evaluate Expression By ___ functions has been updated to warn users that variable names may not begin with a number.

15469: New Distinct Values function

In the Display Builder a new function Distinct Values has been added. The Distinct Values function takes as its arguments a table and the name of a column in the table, and returns the unique values from the given column. Arguments are as follows: Table - The table of interest. Column Name - the column of interest. Sort Values - if set to 1, the resulting values will be sorted. Sort Descending - if set to 1, the resulting values will be sorted in descending order. Use Column Name - if set to 1, the original column name will be used for the result column; else a generic name will be used. This behavior is useful if a display needs to be independent of the column names in the data.

15470: New Create Selector List function

The Create Selector List function takes as input a table containing a list of values to be presented in a dropdown list and returns a two-column table where the first column contains selector names and the second column contains their values. If the input table has only one column its contents will be used for both the selector names and values; if it has two columns the selector values will be taken from the second column. The function has the option to prepend an "All Selector" to the output list. If a name is given via the argument "All Selector Name" then the first row in the output will contain that name in the first column and "*" in the second. Selector Table - the table of valid values. All Selector Name - name for the "all" selector. Sort Values - if set to 1, the resulting values will be sorted. Sort Descending - if set to 1, the resulting values will be sorted in descending order.

15471: New Validate Substitution function

The Validate Substitution function validates the given substitution against the given table of valid values. The first argument is the name of a substitution variable and the second argument is a table of valid values. (Only the first column of this table is used.) If the substitution value is found in the table it is returned; else the given substitution is set to the first value in the table.

15474: New checkbox to scroll columns added to Data Display Dialog

In the Display Builder's Data Display Dialog, a new checkbox named "Scroll Columns" has been added. By default all columns are displayed in the available dialog width, and in a wide table the column labels may not be readable.If this box is checked then the columns will be sized so the labels are readable and a horizontal scrollbar will be added if necessary to see all the columns.

15498: Split String Function added to tabular functions

The Split String function splits the given string, using the separator regular expression, to return a table with the named results column. The String argument is the input string to be split The Separator argument is the regular expression used to split the input string argument The Results Column Name argument is used to name the column containing the split results, one per row, in the returned results table.

15525: optimize to Restrict to Data Combinations for Group By functions

The performance of the Group By Unique Values and Group By Time and Unique Values functions has been optimized when the Restrict To Data Combinations is enabled.

15558: setsub function may not initialize value of sub in listeners

In prior releases, if a function has an input argument with an attachment that is affected by a substitution, and the initial value of that substitution is set by another function which appears later in the rtv file, the attachment may not be initialized with the correct substitution value. This problem is fixed.

General

14893: Third party .jar files repackaged into single .jar

In previous versions we required that the following libraries be added to applet parameters. Reporting support: J2PrinterWorks.jar iText.jar iTextAsian.jar Email command support: mail.jar activation.jar Expression evaluation function support: jeval.jar Browser support: BrowserLauncher2.jar It is no longer necessary to include all of the above libraries, as the contents of these libraries have been re-packaged into a single library: gmsjext.jar If you are currently using an applet deployment and you do not wish to upgrade your HTML file's applet parameters to reference gmsjext.jar instead of the full list above, you can find a copy of the old libraries in lib/ext_jars.zip. The signed versions of these are in signed_jars.zip.

15497: Java option optionsFileDir now also checks startup directory

The behavior of the RTV_JAVAOPTS option -Dcom.sl.rtview.optionsFileDir= (directory) has been modified. Previously, if a directory was specified, RTView would attempt to read configuration files from that directory. If not found, RTView would look for the configuration files in lib. This has been modified as follows: If a directory is specified, RTView will attempt to read configuration files from that directory. If not found, it will look for them in the directory where you started your application. If not found there, it will look for them in lib.

Object Library

11694: Scale palette enhancements

All of the scales previously on the Scales tab of the Object Palette have been replaced with the following 5 new scales: obj_barscale - This is a scale which displays the value using the fill percent of the bar. obj_piescale - This is a scale which displays the value using the fill percent of the pie. obj_vuscale - This is a scale which displays the value using the fill percent of the bar. The bar is drawn striped instead of solid. obj_indscale - This is a scale which displays the value using the position of the indicator against an axis. obj_bulletscale - This is a scale which displays the value using the fill percent of the bar. The bar look and funcationality are based on Steven Few's bullet graph. All of the scales allow you to set the range of the value using valueMin and valueMax. All of the scales except the pie scale support a variety of axis styles and can be oriented vertically or horizontally. The scales that were previously on the Scales tab of the Object Palette have been deprecated. They will continue to work as they did before in existing displays, but are no longer available in the Object Palette.

Charts (General)

15320: New Spark Chart object

A sparkline object has been added to the Graphs palette. The sparkline object is very similar to the trend graph and has many of the same properties. However, the sparkline has only a single trace and no X or Y axis. A marker is drawn only for the last data point. By default the sparkline also has no background or legend, but there are properties to enable those features. The sparkline will plot the data that is attached to its value and/or its valueTable properties. These are equivalent to the trace1Value and trace1ValueTable properties of the trend graph. By default, the sparkline will plot all of the data, up to the maxPointsPerTrace limit. The Y data range will be autoscaled. Although the X and Y axis are not displayed, several properties are available for controlling the X and X ranges of the plot, namely timeRange, timeRangeBegin, timeRangeEnd, yAxisAutoScaleMode, yValueMin, and yValueMax. See the trend graph documentation for a description of these properties. The sparkline supports the same alarm properties as the trendgraph.

Control Objects

15315: Scale Control now supports changes to valueMin and valueMax

In previous releases, the valueMin and valueMax properties on the Scale Object (obj_c1scale) were static and did not support updates. This has been fixed.

15373: Date Picker bug fixes

In the previous release of Enterprise RTView, the Date Chooser control had the following bugs: 1) If timeEntryEnabledFlag is unchecked, when you click on the calendar button, the control's varToSet variable is set and its command (if any) is executed immediately, before you pick the desired date from the popup calendar. This does not occur in the thin client. 2) If timeEntryEnabledFlag is checked and the control has a command, the command gets executed twice when you click OK in the popup calendar. 3) If timeEntryEnabledFlag is unchecked and the control does a drilldown to a new display in the current window, it crashes. All of these bugs have been fixed.

Fx Bar Chart

15335: Fx Bar Chart Spacing and Scroll Bars support

Two inter-related properties have been added to the Fx Bar Graph: scrollbarMode and minSpacePerBar. These properties act similarly to the same properties of the standard RTView Bar Graph. scrollbarMode: Select Never, As Needed, or Always from the scrollbarMode property to set the behavior of the x-axis scroll bar in the graph. NOTE: If drawHorizontalFlag is selected, the x-axis is vertical. Never is the default setting. If set to Never, some bars may get clipped. Select Always to display a scroll bar at all times. Set to As Needed to display the scroll bar when there is not enough space to display all of the bars in the plot area. Each bar uses at least minSpacePerBar pixels along the x-axis. minSpacePerBar: Sets the minimum width for each bar, in pixels. If drawHorizontalFlag is deselected, set the minimum width for each bar, in pixels. If drawHorizontalFlag is selected, set the minimum height for each bar, in pixels. The default is set to 1.

15390: Initial value 'Once' for entranceTrigger now behaves correctly

The FxBar graph's transition code has been improved from the prior to release to ensure that setting a transition to "Once" sticks. Also, the very first Entrance transition will display without the undesirable data flash that may have preceded the unfolding of the effect.

15391: all transition types except Interpolate act like Slide Right

The FxBar graph's transition code has been improved from the prior to release to ensure that the all settings stick.

15406: Bar spacing added to FxBar

The FxBar graph now supports the minSpaceBetweenGroups property. As with the standard bar graph, minSpaceBetweenGroups appears in the Layout section of the Object Properties grid. The default, as with the standard bar graph, is: minSpaceBetweenGroups = 8

15462: MinSpaceBetweenBars property added to Fx Bar

The FxBar graph now supports the minSpaceBetweenBars property. As with the standard bar graph, minSpaceBetweenBars appears in the Layout section of the Object Properties grid. The default, as with the standard bar graph, is: minSpaceBetweenBars = 0

15483: Alert Indicators implemented in Fx Bar Chart

Alert indicators are now supported in the Fx Bar graph. The Alert properties added are: valueHighAlarmLineVisFlag valueHighAlarmMarkColor valueHighWarningLineVisFlag valueHighWarningMarkColor valueLowAlarmLineVisFlag valueLowAlarmMarkColor valueLowWarningLineVisFlag valueLowWarningMarkColor By default, all of the VisFlag properties are set to OFF and all of the MarkColor properties are set to the same color values as their respective Alarm or Warning colors.

15484: Properties added for X and Y Axes color and thickness

The Fx Bar graph now supports changing the color and thickness of the X and Y axis. Four new properties have been added. They are listed below with their default values: X-Axis category: xAxisColor = 0xBBCCDD (light-gray) xAxisThickness = 8 Y-Axis category: yAxisColor = 0xBBCCDD (light-gray) yAxisThickness = 8

15485: Properties added for X and Y Axes color and thickness

The Fx Trend graph now supports changing the color and thickness of the X and Y axis. Four new properties have been added. They are listed below with their default values: X-Axis category: xAxisColor = 0xBBCCDD (light-gray) xAxisThickness = 1 Y-Axis category: yAxisColor = 0xBBCCDD (light-gray) yAxisThickness = 8 Note that the yAxisColor and yAxisThickness property values will be ignored when the yAxisMultiRangeFlag property is TRUE.

Fx Trend Chart

15365: Fx Trend Enhancements

The following properties have been added to the Fx Trend Graph. These properties have the same behavior as on the standard trend graph (obj_trendgraph02), except as noted below. timeRangeBegin timeRangeEnd gridColor xAxisGridVisFlag yAxisGridVisFlag xAxisLabelTextSize (see note 1) yAxisLabelTextSize (see note 1) yAxisMultiRangeFlag (see note 2) yAxisPosition (see note 3) yAxisAutoScaleVisTracesOnlyFlag trace1VisFlag, trace2VisFlag, etc Note 1. These are equivalent to x/yAxisLabelTextHeight on obj_trendgraph02. Note 2. The yAxisMultiRangeFlag property on Fx Trend is similar to yAxisMultiRangeMode on obj_trendgraph02, where yAxisMultiRangeFlag = unchecked is equivalent to yAxisMultiRangeMode = Off, and yAxisMultiRangeFlag = unchecked is equivalent to yAxisMultiRangeMode = MultipleAxis. There is no equivalent to the Classic or Strip Chart modes, those are not supported on the Fx Trend. Note 3. The yAxisPosition property supports the same settings on the Fx Trend and obj_trendgraph02. However, the 'inner' position settings work differently: on obj_trendgraph02, the axis labels are drawn inside the trace area, while on Fx Trend the inner setting merely changes the location of the tick marks relative to the y axis.

15429: Flex trend with a lot of data no longer hangs browser after zoom

In prior releases, the Fx Trend would sometimes become sluggish or unresponsive after performing a zoom. This is fixed.

15511: yValuePrecision has been added to the Fx trend graph

A property named yValuePrecision has been added to the Fx trend graph. It specifies the number of decimal digits shown for Y data values in the legend and the mouseover text. The default value is 2.

Heatmap

15430: Heat Map Object added

A new object, obj_heatmap, has been added to the Graphs tab in the Object Palette. The heatmap displays indexed hierarchical data as a set of nested rectangles. A rectangle is drawn for each index, and is then filled with smaller rectangles representing sub-indexes. The size and color of a node's rectangle shows its value relative to the total of all values for that index. Heatmaps are useful because the color and size of the nodes allow you to see patterns that would be difficult to spot in other ways. They also make efficient use of space and can legibly display a large amount of data. Attach your tabular data to the valueTable property. This table must contain one or more index columns and at least one data column. The heatmap will display one level of nodes for each index column specified. Index column names should be specified in the nodeIndexColumnNames property. The first non-index numeric column will be used to control the size of the node. The second non-index numeric column will be used to control the color of the node. If only one data column is specified, it will control both the size and the color of the nodes. The data in the valueTable is aggregated by unique index value. By default, the both size and color data is subtotaled. You can specify alternative aggregation types in the colorValueGroupType or sizeValueGroupType properties. Since the data in the heatmap is aggregated, the value shown in a heatmap node might not be the same as the value passed down to a drill down display. For example, if you have your heatmap attached to a table where the index column is Plant and the size column is Units Completed, if you have 2 rows where the Plant is San Francisco, then the node size will be based on the total of the Units Completed values for both rows. However, when you drill down, the drill down value for Units Completed will be the value in the first row in the table where the Plant is San Francisco. Negative aggregated values will be treated as 0. The following layout options are supported: Squarified - Nodes are more square in shape and ordered according to the size of the value from the top-left to the bottom-right. Strip - Nodes are more square in shape and ordered according to the order of the rows in the valueTable. Slice Horizontal - Nodes are short and wide and ordered according to the order of the rows in the valueTable. Slice Vertical - Nodes are tall and narrow and ordered according to the order of the rows in the valueTable. Slice Best - Nodes are laid out either like Slice Horizontal or Slice Vertical based on what fits best in the available space. Slice Alternate Horizontal - The layout alternates between Slice Horizontal and Slice Vertical based on the node depth. The top level nodes use Slice Horizontal. Slice Alternate Vertical - The layout alternates between Slice Horizontal and Slice Vertical based on the node depth. The top level nodes use Slice Vertical. Note that heatmaps containing large data sets may run slowly on the Display Server if either the drill down target or the mouseOverFlag is enabled.


15512: The heatmap now supports value divisors and data quality

Two new properties, sizeValueDivisor and colorValueDivisor, have been added to control the size and color values plotted in the heatmap. Note that the colorValueDivisor, if specified, is also applied to colorValueMin and colorValueMax. For columns specified in the mouseOverAdditionalColumns property, you can optionally specify a value divisor for each numeric column included in the tooltip. Several new properties have been added to support data quality: valueQuality: Specify a value to compare to valueQualityLostData and valueQualityNoData. If it matches one of these, all nodes in the heatmap will draw in the corresponding valueDataQuality color. This property is ignored if the valueQualityEnabledFlag is off. valueQualityEnabledFlag: If selected, enable coloring cells based on data quality. valueQualityColumnName: Use the specified column in the valueTable data for a per-row data quality flag. For each node, if the value in the quality column matches valueQualityNoData, draw the node valueQualityNoDataColor and if the quality column matches valueQualityLostData, draw the node valueQualityLostDataColor. If the valueTable contains multiple rows for a single index, the highest data quality value is used. This property is ignored if the valueQualityEnabledFlag is off. valueQualityLostData: The lost data value. valueQualityLostDataColor: The color to paint the node if the quality is valueQualityLostData. valueQualityNoData: The no data value. valueQualityNoDataColor: The color to paint the node if the quality is valueQualityNoData.

15566: linearColorMappingFlag property added to Heatmap

The linearColorMappingFlag has been added to the heatmap in the Data Format category. This property adjusts the way the color calculations are done for the nodes. If selected, the color of the node ranges directly from minColor to maxColor, similar to the way a gradient's colors are calculated. If deselected, the color of the node ranges between minColor and maxColor by going around the color wheel.


Pie Charts

15418: Initial value "Once" for entranceTrigger now acts as expected

It was noted that some of the entrance and exit transition effects didn't work as expected. The problems were found and corrected.

Tables

12228: Support added for multiple column sort

In the Display Builder, the Sort Table function has been enhanced to take multiple column names, separated by ";". The resulting table will be sorted on the first column, then the second column, etc. If an invalid column name is entered the original table will be returned.

15442: Crashes caused by valueTable changes while drawing objects fixed

In prior releases, an array bounds exception or class cast exception would sometimes occur if rows were removed from a data table by an asynchronous data source while an object attached to the same table was being drawn. This is fixed.

Trend Charts

15411: "Stacked" option added to yAxisMultiRangeMode

The trend graph now supports yAxisMultiRangeMode = Stacked. In this mode, the y value plotted for a trace for time=T is the sum of all of the y values of the lower numbered traces at time = T. For example, for trace 3 and the plotted y values will be the sum of the y data values for traces 1, 2, and 3. The actual (unstacked) y values are shown in the trace legend for all traces. The y value for a lower-numbered trace is not included in the sum if that trace is invisible, or has no data, or all of its data points are older or newer than T, or the y value at T is NaN (not a number). If the lower- numbered has no value at T, but has values before and after T, the y value to be included for the sum in that trace will be interpolated.

Oracle Coherence Monitor

14776: Alert provided for Departed Nodes

The "DepartedNode" alert has been added to the Oracle Coherence Monitor. This alert is triggered whenever a node leaves the cluster for more than the specified delay time (default = 60 seconds). When a departed node rejoins the cluster, the alert is cleared. This alert may be disabled/ enabled from the Alert Admininstration page.

15440: Node Location now shown in Departed Nodes display

The Location identifier is now shown in the Cluster Stability Departed Nodes table, along with the ip address and port.

Platform Support

15038: rtv_init.bat now writes temporary file to Application Data

In previous versions, the rtv_init.bat script would write a temporary file to %RTV_HOME%. This would cause the script to fail on some Windows systems due to permissions. This temporary file is now written to %APPDATA%\.sl instead.

Version 5.2c1 Release Notes

Alerts

13682: Enhanced Alert Editing

In the Display Builder, the way Alert objects are added and configured has changed. Instead of seeing alert objects as visible rectangles in the display, they will be shown in a new Alert dialog. When an alert objects is selected in the table its properties may be edited in the Object Properties dialog as before. A new alert object may be added by selecting its type from the dropdown list to the left of the Add button and clicking that button. The tabular display of alert objects may be filtered by means of the dropdown lists at the top of the dialog. The filters are additive; to remove a given filter select "*" from the list. The Name filter accepts a regular expression string.

15206: Multi-state Alert added

A multi state alert has been added to RTView. This alert allows you to define the number of states for your alert. For each state, you can set the condition that the input value must meet to trigger the alert. The following conditions are supported: Greater Than Greater Than or Equal To Less Than Less Than or Equal To Equal Not Equal Increase Increase Percent Decrease Decrease Percent Net Change Net Change Percent In Range Out of Range When your input value has met the condition for a defined alert state, an alert will be generated using the alert state number as the severity (ex, the severity for Alert State 1 will be 1, the severity for Alert State 2 will be 2, etc).

15207: Alert Text can now be customized

The alerts have been enhanced to allow you to customize the alert text. The alert text is displayed in the Alert Text column of the alert table and is used in the $alertText substitution available for alert commands. You can specify a different alert text string for each alert level. If no alert text is specified, RTView will output default text, which is the same text that was used in previous releases. The following new properties have been added to the limits alert to allow you to specify alert text: valueHighAlertText valueHighWarningText valueLowAlertText valueLowWarningText The following new properties have been added to the discrete alert to allow you to specify alert text: valueHighAlertText valueLowAlertText valueMediumAlertText All of the alert substitutions that are available on the alertCommand can also be used in the value*AlertText string except for $alertText and $alertEmailBody. The following new alert substitutions have been added for use in both the value*AlertText and the alertCommand: $alertLabel - A label indicating the alert type (discrete: High Alert, Medium Alert, Low Alert limits: High Alert, High Warning, Low Alert, Low Warning) $alertCurValue - The current input value. $alertCompValue - The value the current input value is being compared to.

15213: File Browser Added to Alert Options Dialog

In the Alert Definitions tab of the Display Builder Application Options dialog, when you click the Add button to add a new Alert Definition file, you will now be presented with a file selection dialog which you may use to browse to the file of your choice.

Builder

15142: Model height limit removed

In previous releases of RTView, the background model size has been limited to less than 2049x1537. This limitation has been removed.

15235: New live data display option for data attachments

The Display Builder has been enhanced with an addtion to the "attach/detach" popup menu. This menu is shown when you right-click on a property in the Object Property dialog, or on a function argument in the Edit Function dialog. If the property or function argument is attached to data, you will be able to choose a new menu item "Display Data" and invoke a free-standing dialog containing a table displaying the data available from this attachment. You may invoke such a data display dialog for any data attachment; only one dialog will be opened for each individual attachment. If you close one of the dialogs it will be re-opened if you re-invoke a display dialog for the same data attachment. All the dialogs will be closed when you change displays. The dialogs display the text of the data attachment above the data table, and an abbreviated form of it in their title bar, to help locating a particular dialog if you have several open. They include two checkboxes below the table: "Show Column Types" will display the data type of each column below its name in the column header, and "Insert New Rows" will set that flag on the data table.

Builder - Editing

15211: Function Dialog resizing constrained

In the Display Builder, the Edit Function dialog could be resized so small that the dialog's contents became unusable and the function help text could become truncated. The dialog is now constrained not to resize below a minimum size.

15218: Argument values properly retained when changing function type

In the Display Builder Edit Function dialog, if you were editing a function and changed its type to one with similar argument names, the corresponding argument values were not correctly retained. For most functions, literal argument values would be lost although data attachments would be retained. For the Evaluate Expression As Double/String functions, data attachments would be converted to literal values when switching between those two types. To clarify the expected behavior when changing the type of a function: if the new function type has the same argument names as the previous one then all argument values (literal and attachment) will be retained. The only exception is changing between Evaluate Expression As Double/String and Evaluate Expression By Rows: in this case only the expression will be retained.

15305: Support for sending multiple values from a multi-select listbox

The list control object (obj_c1tlb) now supports selection of multiple list items. To enable multiple selection, check the multiSelectFlag property in the property sheet. If multiple list items are selected and if a variable is attached to the control's varToSet property, the variable will be set to a string containing the selected item values, separated by semicolons. For example, if the selected item values in the list are Red and Blue, the variable value will be set to Red;Blue. Likewise, the control's selectedValue property can be used to select multiple items by specifying a string with the values to be selected separated by semicolons. LIMITATION: Since the semicolon character is used as a separator between multiple values in the selectedValue property, and in the string assigned to the varToSet variable, the list values themselves may not contain semicolons in a list control whose multiSelectFlag property is checked.

Builder - Options Dialogs

14877: Last global file entry can now be removed from list

In the Globals tab of the Display Builder's Application Options dialog, if you had a single global file in the dialog's table and removed it, it would reappear when you pressed Apply. This has been fixed.

Common Server Support

15055: Notification provided of user login/out

Two methods have been added to the GmsCustomUserManager class, named clientLogin and clientLogout.

	public void clientLogin(String userName,
	                        String role,
	                        String sessionID)
In the display server and data server applications, this method is invoked when a client user logs in. There is a unique sessionID for each client login session.
	public void clientLogout(String userName,
	                         String role,
	                         String sessionID)
In the display server and data server applications, this method is invoked when a client user logs out. There is a unique sessionID for each client login session.

15095: Data/Display Server & Historian available as Windows Services

The Data Server, Display Server and Historian have been enhanced to support running as Windows services. To install and start one of these applications as a service, type the following in an initalized command prompt: install_service appName -service:service_name -dir:startup_directory The following arguments are supported for install_service appName - Required. Must be displayserver, dataserver or displayserver -service: - Required. Specify the name to use for the service. This will show up as the name of the service in the Windows Services dialog. If the service name contains spaces, enclose the entire argument in quotes. For example, "-service:my service". -dir: - Required. Specify the full path to the directory where the application should run. This should be the project directory that contains all of the .rtv and configuration files for your RTView application. If the directory contains spaces, enclose the entire argument in quotes. For example, "-dir:c:\my dir". -serviceout: - Optional. Specify the full path and file name for the out log file. If not specified, the out log will be written to the directory specified with -dir and named appNamed_out.log. -serviceerr: - Optional. Specify the full path and file name for the err log file. If not specified, the err log will be written to the directory specified with -dir and named appNamed_err.log. -overwritelogs - Optional. Overwrite the err and out logs each time the service restarts. If not specified, new data is appended to the existing log files. -manualStart - Optional. Set the service startup type to manual. The service will still start when it is installed, but will not automatically start on system startup. If not specified, the service startup type will be auto. For example: install_service displayserver -service:MyService -dir:c:\myproject -serviceout:c:\logs\ds_out.log -serviceerr:c:\logs\ds_err.log Any other command line options will be passed into the application. Note that the service is run as a local system service. If you will be using ODBC connections for the Historian or SQL data source, you will need to set these as system data sources, not user data sources. Note also that you cannot successfully install a service application if RTView is being run off a networked drive. It must be installed on your local system. To stop and uninstall one of these service applications, type the following in an initialized command prompt: uninstall_service appName -service:service_name Once a service is installed, you can start, stop and configure it in the Windows Services dialog. These application are available as windows services on Windows XP, Windows 2003 Server and Windows Vista only. They are not supported on 64-bit systems. These services run using JavaService version 2.0.10, which is licensed under the Lesser GPL and is available for download from http://forge.objectweb.org/projects/javaservice/.

15170: High Availability and Load Balancing support for RTView servlet

Improvements were made to better support High Availability and Load Balancing for RTView servlets. RTView provides two servlets for use in web deployments. The rtvdata servlet provides a Viewer client access to the Data Server. The rtvdisplay servlet provides the Thin Client with access to the Display Server. In this release, the servlets have been enhanced to support high availability. High availability is achieved by deploying multiple redundant copies of the servlet in a web server/app server environment that supports clustering and load-balancing/failover between redundant servlets. Servlet clustering allows multiple copies of a servlet, each running in a separate app server, to replicate their internal state information. Most app servers, such as Tomcat 6.0, support clustering. Load- balancing/failover maps a URL from a client request to one of the redundant servlets. A servlet is chosen so that the client requests are distributed evenly among the currently available servlets. In the event of a servlet failure, a client is switched from a failed servlet to a healthy servlet. There are several types of load balancers, including software or hardware devices, or specialized DNS configurations. See the High Availability Section under Deployment in the documentation for more details about how to configure these systems. The documentation provides general examples of several HA deployments and specific examples of HA servlet deployments using Tomcat 6.0 as the app server and Apache httpd 2.2.9 as the web server and load-balancer.

Customization

15171: Flex Custom Example with Tabular Data added

Another example of a custom fx object has been added to the custom/fxsimple directory. It accepts tabular data from RTView and displays it in a grid. The source file for the example is fxgrid.mxml.

15250: Resource Bundle shared by all Custom Data Adapters

Previously only a single custom data adapter could be used in a RTView application because localization resources were not shared between custom data adapters. This has been corrected.

15281: New custom data adapter option to set update interval

Previously we allowed only "Once Only" and update on every RTView update interval for custom data sources. Support has been added for polling on every ds-specific interval or data-attachment interval.

15282: Custom data adapters cannot set options before initialization

This task adds support for command-line argument processing and applet parameter processing to the custom data adapter API. Command-line arguments and applet parameters are processed the same way as options read from the Ds Options file, through the method GmsRtViewDsAdapter.applyDsOption(), with only minor exceptions as described below. In addition, the initialization of custom data adapter properties has been split into two parts, so that an adapter can use information passed-in from command-line options, applet parameters, or entries in the Ds Option file when setting most of the custom data adapter properties. Option Processing All valid options, whether passed from the command-line, specified as applet parameters, or read from the Ds Options file, are passed to the method GmsRtViewDsAdapter.applyDsOption(String name, String value) during application initialization. The option name and value are provided to the adapter as strings. For more details about processing options, please refer to the description in the Customization / Custom Data Adapter / Data Source Options / Accessing DS Options section of the Enterprise RTView User Guide. Command-Line Options Command-line options should be specified using the following format: -<dskey>option:<name>=<value> where <dskey> is the dskey for the custom data adapter, <name> is the option name, and <value> is the option value. The following example shows how to pass a command-line argument to a custom data adapter. In this example, the dskey for the custom data adapter is ds1, the option name is option1, and the option value is value1. run_viewer customds:Ds1 ds1option:option1=value1 Command-line options are processed after options read from the Ds Options file, so a custom data adapter can use command-line options to override options previously read from the DS Options file. Unlike Ds Options, options passed from the command-line do not need to be defined as fields in the Ds Options exemplar in order to be passed to the applyDsOption method. All options which match the format shown above will be passed to the applyDsOption method during initialization. This allows a custom data adapter to accept options which control program execution, yet which are not saved in the Ds Options file or displayed in the Ds Options dialog in the builder. For example, a custom data adapter may define an option which specifies the name of the resource bundle to use for localization, so that different localization files can be tested without any code changes. Applet Parameters Options may be passed to applets as applet parameters. When passed using the HTML <param> element, applet parameter options should be specified using the following format: <param NAME=<dskey>option:<name> VALUE=<value> When passed inside the HTML <embed> tag, applet parameter options should be specified using the following format: <embed & <dskey>option:<name>=<value> & > where <dskey> is the dskey for the custom data adapter, <name> is the option name, and <value> is the option value. The following example shows the HTML to pass an applet parameter to a custom data adapter. In this example, the dskey for the custom data adapter is ds1, the option name is option1, and the option value is value1. To pass an option in the <param> element: <param NAME=ds1option:option1 VALUE=value1> and if the parameter is passed in the <embed> tag, the HTML would look like this: <embed type=& code=& ARCHIVE=& ds1option:option1=value1> Applet parameter options are processed after options read from the Ds Options file, so a custom data adapter can use applet parameter options to override options previously read from the DS Options file. Applet parameter option names must match the names of fields in the Ds Options object. Unlike command-line options, applet parameter options cannot be arbitrary. If the name of an applet parameter option is not recognized, the parameter is ignored. Data Adapter Properties To support the use of command-line options and applet parameters in the setup and configuration of a custom data adapter, the procedure for initializing the data adapter properties has been changed. The method GmsRtViewDs.initDsProperties(GmsRtViewDsProperties) has been replaced by two methods, one to initialize the base properties for the adapter, and the other to initialize the control properties for the adapter. NOTE: This change requires existing custom data adapters to be modified to use the new property initialization methods in the GmsRtViewDs class. Data adapters that are not modified will generate run-time exceptions when used with the new com.sl.gmsjrtviewds library. The adapter base properties are initialized in the GmsRtViewDs constructor, before any option processing is performed. Because of this, command-line options, applet parameter options, and Ds Option file options are not available when the base properties are initialized. The method GmsRtViewDs.initDsBaseProperties(GmsRtViewDsBaseProperties) is used to initialize the adapter base properties. The base properties include the dskey, the adapter class name, the adapter description, and the option file name. The adapter control properties are initialized after all option processing has been performed. The method GmsRtViewDs.initDsControlProperties(GmsRtViewDsControlProperties) is used to initialize the adapter control properties. The control properties include all properties that were not specified as base properties above. For examples of the new property initialization methods, please refer to the following custom data adapter examples: myeventds, mypolledds, and mypolledds2.

15339: Custom Data Source named field attributes no longer collide

In previous versions, custom data source named user defined fields added by the addField method may have their attributes ( UIState (DialogFieldState), validity (DataFieldValidity)) modified by other custom data sources that define fields with the same name. This is no longer the case.

Data Historian

15148: High Availability support added for Historian

For higher availability, multiple Historians can be assigned to a server group to support failover between the servers. At any time, one historian in the group can be the primary and the other group members are standbys. Only the primary member writes to the database. Please note that this feature is intended to be used with a database system that also supports redundancy (through mirroring, clustering, or other techniques) so that any historian in the group can update the same virtual database. Each group member is assigned a port number and a priority. Each member monitors the status of the others in the group, using a socket connection on the assigned ports. The member with the highest priority is elected as the primary. If the primary member fails, is shut down, or loses its connection to the database, the standby member with the highest priority becomes the new primary. In the event of a tie in priorities, the member which was started first becomes the primary. Each historian in the group should be configured with the same set of data configuration files, retention options, data source options, etc. There is a new tab labeled Server Group for configuring the Historian's group options. By default, no server group is defined. To define a server group: 1. Select a port number on which this historian will accept connections from other historians in the group. The default is 3380. 2. Choose a priority for this historian. The default is 1. The online historian with the highest priority will become the primary historian, and will update the database. 3. For each other historian in the group, enter the hostname and port in the 'Member' text field. 4. Save the configuration. 5. Repeat steps 1 - 4 for the other historians in the group. The group options can also be specified on the command line as follows: -group_priority:N -group_port:N -group_member:host:port For example, with the following options the historian will have a priority of 2, will listen on port 3399, and will join a group that contains a historian on the host named kiwi using port 5566: run_historian -group_priority:2 -group_port:3399 -group_member:kiwi:5566 The following options start the historian with a priority of 2 and the group also contains the historian on kiwi. Both historians use the default port of 3380: run_historian -group_priority:2 -group_member:kiwi Note that a group priority >= 0 must be specified or the historian will not join the group. Note that replication of internal historian state between redundant servers is not yet supported. If the historian belongs to a group, the group status is shown in a table on the Server Group tab. The table has one row for the local historian plus one row for each other member in the group. The table has the following columns: 1) Member: The name of the member, which is "local" for the current copy of the historian, and the host:port configured for each of the other group members. 2) Status: One of the following values: primary - member is currently the primary historian server standby - member is running and has a database connection, but is lower priority than the primary no service - member is running but has no database connection (so it can't become the primary) no connection - the local historian can't establish a connection to this member 3) Priority: The priority configured for the member. 4) Start Time: The time that the member was started. This is used to resolve ties: if there is a tie among the standby members with the highest priority, the member with the earliest start time is selected as primary. For JMX monitoring, two boolean attributes have been added to the historian's MBean: PrimaryServer : true if the historian is the primary server in its group, or if it does not belong to a group. ConnectedToDatabase: true if the historian is connected to its historical databse.

Data Sources

15244: Unparseable Date Exception in Splunk Datasource (Linux/Japanese)

When connecting to Splunk, an unparseable date exception was thrown on Japanese Linux machines in the Tokyo time zone. This error has been fixed.

15331: Typo in launcher prevented Splunk jars being correctly added

In 5.1c1 the Splunk Data Adapter was not loaded automatically when you started RTView from the command line, but required that you add jaxen- core.jar to the RTV_USERPATH. This has been fixed, so that Splunk now automatically is included if you are licensed to use Splunk.

Cache Data Source

14992: New mechanism to initialize table schema

In the Cache Data Source, the Table Cache object (obj_cache_table) has been enhanced with a new property, "schemaTable". This property may be used to provide information about the structure of the data that will be stored in the cache before that data is actually available. This property may be attached to any data source that will provide the structure of a table, such as an SQL query or an XML file. (Only the table structure will be used from this attachment; if there is any row data it will be ignored.) Before the data becomes available, the cache Current and History tables will be initialized from the schema table and the Attach To Cache Data dialog will show the columns found there. After the data is available, the cache tables will contain the columns found in the schema table plus any additional columns found in the data. In addition, if there is a difference between the data types of the columns defined in the schema and the types found in the actual data, the schema types will be used, and the incoming data will be converted. Note that if the "timestampColumnName" property is also specified, a timestamp column will be added to the schema table (if it is not already there) as well as to the data.

15214: Cache objects can now be used in history config files

It is now possible to use Cache objects in history configuration files. Previously it was not possible to set the historyTableName property on a cache object. Now you can do this, making it possible to use a single .rtv file for both cache configuration and historian configuration. Limitation: Although you must enter a name in historyTableName for the object's data attachment to be used in the history definition, this name will be ignored for scalar cache objects (obj_cache_double.rtv). Data from a scalar cache defintion will be safed to the HISTORY table.

15248: Table with filtered cache no longer has incorrect data

In previous versions, a reference to an RTView cache that included a filter would sometimes transfer all data rows instead of the rows specific to the filter. The result would be additional points being plotted in a trend chart or shown in a table. This problem has been fixed and filtered references to cached data work as expected.

15253: Data not used by filtered attachment won't cause update

Filtering of RTView Cache data has been optimized so that a reference to a cache using a filter only transfers the specific rows that have been recently added to the cache. Previously rows would be transferred whenever any row in the cache changed.

SQL Data Source

14400: Built-in database RTViewDs provides SQL connection information

The SQL Data Adapter has been enhanced to provide a built-in database name, "RTViewDs", with two tables: Connections and Keys. The Connections table provides detailed information about each database connection and its status. The Keys table provides detailed timing and count information about each unique data attachment.

15263: LONG datatype for DB2 supported in SQL Datasource

The RTView Historian when used with DB2 will now correctly create tables with "long" values as BIGINT values for table columns that are defined as a LONG type. Previous versions incorrectly limited the precision to INTEGER type.

15318: Blank SQL queries no longer report -1 rows to console

The SQL Data Adapter now recognizes query strings of zero length and does not try to execute them or report query times. Previously, a report of -1 rows returned would be continuously printed. This problem has been fixed.

TIBCO Hawk Data Source

15239: New option to disable cache/merge of Hawk data rows

The TIBCO Hawk data source has been enhanced to support a new command line option, -hawknocache. This option controls the way that data updates are handled. By default, data attachments to multiple agents return an entire table with a row for each agent on each data update, even if only one row changed. With the -hawknocache option, the initial update contains all of the rows, but each subsequent update only includes the rows that have changed. This is useful when using Hawk data attachments as input to the cache data source or to the Historian. When this option is specified on the command line for the Display Builder or Configuration Utility, it will be included in HAWKOPTIONS.ini if the application options are saved.

Development and Build

15294: Upgrade to Tomcat 6.0

The Tomcat server that is packaged with RTView has been upgraded to version 6.0.18.

Display Server

15228: List box and combo box inside composite objects no longer empty

In release 5.0 and 5.1, list and combo boxes contained in a composite object and configured with a fixed set of list items (not attached to data) were shown as empty in the thin client. This is fixed.

15233: Multi-command on object in composite no longer causes exception

The Display Server will no longer throw a class cast exception if a multi-command is executed from an object within a composite object.

15264: executeOnLostFocusFlag errors in thin client fixed

The executeOnLostFocusFlag feature of the text edit control caused the following problems in the thin client, in the previous release. Both problems are fixed in this release. 1. If a text field with executeOnLostFocusFlag has focus, and the user clicks on another object in the display (a button, say), only the text field's action is executed. The other object's action is not executed unless the user clicks on it again. 2. In Firefox 2.0 only, if a text field with executeOnLostFocusFlag has focus and the user clicks on a link to open another display (in the left-hand frame of the default thin client page) the page displays the message "ERROR: no response from .../xmlreq.jsp". Afterwards, Firefox is sometimes unresponsive and must be closed. Firefox 3 and IE are not affected by this problem.

15265: Export to EXCEL failure in IE for long url has been fixed

In prior releases, the thin client "Export Table to Excel/Html" feature would sometimes fail in Internet Explorer if many substitutions were set on the display, resulting in a long URL for the export request. This is fixed.

15266: Incorrect drilll down behavior from control objects fixed

In release 5.0 and 5.1, if a control object is configured to set a variable and also to perform a drill down, then in the thin client only the set variable action is performed when the control is activated, the drill down is not. This problem is fixed.

15360: Runtime changes to table filterProperties no longer delayed

In the previous release, if substitutions or local variables were used in a table's filterProperties, changes made to the substitution or variable value sometimes did not take effect until the next refresh in the thin client. This problem has been fixed.

Drill Down

15347: Current Window drill down lags in performance in display server

The performance of the thin client when performing a drilldown in the current window to a display containing a table with many cells has been improved. Performance of large tables may still be sluggish with older browser versions. For best performance, use Firefox version 3 or Internet Explorer version 7.

Functions

15208: Functions within expressions now get new argument values

There was a problem with the Evaluate Expression functions such that if the expression used functions, its result would not be updated after the first time values were given to its variables, but would continue to return the result calculated from the first set of variables it received. (New values would be given to the variables either as incoming data changed, or as the same expression was applied to successive rows of a table.) This has been fixed.

15234: Conditional expression function added to expression evaluator

In the Display Builder, the Evaluate Expression family of functions have been enhanced with a new built-in function, condExpr, which evaluates conditional expressions. The function takes three arguments, an expression and two values. It evaluates the expression and if it is true it returns the first of the two values, else it returns the second. The expression is true if it evaluates to "1", "1.0", or "true" (case independent). As an example, consider the expression condExpr(%x > %y, "greater", "less"). If the value given to variable x is greater than the value given to variable y, the function will return the string "greater", else it will return the string "less".

15236: Better error handling for expression with no data available

Previously, if the Evaluate Expression As Double or Evaluate Expression As String functions had an argument attached to data, the expression was expecting a numeric argument, and the data was not available from the data source, the function would would sometimes display the misleading message "Expression is invalid". The functions now distinguish between missing data and an actual invalid expression by attempting to evaluate the expression with numeric zero values substituted for the missing data, and should only display that message when the expression is in fact invalid.

15293: New "Buff Table Rows" function

A function named 'Buffer Table Rows' has been added. It takes a table as an argument, and on each update it appends all the rows from the input table to the result table, which it returns. Another argument specifies the maximum number of rows that should be kept in the result table. Rows are removed from the top of the result table, if necessary, to maintain that limit. The 'Buffer Table Rows' function can also be useful in the following situation: RTView does not update a function immediately when one of its arguments is set. Instead, the update is briefly deferred to allow time for the other arguments to be set also. This improves performance but can result in lost (overwritten) argument values if the arguments are updated asynchronously and rapidly (from a high speed event data source, for example). In most cases this is not important since only the last (most recent) argument value is required. But if a function F needs all argument values the Buffer Table Rows function can be used to store all the rows received from a table argument until function F is updated. So F would be attached to the result of a Buffer Table Rows function, which would in turn be attached to the data source that updates the table. Once F has been updated, he function data source will clear all rows in the buffer table kept by the Buffer Table Rows function. At most one function should be attached to the result of any given Buffer Table Rows function. As described above, the buffer will be cleared when the function that is attached to the Buffer Table Rows result is updated. So if multiple functions need to buffer the same input data, a Buffer Table Rows function should be created for each.

15301: Expressions no longer fail if one %var is a substring of another

In the Display Builder, when creating an Evaluate Expression As Double/String function, if the variable names are chosen such that one name is a substring of another, the function would not evaluate correctly. This has been fixed.

15309: Exception if Replacement Values argument badly formed fixed

Previously, a badly formed Replacement Values argument in a Replace Value function would cause an exception. This is no longer the case. To be well formed, the Replacement Values argument should be a string that contains pairs of values and replacement values separated by :'s. If any of the values or replacement values specified in Replacement Values contains a space or a colon, it must be enclosed in single quotes. For example if Replacement Values contains 'Windows 2000':win2k 'Windows NT':winnt and Value is Windows NT, winnt will be returned.

15329: Function loops created at runtime by parameter changes detected

The function data source has been improved to detect function loops created at runtime by changing substitutions that affect function arguments.

General

15310: Menu bar when EMS Manager run from cmd prompt removed

In previous releases, the TIBCO EMS Manager came up with a menu bar when started from the command line, but without a menu bar when started from the Windows start menu. This has been fixed so that the menu bars are not showing when the TIBCO EMS Manager is started from the command line.

15316: New JMX MBeans for RTView status and function statistics

A set of JMX Mbeans has been added to RTView to provide run-time information about RTView status. The MBean RTView:name=Manager provides the application name, along with other useful information. The MBean RTView:name=DataServerConnections provides a table containing one row for each named Data Server connection showing the status of that connection. The MBean RTView:name=FunctionStatistics contains one row for each defined function, showing the panel in which it is defined and detailed timing and usage statistics NOTE: If an RTView client application is connected to a Data Server, starting the application with -dsenable:jmx will provide a way to access the local MBeans in the client, by making a data attachment to these MBeans with the Data Server set to <none>.

GmsTabularData

15308: Fix for crash while serializing GmsTabularData

A problem has been fixed which sometimes caused the data server to throw an array bounds exception or null pointer exception while it was serializing a GmsTabularData object to send to a client.

Licensing

15274: Vista licensing update

PINs generated on Vista are now accurate.

Object Library

11693: Label palette enhanced

The label palette has been enhanced. The following objects have been replaced by general objects: obj_text03 obj_label09 obj_label09s obj_label12 Existing displays that use these objects will automatically be converted to use the corresponding general object instead. There may be a small shift in the location of the text in these objects when they are converted to the general objects. Object grids using these objects will also automatically be converted to use the corresponding general objects and may show a small shift in the object layout. The following objects have been enhanced: obj_label05 obj_label05s obj_label11 obj_label11s These objects have been enhanced to support several new properties, such as gradients, rounded corners, and drop shadows. They have also been enhanced to support objWidth and objHeight, which allows better scaling of these objects. The fieldWidth property has been converted to objWidth. Existing displays will automatically be converted to use the new property. The text position and bgEdgeWidth will adjust slightly on existing displays that use these objects. The labelWidth property on obj_label11 and obj_label11s must now be less than 75% of the objWidth. If it is larger, the label portion of the object will be drawn as 75% of the objWidth. The following new properties are available on these objects: valueHighAlarmEnabledFlag * obj_label05 only valueHighWarningEnabledFlag * obj_label05 only bgBorderFlag bgColor bgEdgeWidth bgGradientColor2 bgGradientMode bgRaisedFlag bgRoundness bgShadowFlag bgStyle valueTextAlignX valueTextPosY labelBgColor labelTextAlignX labelTextPosY labelBgGradientMode labelBgGradientColor2 The following new objects have been added to the label palette: obj_vulabel01 obj_vulabel02 These objects are meant to replace obj_label06 and obj_label14 which were deprecated. They do not replace the old labels in displays. The old labels are still available for existing displays, but are not on the palette. These objects support all of the properties listed above for obj_label05 and obj_labell11, except for valueHighAlarmEnabledFlag and vlaueHighWarningFlag. In addition, they support the vuMeterMinWidth property which allows you to specify the minimum width for the vumeter. By default, the vumeter is 1/3 of the width of the value area. If a value larger than 1/3 of the width of the value area is specified for vuMeterMinWidth, the vumeter will use that width instead. The vumeter will not be drawn larger and 2/3 the width of the value area. The valueTextAlignX property for these objects aligns the text in the space between the vumeter and the edge of the object. The following objects have been deprecated. They are still available for existing displays, but have been removed from the palette: obj_label08 obj_label06 obj_label14 obj_digital_2_med obj_digital_3_smll obj_pricebox obj_label01 obj_label02 obj_label03 obj_label04 obj_drumlabel01 obj_drumlabel02 Note that the object grid previously used obj_label01 if nothing was specified for the iconProperties string. Since that object has been deprecated, the object grid now uses obj_circ2d_ilvx_ra4 as its default object.

15191: visFlag property now respects 0.0 as dbl or string

In the Display Builder, if the visFlag property of an object is attached to a data source (e.g. a function) which supplies a double value of 0.0 or a string value of "0.0", the object remained visible. This has been corrected.

15221: General objects that support a label and a valueString added

Two new objects have been added to the general palette, obj_rect_ilvs and obj_circ2d_ilvs, that support a label and a value string. These objects behave just like obj_rect_ilv and obj_circ2d_ilv, except that they have valueString instead of value. The valueFormat and valueDivisor properties are not supported on this object as the valueString property takes a string.

15267: Add bgBorderColor to general objects, tables, graphs + composite

A new property bgBorderColor has been added to all of the objects on the Tables, Graphs, Labels and Composite tabs of the Object Palette. It has also been added to the m_basemodel background model and to the rectangular objects in the General tab of the Object Palette. The circular objects on the General tab already supported this feature with a property named bgEdgeColor which has been renamed to bgBorderColor. This property sets the color of the edge of the object. Objects in existing displays will have a dark grey (color 16) bgBorderColor.

Bar Charts

15333: New scrollbarStartAtMaxFlag property for starting knob position

The bar graph has a new property named scrollbarStartAtMaxFlag. This property can be used to control the initial position of the graph's scrollbar knob. If scrollbarStartAtMaxFlag is checked, the scrollbar knob will initially be positioned so that the bar corresponding to the last row in valueTable is visible. On a bar graph with vertical bars, this means that the knob will be in its rightmost position, while on a bar graph with horizontal bars the knob will be in its bottommost position. If scrollbarStartAtMaxFlag is unchecked (the default) the knob will be in its leftmost (topmost) position, so that the bar for the first row in valueTable is visible. Regardless of the value of the scrollbarStartAtMaxFlag property, if the scrollbar knob is dragged to the left or right (or top or bottom) edge, it will 'stick' in that position if the number of rows in valueTable changes, and accordingly show either the bar for the first or last row in valueTable.

Composite Object

15196: Button control in composite no longer needs to be pressed twice

In previous releases, if a control outside of a composite object had focus, it would take 2 mouse clicks to activate a control inside a composite. This has been fixed.

15210: Composite obj keeps properties if rtvName is a local variable.

In previous releases, if the rtvName property of a composite was attached to data, the standard composite properties would use their default values even if they had been set to other values. This has been fixed.

15224: List boxes do not execute action command

In release 5.0 and 5.1 the command for a list box contained in a composite object was not executed. This is fixed.

15241: Composite object enhanced with option to be non-opaque

The composite object has been enhanced with a new property, bgOpaqueFlag. This property allows you to set the both the background rectangle and the background model in the composite display to be opaque or transparent. When deselected, neither the composite background nor the model background will be drawn. The model background is only affected if the default background model is used. Otherwise, the bgOpaqueFlag will only affect the background rectangle. Double-buffering is disabled in the composite display when the bgOpaqueFlag is off, so some displays may flicker when updating.

Control Objects

11907: Calendar widgets added

A new date chooser control (obj_c1datechooser) has been added to the Controls tab of the Object Palette to allow users to specify dates and times and set these either in an action command or to a local variable. The date chooser is on the controls palette. You can either enter a date by typing into the text field, or you can click the calendar button to popup the calendar to select a date. Like the other controls, the date chooser is disabled in the main window of the Display Builder to enable editing. Similar to the text edit controls, the date chooser has a selectedValue field to specify the initial date value and a varToSet field to specify a local var to set. The local var gets set and the actionCommand gets executed when either a date is typed in, then the user presses enter or clicks out of the field, or if the user selects a date from the popup calendar. If a date is specified in the date field, it will be used to set the initial date (and time if specified) in the calendar. If no date is specified in the date field, the popup calendar will use the current date and time. The date chooser has a dateFormat field to specify the format to be used. If no dateFormat is specified, a locale dependant format is used. This format controls 2 things. First, it controls the format in which you must enter a date if you type it into the field. Second, it controls the format of the output to a local var or action command. You can see the dateFormat in the tooltip if you hover the mouse over the text field. The dateFormat should be specified using the format specifiers from the SimpleDateFormat class. The following format specifiers are not supported for the Display Server: G, w, W, D, F, E, k, K, S, z, Z In the java version, the text entry field validates the date string as you enter it. It is very strict about allowing only dates in the format specified. In the Display Server version, the parsing is more flexible, but not guaranteed unless the date entered is in the same format as the dateFormat. No validation is done in the text entry field in the Display Server. Backslashes (\) are not supported in dateFormats. Since the dateFormat controls both the input and the output of the date chooser, information not included in the dateFormat will be lost. For example, if the date format is MMMM dd, yyyy (ex January 01, 2000), and the timeEntryEnabledFlag is on, even if you enter a time, it will not be stored since it is not included in the dateFormat. If you specify a dateFormat including the time such as MM/dd/yyyy hh:mm, the seconds you enter will be lost and if you specified a date in the PM, it will be stored in the AM since that is the default and am/pm was not included in the dateFormat. The timeEntryEnabledFlag toggles the visibility of the Time field in the popup calendar. Times entered into this field must be in the following format: hh:mm:ss a. When the timeEntryEnabledFlag is on, an OK and Cancel button are added to the calendar, so you can select a date and enter a time before closing the popup. If the timeEntryEnabledFlag is off, the popup calendar closes when you select a date. The maximumDate and minimumDate properties control the selectable dates in the popup calendar. Dates before the minimumDate will be disabled and dates after the maximumDate will be disabled. It is recommended that you enter an initial date in the value range when using these properties so the user will not have to navigate to a valid date. The date chooser object is localized as follows: 1. The Time field, and OK and Cancel buttons are localized by SL. Currently, only English and Japanese are available. 2. In the Display Builder, Display Viewer and Display Viewer Applet, the month and day names will use the language settings on the client system. 3. In the Display Server, the month and day names can be localized by replacing the date.js file in the Display Servlet with a localized version. To do this, go to servlets\rtvdisplay in your RTView installation. Extract the appropriate date*.js file from datejs_loc.zip for your language. Rename this file to date.js in the rtvdisplay directory and rebuild the Display Servlet war file. The default date.js is a copy of date-en-US.js from the datejs_loc.zip file. The java version of the date chooser control uses JCalendar 1.3.2 which is distributed under Lesser GPL and can be downloaded from www.toedter.com/en/jcalendar. The Display Server version of the date chooser control uses the Datejs date library for parsing and formatting dates and times. The Datejs library subclasses the standard javascript Date object. If you embed a display with the date chooser control inside your javascript application, it may pickup the Datejs date class instead of the standard date class. The Datejs library is distributed under the MIT License and can be downloaded at http://www.datejs.com.

15034: Added executeOnKeystrokeFlag to text edit & text area controls

A property named executeOnKeystrokeFlag has been added to the text edit and text area controls. If checked, each keystroke that modifies the text in the control will set the control's varToSet variable and execute its actionCommand, if any, using the modified text string. This feature is supported in all deployments. In a thin client deployment, there may be a delays between the keystroke and the response, depending on the speed of the network and server.

15304: Password Control has been added to the Controls palette

A password field has been added to the Controls tab of the object palette. This object works just like a text field, except that instead of displaying the entered text, it displays asterisks (*). The properties on this object are the same as the properties on the Text Edit control.

Fx Bar Chart

15079: New barShape "3D Rectangle" added

A new bar shape has been added to the Fx Bar graph. Named 3D Rectangle and found under barShape on the Object Properties grid, this shapes depth can be set using the draw3dDepth setting under Layouts. Note that the Layouts draw3dFlag setting is ignored when using the 3D Rectangle bar shape.

15101: Fx Bar Animation added

Transition effects have now been added to the Fx Bar graph to animate the display of data as it both appears and disappears from the chart. Various settings have been added to help in the control of these animations. Where to find them: On the Object Properties grid under the "Transitions" heading on the Object Properties barEntranceDuration: The length of time in milliseconds that the transition animation takes to display incoming data. barExitDuration: The length of time in milliseconds that the transition animation takes to hide data prior to new data being displayed. barEntranceTrigger: Determines whether the animation will be displayed with each data update, or only when the chart is initially displayed. barExitTrigger: Determines whether the animation will be displayed with each data update, or only when the chart is initially displayed. barEntranceType: The type of animation in effect when data is being displayed: None, Interpolate, Zoom Series, Zoom Chart, Slide Left, Slide Right, Slide Up, Slide Down, Wipe Left, Wipe Right, Wipe Up, Wipe Down. barExitType: The type of animation in effect when data is being hidden: None, Zoom Series, Zoom Chart, Slide Left, Slide Right, Slide Up, Slide Down, Wipe Left, Wipe Right, Wipe Up, Wipe Down.

Fx Trend Chart

14890: Line style, mark color/style, and alarm properties support added

The Fx trend graph now supports the same alarm properties as supported in obj_trendgraph02. Also, the following trace properties have been added to the Fx trend graph: traceNLineStyle traceNMarkStyle traceNMarkColor markDefaultSize where N is a trace number. For each of the new properties, the property values and corresponding behavior is the same as in obj_trendgraph02, with the following additions: If an alarm mark color is set to 'Default', the marks will be drawn in the correpsonding alarm trace color. If an alarm trace color is set to 'Default', the trace color for the corresponding trace will be used.

14938: y-Axis values now at end points when yValueMin does not equal 0

Previously, if the yValueMin of the FX Trend Graph was any value other than 0, the numbers displayed on the y-axis would not begin at the lowest value (yValueMin) and end at the highest value (yValueMax). The axis range would be accurate, but the numbers printed along it were not at the end points. This has been fixed.

Pie Charts

14765: Flex Pie Chart Added

A new Fx Pie Graph object has been added. It supports much of the functionality of the standard Pie Graph and adds some additional functionality. Features Added: Transitions - various entrance and exit transition effects can be set. They are as follows: exitType offers various animation effects which alter how older data is removed from view. These include, "Zoom Series", "Zoom Chart", "Slide Left", "Slide Right", "Slide Up", "Slide Down", "Wipe Left", "Wipe Right", "Wipe Up", "Wipe Down". The default is "None". entranceType  same as above, but with the addition of the "Interpolate" effect. This property determines how new data is displayed on the chart. exitDuration - this sets the duration of the Exit animation in milliseconds. entranceType - this sets the duration of the Entrance animation in milliseconds. entranceTrigger -> (Once, On Update) Default Once - this sets whether the Entrance animation happens only on initial display or at every data update exitTrigger -> (Once, On Update) Default Once - this sets whether the Exit animation happens only when leaving the current data set being viewed (Once) or every time the current data set is updated (On Update) Any combination of the available effects can be set for each FxPie Graph. It is important to note that the duration values play a significant role in the overall effect of the transitions. The appropriate value ultimately depends upon the particular transition type(s) and the number of bars and series displayed. Take time to experiment to find the best results. Wedge Properties: The FxPie Graph adds additional wedge properties not available in the standard Pie Graph. They are: wedgeExplodeRadiusPercent - A number from 0 to 100, specifying the desired percentage of the total radius that the wedges of the pie series will appear exploded from the center. Wedge Data Labels: The FxPie Graph supports data labels that display information about each data point. Labels are different from ToolTips in that they are always visible and do not react to mouse movements. To add labels to your FxPie Graph, set the wedgeLabelPosition property on the series to a value other than none. To remove labels from your FxPie Graph, set the wedgeLabelPosition property to none. The default value is none. The other values, "callout", "inside", "insideWithCallout" and "outside" are described here: callout: Draws labels in two vertical stacks on either side of the pie. Shrinks the pie area if necessary to make room for the labels. Draws key lines from each label to the associated wedge. Shrinks labels as necessary to fit the space provided. inside: Draws labels inside the pie. Shrinks labels to ensure that they do not overlap each other. Any label that cannot fit as drawn using the wedgeLabelTextSize, is hidden from view. insideWithCallout: Draws labels inside the pie, but if labels are shrunk below a legible size, they are converted to callout labels. outside: Draws labels around the boundary of the pie. wedgeLabelTextColor - this property sets the text color for the wedgeLabels. The default is black. wedgeLabelTextFont - this property sets the font type for the wedgeLabels. The default is SansSerif wedgeLabelTextSize - this property sets the fonts size for the wedgeLabels. The default is 10. An additional feature of the FxPie Graph is that clicking on any wedge will explode that wedge. Clicking the wedge a second time will unexplode it. The above properties are specific to the Fx Pie Graph. The properties listed below are the full set of properties supported in this release. Where applicable, their behavior and default values are identical to those in the standard Pie Graph. Any exceptions, including the newer properties described above, are noted. Background: ** bg3dFlag - same as FxBar and FxTrend bgColor ** bgGradientFlag - same as FxBar and FxTrend Data: rowSeriesFlag valueTable DataFormat: labelColumnFormat valueFormat Data Label: columnDisplayNames labelColumnName rowLabelVisFlag rowNameVisFlag Historian: HistoryTableName historyTableRowNameFlag Interaction: command commandCloseWindowOnSuccess commandConfirm commandConfirmText drillDownColumnsSubs drillDownSelectMode drillDownTarget mouseOverFlag Label: label labelTextAlignX labelTextColor labelTextFont ** labelTextSize - same as FxBar and FxTrend Legend: legendBgColor ** legendBgGradientFlag - same as FxBar and FxTrend legendPercentVisFlag ** legendPosition - same as FxBar and FxTrend ** legendTextColor - same as FxBar and FxTrend ** legendTextFont - same as FxBar and FxTrend ** legendTextSize - same as FxBar and FxTrend legendValueVisFlag legendVisFlag legendWidthPercent Object: objHeight objName objWidth objX objY visFlag Transitions: *entranceDuration - NEW *entranceTrigger - NEW *entranceType - NEW *exitDuration - NEW *exitTrigger - NEW *exitType - NEW Wedge: * wedgeExplodeRadiusPercent - NEW * wedgeLabelPosition - NEW * wedgeLabelTextColor - NEW * wedgeLabelTextFont - NEW * wedgeLabelTextSize - NEW wedgeProperties

Stock Chart

15229: Double.NaN no longer problematic in overlay traces

In the stock chart object, overlay traces now handle NaN data values correctly. In prior releases, if the initial data value(s) applied to an overlay trace were NaN, the trace and its y-axis were sometimes drawn incorrectly.

Trend Charts

15269: Trendgraph no longer plots spurious data if alarm props change

If a trendgraph's alarm properties (e.g. valueHighAlarm) are attached to data, this no longer causes the trendgraph to replot old, invalid data points, as was occasionally the case in prior releases.

Oracle Coherence Monitor

15257: Provide option to show all caches from all services on one page

It is now possible in the OCM to select all Services and see the activity and capacity for all caches across all services on a single page. Simply select "All Services" wherever the Service: selector is available to see all the caches on all services.

15258: Improve Cache Service page to show more useful information

The Cache Services display has been enhanced to provide more useful information.

15259: Added ability to shorten long cache names

Long cache names can now be shortened for display in the RTView OC Monitor. By default, cache names longer than 28 chars will show only the first 14 characters followed by a ".." and the last 14 characters. This format can be controlled by a substitution variable $cacheNameFormat contained in the OPTIONS.ini file. By default it is set to 14*14. Users may change this to N*M where N represents the number of initial characters to display, and M represents the number of ending characters to display. This format substitution may also be set to override what is in the OPTIONS.ini by using the command line option: -sub:$cacheNameFormat:N*M

15260: Option to use process name as the location name

A new command line option -processnames has been added to indicate that the Process Name is to be used as the Location Name for all nodes.

15261: Boolean updating of Enabled properly supported in Alert Admin

The Alert Administration page now supports all databases without change to the rtv files. Previously there was an issue working with databases that do not support a boolean type, but this has been corrected.

15287: Excessive data no longer sent by Data Server to OCM

When the OCM is used in conjunction with the Data Server, excessive amounts of data were being transferred to the OCM and it would continually increase. This problem has been corrected.

15297: Log4J messages available from each node

A feature has been added to the Oracle Coherence Monitor to permit users to see the Log4J messages coming from the Coherence nodes. If a Coherence node is outputting log4j messages, and its "Application" name is assigned to be the same as its Location (member.machine.rack.site), then the messages will appear in a drilldown window that can be selected from the Node Summary page. Note that the LOG4JOPTIONS.ini file must be configured to make a connection to the appropriate Log4J SocketHubAppender.

Security

15181: Security enhanced to provide server side login

The following method has been added to the GmsCustomUserManager class, to allow the custom user manager to request validation from the default data server:

	public int validateLoginOnDefaultDataServer(java.lang.String userName,
	                                            java.lang.String password,
	                                            java.util.Vector<java.lang.String> rolesReturn)
Call this method to validate login credentials on the default data server.

Parameters:
userName - the name of the user to validate
password - the password to validate
Returns:
zero if valid, -1 if login fails, -2 if the default data server is undefined or unavailable.

15357: Digital Signature has been updated to be good until 12/2011

The digital signature of the jars in lib\signed_jars.zip has been updated. It now expires in December of 2011.

Substitution

15243: Drill down behavior of tables and graphs enhanced.

The drill down behavior of tables and graphs has been enhanced. Previously, if a table or graph had the drillDownSelectMode set to Anywhere, drilling down on an element would set the drill down subs, but the subs would not be cleared when drilling down on a non-element part of the table or graph. The new behavior clears the subs when the drill down occurs on a non-element part of the table or graph. Additionally, when the table has the multiSelectFlag turned on, if the user deselects all of the rows in the table, the drill down substitutions are cleared.

Viewer - Java Web Start

15219: File handling now resolves relative paths against server

In previous releases, the Java Web Start deploiyment resolved relative paths against the client system. This has been changed so that relative file paths are resolved against the JWS codebase on the server. Files with absolute paths are still resolved against the client machine. This change applies to all files read by RTView including .rtv files, include files, configuration files and images.

Version 5.1c1 Release Notes

15056: Composite object data synchronization problem fixed

In the prior release, if the "substitutions" property on a composite object was changed by a drilldown on the display containing the composite, in some situations the objects in the composite would continue to use data attachments that corresponded to the previous value of the substitutions property. This is fixed.

Alerts

15021: Crash if ; delimited list has been fixed

In previous releases, RTView would crash if a ; delimited list of threshold values was entered into any threshold beside valueHighAlert. This has been fixed.

Commands

14878: JMX command in multiple commands no longer throws exception

In the Display Builder, if multiple commands were defined for an object, and the command set included a JMX command, an IllegalComponentState exception would be printed to the console when the Define Command dialog was closed. This has been fixed.

15116: <None> data server option now works for commands

In the prior release, if a command was configured with Data Server = , the command was directed to the default data server, rather than being executed locally. This is fixed.

Customization

10558: New Custom Data Adapter API

The Custom Data Adapter API has been released for use in developing data adapters to external data sources. For more details, please refer to the Customization section of the Enterprise RTView User Guide.

12256: Customized color palette now supported in Display Builder

RTView has been enhanced to allow users to define custom colors to use in their displays. To define a custom color, go to the Custom Colors tab in the Application Options dialog. Click Add to add a new color or Delete to delete a color. To modify a color, edit the corresponding row in the table. Color index values must be a number greater than or equal to 5000. Mouseover the color in the custom color table to see the rgb value for that color. Custom colors are saved to COLORS.ini when you click Save in the Application Options dialog. This COLORS.ini file must be deployed with your RTView application. A Custom Color tab has been added to the standard RTView color chooser so that you can select a custom color in the same way you would select a standard color. Note that RTView stores color indexes for the object properties, not rgb values. Therefore, if you have an object in a display that uses a custom color and you delete that color, or change the index of that color, the object property that uses the original color index will display white. Limitations =========== 1. Some objects cache their colors and therefore do not update when a custom color definition changes. Some examples: bar graph legend, pie wedges and legend, some control object properties. For these objects, you will either have to restart RTView or reload the display to see the color change. 2. Flex object store rgb values for all colors (even if you selected a color index). This causes 2 problems: 1. If you assign a custom color to a flex object, then change the custom color definition, the flex object will not update (since it stored the rgb value of the custom color instead of the index). The only way to update it is to manually pick the new color in the builder. 2. If you have a custom color with the same rgb value as a standard color, and you apply the custom color to the flex object, if you close and re-open the color picker on the flex object, the standard color will be selected, not the custom color. This is again because the flex object stores the rgb value. The color chooser for the flex objects uses the rgb value to look up the index, so it will find the one in the standard color list first. 3. The custom color table is static. Therefore, multiple applets running in the same VM must share a single custom color table.

Data Historian

10387: Record Retention options now apply to user defined tables

The Record Retention options now apply to user-specified history tables, named using the historyTableName property. These history tables can now be purged on startup of the historian, and can be limited to the specified retention time period. If a user has created the timestamp column(s) manually, they must follow the same naming convention as the history tables created automatically, i.e. they must be named TIME_STAMP and/or TIME_STAMP_LS depending on the Timestamp Type.

10455: Auto-creation of user-defined history tables and columns

The RTView Historian will now automatically create the necessary history tables in the database if they have not been created by the user. An SQL data type appropriate for the specified database is selected for each of the RTView data types. Using the -verbose option, the specific "create table" SQL command used to create the table can be viewed.

13814: Retention options no longer ignored when Data Caching is enabled

Retention options are no longer ignored when Data Caching is enabled.

13827: Database name can now be set for for ODBC connections

The Database name for the Historian can now be set in the GUI interface to the Historian. If the name is changed and the configuration saved, the name will be remembered when the Historian is restarted. The command line argument -dbname:NAME can also be used to set the name of the database. NOTE: This name is only used for ODBC references.

14393: Improved DATE column type support

The RTView Historian now properly handles columns of type DATE, writing the data to the database using a format that is appropriate for the specific database being used. A DATE column is created in the database in an appropriate type, and the date itself is inserted using the format appropriate for each database.

15029: Historian will now attempt to reconnect to database

The Historian will now attempt to reconnect to the database if the connection is broken.

15030: Numeric data no longer incorrectly inserted due to quotes

Previously, the insert statement used by the RTView Historian to put table rows into the database would generate an error for some databases, due to incorrect use of apostrophe around numeric data types. This problem has been corrected. The insert statement should be correct for all RTView data types across all supported SQL databases.

15031: Historian support added for KDB time series database

The KDB time series database is now supported in the historian. Use the -kdbformat command line argument to output insert statements in the KDB format. Automatic creation of tables is NOT supported, nor is purging on startup. The tables must be created ahead of time and purged by the user.

15046: Option to store Historian-supplied timestamp as true date type

In previous versions, the historian would write two timestamp columns with each record, stored as strings: TIMESTAMP and TIMESTAMP_LS. Now, the -timestamp: command line option is provided to offer more control over how the timestamp is written to the database. The options are: -timestamp:none - do not store timestamp -timestamp:sql - add single SQL timestamp -timestamp:str - add 2 string form, for compatibility When the -timestamp:sql form is used, only a single TIME_STAMP column is written using a standard SQL TIMESTAMP data type. The Timestamp Type can also be configured in the Historian GUI interface and saved in the HISTORY.ini configuration file so it is not needed on the command line.

15051: Improved BOOLEAN column support

The RTView Historian now properly handles the BOOLEAN data type properly across all supported databases.

15052: New option to rebuild history tables on startup

The -rebuildtables option is now available to force all of the historian-specified tables to rebuild, even if they already exist in the database. The HISTORY and HISTORY_S tables are rebuilt on startup of the historian. User-specified history tables are rebuilt on- demand when data rows are first received for each table. Limitation: The -rebuildtables option does not support the historyTableRowNameFlag. If you have enabled this property in your configuration file, you will need to create the table manually.

15057: New option to include column names in the insert statement

The -insertcolumnnames command line option is now available to force the Historian to include column names in the database insert statements for user-specified history tables. This is useful when the Historian is adding data to existing tables and the column order is not an exact match or the insert statement contains a subset of the existing table columns. Note: this option does not apply to the HISTORY and HISTORY_S tables, only to user-specified tables.

15067: Historian retention mechanism refined

Previously, the Historian would check for records that exceeded the retention period at the half-way point of the retention period, ie. every 12 hours if the retention period was 24 hours. The maximum duration between checks has been set to be 60 minutes. Additionally, a new command line argument has been added to indicate how frequently you would like the Historian to check for old records that need to be removed. -retentionMax:nn where nn is in minutes.

15117: Better handling of spaces in column names

If the name of a column in a table being saved to the database contains a space, the column name is now wrapped in quotes.

Data Server

14338: High Availability added to Display Server and Data Server

1. Background To increase server availability in deployments using the Data Server or Display Server, RTView client applications can now specify a primary and a backup server. If the primary server is unavailable, the client will failover to the backup server. In the Display Builder and Display Viewer, a primary and a backup server can be specified for the default Data Server and also for each named Data Server. The primary server and backup server are each specified as a connection string, using either a hostname and port, or a URL that corresponds to an instance of the rtvdata servlet. These are specified in the Data Server tab of the Options dialog in the Builder, or on the command line when launching the Builder or Viewer. In the rtvdata and rtvdisplay servlets, the primary and backup servers are specified in the servlet's properties file. At startup, the client will connect to the primary server if available, otherwise it will connect to the backup server. If neither is available, the client will periodically retry connecting to both. If the client connects to either the primary or the backup, and later the connection is lost, it will then try to connect to the other server. If a client connects to a backup server and later the primary server becomes available, the client will not switch to the primary unless the connection to the backup server is lost. When a set of Data Servers are used as a primary and backup(s), all the servers should use the same RTView configuration files (*OPTIONS.ini) and should have access to the same external data sources, so that displays in the client will appear the same regardless of which server is connected. 2. Display Builder and Display Viewer usage: For example, if the primary default Data Server is run on a host named Kiwi and the backup is run on a host named Dodo, both using the default Data Server port (3278), then on the Data Server tab of the Options dialog, the following would be specified: Data Server Mode: Read Data from Server Primary Server: Kiwi:3278 Backup Server: Dodo:3278 Or, if the client is using the rtvdata servlet to connect to the Data Server via http, the following URLs might be specified: Primary Server: http://Kiwi:8080/rtvdata Backup Server: http://Dodo:8080/rtvdata Each URL corresponds to an instance of the rtvdata servlet, which is in turn configured to connect to an instance of the Data Server. The primary & backup servers can also be specified on the command line. For the default dataserver, the syntax is: -dataserver:remote:<primary>,<backup1>,<backup2>... For example: run_builder -dataserver:remote:XBC:3278,Dodo:3278 or run_builder -dataserver:remote:http://Kiwi:8080/rtvdata,http://Dodo:8080/rtvdata_backup For a Named Data Server, the syntax is: -dataserver:name=<name>;connect=<primary>,<backup1>,<backup2>... For example: run_builder -dataserver:name=Baltimore;connect=http://balt1/rtvdata,http://balt2/rtvdata 3. Servlet usage: The rtvdata servlet can be configured to have a primary and a backup Data Server, by editing its servlet.properties file, then rebuilding and redeploying the servlet. For example, these entries correspond to the primary and backup servers in the previous example: # primary data server host & port ServiceHost=Kiwi ServicePort=3278 # backup data server host & port ServiceBackup=Dodo:3278 Above, note that the primary server and port are specified in 2 separate properties, as in prior releases, while the backup server is specified by a single property. If necessary, multiple backup servers can be specified, separated by commaers, for example: ServiceBackup=Dodo:3278,Stork:3553 The rtvdisplay servlet, used in a Display Server deployment, also allows a primary and a backup server to be specified by editing the rtvdisplay.properties file, then rebuilding and redeploying the servlet. For example: # primary display server host & port DisplayServerHost=Kiwi DisplayServerPort=3279 # backup display server & port DisplayServerBackup=Dodo:5678 4. Standby mode: To avoid the overhead of maintaining the alert and cache data sources in a backup server, the server can be started in "warm standby mode" by specifying the -standby:warm option on the command line. In this case, the server delats the following actions until the first client connects: 1) loading global definition files. 2) loading alert definition files. 3) loading cache definition files. 4) preloading display files specified on command line or ini file. Note that, although this reduces overhead, the alert and cache data sources will not start collecting data until the first client connects, so they may be "empty" at that time. Limitation: The primary and backup servers do not synchronize their internal states as they run. So even if the servers use the same configuration files at startup, after a failover occurs a client display may change because of differences between the cache data source and alert data source states in the servers, such as: - alerts that were acknowledged on one server would still be unacknowledged on the other - if alert definition files were loaded or unloaded on one server but not others, the alert configuration would differ - backup server was started in standby mode, so tables in cache and alert data source are empty when first client connects

15126: Get Data Server Connection Status function added

A function named Get Data Server Connection Status has been added. This function returns a table with status information about the connections from the Display Builder/Viewer to the default Data Server and any Named Data Servers. The table contains one row for each connection, with the following columns: Name. Contains either "__default" for the default Data Server, or the name of a Named Data Server. Connected. Contains a boolean value: true if the server connection is operational, otherwise false. Status. Contains one of the following strings: 'OK' if connection is operational, 'no connection' if there is no connection to the server, or 'no service' if there is an http connection to the rtvdata servlet but the servlet has no connection to its Data Server. ConnectionString. Contains either the URL for an http connection to the rtvdata servlet, or a hostname:port for a direct socket connection to a Data Server. ReceiveCount. The number of data transmissions (pushes) received from the server. ReceiveTime. The time of the most recent data transmission from the server.

Data Sources

Cache Data Source

14913: Cache no longer empty on startup for asynchronous data

In previous versions, objects attached to cache data could be empty on start up if the cache was listening to an update-once data attachment that had not yet returned data. This has been fixed.

SQL Data Source

15028: SQL Data Attach Dialog now retains size and position

The SQL attach data dialog now remembers its size throughout a Display Builder session if resized.

15064: Added option to interpret SMALLINT type as BOOLEAN

The -smallintbooleans option has been added to the SQL Data Adapter. This option forces RTView to interpret the SQL SMALLINT data type as a BOOLEAN, so that RTView tables displaying the data show a checkbox for columns of this type.

15081: Improved logic for detection of lost connection

The logic for detection of lost connections in SQL Ds has been improved.

StreamBase Data Source

14945: Support added for high availability Streambase configurations

The Enterprise RTView Data Adapter for StreamBase has been enhanced to support High-Availability StreamBase applications as follows: (1) Support for URI lists When defining a StreamBase connection in the Application Options dialog you may now specify a list of StreamBase URIs. This allows your RTView application to connect to a StreamBase application running on multiple servers.The URIs should be entered in the text area one per line. (2) Support for custom Dequeue Result Interceptors A Dequeue Result Interceptor is a Java class whose processResult() method is called by the StreamBase application in the course of dequeuing each tuple. In this method you may make decisions about the dequeue process based for example on the status of the servers used by your application. For example, in an application where two servers are both dequeueing tuples but only one is designated the "leader", you may choose to suppress the tuples from the "non-leader" server. You specify a Dequeue Result Interceptor for a given connection by supplying the name of a Java class which will be instantiated by the StreamBase Data Adapter. The class must be found on the RTV_USERPATH. For more information on StreamBase High-Availability features, see http://streambase.com/developers/docs/latest/admin/highavail.html.

TIBCO Hawk Data Source

14947: BusinessWorks Displays in the Hawk Monitor

The hawkmonitor demo has been enhanced to include displays that allow you to monitor your TIBCO BusinessWorks applications.

TIBCO Rendezvous Data Source

15124: Statistics data now output as type Long

The data type for all metric columns stored in tables generated from rvtrace are now LONG instead of INTEGER

XML Data Source

15140: <none> removed from Data Server options for xml attachments

The xml data adapter does not support the DataServer=<none> option, since it is overridden by the xmlredirect option. Until this problem is resolved, the <none> item has been removed from the Data Server dropdown list in the XML Attach-to-Data dialog.

Display Server

15060: Display Server status information now available

The thin client now supports a status window that shows the name of the current RTView display, the time that the display was last refreshed, the URL and connection status for the rtvdisplay servlet, and the hostname and port used by the servlet to connect to the Display Server. This status window is opened by selecting a new item labeled 'Status' on the thin client's popup (context) menu. Also, error handling has been improved in the thin client. In prior releases, an error message was shown in the display page if the servlet could not connect to the Display Server, but no error message appeared if the client could not connect to the web server, the app server, or the rtvdisplay servlet. As of this release, an appropriate error message will be displayed for each of those conditions too.

15143: Horizontal grid lines fixed for Firefox 3.0

In Firefox 3.0, the thin client did not draw horizontal grid lines in the table object. This is fixed.

15144: Sliders and scrollbars fixed for Firefox 3.0

In Firefox 3.0, the scale (slider) control and scrollbars on graph objects did not work in the thin client. These problems are fixed.

15145: Table cell contents no longer overflow in Firefox 3.0

In Firefox 3.0, the thin client did not clip text properly in a table cell, allowing the text to spill over into the adjacent column. This is fixed.

15193: web.xml updated for single-signon for Tomcat compatability

The file servlets/rtvdisplayweb.xml.auth_example has been updated for compatibility with Tomcat 5.5.15 or newer. This file is an example of how web.xml should be modified to support servlet authentication. The previous version of the file used * as a wildcard in the <role-name> element but that is no longer supported by Tomcat.

Functions

14688: Replace Value enhanced to return a user-specified default value

The Replace Value function has been enhanced to accept an additional argument, the Default Value. If there is no match found in the Replacement Values, the Default Value will be returned, unless the Return Value If No Match is set to 1, in which case the original Value will be returned.

14766: New Expression Evaluator Functions

The following functions have been added to Enterprise RTView. Evaluate Expression As Double Evaluate Expression As String Evaluate Expression By Row The Evaluate Expression As Double function substitutes the given arguments into the given expression and evaluates it, returning the result as a double. The Evaluate Expression As String function substitutes the given arguments into the given expression and evaluates it, returning the result as a string. (Note that Boolean true or false values will be returned as 1.0 and 0.0 respectively.) The expression is written using variables, whose names must be specified in the expression py prefixing them with "%", and may use standard arithmetic and logical operators as well as a variety of mathematical and string functions. It may also include numeric and string constants (string constants must be enclosed in double-quotes (")). An example of such an expression is "%var1 + %var2". When the expression is modified and the text field activated (by pressing Enter in the field or navigating to another field) the dialog will display a text field for each variable into which values may be entered. Values whose form is numeric are substituted into the expression as numbers; otherwise they are substituted into the expression as strings. If a value whose form is numeric needs to be treated as a string, perhaps to serve as an argument to a string function, surround the variable in the expression with double- quotes, and its value will always be used as a string. An example of such an expression is "length("%var1") + %var2". The Evaluate Expression By Row function evaluates the given expression for all rows of the given table, using values from the columns specified, and returns the results in a new table column. The expression is written using variables, whose names must be specified in the expression py prefixing them with "%", and may use standard arithmetic and logical operators as well as a variety of mathematical and string functions. It may also include numeric and string constants (string constants must be enclosed in double quotes ("). An example of such an expression is "%col1 + %col2". When the expression is modified and the text field activated (by pressing Enter in the field or navigating to another field) the dialog will display a text field for each variable. Entries are taken as names of columns in the given table from which values will be substituted for the corresponding variables in the expression. The types of the values are taken from the types of the columns. Numeric and Boolean values are converted to double. Date columns are not supported. If a value whose column is numeric needs to be treated as a string, perhaps to serve as an argument to a string function, surround the variable in the expression with double- quotes, and its value will always be used as a string. An example of such an expression is "length("%col1") + %col2". The Result Column Name argument specifies a column that will be added to the table. The Result Column Type argument specifies the type of that column, and may be either "double" ("d") or "string" ("s").

14906: Rename Column Function added

A new function Rename Columns has been added that allows the user to rename the columns in a table. The user can rename a single column or a list of columns.

15087: Edit Function Dialog now remembers size and position

In the Display Builder, the Edit Function dialog now remembers its size and position after the first time it is opened in a given invocation of the Display Builder. The first time it is opened it will have a default size and position as previously.

General

15137: NPE in stockchart when cursorFlag on and trace visFlag off fixed

In prior releases, an exception was thrown by the stock chart if the cursorFlag was on, the visFlag for the priceTrace was off, and the mouse was moved over the chart. This is fixed.

GmsTabularData

15120: Row filter with greater than 256 entries supported

In previous releases an array bounds exception was thrown if a data attachment had a row filter with more than 256 entries. This is fixed.

Local Variables

14658: Selection behavior in Variables dialog improved

In previous versions, it was difficult to select the previously edited item in the Variables dialog. This problem has been fixed.

14665: User can no longer deselect Use as Sub inadvertently

In previous releases, the Use As Substitution checkbox in the Variables dialog would not work correctly if that was the first field selected after a new variable name was entered. This has been fixed.

Localization

15085: Double Text Entry field supports locale-specific separators

The Double Text Entry field now displays and supports entry of locale specific decimal separators in the Display Viewer. The Display Server supports the display of locale specific decimal separators, but not the entry of them.

Object Library

14773: Generic Flex object supported

A "Custom Fx Object" has been added to the Fx Graphs palette in the Display Builder. This allows the user to specify the name of a Flash SWF file to be displayed by the object. The SWF can be a compiled Flex application. The Flex application can be coded to expose properties to RTView, using the Flex library package named com.sl.gmsext, which is now included with RTView. These properties will appear in the Display Builder's property sheet, and can be assigned constant values or attached to data sources. See the example for more information.

15005: Some objects enhanced to support rounded corners and shadows

The objects on the General, Graphs, Tables and Composite tabs of the palette have been enhanced to support rounded corners and shadows (the circles on the General tab were only enhanced to support shadows). The bg3dFlag property has been renamed on these objects to bgStyle. The bgStyle property supports 3 options: 1. Rectangle - Use a flat rectangle for the background. This is the same as the old behavior when the bg3dFlag was off. 2. Rectangle - Use a 3D rectangle for the background. This is the same as the old behavior when the bg3DFlag was on. If this option is selected, use the bgEdgeWidth to set the 3D depth. 3. Round Rectangle - Use a flat rounded rectangle for the background. When this option is selected, use the new bgRoundness property to set the arcLength of the rounded corners. NOTE: If the bgRoundness property is set to a value greater than half of the objWidth or objHeight property, half of the smaller value of objWidth and objHeight will be used instead. For example, if the objWidth is 100 and the objHeight is 50, if you enter a value greater than 25 for the bgRoundness, 25 will be used instead (half the value of objHeight).

15007: Some objects enhanced to support tab and title labels

All of the objects on the Graphs, Tables and Composite tabs of the palette and the rectangular objects on the General tab have been enhanced to support tab and title labels. The objects on the General tab already supported a labelTextPosY property, so 2 new options, Tab Top and Title Top have been added to the list of options for this property: 1. Title Top - The label is positioned on the top line of the background rectangle. 2. Tab Top - The label is drawn in a tab above the top of the background rectangle. The height of the tab is dependent on the height of the text. The width of the tab is dependent on the length of the text, but a minimum width can be specified in the the new labelMinTabWidth property. On General objects, the labelTextPosX Outside Right and Outside Left options are not supported if the labelTextPosY is Title Top or Tab Top. The objects on the Tables, Graphs and Composite tabs did not previously support a Y position for the labels. A new property named labelTextAlignY has been added to these objects with the following properties in addition to the Title Top and Tab Top described above: 1. Outside Top - the label is positioned well above the background rectangle. 2. Top - The label is positioned just above the background rectangle. 3. Inside Top - The label is positioned inside the top of the background rectangle. This is consistent with the previous position of the label. The Tables, Graphs and Composite objects were also enhanced with a bgBorderFlag property. If selected, a border is drawn around the background rectangle, otherwise the border is not drawn.

15069: Gradient fill supports direction

The objects on the General, Graphs, Tables and Composite tabs of the palette as well as the display background have been enhanced to support gradient direction. The gradient direction has been applied to the background (bgGradientMode) of these objects. For the object grid, the gradient direction has also been applied to the grid background (fgGradientMode). On the graph objects, the gradient direction has also been applied to the legend background (legendBgGradientMode) and the plot area background (grid/plot/traceBgGradientMode). The following properties on these objects have been renamed to support the gradient directions: bgGradientFlag -> bgGradientMode fgGradientFlag -> fgGradientMode legendBgGradientFlag -> legendBgGradientMode plotBgGradientFlag -> plotBgGradientMode traceBgGradientFlag -> traceBgGradientMode gridBgGradientFlag -> gridBgGradientMode The *GradientMode properties supports the following options: 1. None - no gradient. 2. Diagonal Edge - The gradient is drawn at a 45 degree angle from the top left to the bottom right corner of the object. This is the same as the gradient previously used if the bgGradientFlag was selected. 3. Diagonal Center - The gradient is drawn at a 45 degree angle from the center to the top left and the bottom right corners of the object. 4. Horizontal Edge - The gradient is drawn horizontally from the top to the bottom of the object. 5. Horizontal Top - The gradient is drawn horizontally from the center to the top and bottom of the object. 6. Vertical Edge - The gradient is drawn vertically from the left to the right of the object. 7. Vertical Center - The gradient is drawn vertically from the center to the left and right of the object. Additionally, the objects on the Graphs, Tables and Composite tabs of the palette have been enhanced to support the bgRaisedFlag. This property reverses the direction of the gradient and of the 3D edge if bgStyle is 3D Rectangle.

15070: Gradient fill supports second color

The objects on the General, Graphs, Tables and Composite tabs of the palette as well as the display background have been enhanced to support a second gradient color. Previously, the gradient would use the bgColor and white. The new bgGradientColor2 property allows you to set a color other than white for the 2nd color in the gradient applied to the object background. The object grid also support fgGradientColor2 which applies the 2nd gradient color to the grid area. The graph objects also support legendBgGradientColor2 which applies the 2nd gradient color to the legend background and grid/plot/traceBgGradientColor2 which applies the 2nd gradient color to the plot area.

15074: Some initial object defaults changed

The initial values of colors and fonts have been modified for some objects to make them more consistent with the other objects.

Control Objects

11620: Commands can now contain string '$value'

A control object can now use '$value' in its command string. In prior releases, it was necessary to surround the string with backslashes, i.e. /'$value/'

12255: Multi-line support added to Button and Radio control objects

The buttons and radio button groups have been enhanced to support multi- line labels. Use \n to specify a new line in your label.

14899: Delay removed for setting valueToSetProperty on button control

If a button control's valueToSetProperty is attached to data, it will now be updated immediately when data is applied to the attachment. In prior releases, the property was not updated until the next repaint of the display.

15075: Alignment property added for text input controls

The text entry controls have been enhanced to support a new valueTextAlignX property. Select Left, Center or Right to set the text alignment of the field. This alignment is only applied if the length of the text is less than the length of the text entry field.

15107: Thin client support for multi-line in radio and push buttons

The thin client now supports multiline labels in push buttons and radio buttons. Limitation: In a radio button group, the labels are left aligned horizontally, and top aligned vertically. This differs from the Viewer/Builder where the labels are center aligned in both directions.

15108: Thin client support for valueTextAlignX property on edit ctrls

The valueTextAlignX property on edit controls is supported in the thin client. Limitation: Runtime changes to valueTextAlignX are ignored by the thin client.

Object Grid

15039: Boolean table var passed to icon property shows incorrect value

The Object Grid previously passed the value of a boolean column incorrectly to the property on the icon in the grid. This problem has been corrected.

Stock Chart

15136: New option to show all data from all traces on stockchart

The stock chart designates the first trace with data as the primary trace. Typically, this is the priceTrace. In all prior releases, if the timeRangeBegin/End properties had values <= 0, then the chart would only plot data whose timestamps are >= the oldest timestamp or <= the newest timestamp from the primary trace's data. That is, data points for all other traces outside of the time range of the primary trace's data were discarded, by design. But in some applications, the data for all traces should be plotted, even if it is outside of the primary trace's time range. The following behavior has been added in this release: If timeRangeBegin = -1, don't discard datapoints from traces whose timestamps are older than the oldest timestamp of the primary trace. If timeRangeEnd = -1, don't discard datapoints from traces whose timestamps are newer than the newest timestamp of the primary trace. The old behavior is maintained as follows: If timeRangeBegin = 0 or blank (the default) discard datapoints from traces whose timestamps are older than the oldest timestamp of the primary trace. If timeRangeEnd = 0 or blank (the default) discard datapoints from traces whose timestamps are newer than the newest timestamp of the primary trace. Limitation: Regardless of the timeRangeBegin/End settings, if the cursorFlag property is checked, the time shown in the chart legend for the vertical cursor's position will correspond to the nearest data point of the first visible trace on the chart, even though a data point from another trace may be nearer to the cursor.

Tables

15020: filterProperties crashes for date column comparison

Previously, attempting to use a column with a date type as the value for a condition in a filter (via the filterProperties object property) could cause a class cast exception. This has been fixed.

Trend Charts

15037: Trace range corrected for invisible first trace w/ autoscale

In prior releases, if a trendgraph had the following qualities: - yAxisAutoScaleMode ON - yAxisMultiRangeMode OFF - trace1 had no data points or if trace1VisFlag OFF and yAxisAutoScaleVisTracesOnlyFlag ON then the y axis range would be 0 to 100 irregardless of the values. This has been fixed.

Oracle Coherence Monitor

15061: Displays and Historian updated to use new SQL timestamp mode

The default OCM displays and configuration files have been enhanced to take advantage of the new Historian timestamp mode that stores timestamps as SQL TIMESTAMPs, rather than as VARCHAR. This permits the creation of database scripts to manipulate or purge the historical data using the TIME_STAMP column.

15062: HISTORY.ini and ts_alertdefs.rtv in ocmdemo for customization

The demos/ocmdemo directory now contains a default Historian configuration file (HISTORY.ini). It is configured to use the built-in HSQLDB database. This directory also contains a default Alerts configuration display (ts_alertdefs.rtv). The default action on any alert is to issue a beep. This can be changed by editing the ts_alertdefs file using the RTView Builder.

15063: Sample RTV_JAVAOPTS and RTV_USERPATH added to myocm_setup

The myocm_setup scripts now contain commented-out sample settings of RTV_USERPATH and RTV_JAVAOPTS for users to modify as needed.

Viewer

15071: Included file now found in jar if display loaded via File->Open

In prior releases, the Display Builder/Viewer could load an included file from a jar file only if the display that included the file was also contained in the jar file or was specified on the command-line. If the display was loaded using the File/Open dialog, the included file could not be loaded from a jar. This is fixed.

Viewer - Java Web Start

15084: Include files now always found in Web Start deployments

In previous versions, include files were sometimes not found in Java Web Start deployments. This has been fixed.

Version 5.0c1 Release Notes

Alerts

14790: Error message for adding alert twice should include alert name

The error message for adding the same alert definition file twice has been enhanced to include the file name. The error messages for duplicate alerts and alerts with no names have been localized.

14792: Per-row enabling mechanism added added to tabular alert

The limits and discrete alerts now support a new property, rowEnabledTable, in the interaction category. This property controls the enabled state per row in the valueTable, so you can enable/ disable each index in a tabular alert. If enabledFlag on the object is disabled, each row index is disabled regardless of the rowEnabledTable vlaue. The Alert Variables Table shows the enabled state of each alert object (ie the enabledFlag), but the table variable created for each tabular alert will show the row enabled flag (unless the enabledFlag is disabled, then all rows will show disabled). The alert state for disabled indexes is -1. The rowEnabledTable property is only applied if the useTabularFlag is on. NOTE: The enabled state of each row is re-evaluated against the latest rowEnabledTable values if either the enabledFlag or the rowEnabledTable changes. This property can be set to one of the following: 1. scalar value All rows (indexes) in the table will be enabled if "true" or disabled if "false". 2. tabular value This table can either contain one or two columns: If the table has one column: The column must contain boolean values. It should have the same number of rows as the alert valueTable. If so, the enabled state of each row in the alert valueTable is set to the value in the same row of the rowEnabledTable. If the valueTable is longer, the extra rows are set to the first row of the rowEnabledTable. If the table has 2 columns: The first column must contain indexes and the second column must contain boolean values. The index value for each row in the valueTable is used to lookup the corresponding enabled value from the rowEnabledTable. If the index is not found in the rowEnabledTable table, false is used. 3. ; delimited list of values This is a ; delimited list of either index/enabled value pairs, or just enabled values. If the ; delimited list only contains boolean values (true;false;true): This should be a ; delimited list of boolean values with the same number of values as rows in the alert value table. The enabled state for row in the valueTable will be set to the value in the corresponding position in this list. If the valueTable has more rows than values in the list, the first value in the list will be used. If the ; delimited list contains both index and enabled values (Chicago,true;Dallas:false;Detroit:true): This should be a ; delimited list of comma (,) separated index/enabled pairs. The index value for each row in the valueTable is used to lookup the corresponding enabled value from the rowEnabledTable list of values. If the index is not found in the enabled list, the enabled state is set to false.

14830: New column in alert table to show enabled status of alerts

The Alerts have been enhanced to show their enabled state. The enabledFlag for an alert can be set 3 ways: 1. in the property sheet for the alert, you can either select or deselect the enabledFlag property 2. in the property sheet for the alert, you can attach the enabledFlag property to data 3. you can use the Enable Alert Definition command It is recommended that you do not use both option 2 and option 3 for the same alert. The Alert Variables Table now contains an Enabled column which shows the enabled status for each alert. The Alert State for each alert will show as -1 if the alert is disabled. For tabular alerts, if the alert is disabled, the Alert State for each index is -1. If there is an active alert when the alert is disabled, it will be cleared. This is a change from the previous behavior.

14861: Null pointer exception no longer thrown for alerts without names

In previous releases, if an alert did not have a name, it would sometimes crash. This has been fixed.

14866: Crash at startup if "Rate to Remove Cleared Alerts" > 0 fixed

In previous versions, if the "Rate to Remove Cleared Alerts" option on the Alerts option tab is set to a nonzero value, and any global files are defined with listeners to async data, the Enterprise RTView could crash. This has been fixed.

Builder - Options Dialogs

14895: Options Dialog size reduction

In release 4.9, the Options Dalog was taller than necessary, causing some of the tabs in the dialog to look stretched. This has been corrected.

Commands

14659: New mechanism to execute commands on open/close of display

Two new properties, onOpenCommand and onCloseCommand, were added to Model Properties. These properties allow you to specify a command to be executed when the display is opened/loaded (onOpenCommand ) and a command to be executed when the display is closed/replaced (onCloseCommand). Additionally, the Model Properties for a display can now be accessed more directly via Edit->Model Properties. The old method of File- >Background Properties ...-> Model Properties is still viable. The commands are edited using the same mechanism as existing commands, so they can be cut/copied/pasted from and to other commands. The onOpen/onCloseCommands can be single or multiple commands, system, data source, or custom commands. The restrictions that apply to interaction commands (based on deployment) also apply to onOpen and onClose commands. NOTE: A run time check is applied to prevent recursive execution of drill down commands - an error message will be displayed in the console at the point the recursion would have occurred. LIMITATIONS: System Drill down commands are not supported in onOpen/ onClose commands on the display sever as they would open new windows on the display server, rather than the client

Data Historian

14855: Historian mbean crash fixed

In release 4.9, the Historian would throw an OpenDataException if the DataConfigurationFileInfo attribute of the Manager MBean was queried. This is fixed.

Data Server

12067: New option to only send changed rows for custom data source

For a custom data source, the data server can be configured to send only the rows in a table which have been modified, inserted, or deleted since the last client update. This can significantly reduce the amount of data transmitted to clients, for a custom data source that typically makes relatively small changes to large tables. To enable this feature, the custom data source must identify one or more columns which uniquely identify each row in a table, by calling the addIndexColumn() method on a GmsTabularData instance. Notes: - If more than half of the table's rows are changed, the data server will send the entire table to all the listening clients on the next data push. - If a client removes all of the listeners for a table T1, the server will stop recording T1's row changes for that client. The next time that client C1 adds a listener for T1, the data server will send the entire table to the client. So this improvement will mostly boost the performance of periodic updates to displays containing large tables. - The data server will only track row changes. If a column is added or removed, the data server will send the entire table.

14671: Multiple data server connections supported

An RTView application can now be configured to connect to multiple RTView Data Servers. This can be useful in deployments where a single server cannot access all required data sources. DISPLAY BUILDER SUPPORT: Two features have been added to the Display Builder to support multiple Data Servers: 1. The Data Server tab of the Options dialog allows configuration of "Named Data Servers". As in all prior releases, the Data Server tab of the Options dialog allows the user to define the default Data Server connection, which can either be a file, a direct socket connection, or an http or https connection via the rtvdata servlet. In this release the Data Server tab also contains a button labeled "Named Data Servers". This button opens the Named Data Server dialog, used to configure connections to additional data servers. For each, a name must be assigned. This name is used in attachments and commands which should be directed to that server. A hostname and port, or the URL of an rtvdata servlet instance, must also be configured to specify the connection for the named server. The configuration of the default data server and all named data servers is saved to the OPTIONS.ini file. 2. The data attachment and data source command dialogs allow selection of a data server name. The dialogs for configuring data attachments and data source commands contain a combo box labeled "Data Server". This combo box allows the user to select a data server name configured in (1), or selection of the predefined entries <default> or <none>, or the manual entry of substitution string. Note that attachments to variables and functions are always handled locally, they cannot be directed to a data server. RUNTIME SUPPORT: At startup, an application will connect to the default data server (if specified) and each named data server (if any) specified as in (1) above. Then, for each attachment and data source command: a) if a data server named was selected when the attachment/ command was configured, it will be directed to that server; b) otherwise, if <default> was selected and a default data server was specified, the attachment/command will be directed to the default data server; c) otherwise, (either <none> was selected or no default data server was specified) the attachment/command will be processed locally. A substitution string can be assigned as the data server name for an attachment or command. When the attachment/ command is processed, the replacement string will be used and if it corresponds to a named data server as configured in (1) above, then the attachment/command will be directed to that server. If the replacement string is an empty string, the default data server (if any) will be used. Named data servers can also be specified by a command-line argument, using this syntax: -dataserver:name=<ServerName>;connect=<ConnectString> where <ServerName> is the name of the data server, to be used in attachments and commands, and ConnectString is either (a) the server's hostname and port number, separated by a colon, for a socket connection or (b) the URL of an instance of the rtvdata servlet. For example: -dataserver:name=MyLocalServer;connect=localhost:56789 -dataserver:name=London;connect=https://londonServer:8080/rtvdata If the name or connection string contains a space, the command-line argument may need to be enclosed in double quotes, for example: "-dataserver:name=Blue Server;connect=bubba:7777" DISPLAY VIEWER APPLET ISSUES: The Display Viewer applet can use the multiple data server feature but, as with any connection from an applet, a security exception will be thrown if the applet attempts to connect to any host other than the webserver host from which it was loaded. So, to use the multiple data server feature from the viewer applet, it will probably be necessary to deploy multiple instances of the rtvdata servlet on the applet's webserver host. For example, if the Viewer applet is hosted on http://bubba:8080 and needs to connect to two data servers named Blue and Red, then instances of the rtvdata servlet could be deployed at http://bubba:8080/rtvdata_blue and http://bubba:8080/ rtvdata_red, and the properties of servlet instance could be configured to connect to the corresponding data server. See the full documentation for details on configuring and deploying the rtvdata servlet. OTHER OPTIONS: The -dsenable argument: As described earlier, when choosing a data server name in an attachment or command dialog, the <none> entry may be selected to indicate that the attachment/command should be processed locally (that is, not be directed to a data server) even if a default data server has been specified. This can be useful in deployments where most attachments should be directed to the default data server but a few should not. However, when a default data server is specified, all data sources are disabled (except the XML, function, and variable data sources). So, the -dsenable command-line argument must be used to enable the data source used by any attachment/command for which a data server of <none> was selected. The format of this argument is: -dsenable:<dskey> where <dskey> is the key string for the data source: (sql, rv, hawk, etc). A -dsenable option can be specified for each data source required. For an applet deployment, use the dsenable paremeter, for example the following will enable the cache data source in the applet: <param NAME="dsenable" VALUE="cache"> Currently the -dsenable option is only available as a command- line argument or an applet parameter. It cannot be configured from the Options dialog nor is it read from or written to the OPTIONS.ini file. The vieweronly option: The Data Server options tab and the new Named Data Servers dialog both have a checkbox labeled "Viewer Only". When this box is checked, the Builder ignores all data server connections and all attachments and commands are processed locally. Note that the configuration of data server options and assignments can still be configured and saved, they just have no affect until the display is opened in the Viewer. CUSTOM DATA SOURCES: The writer of a custom data source may decide not to expose the multiple data server feature to users, by hiding the data server combo in the custom attach-to-data and command dialogs. This can be done by adding the following line of code to the dialog's constructor: super.hideDataServerCombo = true;

Data Sources

Cache Data Source

14838: Caches now listed in data attach list even if data not available

In the Display Builder, if you had one or more Cache objects defined in a Cache Definition File and you tried to attach an object property to a Cache, in the Attach To Cache Data dialog you would only see the name of a cache if its own data attachment was actually receiving data. This behavior has been changed so that you will see the cache names and table names of all defined caches whether nor not they are receiving data.

14845: Cache now stores un-indexed tables with 0 rows

The cache data source will now store a table with zero rows, for a cache object whose indexColumns property is not set. Previously, data tables with no rows were ignored.

14898: Two cache table listeners with different filters now supported

Using the Cache Data Source, if two or more listeners were attached to the same cache table, and each attachment has a different row filter, only one of the attachments would be updated. This has been fixed.

14903: Row Changed optimization added

To improve performance in a Data Server deployment, the Cache Data Source has been improved to reduce the amount of data that is pushed to clients when the contents of a cache table are changed.

14908: Timestamp value from column no longer overwritten

Previously, if you specify a timestampColumnName for a table cache, and the incoming data contained a column of type Date and with that name, the current time was written into that column. This behavior has been changed so that we never overwrite the contents of a user-specified timestamp column.

14930: Can now enter table name if cache is unknown

In the previous release, the Attach to Cache Data dialog did not allow an entry in the Table field if the specified Cache name was unrecognized. As a result, it was impossible to configure an attachment to a cache that was not defined at build-time. This is fixed.

JMS Data Source

14917: Crash when JMS server or jars unavailable has been fixed

Previously RTView would fail to start when a JNDI JMS data source was defined but either the required class files were not present on the classpath or the JMS server was unavailable. Enterprise RTview will now start and provide error messages for the connections that cannot be established due to the required classes not being on the class path or the server being unavailable.

SQL Data Source

14847: Shared query result no longer re-applied to old listeners

In prior releases, under certain conditions the latest result of an SQL query was redundantly applied to existing listeners when a display was opened. This could cause unnecessary updates to functions attached to the query. This problem has been fixed.

14910: Crash if cache list cleared before caches exist has been fixed

In previous versions, an exception could be thrown if the cache list was cleared before any caches were generated. This has been fixed.

Display Server

14885: Refresh requests no longer become backed up on slow server

In release 4.9, the thin client might make overlapping refresh requests to the Display Server, if the server reponse is delayed. These requests can back up in the rtvdisplay servlet, eventually causing the app server to run out of threads or memory. This is fixed.

14891: Data source commands now executed when using data server

In prior releases, if the Display Server was run with the -dataserver option, data source commands which should have been redirected to the Data Server were not. This is fixed.

14892: Data now appears with refresh of 0 when using Data Server

In previous versions, if the Display Server refresh rate was 0, and it was used with the Data Server, data would not have been provided to the Display Server if there was no data until the first refresh. This has been fixed.

Functions

14923: No longer update nested functions prematurely

The function data source has been improved to further reduce unnecessary updates to nested functions (functions which use other function results as arguments).

General

14632: Deployment Wizard added

A Deployment Wizard has been added to RTView to assist in deploying RTView applications. The Deployment Wizard allows you to define a project with one or more deployments. It will package up the necessary file for each deployment along with a readme that describes how to deploy it. To run the Deployment Wizard on windows, select Start- >Programs->Enterprise RTView->Deployment Wizard. To run the Deployment Wizard on UNIX, in an initialized terminal window type run_depwizard

14805: New color-picker for Macintosh

A special color picker has been created for Macintosh with the Aqua Look and Feel.

14854: New utility for scanning library versions

A new command line utility for determining the version of all of the Enterprise RTView java libraries has been included with Enterprise RTView. To list the version of all Java libraries: list_versions all To check for Java libraries that do not match a particular version: list_versions VERSION where VERSION is the version string. The format of version strings in the Java libraries is "R99z9_999999", with no punctuation. Wildcards are not supported, but incomplete strings are. Versions with the suffix "_DT9999" are always included, so that patched versions can be identified. Example: list_versions 50c1 Lists all versions that are not general release 5.0c1. Output would include 5.0c0 alpha versions. list_versions R50 lists all versions that are not 5.0x. Output would include all versions that are not alpha, beta, or released libraries of 5.0. LIMITATIONS On Windows it is recommended that you not search for version based on number alone (e.g. 50 rather than R50 or 50c), as the search results will sometimes return a false positive based on a time stamp or file size.

14928: Support for deployment wizard added to data sources

A new abstract method has been added to GmsRtViewDs: public Vector<String> getDsFileNames () Custom data sources must implement this method in order to compile and run against version 5.0b1+. This method is called by the deployment wizard to get the list of files needed by a data source. See the custom data source javadocs for more information.

Object Library

Fx Bar Chart

14827: Colors now available for more than 28 bars per group

If there are more or bars (or columns) than colors, we now recycle the colors. Example - if there are 50 bars and 25 colors, bars 26-60 will use the same colors as bars 1-25.

14828: If rowSeriesFlag is on, drawStackedFlag is ignored.

You can now use the drawStackedFlag and RowSeriesFlag at the same time.

14862: Fx Bar Graph now supports barProperties

With this release, the FxBar chart now supports the "barProperties" available with the standard Bar Graph (obj_bargraph). Additionally, new properties have been added that can change the bar shapes and bar transparency. BarProperties: We now offer a more robust selection of colors than those found in the 256 color palette available with obj_bargraph, and have added support for the same 16 fill patterns. Bar Transparency: The barTransparencyPercent property has been added to allow for transparency of the charts bars. A value of 0, the default, sets the bars to be completely opaque. A value of 100 will render the bars completely transparent. Any integer between 0 and 100 can be set. Changing this property will change the transparency of all of the charts bars. Bar Shapes: The barShape property offers five additional bar shapes along with the default Rectangle shape. The new shapes are Rounded Rectangle, Ellipse, Diamond, Triangle and Inverted Triangle. Changing this property will change the shape of all of the charts bars.

14902: Bars that surpass yValueMax are no longer invisible

Prior to this fix, bars and columns whose values were greater than yValueMax setting were not drawn at all. Now, they will appear, but will be drawn clipped, so as not to extend beyond the yValueMax setting.

Fx Trend Chart

14590: Support added for additional object properties

Support has been added to the FX Trend Graph for yValueMin/Max and yAxisAutoScaleMode. When yAxisAutoScaleMode is set to Off, the yValueMin and yValueMax properties control the range of the y-axis for this trace. Select On to automatically calculate the range of the y-axis according to data values being plotted. Limitations: As with the FX Bar Graph, the "On Including Min/Max" mode is not supported. In cases where the yAxisLogFlag is ON, the yAxisAutoScaleMode setting is ignored and internally seen as ON. When the yAxisLogFlag is turned OFF, the yAxisAutoScaleMode reverts to the current user setting.

Tables

14829: Sorting can now be disabled in the Display Server

In previous releases, setting a table object's showSortIconFlag property to false did not disable sorting in the thin client. This is fixed.

Trend Charts

14810: Auto scale no longer factors in traces that have no value

If a trendgraph is configured with multiple traces, yAxisAutoScaleMode is On, and yAxisMultiRangeMode is Off (so all traces are plotted against a single, autoscaled y-axis), the autoscale calculation now skips any traces which have no data points. In prior releases, a value of zero was assumed for each empty trace, which sometimes causes the computed y-axis range to be too large.

Oracle Coherence Monitor

14779: Failure rates and time range selection added to Comm. Issues

Instead of showing absolute packets resent/repeated in the Communication Issues view, failure rates are now shown. Additionally, the time range selector has been enabled to show time range averages on cached data.

14797: Launcher arguments supported in any order

In the previous release, if the -ocm and -ocmnode command line arguments were used, they had to be the first argument specified. This has been fixed so that the arguments can now be specified in any order.

14820: Tier Selector added to All Caches Activity/Capacity Bar Charts

The All Caches Activity and Capacity Chart displays have been modified to provide a "Tier" selector. This enables the user to specify either Front or Back tier caches to be shown in these displays.

14826: Cache browser does not work with simulator

The Cache Browser view again displays data with the simulated cluster, as a DistributedCache service has been added to the simulator.

14836: Corrected spiking in Cache Activity hit/miss history

In previous versions, the Cache Activity trend chart would show spikes in the historical data. This has been fixed.

14852: Updated OCM help screens

The popup Help windows for the Oracle Coherence Monitor have been revised and improved.

14897: SQL query to Oracle no longer fails due to using reserved word

In previous versions, a SQL query to an Oracle Historian database failed due to using a reserved keyword. This was changed to a non- reserved name.

14951: Alert Summary view updated to indicate disabled alerts

The Alert Summary view has been updated to indicate that disabled alerts in gray. Unimplemented alerts have been removed.

14964: Removed unimplemented alerts

Unimplemented Alerts are no longer visible. These will be added back to the views once they have been implemented.

Platform Support

14817: "Cancel" now prevents Display Builder from closing on Mac

When a user tries to close the Display Builder without saving their changes, they will be prompted to save their changes, exit without saving, or cancel the exit. In previous versions the the "Cancel" option did not work correctly on Macintosh, and the program would close rather than remain open. This has been corrected.

14835: Menu bar support added for Historian on Mac

The Historian now correctly handles the Apple Menu and the About button.

14886: Additional look and feel support on Macintosh

To better support the Macintosh, there is a new command line argument for the Enterprise RTview applications. -laf:xxxx where xxx is Aqua, Metal or Motif e.g. -laf:Aqua. This sets the windowing style of the applicaiton. These arguments are not supported in the OPTIONS.ini file. The default for Display Viewer is Aqua and for Display Builder and Historian is Metal. This argument has no effect under Windows or Linux.

Security

14837: Security login disabled by default

By default, an OPTIONS.ini is now provided in the lib directory of the Enterprise RTView installation which disables the security login. If you wish to enable the login mechanism, you will need to start the Display Builder or Configuration Utility with the -login option, and then enable the security mechanism from the Security tab.

Substitution

14872: Setsub function triggered by var change again updates listeners

Prior to 4.8, if a control object changed the value of a mapped variable and that change triggered an update of a setsub function that changed a second substitution, then any listeners that used the second substitution were immediately updated to reflect the change. This feature was broken in release 4.8 and 4.9, but is now fixed.

Version 4.9d1 Release Notes

Data Sources

Cache Data Source

14824: Crash after (un)setting timestampColumnName fixed

In previous versions, if you removed or added the value of the timestampColumnName property in a Double cache object that was contained in a Cache Definition file, the Display Builder would crash when you saved the Cache Definition file and opened a different display. This has been fixed. As part of this fix, caches are now disabled while they are being edited. As a consequence, you can no longer attach to the data of a cache object in the same display where you have defined it.

Functions

14839: Sort function no longer crashes for table filter with no results

In the previous version, if the Sort function is applied to a table which has zero rows because of a row filter, Enterprise RTView would crash.

Version 4.9c1 Release Notes

Alerts

14433: New option to skip sending alert for intermediate alert status

The Limits Alert has been enhanced to suppress duplicate alerts with a new property, skipDuplicateAlertsFlag. If selected, only one high or low event will be generated when the value exceeds both high thresholds or goes below both low thresholds. For example, you have a limits alert where valueHighAlert equals 90. valueHighWarning equals 80 and the value equals 100. If the skipDuplicateAlertsFlag is selected, only one alert will be generated with a severity of high alert. If the value then goes to 85, the severity of the alert will change to high warning, and when the value goes to 75, the alert will clear. If the skipDuplicationAlertsFlag is off, 2 alerts will be generated when the value goes to 100, one with a high warning severity and the other with high alert severity. When the value goes to 85, the high alert will clear, and when the value goes to 75, the high warning alert will clear. Once an alert with the skipDuplicationAlertsFlag set is acknowledged, the alert severity will no longer update. Several properties give finer control over when alerts are executed and when the severity of alerts changes. If the skipDuplicateAlertsFlag is on, these properties behave as follows: valueDeadband - This property is applied to both thresholds. For example, the valueHighAlert equals 90, the valueHighWarning equals 80 and the valueDeadband equals 5. When the value goes to 91, an alert is executed with high alert severity. Now the value must go below 85 for the severity to change to high warning, and the value must go below 75 for the alert to clear. reNotificationTime - This property is applied to the alert as a whole, not to each threshold. If the reNotificationTime is set, the alert command will continue to re-execute until the alert is cleared or acknowledged, regardless of whether or not the severity changes. alertDelayTime - This property is applied to both thresholds. For example, the valueHighAlert equals 90, the valueHighWarning equals 80 and the alertDelayTime equals 5. The value must stay over 90 for 5 seconds before the high alert is issued. If the value then goes to 85, it must stay below 90 for 5 seconds before the severity is changed to high warning. nonRepetitionTime - This property is applied to the alert as a whole, not to each threshold. Once an alert has been issued, the nonRepetitionTime is not enforced when the severity changes from high alert to high warning and vice-versa. It is only applied when the alert clears. Once the alert clears, the nonRepetitionTime is the minimum amount of time that must pass before a new alert will be issued.

14689: Table-defined alert thresholds implemented

The limits and discrete alerts have been enhanced to support tabular thresholds. In previous releases, the threshold properties only accepted scalar values. Each threshold property can be set to one of the following: 1. scalar value Both scalar and each row in tabular alerts is compared against this value (this is the previous behavior). 2. tabular value This table can either contain one or two columns: If the table has one column: The column must contain comparison values. It should have the same number of rows as the alert valueTable. If so, each row in the alert valueTable is compared against the value in the same row of the value*Alert (threshold) table. If the valueTable is longer, the extra rows are compared against the first row of the value*Alert (threshold) table. If the alert value is scalar, it will be compared to the first row. If the table has 2 columns: The first column must contain indexes and the second column must contain comparison values. The index value for each row in the valueTable is used to lookup the corresponding comparison value from the value*Alert (threshold) table. If the index is not found in the threshold table, no alert is generated. If the alert value is scalar, no alert is generated. 3. ; delimited list of values This is a ; delimited list of either index/comparison value pairs, or just comparison values. If the ; delimited list only contains comparison values (80;90;100): This should be a ; delimited list of comparison values with the same number of values as rows in the alert value table. Each row in the valueTable will be compared to the item in the corresponding position in this list. If the valueTable has more rows than items in the list, the first item in the list will be used. If the alert value is scalar, the first item in the list is used. If the ; delimited list contains both index and comparison values (Chicago,80;Dallas:90;Detroit:100): This should be a ; delimited list of comma (,) separated index/comparison pairs. The index value for each row in the valueTable is used to lookup the corresponding comparison value from the value*Alert (threshold) list of values. If the index is not found in the threshold list, no alert is generated. If the alert value is scalar, no alert is generated.

14728: Alert Definition file can now be found inside .jar

In the previous versions, an Alert Definition file could not be reference from inside a .jar file. This has been fixed.

Builder

14745: Preview no longer disabled if you drill down to current window

In the Display Builder, if you executed a drill down command of type "current window", the Preview button button would be incorrectly disabled. This has been fixed.

Data Sources

14794: Leak in xml and hawk data sources.

In previous releases, a trend graph attached directly to XML or Hawk data was not released when the display was closed, causing a memory leak. This has been fixed.

Cache Data Source

14645: Cache Data Source implemented

The new Cache Data Source stores real-time data from a data attachment in in-memory tables which can themselves be used as data sources. The Cache maintains current value and history tables for scalar or tabular inputs. It has options for specifying index columns for tabular data and adding timestamp columns to both types of data. In addition, a separate data attachment may be specified for pre- loading a Cache with initial value data. This data will also be indexed and have a timestamp added according to the properties set on the Cache. You create and configure a Cache in the Display Builder, by dragging scalar or tabular Cache objects from the Caches palette tab onto a display and setting their properties, including name, data attachment(s), index columns, number of rows of history to keep, etc., in the Object Properties dialog. You then identify the display as a Cache Definition file via the Application Options dialog. When a Cache is loaded via a Cache Definition file and is receiving data via its data attachment, it is available for use and will appear in the Attach To Cache Data dialog. On that dialog you can also configure row filtering and select columns.

14738: initialTable property pre-loads cache from Historian database

The Cache Data Source has been enhanced with the ability to pre- load the history table of a scalar or tabular cache datasource by specifying a data attachment for the new property initialTable. The following should be noted: (1) If a timestampColumnName is specified for this property it will follow the behavior of the valueTable property: a timestamp column of that name will be inserted in the incoming data unless one is found already present. (2) The data from this attachment is not copied before it is modified by the addition of timestamp data; so the possibility exists that the original source of the data would be modified. (3) If this attachment continues to update its data, that data will continue to be added to the history table; so for best results the attachment should be something like a one-time SQL query.

14743: Timestamp column options implemented

The Cache Data Source has been enhanced with the ability to specify that a timestamp column a) should be added to the incoming data, or b) is already present in the incoming data. If the property timestampColumnName is set to a column name, the data source will look for a column by that name in the data. If it finds the column and it is of type DATE, the timestamp data will be included in the cache tables; if it is not of type DATE an error will be printed. If the specified column is not found a DATE column of that name will be added to the incoming data and each row will contain the time that row was received.

JMS Admin Data Source (for TIBCO EMS only)

14373: Hang after fault-tolerant failover fixed

In previous releases, displays that contained both TIBCO Hawk and TIBCO EMS data sometimes stopped updating. This only happened when the TIBCO Hawk data was from a subscription to an agent that was running on an EMS transport with a fault tolerant EMS server pair and the TIBCO EMS data was from the same pair of fault tolerant servers. The display would sometimes stop updating after the EMS severs failed over. This has been fixed.

JMS Data Source

14520: Re-Support Seebeyond with JMS

Previous changes to the JMS data source prevented it from being used with SeeBeyond as a JMS data source. SeeBeyond can now be used again as a provider of JMS data. by configuring a JMS connection where the Factory Class Name option is set to com.stc.jms.client.STCTopicConnectionFactory and using the SeeBeyond jars: jms.jar com.stc.jmsis.jar jta.jar log4j.jar from the java api kit java directory (e.g. \ican50\repository\data\files\InstallManager\50Base\apikit\java ) in the RTV_USERPATH.

JMX Data Source

14585: Domain attribute now appears in attributes list

The Domain attribute now appears in the Attach to Data if the Domain part of the mBean contains a *.

RRD Data Source

14684: Support executing rrdtool on a remote machine

The RRD Datasource has been enhanced to support (limited) remote execution of rrdtool from an instance of RTView running on Unix to a Windows machine with RRDTool installed and an rshd running. You can use the -RRDds.rsh:HOSTNAME command line option to specify a HOSTNAME on which to run the rrdtool remotely. All executions of rrdtool in this process will be done on that remote Windows host.

StreamBase Data Source

14650: StreamBase 5.1 now supported

We now support Streambase version 5.1. Prior versions will no longer be supported.

Demos

Data Source Tutorial Demo

14734: Data Source Tutorial uses .xsl navigation tree

An .xsl navigation tree is used to navigate displays in the Thin Client version of the Data Source Tutorial.

Display Server

14673: Display Server Performance enhancements

The performance of display refreshes in the Display Server has been improved.

14724: Method provided to auto-generate an HTML tree from navtree.xml

It is now possible to automatically generate an HTML navigation tree directly from the navtree.xml file used in many applications. To do this it is necessary to construct a custom index.html file that references an iframe that references the navtree.xml and converts it automatically to an HTML/Javascript tree. An example of this custom index.html file is contained in the demos/dstutorial and also in servlets/ocmonitor.

Distribution

14700: HSQLDB included with Enterprise RTView

The library to support HSQLDB has been included with Enterprise RTView, as well as two scripts to run it. run_hsqldb - runs the HSQL Database Engine. run_hsqldb_mgr - runs the HSQL Database Manager For more information about the HSQLDB, you can visit the website here: http://hsqldb.org/

Functions

14388: Type Convert function can now convert to Date-Time

The Convert Columns function has been enhanced to convert numeric and string columns to Date-Time columns (type DATE). The Convert To Type field should contain "t" ("time") and the Columns to Convert list may contain String or any numeric type columns. Numeric types other than LONG are first converted to Long data and then to Date-Time data. If a String column entry cannot be parsed as a date the resulting entry will be blank.

14740: Pending functions still sometimes executed multiple times

In some cases, when a JOIN function was used to join data from two separate data attachments, the function could be executed more than once. This problem has been fixed.

14795: Performance improvements for functions with large RV/Hawk tables

The performance of the Display Builder/Viewer has been improved in the case of a function using an RV or Hawk data table with many rows (for example, RTViewDs.HostStatusHistory) as an input argument.

14811: The SORT function can produce ArrayBoundsException sometimes

In the previous release, an ArrayBoundsException was sometimes thrown by the sort function, if its table argument was attached to a table from the Cache data source and rows were added to the table while the sort was performed. This is fixed.

General

14637: New RTV_JAVAOPTS option to specify directory of *OPTIONS.ini

Enterprise RTView has been enhanced to allow users to specify a directory for their options files. If specified, options files will be read from and saved to the specified directory. If not found, they will be read from lib. If not specified, Enterprise RTView will behave as it did previously - the options files will be read from and saved to the startup directory., and if not found there will be read from lib. To specify the directory for options files, add the following jvm option to RTV_JAVAOPTS: -Dcom.sl.rtview.optionsFileDir=YourOptionsFileDir The following options files will use the specified directory: OPTIONS.ini *OPTIONS.ini (for each data source) hawkmethodrepository.xml rvrepository.xml RVALIAS.ini TRANSPORTS.ini sqlrepository.xml JMSALIAS.ini HISTORIAN.ini DATASERVER.ini DISPLAYSERVER.ini EMSMGR.ini TRANSACTIONS.ini TMOPTIONS.ini


Licensing

14625: RRD DS license key not additive in all scenarios

Previously the licencing mechanism did not treat new product keys (e.g. RRD Data Source) as additive with existing licenses, unless they were specified in a particular order, or combined with other specific product (e.g. viewer or browser). New product keys are now additive, and can be appended to the end of an existing KEYS file

Local Variables

14629: Data type support added for variables

The variables have been updated to support 2 data types: scalar and tabular. The data type is used in 2 places. First, it is used in the Attach to Variable Data dialog to allow the user to specify row and column filtering for variables that are tabular. Second, it is used in the composite object. Only variables that have the tabular data type can be used to update table variables in the composite display. The Variables dialog has been updated as follows: 1. A Data Type combo box has been added to allow the user to select either Scalar or Tabular for their data type. This defaults to Scalar for new variables. 2. The table showing the list of variables has been updated to show the data type for each variable. 3. A check has been added so that the Use as Sub and Tabular data type cannot be selected together. If they are, an error is issued when the user clicks Add and the update is not applied. The Attach to Variables dialog has been updated as follows: 1. Four new fields have been added to the dialog to support select column and row filters. The user can specify column filters in the Column(s) field for variables that have the tabular data type. The user can either enter a single column name or click on the ... button to select multiple column names. Enter * to select all columns. The user can also select a row filter by selecting the Filter checkbox, then filling in the Filter Column and Filter Value fields. Single or multiple values may be listed in the Filter Value field. Enter * to display all rows in the table. Enter "*" to use * as a literal comparative value. To list multiple values, separate with a semicolon. For example: value1;value2;value3. If your value contains a semicolon, enclose it in single quotes. 2. The Attach to Variables dialog now validates data as follows. The Variable Name field is not validated. The user can only select from a list of valid options, so no validation is needed. If the selected Variable Name refers to a scalar variable, the Column(s), Filter Column and Filter Value fields are all colored dark gray indicating that no entry is needed in these fields. The columns in the Select Column dialog are also colored dark gray. If the selected Variable Name refers to a tabular variable, the variable is checked to see if it has received a data update. If it has not received a data update, the Column(s), Filer Column and Filter Value fields are all colored light gray to indicate that values are needed but cannot be validated. If it has received a data update, the drop down menues for the Column(s) and Filter Value fields are populated with the available column names. The Column(s) and Filter Column fields are validated so that they turn red if they contain and invalid value and white if they contain a valid value. The same is true for the columns in the Select Columns dialog. In this case, the Filter Value field is also validated. The validation on this field turns red if the data entered does not match the data type for the column specified in Filter Column, otherwise it turns white. The composite object has been updated as follows: In the previous release, only variables with names that ended in Table could be used to update table properties in composite displays. This has been fixed so that any variable with the tabular data type can be used to update table properties, regardless of the variable name. Old .rtv files are upward compatible as follows: Since old .rtv files do not contain data type information for the variables, Enterprise RTView must assign data types. The data type for all variables is set to scalar unless the variable name ends in Table or table and has no initial value. If you have a tabular variable in an old .rtv file with a name that does not end in Table or table, it will not stop working. However, you will not be able to take advantage of the new Attach to Variable Data dialog changes or the composite object changes.

14726: App-level sub now overrides initial value for global variable

If an application-level substitution (defined in OPTIONS.ini or on the command-line) exists with the same name as a global mapped variable, the initial value of the substitution is used as the initial value of the global mapped variable. In prior releases, the initial value of the global variable defined in the global definition file was used, which was not the correct behavior.

Object Library

Composite Object

14521: Expanded support for composite objects in Display Server

The composite object is now more robustly supported in the thin client, as a distinct object in a display or as an icon in an object grid. Limitations: Performance of the thin client may suffer if a composite containing a display with multiple table objects, controls, or graphs is displayed, especially if multiple instances of the composite appear in an object grid.

14737: Composite objects inside grid become blank after applet refresh

In the previous release, the composite objects in the Display Viewer Applet would go blank after a browser refresh. This has been fixed.

14744: Delay corrected in executing a function using a variable

In previous versions, if a composite object contained a display with a function that uses a variable as an argument, and the local variable's value is changed from a control, the function result is not updated until the following update. This most noticeable in the thin client.

14748: Links now work inside composite objects

In the previous release, links did not work in composite objects. This has been fixed.

Fx Bar Chart

14489: New Fx Bar Graph object

A new graph object named Fx Bar Graph has been added. Fx Bar Graph and the existing Bar Graph graph object have many similar features. Fx Bar Graph also has a few additional features unavailable in the bar graph. In the Display Builder, Fx Bar Graph (obj_fxbar) is found on the Fx Graphs palette. FEATURE HIGHLIGHTS: Data Tips: text boxes that display detailed information about their associated columnar data. Legend: can be positioned above, below, right, or left of trace area. The legend can be resized interactively. Background Colors: The graph background can have two alternating colors, with a configurable grid color between them. COLOR PROPERTIES: Color properties are treated similarly to the Fx Trend Graph, both of which differ from that of other other objects. In the Builder, the color chooser dialog has 4 tabs. The "RTView Colors" tab shows the traditional palette of 252 indexed colors; the "Swatches" tab shows a standard Java color palette; the "HSB" tab allows color selection by hue, saturation, and brightness; and the RGB tab allows color selection by red, green, and blue intensity. The color chooser also has a button for selecting a default color (described separately for each color property below). Internally, all color properties on Fx Bar Graph are stored as a 24 bit integer RGB value in the range of zero (black) to 16,777,215 (white). So if a color property on an Fx Bar Graph is attached to data, keep in mind that it expects an integer value in that range, not a color index between 0 and 252 as with other objects. A value of -1 indicates the default property color. Note that the Default color and colors selected from the Swatches, HSB, and RGB tabs are only supported on Fx Bar Graph. If a color is selected from one of those tabs and then copied and pasted to a color property on any other object, white will be used instead. PROPERTIES: Like the bar graph, the Fx Bar Graph has many configurable properties, some of which are unique. The following properties apply to the overall object: Alert: (All are the same as the bar chart. Note that the Fx Bar Graph doesnt support the associated LineVisFlag, MarkColor, and markStyle properties. - valueHighAlarm - valueHighAlarmColor - valueLowAlarmEnabledFlag - valueHighWarning - valueHighWarningColor - valueHighWarningEnabledFlag - valueLowAlarm - valueLowAlarmColor - valueHighAlarmEnabledFlag - valueLowWarning - valueLowWarningColor - valueLowWarningEnabledFlag Background: (All same as Bar Chart) - bg3dFlag : if checked, a 3d border is drawn around the Fx Bar Graph. - bgColor: the background color of the Fx Bar Graph. The Default color is steel gray. - bgGradient: if checked, the background is gradient filled. Bar: - barImage: The image to display in the bars. NOTE: If necessary, the image will be stretched or otherwise modified to fit the bar size. - barOutlineFlag: draws an outline around each bar. Default is On - barValueTextColor: when barValueVisFlag is On, the color of the text inside the bars - barValueTextFont: when barValueVisFlag is On, the font style for the text inside the bars - barValueTextSize: when barValueVisFlag is On, the font size for the text inside the bars - barValueVisFlag: when On, each bars data value is displayed inside the bar Data: - rowSeriesFlag: Same as Bar Chart - valueDivisor: Same as Bar Chart - valueTable: Same as Bar Chart - yValueMax: - yValueMin: Controls the range of y-axis if the yAxisAutoScaleMode is set to Off. Select On for the yAxisAutoScaleMode to calculate the y-axis range according to data values being plotted. DataFormat: - yValueFormat: Formats the numeric value shown on each bar, if barValueVisFlag is checked. Also formats the numeric value that appears in each tooltip is the mouseOverFlag is checked. Historian (same as Bar Chart) - historyTableName - historyTableRowNameFlag Interaction: (same as Bar Chart) - command - commandCloseWindowOnSuccess - commandConfirm - commandConfirmText - drillDownTarget - mouseOverFlag  toggles Tooltips on/off Label: - label: the Fx Bar Graph title text. Cannot contain newlines (\n). If blank, the trace area increases to fill the title area. - labelTextAlignX: alignment for the Fx Bar Graph title. - labelTextColor: color for all text on the Fx BarGraph, default is black. - labelTextFont: font for the Fx BarGraph title. - labelTextSize: size for the Fx BarGraph title. Legend: - legendBgColor: background color of legend area. If Default is selected, the legend background is unfilled so the background of the Fx Bar Graph is visible. - legendBgGradientFlag: if checked and if legendBgColor is not Default, the legend background is gradient filled. - legendPosition: indicates if the legend is positioned above, below, left, or right of the chart area. - legendTextFont: font for legend text (Note that bold is NOT supported here) - legendTextSize: font size for legend text - legendTextColor: font color for legend text - legendVisFlag: the legend is visible only if this property is checked. - legendWidthPercent: the percentage of the objects width (or height, if positioned at top or bottom) to be occupied by the legend. Plot Area: - gridAltBgColor: the Fx Bars chart background allows for alternating rows of color. This is one of them. The default is transparent. - gridBgColor: this is the other alternating color row. The default is transparent. - gridBgImage: In place of color for the chart background, the user can select an Image. - gridColor: this is the color of the grid lines. The default is white. X-Axis: - xAxisFlag: the x-axis is visible only if this is checked. Y-Axis: - yAxisAutoScaleMode: Off: all min/max and division properties are used to determine how to display the yAxis. Note that any bar whose data exceeds the yValueMax will not be displayed. On: the Fx BarGraph determines the yAxis Maximum and divisions as needed to display bars at whatever size is needed to represent the data. The following properties are ignored: yAxisMajorDivisions, yAxisMinorDivisions, yValueMax, yValueMin. On  Include Min Max: This is NOT SUPPORTED. It functions as On above. - yAxisFlag: the y-axis is visible only if this is checked. - yAxisFormat: Formats the y-axis labels or, if drawHorizontalFlag is checked, the x-axis labels. - yAxisMajorDivisions: Number of major divisions along the yAxis. Ignored when yAxisScaleMode is On - yAxisMinorDivisions: Number of minor divisions with each major division. Ignored when yAxisScaleMode is On. REQUIREMENTS and LIMITATIONS: The Fx Bar Graph requires version 9.0 or newer of the Adobe Flash Player. In the thin client, the Fx Bar Graph is supported in any supported browser that has the Flash Player installed. If a display containing an Fx Bar Graph is loaded into the thin client and the Flash Player is not installed, a link to the Flash Player download page will appear on the display. In the Builder and Viewer applications, the Fx Bar Graph is supported on Windows platforms only. If a display containing an Fx Bar Graph is opened in the Display Builder/Viewer, and the correct version of the Flash Player is not available or the local operating system is not Windows, the Fx Bar Graph will be blank and an error message will be issued. In the Display Builder, the Fx Graphs tab is visible. The Fx Bar Graph is not supported in the Display Viewer Applet on any platform. The Fx Bar Graph object can be resource intensive during display loading and updating. This should be kept in mind when designing displays -- for example, a display containing several Fx Bar Graph objects may load slowly. The Fx Bar Graph is drawn inside a Flash Player window. This means thats the Fx Bar Graph will be drawn above all other objects in a display (except other Fx Bar Graph objects) regardless of the object order -- the "Move to Front/Back" operation has no affect on the Fx Bar Graph. Also, in the Builder, if an Fx Bar Graph extends beyond the edges of the display, it will obscure other panels in the Builder, such as the object palette, property sheet, etc. When zooming or scrolling in the Display Builder or Display Viewer, the Fx Bar Graph will obscure any portion of the vertical and horizontal scrollbars that it overlaps. In the thin client, if the context menu is opened near an Fx Bar Graph object, the menu will be partially hidden by the Fx Bar Graph. Also, a right click inside an Fx Bar Graph will open the Flash Player menu, not the thin client's context menu. When moving an Fx Bar Graph object in the Builder, it is best to grab and drag the graph by one of its edges, just inside the selection hilite rectangle. The graph can't be dragged from within the trace area, since that will initiate a zoom. It can be dragged by other interior areas but it may not move smoothly. The Fx Bar Graph is not included in reports. However, in the thin client, the graph can be printed by right-clicking on the graph and selecting Print from the menu. The legendTextFont property does not support bold fonts, for example Serif and SerifBold have the same appearance (unbold). The following are differences between the Fx Bar Graph and the pre-existing Bar Graph: - If yAxisAutoScale is off, a bar with a y value greater than yValueMax will be invisible. - Bar colors cannot be set. The default colors are always used - If there are more than 28 bars per group, bars 29 and above are black. - Scrolling is not supported - barImage is not scaled to fir the bar width. - If rowSeriesFlag is on, the drawStackedFlag property is ignored. - If yAxisAutoScaleMode is on, the yAxisMajor/MinorDivisions property is ignored.

Fx Trend Chart

14642: Fx trend graph now showing static data in composite objects

In the previous release, the Fx Trend did not plot data from a static data attachment if the trend was contained in a composite object. This is fixed.

14729: Data now plotted for a single numeric column

In the previous release, if the traceNValue property of the Fx Trend Graph was attached to a table with a single numeric column, no points were plotted. This is fixed.

Trend Charts

14749: y-axis autoscale now correct when first y value is NaN

Previously, the trendgraph's y-axis autoscale mode did not compute the correct y-axis range if the first value in the trace was NaN. This is fixed.

Oracle Coherence Monitor

14622: Alert mechanism added to Oracle Coherence Monitor

The ability to generate and customize Alerts has been added to the Oracle Coherence Monitor application. Alerts may be managed by administrators, who set the threshold values as desired within the GUI of the Oracle Coherence Monitor application. An initial set of 7 alert types is available: Available Memory Low for Cluster Available Memory Low for Node Bad Communication by Cluster Bad Communication by Node Capacity Limit for All Caches Capacity Limit for Cache Endangered StatusHA for All Caches

14644: Restructuring of application directory and scripts

The organization of the Oracle Coherence Monitor (OCM) has changed, as have the scripts used to run it. DIRECTORIES Oracle Coherence Monitor no longer in a single directory, but has been integrated more closely into the Enterprise RTview directory structure. Main class files and displays - All of the files necessary to run the Oracle Coherence Monitor are now included in lib/gmsjocm.jar, which is included in the classpath when you pass in the -ocm argument. As a consequence, you are not required to run the OCM from a specific location. Run scripts - The scripts are now located in the RTV_HOME/bin directory, and are included in the users PATH in an initialized command windows. Documentation - Expanded documentation can now be found in the Enterprise RTView Userguide, in the Monitoring Oracle Coherence subsection. Simulated Cluster - The simulated cluster is now located in demos/ocmdemodata. Customization - The demos/ocmdemo directory contains copies of the configuration files that are included in lib/gmsjocm.jar, as well as some new examples of customization. JMX CONNECTIONS The Oracle Coherence Monitor connection is controlled via the $conn substitution. Previously $conn was set to "Development" by default, and "Development2" was used to connect to a remote JMX RMI. "Development" has been renamed to "LocalJmxNode", and Development2 has been renamed to "RemoteJmxRMI". "RemoteJmxRMI" is now the default value of $conn. SCRIPTS Enterprise RTView applications now recognize two new mutually-exclusive command line arguments, -ocm and -ocmnode. They must be the first argument used. -ocm: Adds gmsjocm.jar to the classpath, and by default connects Enterprise RTView applications to Oracle Coherence via a remote JMX RMI on port 9991. -ocmnode: Adds gmsjocm.jar and COHERENCE_HOME/lib/ coherence.jar to the classpath, runs the application as an Oracle Coherence Node, and sets $conn to LocalJmxNode. By default - Dtangosol.member.name will be set for you, but you can override this default by setting -Dtangosol.member.name in the RTV_JAVAOPTS variable. The scripts have been replaced as follows: run_monitor run_ocmonitor run_monitor_node run_ocmonitor -ocmnode run_builder_node run_builder -ocmnode run_historian_node run_historian -ocmnode run_dataserver_node run_dataserver -ocmnode run_displayserver_node run_displayserver -ocmnode The old scripts will eventually be removed from the product.

14701: HSQLDB used for RTVHISTORY and ALERTDEFS database

HSQLDB is now available for the new Oracle Coherence Monitor application for persisting Alert definitions and saving data for the Data Historian. To start the database, you must run the following command line script from the demos/ocmdemo directory: run_hsqldb The Oracle Coherence Monitor is configured to find and use this database by default.

14712: New option to generate unique Node Names

A new option, -idnames, can be used to start any of the Oracle Coherence Monitor applications. If started with this option, node names will be forced to be unique, even if the Member Name is not uniquely assigned.

14714: Memory/Communication Trends by Node Display added

Two new displays have been added, Memory Trends and Communication Trends. These show the memory utilization and the communication failure rate for the worst ten nodes in a trend graph over a selectable time range.

14716: New Activity/Capacity Trend views for All Caches

Two new displays have been added, the All Caches Activity and Capacity Trends. These show up to ten active Caches comparing total activity or capacity against one another. The user can select which metric to compare.

14718: Name changes in navigation tree

The names of some of the displays in the navigation tree have been changed to better reflect their purpose.

14725: Time range and cache name selectors now global

The selection of Time Range or Cache is now retained across a change of display.

14727: Admin pages now always visible, but buttons disabled

The behavior of displays based on roles has been changed. Now, the displays are always visible, but the buttons are disabled if user does not have permissions.

14739: Mechanism added for including custom displays in navtree

The Oracle Coherence Monitor application has been enhanced look for, by default, a navigation panel configuration file called "custom_navtree.xml". If found it will read this file and add the contents to the left hand navigation panel. One sample display is included by default in demos/ocmdemo.

14742: Eliminated need for substitution change to load historian data

There is no longer any need to make changes to OPTIONS.ini to select whether historical data comes from the database or in- memory tables. Historical data now always comes from in-memory tables, and is pre-loaded from any HISTORY database available and enabled.

14751: Show RTView Memory Utilization Information in Metrics Admin page

The Metrics Administration display has been enhanced to show the memory used by Enterprise RTView to store the history of Cache and Node statistics that are presented in trend charts.

14757: Service/Cache/Node dropdown lists auto-populate

The dropdown lists for Service, Cache, and Node will now auto- populate based on the available selections. It is no longer necessary to predefine selector variables with substitutions on initialization. Also, when switching to a different service, the cache selector is automatically set to the first cache in that service.

14758: All Caches Activity/Capacity Charts now scale better

The Current Activity and Current Capacity charts now scale graphically to accomodate larger number of caches.

14759: Cache Statistics page now shows average object size

The Cache Statistics page now shows average object size

14760: Storage Node Count on overview display is now correct

On the Overview display, the Storage Node Count was sometimes incorrect. This problem has been corrected.

14764: Provide button to perform a Print PDF operation

A new feature has been added to generate a PDF report consisting of several of the key displays in the Oracle Coherence Monitor application. The button labelled "Generate Report" on the Administration -> Admin Metrics display will cause the generation of a PDF report from the configuration file ts_report.xml contained in the gmsjocm.jar file. The generation of the PDF report requires a lot of memory, so it is recommended that you add "-Xmx256m" to the RTV_JAVAOPTS variable to increase the amount of memory available.

14818: The Invocation Service Detail page was incorrect

The Invocation Service detail page was incorrectly showing the same information as the Cache Service Detail page. This has been corrected.

Substitution

14755: 'Remove Existing Subs' no longer adds extra listener

In previous releases, if an object's drilldown target was configured to set a substitution in the current display and the 'Remove Existing Substitutions' box was checked, in some cases this caused an extra listener to be added for any attachment on the display that used the effected substitution. This caused the object to behave incorrectly, for example a trend graph may plot spurious data points. This problem is fixed.

Viewer

14641: Menus no longer obscured by Fx Trend graph in the Display Viewer

The Fx Trend object no longer obscures the Display Viewer's pulldown and context menus.

14681: Included files now can be found in .jar

In prior releases, if an rtv file was loaded from a jar file and it included another rtv file that was also contained in the jar, the included file was not loaded. This is fixed.

Version 4.8d1 Release Notes

Builder

14605: Flash error when opening builder from shortcuts

In the previous release, if the Display Builder was launched from the Windows desktop shortcut and an instance of the Fx Trend was created, on some installations the following error message would appear ERROR: can't load gmsflashwrap.dll This problem is fixed.

Display Server

14617: Corrections to servlet make_war scripts

Typos were corrected in the following .war creation scripts: servlets/rtvdisplay/make_war.bat servlets/rtvdata/make_war.sh These should now run without error.

General

14606: Clicking background of display no longer throws exception

In the 4.8c1 release, Enterprise RTView would sometimes throw an exception if you double-clicked in a blank area of a display. This has been fixed.

Object Library

Composite Object

14560: Interactivity support for Display Builder and object grid

In the previous release, the composite object had no support for mouse interaction, drill down, commands and controls within composite displays when running in the builder or when the composite object was displayed in an object grid. The composite object has been enhanced so that all of the features are now supported, except in the main Display Builder window. These features are suppressed in the main Display Builder window to facilitate selecting and editing the composite object.

14607: Applets with composite objects fail without file access

In the 4.8c1 release, the Display Viewer Applet would throw a security exception if you display contained a composite object. This has been fixed.

14609: Bug with composite object extent and data attachments fixed

The 4.8 version of the composite object had the following issues: 1. Data attachments for objX, objY, commandConfirmText and transparency percent were not supported on objects in the composite display. 2. The extent used to layout out composite objects in an object grid was off by one pixel, resulting in a one pixel shift of the object layout in the object grid. Both of these issues have been fixed.

Version 4.8c1 Release Notes

Builder

14449: Corrupted .rtv file now reports error if it fails to load

A corrupt RTView file that is read into the Builder or Viewer will now report an error instead of silently failing.

14469: Fix for exception when no attributes exist for an mBean

There is no longer an unexpected Java exception when editing a JMX attachment where the mBean being accessed has no attributes.

Commands

14477: Custom Data Source command dialog bug fixed

Previously adding a new command to a multiple command, for a custom data source with a non-all-lower case dsKey would bring up the default Define Command dialog, rather than the intended Define Command dialog for the custom data source. This has been corrected.

Data Server

14470: obj_text03 no longer shows long as float if using Data Server

In the previous release, if the type of a data table column is long, and if a cell in that column is displayed on a label object that supports a string (rather than numeric) label, and if the table is accessed via the data server, the value is displayed as a float (e.g. 123.0) rather than a long (123). This is fixed.

Data Sources

IBM WebSphere MQ Administration Data Source

14395: Columns now validate for IBMADM if there are > 1

Previously the attach to data dialog for the IBMADM data source would only correctly validate the Column(s): field for a single column. The field will now correctly validate both single and multiple columns.

JMS Admin Data Source (for TIBCO EMS only)

14552: Additional EMS Server metrics incorporated

The following metrics are now available for the ServerInfo table: diskReadRate diskWriteRate getProcessId maxMessageMemory messageMemory messageMemoryPooled processId syncDBSize

JMS Data Source

13936: Use JNDI to lookup JMS Destination names.

Support for BEA Weblogic via JNDI (Java Naming Directory Interface) has been added to Enterprise RTView. At this time we do not support the use of JNDI with other JMS providers. This functionality requires that the BEA WebLogic specific jar(s) be included in the RTV_USERPATH environment variable. The Builder requires the use of of the Standard Weblogic jar in order to extract and display JNDI administered destinations (Topics and Queues) in the JMS Attatch to data dialog, and JMS Command dialog. The viewer can be used with the Standard Weblogic jar or the thin client jars. The user has the choice of using the Standard Weblogic jar example: set RTV_USERPATH=c:\BEA\server\weblogic92\lib\weblogic.jar or the thin client jars example: set RTV_USERPATH=c:\BEA\server\weblogic92\lib\wljmsclient.jar; c:\BEA\server\weblogic92\lib\wlclient.jar More information on the thin client jars can be found here: http://edocs.bea.com/wls/docs92/client/jms_thin_client.html Creating a JNDI JMS Connection to BEA ===================================== JMS JNDI Connections for BEA Weblogic destinations are looked up in a naming directory e.g. exampleQueue exmapleQueueViaJNDI To set up a JNDI connection, go to the JMS JNDI Connections tab and click the Add JNDI button. Set the following fields: Connection Name: Define the name you would like for your connection. (must be unique for all JMS Connections) Inititial Context Factory: Select the Weblogic Inititial Context Factory weblogic.jndi.WLInitialContextFactory from the Inititial Context Factory drop down Provider URL: The provider url is of the form: protocol://server:port The default protocol is t3, and the default port is 7001 example: t3://weblogicServer:7001 You can enter the entire URL by hand, or select the initial weblogic URL from the Provider URL dropdown, and edit the parts that need to be changed. Connection Factory: Enter or Select the JNDI Connection Factory name. For BEA Weblogic Select either of the default JNDI Connection Factory names from the Connection Factory drop down. Both default JNDI Connection Factory names can be used for both Topics and Queues Security Principal: Security Principal and Security Credentials may be left empty - in which case the default values will be used. Security Credentials: See Notes for Security Principal. Attaching to JMS Data ================= Connection: Choose the connection name you defined in Application Options Destination Type: Topic or Queue Browser Topic Name/Queue Name: For jndi connections, you can specify the jndi name, by entering it, selecting it from the drop down list, or selecting from the JNDI Destination name hierachical tree dialog invoked using the "..." button. Select the desired destination name in the tree then click OK. Note that the full path of the selected name is used and is selected in the drop down. If a valid Destination name is used, it will be selected and visible in the hierachical tree dialog when it is invoked. example: JNDI-Topic-1 Data Mode: Choose whether you wish to see fields, fields and properties, or only properties Message Field: This dialog will currently not populate with the message fields for BEA. You can select * to see all possible fields/ properties, or type the message fields by name, separated by semi-colons example: var1;var3 Defining JMS Commands ==================== Connection: Choose the connection name you defined in Application Options Destination Type: Only topics can be sent at this time. Message Type: Either Text or Map Message types are possible. Topic Name: For jndi connections, you can specify the jndi name in the same way as the attatch to data dialog. example: JNDI-Topic-1 Fields & Properties: Define as many fields/properties as are needed. See the documentation for more information.

14458: JMS Queue Browser retrieves properties for all messages in group

Previously, the JMS Queue Browser only retrieved message properties for the first message in a group. This has been fixed.

JMX Data Source

14389: Wildcard supported in the mBean name to the left of the colon

it is now possible to use a * in the mBean name to the left of the colon as well as the right. This should be in the form SampleJmxHawk_*:* Methods and attributes may now be addressed in this way to conveniently affect the behavior of similar beans on multiple connections.

14396: Warning message given when read-only rights prevent access

In the Enterprise RTView 4.7 release, if the JMX connection did not have permission to invoke operations, data attachments against operations would fail silently. Now, an error message is printed.

14401: JMX Notifications expand composite attributes

Support for expanding composite attributes was added to the notified JMX data object.

14408: Command status returned for JMX commands

The command status of an mBean operation invocation is now returned as a message dialog, if an Exception is thrown in the mBean. This appears as an Error Dialog that shows the error as ERROR: Exception name, COMMAND: the RTView Command string and DETAIL: the details of the exception, if any.

14429: JMX notifications now support arrays of simple data types

The JMX datasource now correctly handles notifications involving arrays of simple types such as int[].

14509: JMX Command and Attach to Data dialogs retain window size

The JMX Attach to Data and Command dialogs have been modified so that window size information is retained after the user resizes the window and closes/reopens the dialog.

14514: All beans queried to populate the list in attach to data dialog

All beans on all connections are now queried to populate the list in attach to data dialog. Additional work was done to ensure that all connections were correctly polled to ensure that valid mbean name:wildcard combinations are seen as valid. Extra corrupted rows of data are no longer returned if the connection is *.

14518: *:* is supported in the mBean entry field of the mBean name

Use of *:* in the mBean entry field of the mBean name is now supported. For Polled Data Objects ALL beans will be returned. For Notified Data Objects only beans that send notifications will be returned.

14531: Column validation improved

The column validation for JMX Notified Data Objects was improved. Previously the Select Columns dialog would indicate that some columns where invalid (pink) when they were available. This has been corrected.

RRD Data Source

14368: Support added for RRD Data Source

Support has been added for the RRD (Round Robin Database) data source. The RRD Data Source does not support Solaris at this time.

SQL Data Source

14532: Improved handling of NaN values by storing as NULL in SQL

The SQL Data Source now handles NULL values found in double data, by converting them to NaN. Additionally, the Historian will convert NaN to NULL before writing the data. This permits tables containing NaN values to be archived using the Historian.

StreamBase Data Source

12596: Performance improvements to StreamBase tuple processing

The performance of StreamBase tuple processing in Enterprise RTView has been significantly improved. Previously, processing could get behind, and even result in an infinite loop if there were many tuples to process. This problem has been fixed.

14472: Boolean data type supported in tuples

Previously Enterprise RTView did not support boolean types in StreamBase tuples. Now it does.

14540: Table no longer shows blank row if no data received

Previously, a table attached to a StreamBase stream would show one blank row of data even though no tuples had been received. This problem has been fixed.

14550: CSV history files enhanced to handle embedded NEWLINEs

Streams containing embedded NEWLINES in string fields can now be stored and loaded from CSV history files.

TIBCO Rendezvous Data Source

14414: Define TIBCO Rendezvous Command dialog supports multiple fields

The Define TIBCO Rendezvous Command dialog has been enhanced to allow you to specify multiple fields for your TIBCO Rendezvous message. You can set the name, value and data type for each field. The data types are converted to TibrvMsg data types as follows: string - TibrvMsg.STRING integer - TibrvMsg.I32 long - TibrvMsg.I64 float - TibrvMsg.F32 double - TibrvMsg.F64 boolean - TibrvMsg.BOOL

XML Data Source

14442: RTView file now loads if XML ds has null sourcename (sub='')

A display file previously would fail to load properly if there was an attachment to an XML data source that used a substitution for the XML source name and that substitution was defined to be "" or null. This problem has been fixed.

Demos

JMX Monitor

14459: SampleJmxApp enhanced to send additional notifications

The SampleJmxApp has been enhanced in several ways: 1. It now sends the same set of Attributes as notifications. 2. It now accepts a new command line argument of -notifyMovements:nnnn. 3. It now sends a new list of Hawk indexes as HawkList. The -notifyMovements:nnnn argument will turn on sending of hawk movements. The nnnn is the number of milliseconds delay before each new set is resent. run_samplejmxapp -notifyMovements:2000 This will show a trace in the console like: SampleJmxAgent is running... SampleJmxHawk_hawk_1:Hawk=hawk_1,Type=Foo,Random=4.6292412407998675 was added... Notifications sent at: 11:09:48 AM Notifications sent at: 11:09:50 AM Notifications sent at: 11:09:52 AM

Display Server

14375: Exit Display/Data Server if port is in use

The Display Server task will exit if the configured port is already in use. The task will display an error message prior to exiting. In prior releases, the error message was displayed but the task continued to run. The Data Server task will exit if the configured port is already in use and if the Data Server was run with either the -nogui or -daemon option. This change only affects socket mode.

14564: Display Server no longer runs unsupported multiple commands

In previous versions, multiple commands in the Display Server would try to execute commands that were not supported by the Display Server, even though they warned the user that they were not supported. This has been corrected so that unsupported commands are no longer executed.

14583: Radio buttons no longer crash the headless Display Server

In the previous release, if the Display Server was run on a headless system it would crash if a client opened a display containing a radio button control. This problem is fixed.

Functions

14376: New Delta Rows function

A new function, Delta Rows, has been added to the Display Builder. The Delta Rows function returns a table that includes, for the specified columns, new values for the difference between this update and the previous. The new values may be appended to the input table in columns named by prefixing "Delta" to the column name, or they may replace the values in the input columns. The arguments to this function are as follows: Table - The table of interest. Delta Column Names - The names of one or more columns for which deltas will be calculated. At least one name must be given. Index Column Names - The names of one or more columns that uniquely identify a row in the table. If left blank, the default is to calculate deltas for all rows as if they had the same value. The values contained in each index column are concatenated to form a unique index used to organize the resulting summary data. Replace Data With Deltas - If set to 1, the delta values replace the original values in the same column in the returned table; otherwise they are in new columns appended to the table. Display Negative values - If set to 1, the delta values less than zero will be displayed with a negative sign and the value; otherwise they will be displayed as zero.

14427: Tabular Arithmetic Functions added

The Display Builder has been enhanced with the addition of the following functions: Add Columns Subtract Columns Multiply Columns Divide Columns Average Columns Min Columns Max Columns Percent Columns Modulo Columns These function operate upon the values in each row of the two input columns and store the results in a new column. If a specified column is not found in the input table, the functions attempt to convert the string argument to a numeric value. If this succeeds, the value is used as a constant in each row-wise operation. If it fails, an error is printed and the input table is returned unchanged. If a specified column is found but is not of a numeric type, an error is printed and the input table is returned unchanged. Add, Subtract, Multiply, Average, Min, and Max Columns give a Double result if either operand column is Float or Double; otherwise the result is Long. Divide, Percent, and Modulo Columns always give a Double result. If a divisor cell is zero the result is NaN. The Display Builder has also been enhanced with the addition of the following function: Convert Columns This function converts the specified columns to the specified type and stores the result in the original columns. If a specified input column is not found it is ignored. If no input columns are found an error is printed and the input table is returned unchanged. The type is specified as a string representing a valid type name, which may be abbreviated to its first letter, Valid type names are: Boolean, Integer, Long, Float, Double, and String. If an invalid value is given, an error is printed and the input table is returned unchanged. If converting from Boolean the result will be 0 or 1 in the specified type. If converting from String to Boolean the result will be True if the input string is "1"or "true"(case insensitive), otherwise will be False. Otherwise if converting from String the result will be zero if the conversion fails.

14432: New functions added for comparison of scalars

The Display Builder has been enhanced with the addition of the following functions: Min, Max, Average. These functions operate on two numeric arguments and return a numeric result. The Average function returns the average of the two arguments. The Min function returns the smaller of the two arguments. The Max function returns the larger of the two arguments. Note that the Display Builder previously included functions with the names Min, Max, and Average that operated on all the rows or columns of a table. These functions have been renamed to Min All Rows Or Columns, Max All Rows Or Columns, and Average All Rows Or Columns respectively. In addition the function previously named Sum has been renamed to Add All Rows or Columns.

14439: "Public" column added to Display Builder Function dialog

The Display Builder Function dialog now displays a column "Public" indicating whether a function is defined to be public or not.

14457: Double quotes supported in function description field

In the Display Builder Edit Function dialog, if the Description field included double-quote characters, the function definition would not be saved and restored correctly. This has been fixed.

14475: Corrected deadlock when Data Server applies data to listeners

In the previous release, under certain conditions a deadlock can occur in the function data source when data is received from the Data Server. This has been fixed.

14495: Function dialog list now shows more than 100 functions

In the Display Builder Functions dialog, if more than 100 functions were defined in a display, only the first 100 would be listed in the function table. This has been fixed.

14533: Enhanced support for NaN in functions

Improvements have been made in the way Enterprise RtView functions handle values of type Double which are not valid numeric values, such as the result of division by zero. These values are represented in Java by the value "NaN" (Not a Number). Numeric displays of this value will show "NaN" and string displays will show a small square. There are three types of functions that can return NaN values: those that operate on scalars, those that operate on pairs of table columns ("columnar"), and those that operate on all rows or or columns of a table ("tabular"). In general additive functions will ignore an NaN input and return a valid value and multiplicative functions will return a NaN result given a NaN input. Detailed behaviors follow. Scalar functions given a NaN value: Add, Subtract, Average, Min, and Max will return the other value; Multiply, Divide, Percent, Modulo, and Delta will return NaN. Columnar functions given a NaN value in a pair of cells for a given input row: Add Columns and Subtract Columns will return the other cell's value for that row; Multiply Columns and Divide Columns will return NaN for that row. Tabular functions include Add All Rows Or Columns, Average All Rows Or Columns, Min All Rows Or Columns, and Max All Rows Or Columns and operate across columns or rows. These functions all ignore a NaN cell in their input. Please note that the above description represents a change in behavior for the following functions: Scalar Add, Subtract, Average, Min, and Max would have returned NaN if either input value was NaN; they now return the other value. Scalar Percent and Delta would have returned 0 if either input value was NaN; they now return NaN. Scalar Divide and Modulo on an attempt to divide by 0 would have returned 0; they now return NaN. Add Columns and Subtract Columns would have returned NaN if either of a pair of input cell values was NaN; they now return the other cell value. Add All Rows Or Columns and Average All Rows Or Columns would have returned NaN for a row or column if there were any NaN cells in the row or column; they now ignore the NaN cells.

General

14476: Warning message for duplicate included displays removed

In prior releases, if a display includes the same file multiple times, the Display Builder and Display Viewer would issue a warning message. This warning message has been removed.

Object Library

Composite Object

14367: New Composite Object added to palette

A composite object has been added to the palette. This object displays an rtv file, allowing you to create object group templates for use in your displays. The composite objects can also be used in object grids. Public variables that are not mapped to substitutions in the composite display are exposed as properties on the composite object. Substitutions from the panel containing the composite object are inherited by the composite object. Additional substitutions can be specified using the substitutuions property. The composite object has limited support for mouse events, drill down, command and controls within the composite display. These items are supported only in the Display Viewer and Display Viewer Applet, and only if the composite object is instanced directly in the display. They are not supported at all for composite objects instanced in object grids. In the Display Viewer and Display Viewer Applet, if an object within the composite display has a drill down or command assigned, this will be used instead of the drill down or command on the composite object when the user selects it. The drill down or command on the composite object will be used if the user clicks on an empty area in the composite display or on an object in the composite display that does not have a drill down or command associated with it.

Fx Trend Chart

12722: New Fx Trend Graph object

OVERVIEW: A new graph object named Fx Trend has been added. Fx Trend and the existing trend graph object have similar features. However, the interactive features of Fx Trend (scrolling, zooming, sliding cursor) are fully supported in the thin client. Fx Trend also has a few additional features unavailable in the trend graph. In the Builder, Fx Trend (obj_fxtrend)is found on a new tab in the palette named Fx Graphs. FEATURE HIGHLIGHTS: Traces: supports 1 to 8 traces as determined by the traceCount property. Zoom: zoom-in by dragging in trace area, zoom-out by Shift+Click. Scrolling: live scrolling through time range Cursor: slide horizontally to see interpolated data values in legend Data Tips: text boxes with data info popup when mouse is over a data point Legend: can be positioned above, below, right, or left of trace area. The legend can be resized interactively, and clicking on a trace's legend entry toggles the visibility of the trace. Log Axis: logarithmic y-axis supported COLOR PROPERTIES: Color properties are treated differently on Fx Trend than on other objects. In the Builder, the color chooser dialog has 4 tabs. The "RTView Colors" tab shows the traditional palette of 252 indexed colors; the "Swatches" tab shows a standard Java color palette; the "HSB" tab allows color selection by hue, saturation, and brightness; and the RGB tab allows color selection by red, green, and blue intensity. The color chooser also has a button for selecting a properties Default color (described separately for each color property below). Internally, all color properties on Fx Trend are stored as a 24 bit integer RGB value in the range of zero (black) to 16,777,215 (white). So if a color property on an Fx Trend is attached to data, keep in mind that it expects an integer value in that range, not a color index between 0 and 252 as with other objects. A value of -1 indicates the default property color. Note that the Default color and colors selected from the Swatches, HSB, and RGB tabs are only supported on Fx Trend. If a color is selected from one of those tabs and then copied and pasted to a color property on any other object, white will be used instead. PROPERTIES: Like the trend graph, the Fx Trend has many configurable properties, some of which apply to the overall object and some which apply to each trace. The Fx Trend supports 1 to 8 traces as determined by the traceCount property, which has a default value of 1. The following properties apply to the overall object: Background: - bg3dFlag : if checked, a 3d border is drawn around the trend. - bgColor: the background color of the trend. The Default color is steel gray. - bgGradient: if checked, the background is gradient filled. Data: - maxPointsPerTrace: if more data points than this are applied to a trace, the oldest data points are discarded so that only this many are plotted. Interaction: - cursorColor: color for the vertical cursor that slides across the trace area. - cursorFlag: if checked, the vertical cursor is visible when the mouse is in the trace area. Label: - label: the trend title text. Cannot contain newlines (\n). If blank, the trace area increases to fill the title area. - labelTextAlignX: alignment for the trend title. - labelTextColor: color for all text on the trend, default is black. - labelTextFont: font for the trend title. - labelTextSize: size for the trend title. Legend: - legendBgColor: background color of legend area. If Default is selected, the legend background is unfilled so the background of the trend is visible. - legendBgGradientFlag: if checked and if legendBgColor is not Default, the legend background is gradient filled. - legendPosition: indicates if the legend is positioned above, below, left, or right of the trace area. - legendTextFont: font for legend text, note that bold fonts are not supported. - legendVisFlag: the legend is visible only if this property is checked. - legendWidthPercent: the percentage of the trend width (or height, if positioned at top or bottom) to be occupied by the legend. Plot Area: - traceBgColor: background color of trace (plot) area. If Default is selected, the plot area backround is unfilled so the background of the trend is visible. - legendBgGradientFlag: if checked and if traceBgColor is not Default, the plot are background is gradient filled. X-Axis: - timeFormat: see the documentation for this property in obj_trendgraph02. If blank, HH:mm:ss is used. (Some formats are not supported, see below for details). - timeRange: the visible time range, in seconds. If the actual time range of the plotted data exceeds timeRange, a horizontal scrollbar will appear. - timeShift: the number of seconds by which the oldest timestamp in the plotted data should be rounded down, and the newset timestamp in the plotted data should be rounded up. If zero, no rounding is performed. - xAxisFlag: the x-axis is visible only if this is checked. - xAxisMajorDivisions: the x-axis will have this many divisions, with a tick mark and axis label at each division boundary. For example, if xAxisMajorDivisions = 2, a tick mark and label will appear at the left end, center, and right end of the x-axis. If zero, the number of divisions is determined automatically. Y-Axis: - yAxisFlag: the y-axis is visible only if this is checked. - yAxisLabel: a text label for the y-axis (drawn vertically) - yAxisLogFlag: if checked, the y-axis is logarithmic (base 10). Note that negative data points will not be plotted. The following properties apply to each trace 1 - 8: - trace1Label: label show for this trace in the legend and the popup data tips. - trace1LineColor: color for trace line, each trace has a unique default color. - trace1LineShadowFlag: if checked, a shadow is drawn below the trace. Uncheck this for better performance on a trace with many points. - trace1LineThickness: thin, medium, or thick. Use thin lines for better performance on a trace with many points. - trace1Value: can be attached to a scalar numeric data value, in which case a new point will be plotted on each data update, using the current time, or can be attached to a 2 column data table, where the first column contains a timestamp and the 2nd column contains the corresponding y value to be plotted. - trace1ValueDivisor: if nonzero, each y-value is divided by this property before plotting. - trace1ValueTable: can be attached to a 2 column data table, where the first column contains a timestamp and the 2nd column contains the corresponding y value to be plotted. Typically this would be static or update-once data attachment that did not update while the trend was displayed. REQUIREMENTS and LIMITATIONS: The Fx Trend requires version 9.0 or newer of the Adobe Flash Player. In the thin client, the Fx Trend is supported in any supported browser that has the Flash Player installed. If a display containing an Fx Trend is loaded into the thin client and the Flash Player is not installed, a link to the Flash Player download page will appear on the display. In the Builder and Viewer applications, the Fx Trend is supported on Windows platforms only. If a display containing an Fx Trend is opened in the Builder/Viewer, and the correct version of the Flash Player is not available or the local operating system is not Windows, the Fx Trend will be blank and an error message will be issued. In the Builder, the Fx Graphs tab is visible. The Fx Trend is not supported in the Viewer applet on any platform. The Fx Trend object can be resource intensive during display loading and updating. This should be kept in mind when designing displays -- for example, a display containing several Fx Trend objects may load slowly. The Fx Trend is drawn inside a Flash Player window. This means thats the Fx Trend will be drawn above all other objects in a display (except other Fx Trend objects) regardless of the object order -- the "Move to Front/Back" operation has no affect on the Fx Trend. Also, in the Builder, if an Fx Trend extends beyond the edges of the display, it will obscure other panels in the Builder, such as the object palette, property sheet, etc. When zooming or scrolling in the Display Builder or Display Viewer, the Fx Trend will obscure any portion of the vertical and horizontal scrollbars that it overlaps. In the thin client, if the context menu is opened near an Fx Trend object, the menu will be partially hidden by the Fx Trend. Also, a right click inside an Fx Trend will open the Flash Player menu, not the thin client's context menu. When moving an Fx Trend object in the Builder, it is best to grab and drag the trend by one of its edges, just inside the selection hilite rectangle. The trend can't be dragged from within the trace area, since that will initiate a zoom. It can be dragged by other interior areas but it may not move smoothly. The Fx Trend is not included in reports. However, in the thin client, the trend can be printed by right-clicking on the trend and selecting Print from the menu. The zoom-out feature (Shift+Click) is not available in the Display Builder's main editing panel. So it is possible to zoom-in on the Fx Trend but not to zoom-out. Both features are available in the Display Builder's preview panel. Unlike the trend graph, the Fx Trend does not support properties for yAxisMin/Max, yAxisAutoScaleMode, or timeRangeBegin/End. There is a single y-axis and its range is always autoscaled. The range of the time axis is always autoscaled. Line styles, mark colors and styles, and alarm properties are not supported. If the yAxisLogFlag property is checked, data points with negative values are not plotted since the base 10 log of a negative value is undefined. The legendTextFont property does not support bold fonts, for example Serif and SerifBold have the same appearance (unbold). The Fx Trend timeFormat property supports a subset of the time formats available in the trend graph object (obj_trendgraph02). These format characters are supported: y (year), M (month), d (day of month), E (weekday), a (am/pm marker), H (hour 0-23 in day), K (hour 0-11 in am/pm), m (minute), s (second). Also \n can be used for a newline. These characters are NOT supported by Fx Trend: G, w, W, D, S, z, Z.

Object Grid

14484: Performance improvements for obj_objectgrid

The performance of the object grid has been improved. In previous releases, the object grid's update could be slow if it was attached to a table with a large number of rows, especially if the number of rows was changing. This has been improved.

RTView Display Panel

14548: Default bg3dFlag changed to false for background model

The default for the bg3dFlag model property has been changed to false. Existing displays will not change, this change only impacts new displays.

Transaction Message Monitor

12594: Single destination supported for all messages in transactions

The Transaction Monitor has been enhanced to allow better support of re-used destinations. In previous releases, the Transaction Monitor had only limited support for re-using a single destination in multiple transaction definitions. This enhancement allows you to use the same destination as the first message in multiple transaction definitions, and also allows you to use the same destination multiple times within the same transaction definition. For each message that will be used as the first message in multiple transactions, you must specify a transDefField at the beginning of the TRANSACTIONS.ini. It must contain the destination name and the corresponding field in that destination that will contain the value that indicates which transaction the message is part of. All transDefField definitions must all come before the first transaction definition. For example: transDefField msgName fieldname Then, at the beginning of each transaction definition that contains a message specified in the transDefField, you must add a transDefValue. This must come before the first message line in the transaction definition. The transDefValue must be the value that the transDefField will contain if it is to be used to for this transaction: startBusTransaction myTrans transDefValue myTransaction msg msgA & For each message that will be used multiple times within a single transaction definition, you must specify a msgOrderField at the beginning of the TRANSACTIONS.ini. It must contain the destination name and the corresponding field in that destination that will contain the value that indicates which transaction the message is part of. All msgOrderField definitions must come before the first transaction definition. For example: msgOrderField msgA orderA Then, on each msg line that contains a message specified in the msgOrderField, you must add a msgOrderValue. The msgOrderValue must be the value that the msgOrderField will contain if it is to be used to for this transaction: startBusTransaction myTrans msg msgA ID msgOrderValue:1 msg msgA ID msgOrderValue:2 This enhancement has also added improved error checking for transaction definitions in the TRANSACTIONS.ini.

12705: Better debugging info for Transaction Monitor (TM)

The Transaction Monitor has been enhanced to enable and disable the display of debug data on an as needed basis through its JMX MBean. Whereas in the past it was necessary to launch the Transaction Monitor with the -debug command line parameter to enable debug output, it is now possible to instead start and stop the display of debug information directly through its MBean.

Version 4.7d1 Release Notes

Object Library

Control Objects

14415: Control object varToSet object property bug fix

In the 4.7c1 release, the Attach to Data menu for the varToSet property showed FUNCTION instead of VARIABLE. This has been fixed.

Version 4.7c1 Release Notes

Alerts

13673: Tabular alert objects with only one column no longer crash

In previous releases, tabular alert objects crashed if their data attachment only had one column. This has been fixed so that it does not crash, but prints an error instead.

Builder

12480: Drill down on a maximized window no longer causes window resize

In the Display Viewer, under certain conditions, invoking a drilldown command whose target was the current display could result in the Viewer window being resized; specifically, it would be restored to normal if it was maximized. This would happen only on Windows, and only if the Viewer were originally invoked with a pathname containing one or more forward slashes (e.g. "path/ file.rtv"). This problem has been fixed.

14332: Local function deletion when namespace conflicts can be undone

The Display Builder now supports undo/redo of deletion of a local function when a global function with the same name exists.

Builder - Property Dialogs

14308: Attach to Data dialogs for included objects now all uneditable

In the Display Builder, when invoking an Attach to Data dialog for an included object (an object from an included file), the fields in the dialog should be disabled, so that you can examine but not change the data attachment. There was a problem such that certain fields in some of the Attach to Data dialogs would not be disabled - in particular, those fields which invoked a subsidiary dialog via a '...' button. (An example is the Columns field in the Attach to XML Data dialog). This problem has been fixed.

Commands

12367: Support added for multiple commands per action

Multiple commands can now be defined, edited and executed. Everywhere where a single command could be defined and executed, a sequence of commands can be executed by means of the "MULTIPLE" command definition. The Define Multiple Commands dialog is presented when selecting the Define Commmand->MULTIPLE to define a command. The Define Multiple Commands dialog allows for the creation, editing, removal, duplication and reordering of single commands within a multiple command. Existing single commands can be converted to a multiple command, with the existing single command as the initial command in the command list, by selecting Define Command->MULTIPLE to edit the existing command. Multiple commands consisting of a single command will be saved as a single command. Multiple commands are executed as a sequence of individual commands. The individual commands are launched in sequence. There is no guarantee that any individual command will have completed before the execution of the next command due to their potentially asynchronous nature. If confirmation is required for a multiple command, a single confirmation dialog is presented to the user prior to the execution of the individual commands. If the user confirms the execution, all individual commands are executed in sequence with no further confirmation. If the user cancels the multiple command, none of the commands in the sequence are executed.

14359: Multiple Commands supported on Display Server

The multiple command feature is supported by the Display Server. For more information see the release note for E12367.

14363: System command no longer creates invalid drill down string

In previous versions, it was possible to create an incorrect Drill Down Command string if you left all dialogs blank, but still clicked "OK". This has been fixed so that no string will be created if you do not enter any information in the Drill Down dialog.

14377: Non-interactive commands no longer ask for confirmation.

Previously, non interactive commands(Heartbeart, Threshold and Alert) would ask for user confirmation before being executed if the Confirm Commands property, in the General tab of the Applications Options Dialog, was set to the "Confirm all." value. This is no longer the case. Non Interactive commands now no longer ask for confirmation.

Configuration Application

12716: Configuration Utility now discovers EMS Servers using routes

In an environment including multiple TIBCO EMS servers with routes configured between them, the TIBCO EMS Servers tab of the Application Options dialog will list the servers discovered via routes (assuming "Discover Servers Using Routes" on the EMS Administration tab is checked). While this worked correctly when the Application Options dialog was invoked from the Display Builder, in the Configuration Utility it did not work correctly; servers that should have been discovered via routes were not listed. This has been fixed.

Customization

14357: Custom Data Source can reuse GmsTabularData in Data Server

The Data Server has been enhanced to better support custom data sources. Some custom data sources reuse instances of the GmsTabularData object. For example, a data source may append a new row of data to an existing data table, rather than creating a new table with all of the rows. However in the previous release, the data server did not always push a modified table to its clients. This has been fixed. No changes are required to custom data source code to take advantage of this improvement, provided all the modifications the data source makes to an existing GmsTabularData object involve at least one of the following methods: setCellValue, setDateCellValue, addRow, removeRowAt, insertRowAt, addColumn, removeColumnAt, appendData, sortRows. If a custom data source modifies a GmsTabularData object without using one of those methods, it should call the bumpModCount method afterwards. It is harmless to call bumpModCount more than once per modification to the table.

Data Sources

12564: Missing data source jar warnings removed

In previous releases, an error was printed to the console if the jar for any of the standard licensed data sources was not found. These errors are now only printed if you use the -dsfailtrace command line argument.

IBM WebSphere MQ Administration Data Source

12737: Additional columns added to Channel table for IBMADM data source

The following columns have been added to the Channel table: Buffers received, Buffers sent, Bytes received, Bytes sent, Batches completed These values use the following internal attributes MQIACH_BUFFERS_RECEIVED, MQIACH_BUFFERS_SENT, MQIACH_BYTES_RECEIVED, MQIACH_BYTES_SENT, MQIACH_BATCHES

JMS Admin Data Source (for TIBCO EMS only)

13968: Enterprise RTView no longer crashes if TIBJMS_ROOT is unset

In previous releases, Enterprise RTView crashed if the TIBCO EMS Administration data source was licensed, but the TIBJMS_ROOT environment variable was not set. This has been fixed.

JMX Data Source

12639: Support added for arguments in JMX data attachments

Support has been added for arguments in JMX data attachments. When using the Attach to JMX Data dialog, if an attribute or operation is selected which requires arguments, the necessary dialog fields are displayed in the dialog to allow for their input. RTView passes the data to the MBean with no additional data validation. This functionality is limited to 20 arguments.

12715: Wildcard support in Connection and mBean Name with notifications

Wildcards are now supported in Connection and mBean name fields of a JMX Data Attachment. 1. Star (*) in Connection Using a * in the Connection field allows the data object to ask for data from all mBeans of the given type from all visible connections. 2. Star (*) in mBean name (Key/Properties in mBean name) Using a * in the mBean name allows mBeans of the same type but offering different data to share a connection. Only a single * is allowed in the RTView mBeanName for a given data object and it must occur after the final colon. E.g. the mBean names offered by a Connection could be "myBean:type=1" and "myBean:type=2". By using a star, references to data from both mBeans may be specified as: "myBean:*". All key/property pairs from the colon will be used. 3. Fetch Initial Data for Notified Data objects The previous implementation of JMX notifications did not poll for initial data values. 4. Star (*) or semi-colon delimited list of attributes for Notified Data objects The previous implementation of JMX notifications did not allow for * or a list of ttributes to be used.

12747: Can now define a local MBeanServer connection

The RTView JMX Datasource can now make a connection to a local MBeanServer. This avoids the remote RMI connection. SImply put the word "local" into the URL field when defining a new JMX Connection. This will indicate that the connection will find an in- process MBeanServer and use it for the connection.

14329: JMX security credentials passthrough supported

User login credentials can now be passed into the JMX connections. To specify that a connection should use the user credentials, select the Use Client Credentials checkbox in the Add JMX Connection dialog. If this is selected, the user credentials from the Enterprise RTView login will be passed into the JMX connection. The User Name and Password from the Add JMX Connection dialog will not be used. If Use Client Credentials is selected, the connection will only be made if the application is running with the login enabled. When using this feature with the Data Server, you must use the -passclientlogin command line option or select the Use Client Credentials for Database Login option in the Data Server interface in addition to running the Display Viewer or Display Viewer Applet with the login enabled. When using this feature with the Display Server, you must use the -passclientlogin command line option in addition to setting the LoginEnabled flag in the servlet.

14398: Argument fields now show for solitary operation

In previous versions, when an operation was selected from a JMX Application that had only1 operation, the argument fields would fail to display in the Attach to Data Dialog. This has been fixed.

OSISoft PI Data Source

14340: Long point names in PI Data Source no longer cause crash

Previously, point names longer than 80 characters would cause Enterprise RTVIew applications to crash. Although Enterprise RTView still cannot retrieve data for points with tagnames longer than 80 characters, applications will continue to run. In the builder, a warning label is displayed if a point name longer than 80 characters is selected or entered when attaching to the PI Data Source.

14341: Historical data retrieval algorithms in PI Data Source improved

When retrieving historical data using the GetArcValuesX method, time intervals with missing data were not handled properly. The retrieval algorithm has been modified to return interpolated values if no archived data is available for the specified time interval.

StreamBase Data Source

14360: Streambase version 3.7.7 now supported

We now support Streambase version 3.7.7. Prior versions will no longer be supported.

Drill Down

14317: Drill Down location, title and modality in Display Server

The title, position, and modality of browser popup windows opened from the thin client can be configured using the new features described in the release note for E10785. The following limitations apply to this feature in the thin client: - Setting the Window Mode to Topmost has no effect; it is equivalent to setting Window Mode to Normal. - A modal popup will not prevent the user from closing the main browser window. - If the specified position for a popup would cause it to be completely off-screen, the position will be adjusted so that the popup is at least partially on-screen. - When a modal popup is open, if the user clicks outside of the display from which the popup was opened, but still within the same browser instance (for example, in another frame or iframe), the modal dialog may be obscured. When the mouse is moved across or clicked in the parent display, the modal dialog will be raised to the top. - In Firefox, after closing a modal popup the next mouse click in the parent window is sometimes ignored. - A popup window configured to open in the center of the screen or the center of its parent may open slightly lower than expected.

Functions

12631: Function no longer fails when time column is not first column

In the previous release, the Group by Time (and Unique Value) functions failed if the filter column specified was not the first column returned by the data attachment. This has been corrected.

12720: User prompted to confirm before deleting an active function

The Display Builder Functions dialog has been enhanced so that if you try to remove a function that is being used in the current display, you will receive a dialog warning you that the function is in use and asking you to confirm its removal.

12724: Additional information about functions available

The Display Builder has been enhanced to give you more information about functions as you create and edit them within a display. Global functions are now included. Previously functions defined in global files were available for use in the Attach to Function Data dialog but were not included in the Function dialog. Functions can now have a description. When editing a function you may include a textual description of any length. This information will be saved with the display. Functions are displayed in tabular form with additional information. The function table will display, in addition to the function name: Description Local - true (checked) if the function is defined in the current display Source - if a function is defined in a global or an include file, the name of that file Uses - the number of times the function is used in the current display. The function table may be sorted on any of these columns by clicking the column header. Note that unless a function is defined in the current display (i.e. if it is global or included) it cannot be removed or edited; the Edit Function dialog may be invoked for the function but it will display information only. Note also that an Edit button has been added to the Function dialog; the Edit Function dialog may also be invoked by double-clicking a function as before. Finally, note what happens if you have a global function of the same name as a local function. You will see only the local function in the dialog, and you will get a warning to the console like "Warning: function 'X' from file 'xxx.rtv' already found; second definition ignored". You will see this also if you open for editing a display containing functions that is also defined as a global file. The Edit Function dialog has been enhanced to include a text area for entering a description and to display the global file for a global function, as well as the include file for an included function. It will also display a reminder message about why the function is not editable if it is global or included. The Attach to Function dialog has been enhanced to display the description, if any, for the function selected.

12732: Global functions now supported in alerts

In the prior release, global functions did not work if referenced in an alert definition file. For example, if the value property of obj_alert_limits was attached to a global function, the value remained set at its initial value of zero, regardless of the global function result. This problem is fixed.

12734: Data attachments in included functions are now uneditable

In the Display Builder Edit Function dialog, when editing a function that is not defined in the current display, the editable field in the dialog are presented as read-only. However if a function argument field was attached to data and was double-clicked, the Attach To Data dialog would come up and would not be read-only. This behavior has been changed as follows: if the argument is not attached to data then double-clicking it will have no effect; if it is attached to data, double-clicking it will bring up the Attach To Data dialog, but the dialog will be read-only.

12740: Historian handling of function results has been optimized

The Historian has been enhanced to avoid computing and storing a function result too frequently. For example, say an ADD function is used on a history display to add numeric fields from two Rendezvous messages. In prior releases, the ADD function result would be computed and stored whenever either message was received, even if both messages arrived at nearly the same time. In this release, if both messages are received at nearly the same time the function result will be computed and stored only once, using the values from the newly received messages. Displays that show historical function results in a table or graph should no longer show extra results for each argument update. If a function's arguments and its results are all stored by the historian, a slight difference may be seen between the timestamps of the arguments and the result. The difference should be less than a half- second.

14343: Private functions of global file no longer accessible

In the previous release, it was possible for an object to be attached to a private function from a global file. This is fixed.

14344: Function attachment attaches to global if local deleted

The following enhancement has been made to the Display Builder. If a function defined in the current display is deleted, and objects in the display are attached the function result, and there is a global function with the same name, then if the local function is deleted the attached object(s) will update to show the result of the global function, since that is the function to which they are now attached.

14358: Changing references of filtered function attachments now works

In the previous release, if a function was renamed in the builder and the user opted to update existing attachments to use the new name, and all of those attachments applied a filter to the function result, the attachments were not updated but still referenced the old function name. This is fixed.

14374: REFERENCE and COPY functions update immediately

The REFERENCE and COPY function will update immediately when the table argument is set, rather than waiting until the next expiration of the redraw_rate timer.

Licensing

11820: Headless run_gmsregister available for getting PIN

A new option, -nogui, has been added to the run_gmsregister script. This option will bypass the registration dialog, and instead print the PIN to the console. This is useful for licensing on headless systems.

Local Variables

11220: Global variables implemented

Support has been added for global variables. Global variables are similar in many respects to global functions. In prior releases, an object's property could be attached to a variable either (a) defined in the current display, or (b) defined in another display file that is included by the current display. Note that (a) works best for a variable that is only used on one display, while (b) works best for a variable used on multiple displays, but where the variable's value can be different on each display. If a variable should have the same value on every display where it is used, then a global variable is appropriate. A global variable is also useful when used as an argument of a global function. As with global functions, a global variable is defined in a Global Definition file. Objects on any display can attach to a global variable, and any control object can set its value. A Global Definition file, or global file for short, is simply a .rtv file that has been selected on the Globals tab of the Options dialog. Each global file is loaded when an Enterprise RTView application starts, and each variable or function in the display that is marked as public becomes a global variable or function. (See the release note on global functions for more information). The variable namespace is flat. If the same public variable name occurs in multiple global definition files, only the first one encountered will be used. If a local variable defined in the current display has the same name as a global variable, the local variable will be used. If an existing configuration uses global functions and any of the global definition files contain local variables, they will become global variables when using this release. If the user does not want an existing variable to be global, it will be necessary to edit the display and uncheck the Public checkbox for the variable. This feature is supported in all deployments. However, if this feature is used in combination with alerts, the behavior may vary by deployment. In a standalone Display Viewer deployment, the data sources for alerts, variables, and functions are all contained within the Viewer application. In the Display Server and Data Server deployments, however, the alert data source resides in the server, and is not affected by changes to variables made in the viewer client. In the Thin Client, the scope of global variables and functions is intentionally limited to a browser session. In other words, if multiple displays are opened in the same browser instance (in multiple tabs or popup windows, for example) those displays will all share the same set of global variables and functions. However, displays opened in a different browser instance (a browser running on a different client, say) will use a separate set of global variables and functions. This is done so that any runtime changes a user makes to the value of a global variable (by clicking on a control object, for example) will not affect the displays on other clients. The Display Server will discard the set of global variables and functions for a client session if it receives no requests from the client for 10 display timeout periods (the default display timeout is 1 minute), or 5 minutes, whichever is longer.

12725: Additional information about variables displayed

The Display Builder has been enhanced to give you more information about variables as you create and edit them within a display. - Global variables are included. Previously variables defined in global files were available for use in the Attach to Variable Data dialog but were not included in the Variables dialog. - Variables are displayed in tabular form with additional information. The variable table will display, in addition to the variable name: Scope  either Local, Included, or Global Source  if a variable is defined in a global or an include file, the name of that file The variable table may be sorted on any of these columns by clicking the column header. Fields in the dialog used to edit the properties of a variable will be selectively disabled depending on the variables scope: - Included and Global variables: cannot remove or change Public state - Global variables: cannot change initial value.

14351: Global definition files can now have spaces in name

In the previous release, a filename that contained spaces could not be specified as a global definition file. This problem is fixed.

Object Library

Control Objects

12630: Empty string supported in control object *listValues

The listValues property of the combo box and list box control objects can now specify an empty string for an item's label or value. This also applies to the radioListValues property of the radio control. For example, if the following string is assigned to the listValues property of a list box, the list box will display 3 items where the 2nd item is an empty string: item1;;item3

12723: Keyboard traversal of control objects improved

To improve keyboard traversal of control objects in a display, an integer property named tabIndex has been added to the following control objects: all text controls (obj_c1text*) button (obj_c1button) combo (obj_c1combobox) checkbox (obj_c1btn_chk) radio button (obj_c1radio) list box (obj_c1tlb) table (obj_table02) The default value of tabIndex is zero. When a display is opened, keyboard focus will be given to the control object on the display with the smallest positive tabIndex, if any. Objects which are disabled, invisible, or have a tabIndex of zero or less will not be considered. If the smallest positive tabIndex is assigned to several objects on a display, the one nearest to the beginning of the display's object list will receive the initial focus. Focus can be transferred from one control to the next by pressing Tab, or to the previous control by pressing Shift+Tab. (In some controls, such as obj_c1textarea, the Ctrl key must also be pressed to transfer focus). In this release, the tabIndex property determines tab order. Controls with a tabIndex <= 0 are last in the tab order, otherwise the tab order follows increasing tabIndex values. If several controls have the same tabIndex, the tab order among them is determined by their order in the display's object list. For example, say a display has 4 text controls named N1, N2, N3, and N4, and they appear in the display's object list in the following order with these tabIndex values: N1 10 N2 20 N3 20 N4 0 Assume all 4 text controls are visible and enabled. When the display is opened, focus will be assigned to N1, since it has the smallest tabIndex greater than zero. Pressing Tab will transfer focus first to N2, since it has the next larger tabIndex (note that N3 has the same tabIndex but appears after N2 in the object list), then to N3, and finally to N4. A property named defaultButtonFlag has been added to the button control object (obj_c1button). If a display contains a button whose defaultButtonFlag property is true, the button can be activated (clicked) by pressing the Enter key when the display has keyboard focus. The button must also be visible and enabled. If several buttons on a display have defaultButtonFlag checked, it will be ignored on all but the first. The default button is higlighted with an extra border. Limitations: In the Viewer, the following objects give no indication when they have keyboard focus: checkbox, radio button, and listbox (if the selected list item is not visible). Focus traversal of radio buttons differs between the Viewer and the thin client. In the Viewer, Tab transfers focus within a radio group and spacebar selects the focused radio button. In the thin client, the arrow keys transfer focus between buttons within a radio group, and transferring focus from one button in a radio group to another selects the newly focused button. In the thin client, the tabIndex property has no effect on the table object, so a table object cannot be given the initial focus nor can it be given focus via the tab key. In the thin client in Firefox, the default button is activated via the Enter key only if another control object has focus when the Enter key is pressed. If no control on the display has focus, nothing occurs when the Enter key is pressed.

Stock Chart

12739: yAxisFormat and yValueFormat properties added to stock chart

Properties named yAxisFormat and yValueFormat have been added to the stock chart. These properties have been available on other graph objects, such as the trend graph and xy graph, in prior releases. The format of the y-axis labels is determined by yAxisFormat. The format of the y values shown on the legend is determined by yValueFormat. Both properties are blank by default, indicating that a format with 2 decimal places (0.00) should be used.

RTView Display Panel

10875: Allow user to specify location, title and modality for dd window

The Drill Down Properties dialog has been enhanced to allow the user to specify Window Position, Window Title and Window mode for newly created Drill Down windows. Window Position =============== Window position can be used to specify the position of newly created Drill Down windows. Window position can be set to one of five modes using Set Window Position combo box. The five position modes are: Default Center of Screen Center of Parent Relative to Screen Relative to Parent Default: This is the previous positioning behavior for new Drill Down windows. The client OS window manager will position the newly created Drill Down window. Center of Screen: The newly created Drill Down window will be centered on the screen the parent window occupies. The parent window is the window the newly created Drill Down window was launched from. Center of Parent: The newly created Drill Down window will be centered on the window from which the newly created Drill Down window was launched. Relative to screen: The newly created Drill Down window will be positioned relative to the screen the parent window occupies. The position of the newly created Drill Down Window is specified in the pixel offset (Pixels from left: and Pixels from top:) of the top left corner of the newly created Drill Down Window from the top left corner of the screen the parent window occupies. The parent window is the window from which the newly created Drill Down window was launched. The user must enter the Pixels from left: and Pixels from top: as integer values. Relative to Parent: The newly created Drill Down window will be positioned relative to the parent window. The position of the newly created Drill Down Window is specified in the pixel offset (Pixels from left: and Pixels from top:) of the top left corner of the newly created Drill Down Window from the top left corner of the parent window. The parent window is the window from which the newly created Drill Down window was launched. The user must enter the Pixels from left: and Pixels from top: as integer values. Window Title: ============= Window Title can be used to specify the Title (text in the title bar) of newly created Drill Down windows. The user can set the title by entering the literal title text in the Window Title: text field. If the title is not set, or is empty, then the existing title mechanism will be used (This is the application name followed by the drill down display file name) Window Mode =========== Window Mode can be used to specify the stacking order and behavior of newly created Drill Down windows. Window Mode can be set to one of the three modes using the Window Mode radio buttons. The three window modes are: Normal Modal Always on top Normal: This is the previous behavior for newly created drill down windows. The newly created Drill Down window will be modeless, that is it allows user input in the newly created Drill Down Window, and any other window created by the application. The stacking order of the newly created window is determined by the setting of the "Drill Down Windows Always on Top" global option. Modal: The newly created Drill Down window will be an application modal dialog, that is it allows user input in only the newly created Drill Down Window, and user input will be ignored in any other window created by the application. The stacking order of the newly created modal window is on top of all the other application windows to prevent it being obscured by them. It does this by using the setAlwaysOnTop property Topmost: The newly created Drill Down window will be a modeless window that has the setAlwaysOnTop property set to true. The newly created Drill Down window will be modeless, that is it allows user input in the newly created Drill Down Window, and any other window created by the application. The stacking order of the newly created Drill Down window is on top of all the other non "topmost windows". This applies independent of the setting of the "Drill Down Windows Always on Top" global option. setAlwaysOnTop property setAlwaysOnTop Note on setAlwaysOnTop from http://java.sun.com/j2se/1.5.0/docs/api/java/awt/window.html#setAlwaysOnTop(boolean) Changes the always-on-top window state. An always-on-top window is a window that stays above all other windows except maybe other always-on-top windows. If there are several always-on-top windows the order in which they stay relative to each other is not specified and is platform dependent. If some other window already is always-on-top then the relative order between these windows is unspecified (depends on platform). No window can be brought to be over always-on-top window except maybe another always-on-top window. All owned windows of an always-on-top window automatically become always-on-top windows. If a window ceases to be always- on-top its owned windows cease to be always-on-top. When an always-on-top window is sent toBack its always-on-top state is set to false. This method makes the window always-on-top if alwaysOnTop is true. If the window is visible, this includes bringing window toFront, then "sticking" it to the top-most position. If the window is not visible it does nothing other than setting the always-on-top property. If later the window is shown, it will be always-on-top. If the Window is already always-on-top, this call does nothing. If alwaysOnTop is false this method changes the state from always- on-top to normal. The window remains top-most but its z-order can be changed in the normal way as for any other window. Does nothing if this Window is not always-on-top. Has no effect on relative z-order of windows if there are no other always-on-top windows. Note: some platforms might not support always-on-top windows. There is no public API to detect if the platform supports always-on- top at runtime. If a SecurityManager is installed, the calling thread must be granted the AWTPermission "setWindowAlwaysOnTop" in order to set the value of this property. If this permission is not granted, this method will throw a SecurityException, and the current value of the property will be left unchanged. The AWTPermission is set using the PolicyTool as described here http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/policytool.html

Transaction Message Monitor

12593: Supported added for queues and temporary destinations

The Transaction Monitor has been enhanced to support standard queues and temporary destinations (both topics and queues) for transactions that use TIBCO EMS. The queue messages are not consumed. For both queues and temporary destinations, the TIBCO system monitor messages are used to get the message, so in order to use these in your transactions, you must use a connection that has permission to receive system monitor messages. The system monitor messages generate additional overhead on your EMS server, see your TIBCO documentation for more information. Note that TIBCO does not guarantee system monitor messages, so we may not receive system monitor messages for some queue or temporary destination messages. This means that the Transaction Monitor may report that a transaction is stalled, when it actually completed. The system monitor messages may also not be sent at the same time as the original message, so the latency values my not be accurate. There is no workaround for this. However, in most cases, they will be sent at about the same time the original message was sent. Queue Support: On the msg line of your transaction definition in TRANSACTIONS.ini, preface your destination with QUEUE: in order to specify a queue. For example: msg QUEUE:status.queue.current $prop:ID Instead of subscribing directly to the queue, the Transaction Monitor will subscribe to the system monitor message for that queue. For example $sys.monitor.Q.r.status.queue.current When this message is received by the Transaction Monitor, the original message is retrieved from the message_bytes field of the system monitor message and processed. Only the header and property information for the original message can be retrieved from the message_bytes field, so the id field for all queue messages must be a property or header. IDs in message fields are not supported for queue messages. The connection for this message must have permission to receive system monitor messages and must be to the sending server (ie the queues home server), since this system monitor message is generated when the queue message is sent by the producer. Temporary Destination Support: Temporary destinations are supported on any message in your transaction definition, except the first message. The first message must be a standard (non-temporary) topic or queue. On the msg line of your transaction definition in TRANSACTIONS.ini, use TEMP_DEST in order to specify a temporary destination. For example: startBusTransaction myTransaction msg status.topic.current ID msg TEMP_DEST $prop:ID interface myInterface endBusTransaction Since the Transaction Monitor does not know in advance which destination a temporary destination will resolve to, it will subscribe to the system monitor messages for all temporary destinations on the each connection in your transaction definition that contains a temporary destination. When the message previous to the temporary destination message in the transaction definition is received (staus.topic.current in the example above), the Transaction Monitor will get the destination from the JMSReplyTo property to determine which temporary destination will be used for the next message in the transaction. This destination is always on the same server that sent the message, so the connection for temporary destination, as well as the previous message containing the JMSReplyTo value, must be to the server that sent the message (ie the home server for the topic or queue). This connection must have permission to receive system monitor messages. By default, if a transaction definition contains a temporary destination the Transaction Monitor will subscribe to these system monitor messages: $sys.monitor.Q.r.$TMP$.> $sys.monitor.T.r.$TMP$.> You can narrow down the number of system monitor messages that will be sent to the Transaction Monitor in 2 ways. First, you can specify that you are only using temporary topics or temporary queues by using the tempdestmode: command line property or the tempdestmode parameter in TMOPTIONS.ini. For example, on the command line: -tempdestmode:TOPIC_ONLY -tempdestmode:QUEUE_ONLY For example in TMOPTIONS.ini: tempdestmode TOPIC_ONLY tempdestmode QUEUE_ONLY If the TOPIC_ONLY option is specified, the Transaction monitor will not subscribe to $sys.monitor.Q.r.$TMP$.>. If the QUEUE_ONLY option is specified, the Transaction Monitor will not subscribe to $sys.monitor.T.r.$TMP$.>. The second way to narrow down the number of system monitor messages that will be sent to the Transaction Monitor is to use the  tempdest: command line argument or tempdest parameter in TMOPTIONS.ini to specify a more specific topic for the system monitor messages. For example, on the command line: -tempdest:$TMP$.MyEmsServer.> For example in TMOPTIONS.ini: tempdest $TMP$.MyEmsServer.> This will be used instead of $TMP$.> in the system monitor message subscriptions. Since TIBCO does not guarantee that the system monitor temporary destination message will arrive after the previous message in the transaction, the Transaction Monitor will store all temporary destination messages that it receives that do not already have a listener. In order to prevent a memory problem, temporary destination messages that have been stored for 5 minutes without any listeners registering for them are removed. This time limit can be changed by using the tempdestexpire: command line option or the tempdestexpire TMOPTIONS.ini parameter. These options take a time argument in milliseconds. For example, on the command line: -tempdestexpire:10000 For example, in TMOPTIONS.ini: tempdestexpire 10000 The above example will delete temporary destination messages that have been stored for more than 10 seconds without a listener. The Transaction Monitor assumes that it will not have multiple transaction instances using the same temporary destination at the same time. For example, the JMSReplyTo value for the message before the temporary destination resolves to a destination $TMP$.12345. If the Transaction Monitor has received a message from that destination that has not expired, it is assumed to be the correct message for the transaction. If the Transaction Monitor has not yet received a message from $TMP$.12345, it will assume that the next message that comes in from that destination is the correct message for the transaction. When a temporary destination message is received, the original message is retrieved from the message_bytes field of the system monitor message and stored until a listener requests it, or until the specified expire time passes. Only the header and property information for the original message can be retrieved from the message_bytes field, so the id field for all temporary destination messages must be a property or header. IDs in temporary destination message fields are not supported.

Version 4.6c1 Release Notes

Alerts

12524: Alert demo added

The Alert Demo has been added to the distribution to illustrate the basic features of the Enterprise RTView Alert Engine.

12671: Acknowledging multiple alerts now supported

The Acknowledge Alert command has been enhanced to take multiple alert id's. Specify a ; (semicolon) delimited list of alert id's for the ID argument to acknowledge multiple alerts from a single command.

Builder - Options Dialogs

12602: All Application Options settings now restored by Reset button

In the Display Builder Application Options dialog, certain settings were not restored to their previous values if you changed them and then clicked Cancel. These settings included: Tab Setting ---- --------- General Drilldown Windows Always On Top Data Server (All settings) TIBCO EMS Admininstration (All settings) This problem has been fixed.

Commands

12519: Heartbeat feature implemented

A heartbeat feature has been added that allows the user to configure any of the system or data source commands to be executed with a specified periodicity. In addition to the commands, application level substitutions are supported, together with the built-in $appName and $appVersion substitutions. The heartbeat option is configured using the Display Builder, and the heartbeat options are stored in the OPTIONS.ini file. To configure the heartbeat options: Run the Display Builder Select the Tools->Options... Menu Item Select the General List item on the left of the Applications Options dialog. Select the Heartbeat Configuration tab at the right of the Applications Options dialog. You can enable/disable heartbeat using the check box. You can enter the heartbeat period (in milliseconds). You can configure the heartbeat command by selecting the type of command using the drop down list. This will bring up a define command dialog of the selected type. Configure the command using the command dialog. Use "Apply" or "OK" from the heartbeat configuration tab to use the configured heartbeat in the current instance of Enterprise RTView Builder. Use "Save" to save the configured heartbeat for use by other servers. The heartbeat options are saved in the OPTIONS.ini file.

12538: Send SNMP Trap command implemented

A new Command Type has been added to the Enterprise RTView System Command: Send SNMP Trap. This enables a display to send an SNMP Trap message such as would be sent from an SNMP Agent to a SNMP Management Station. To configure an object in a display to execute a Send SNMP Trap command, right-click command in the objects properties and select System from the Define Command list. In the Define System Command dialog select Send SNMP Trap from the Command Type drop-down list. Click Define SNMP Trap Message to get to the Define SNMP Command dialog. Here you will see the following: Trap Type: The SNMP version of the trap. Destination Address: The system name or IP address of the receiving system. The default value is 127.0.0.1 (localhost). Destination Port: The UDP port on the receiving system. The default value is 162. The value must be an integer greater than 0. Community Name: The SNMPv2 Community Name string. The default value is 'public'. Enterprise OID: The SNMP Object ID to be used as the sender's Enterprise. The default value is 'snmpTrap' (1.3.6.1.6.3.1.1.5). Generic Trap: Select one of the generic traps. Specific Trap: If the generic trap is 'EnterpriseSpecific' enter an integer value here. The Help button in the dialog will display the above information. The Reset button will reset all fields to the default values. When the command is executed (e.g. by double-clicking the object in the Display Builder) the trap message will be sent. Use of the SNMP Trap command requires outgoing access to UDP port 162 (or a different port if specified in the command) from your installed Java Runtime Environment (if the display is running in an application) or your Web browser (if the display is running in the applet).

Configuration Application

11531: Stand-alone configuration utility added

The Display Builder Application Options dialog is now available in a stand-alone Configuration Utility that may be run independent of the Display Builder to set options for applications and data sources. The Configuration Utility may be run with the command run_configutil and may be given the same command-line arguments as the Display Viewer. The introduction of the stand-alone Configuration Utility imposes new coding requirements on custom option tabs that will be added to the Application Options dialog, because the dialog's parent may now be either a JDialog or a JFrame. Custom option tab classes must be prepared to handle either scenario. The following examples illustrate how this should be done. 1. Declare the dialog parent as a Window (superclass of both JDialog and JFrame) and provide overloaded class constructors for both cases. Previously: // XXX Option Tab class public class XXXOptionTab implements GmsRtViewOptionTabInt, . . . { private JDialog dialogParent; . . . } // XXX Option Tab class constructor public XXXOptionTab (JDialog dialogParent, . . .) { this.dialogParent = dialogParent; . . . } Now: // XXX Option Tab class public class XXXOptionTab implements GmsRtViewOptionTabInt, . . . { private Window dialogParent; . . . } // XXX Option Tab class constructor for JFrame public XXXOptionTab (JFrame dialogParent, . . .) { this((Window)dialogParent, . . .); } // XXX Option Tab class constructor for JDialog public XXXOptionTab (JDialog dialogParent, . . .) { this((Window)dialogParent, . . .); } // XXX Option Tab class constructor common code public XXXOptionTab (Window dialogParent, . . .) { this.dialogParent = dialogParent; . . . } 2. If the option tab brings up subordinate dialogs, provide overloaded class constructors for those classes as well, and construct them according to the actual runtime class of the dialog parent. // XXX Option Tab Sub Dialog class private class XXXSubDialog extends JDialog . . . { . . . } Previously: // XXX Option Tab Sub Dialog class constructor private XXXSubDialog (JDialog parent) { super(parent, ...); setTitle(...); . . . } // Invoking the XXX Option Tab Sub Dialog XXXSubDialog subDialog = new XXXSubDialog(dialogParent); subDialog.setVisible(true); Now: // XXX Option Tab Sub Dialog class constructor for JFrame private XXXSubDialog (JDialog parent) { super(parent, ...); makeXXXSubDialog(parent); } // XXX Option Tab Sub Dialog class constructor for JDialog private XXXSubDialog (JFrame parent) { super(parent, ...); makeXXXSubDialog(parent); } // XXX Option Tab Sub Dialog class constructor, common code private void makeXXXSubDialog (Window parent) { setTitle(...); . . . } // Invoking the XXX Option Tab Sub Dialog XXXSubDialog subDialog = null; if (dialogParent instanceof JFrame) subDialog = new XXXSubDialog((JFrame)dialogParent); else if (dialogParent instanceof JDialog) subDialog = new XXXSubDialog((JDialog)dialogParent); subDialog.setVisible(true);

12567: User warned to save when changes made to Application Options

In the Display Builder Application Options dialog, if you changed values on any tab and then closed the dialog without saving the options you were not warned that you had unsaved changes. Now you will receive a warning dialog if you try to close the dialog or exit the program with unsaved application options. From the warning dialog you can choose to go ahead and close the dialog or the program, or you can decide not to close or exit and return to the options dialog. Note that if you choose Cancel from the options dialog you will not receive the warning. Note also that if you have applied changes and declined to save them (by choosing OK from the warning dialog) you will not be warned again if you reopen and close the dialog. Information for developers of custom data sources: The interface which is implemented by the data sources Application Options dialog tab now includes the following two new members: /** This method is called to update the option tab's local copy of its data. */ public void updateCurrentData (); /** This method is called to check whether data in the option tab has been changed since the last time it was applied. */ public boolean isDataChanged (); These members must be implemented in your dialog tab class.

Data Historian

12665: SQL datasource no longer included in gmsjrtvhistorian.jar

The com.sl.gmsjsqlds package is no longer included in gmsjrtvhistorian.jar, since that package is distributed in gmsjsqlds.jar. This change has no impact on users that use the standard scripts to launch the Data Server, Display Server, and Historian. Custom scripts, however, may need to be changed to include gmsjsqlds.jar in the classpath.

Data Sources

12565: Data source options file processing has changed

A change has been made in how options files are processed for data sources and the Enterprise RtView AppManager. Previously, all options in all options files that were not processed by the AppManager were applied to all data sources. The new behavior is as follows: 1. OPTIONS.ini is read and processed by the AppManager. Any options not processed there are saved for data sources (step 3). 2. Each available data source is asked if it has an options file. If so, that file is read and the options are applied to that data source only. If any option in that file is not processed by the data source, an error message will be printed to the console. 3. Any options remaining from OPTIONS.ini are applied in turn to each data source that does not have its own options file. If any of those options are not processed by any data source, an error message will be printed to the console.

IBM WebSphere MQ Administration Data Source

12620: Connection parameters in TMOPTIONS.ini are now properly parsed

Connection parameters for IBM WebSphere MQ are now parsed correctly for the Transaction monitoring utility. The connection parameters are described in the Enterprise RTView User Guide documentation. Connection parameters can be defined on the command line, or in the TMOPTIONS.INI File. Command line parameters are defined in Appendix C: Transaction Monitor Command Line. Options for TMOPTIONS.INI are described in Transaction Monitor Options in the User Guide. Examples of a command line options to use IBM Websphere MQ as a JMS message source would be -jmsfactory:com.ibm.mq.jms.MQTopicConnectionFactory -jmsclient:null -jmsuser:MyUser -jmspassword:MyPassword -jmshostname:MyHost -jmsport:1420 -jmsqueuemanager:PUB_SUB_QM Examples of entries in the TMOPTIONS.INI file would be jmsfactory com.ibm.mq.jms.MQTopicConnectionFactory jmsclient null jmsuser MyUser jmspassword MyPassword jmshostname MyHost jmsport 1420 jmsqueuemanager PUB_SUB_QM

12625: Mechanism for retrieving IBM MQ Server metrics optimized

Previously the the IBMADM (IBM WebSphere MQ Administration) Data source queried for all metrics every update. The IBMADM data source now keeps track of displays that view specific MQ server metric tables (Channels, Queue Managers and Queues). Requests for data to update those (MQ Server metric) tables (at the rate specified by the IBM WebSphere MQ Connections Metrics Update Period) are now only made when displays containing tables attatched to MQ server metric tables are open. The mechanism for requesting Channel metrics has also been further optimized. Some examples: No displays with MQ server metric tables are open. No MQ server metrics are requested at the next IBMADM data source update. A display with only a Queue Manager metrics table is open Only Queue Manager metrics are requested at the next IBMADM data source update. Several displays with Queue Manager and Queue metrics tables are open. Only Queue Manager and Queue metrics are requested at the next IBMADM data source update. A Display with Channel, Queue Manager and Queue metrics tables is open. Channel, Queue Manager and Queue metrics are requested at the next IBMADM data source update.

12626: Metrics Update Period implemented for IBM WebSphere MQ

The IBM WebSphere MQ Connections Options Dialog Tab has been enhanced to include a way to specify the metrics update period. This value is also saved in the IBMADMOPTIONS.ini file when options are saved. Metrics Update Period Enter the time in milliseconds to control how often IBM WebSphere MQ metrics will be queried. Default is 0, which queries according to the update period specified on the Application Options General tab. OTE: Because the Metrics Update Period is superceded by the General Update Period, the amount of time elapsed between queries may be longer than the value entered. For example, if the General Update Period is 2000 milliseconds and the Metrics Update Period is 5000 milliseconds, EMS Server metrics and IBM WebSphere MQ metrics will be queried every six seconds (6000 milliseconds).

JMX Data Source

12634: Date column type now supported in JMX tabular data

Date type columns are now supported in JMX tabular data.

12637: JMX Notifications now supported

Support for JMX notifications has been added. There is an additional choice in the the JMX data attachment dialog. It shows up under the Data Mode: combobox. The choices are "Poll for Values" or "Listen for Notifications". The default "Poll for Values" is the same as the older choice and tells the JMX data source to get all mbean updates by polling the attributes or executing the exposed methods as before. The new choice "Listen for Notifications" changes the title of the Attribute(s)/Operation(s): choice that follows to Attribute(s):. Older .rtv files will default to "Poll for Values" and should function as before where the update happens as the timer specified in Tools | Options | JMX. Newer data attachments that use "Listen for Notifications" do not pay attention to the timer and are registered with the connection to receive notifications, which may be sent by the mbean server at any time. It is the responsibility of the mBean server to send notifications. Enterprise RTView will only display data received via notifications, if the data attachment is set up that way. The user can see what Notifications are available by creating a data attachment and changing the default Data Mode to "Listen for Notifications". The Attributes and Fields available will then be offered in the comboboxes of the same name, if any. The mBean server must implement the getNotificationInfo() method of javax.management.NotificationBroadcaster to specify what Attribute Change Notifications are sent. See http://java.sun.com/j2se/1.5.0/docs/api/javax/management/NotificationBroadcaster.html The method to be implemented is described as follows in the Java Documentation: public MBeanNotificationInfo[] getNotificationInfo () Returns an array indicating, for each notification this MBean may send, the name of the Java class of the notification and the notification type. It is not illegal for the MBean to send notifications not described in this array. However, some clients of the MBean server may depend on the array being complete for their correct functioning. Returns: the array of possible notifications.

12638: Enhanced support of MBean names that include wildcard

The processing of MBean names that include the "*" wildcard has been enhanced. Previously, only a single additional column would be appended to the table providing the first MBean "key" that was found when resolving the "*" in the MBean name. Now, if the "*" resolves to multiple MBean keys, a column will be added for each key that is found. This provides for better identification of the source of the data that is returned when using the MBean "*" syntax.

12640: URL can be used for JMX Connection in place of host and port

This release adds support for the user to enter a URL instead of host and port in the JMX Connection dialog. There are now two new controls in the Tools -> Options -> JMX Add or Edit Connection dialog. These are Enter URL: and URL:. If the Enter URL checkbox is selected, the host and port fields are ignored and the user may enter a JMX URL in the URL: text field. Previously Enterprise RTView constructed the URL using the given and port. This method is still available. If the entered URL is valid and a connection is established, Enterprise RTView works with that connection in the same way that a Host/Port connection works.

12647: Performance improvement to JMX data source

The performance of the JMX data source has been enhanced.

12649: JMX Polling Interval implemented

The JMX data source can now specify four different options for the updating of an object's data. Rather than having a JMX data object update using the display's update period, you can select an alternate method in which each object polls for its data, thereby optimizing the performance of the display. The available options are: 1) Poll Once - Enterprise RTView will retrieve the object's data only once, for its initial display. Use this setting for data that will not need updating. 2) Poll Every Default Poll Interval - Data will be updated using the display's predefined update interval. This is the default setting and mirrors the functionality found in previous releases. 3) Poll Every Poll Interval - Data will be updated at a user-defined interval. You can specify, in seconds, how often the object should be updated. 4) Poll on Demand - Updates only when a display that uses this data is opened, and when data from any substitution string in use has changed. The Polling Interval options can be found in the JMX Attach to Data dialog. Note: The polling options will be disabled when "Listen for Notifications" is chosen for the Data Mode setting. In this case, data will be updated with each notification.

12701: Missing label in Attach to JMX Data dialog fixed

In the prior release, the "Filter:" label was missing from the Attach to JMX Data Dialog. This has been fixed

12713: Improve performance for large number of MBeans

Performance of the JMX datasource when there are large numbers of MBeans accessed has been improved.

SQL Data Source

12607: Enterprise RTView no longer leaves open cursors in Oracle

In prior releases, if the SQL data source was configured to use a JDBC connection to Oracle and if SQL queries using that connection failed repeatedly, an Oracle error "maximum open cursors exceeded" could eventually occur. This error could also occur if SQL commands using the connection were executed repeatedly. Both of these problems are fixed.

TIBCO Hawk Data Source

12653: TIBCO Hawk notification events now supported

The TIBCO Hawk Datasource for Enterprise RTView has been enhanced to support the display of TIBCO Hawk notification events. By default, this feature is turned off. To enable the receipt of TIBCO Hawk notification events, run the Enterprise RTView builder and access the TIBCO Hawk section of the Tools/Options menu. On the "TIBCO Hawk Methods and Alerts" tab, select the checkbox labeled "Enable Hawk Notifications", then Apply and Save the options. TIBCO Hawk notifications will have an AlertString of "NO_ALERT". Note that you can also enable TIBCO Hawk notifications by starting the builder or viewer with the "enablenotifications" command-line option. For example, run_builder -enablenotifications:true

12654: Hawk data source supports wildcard character in microagent name

The Hawk data source has been enhanced to support a wildcard character in the microagent name for data attachments and commands. The supported syntax for wildcards in microagent names is as follows (where name is the name of the microagent): - name* - Data attachments and commands will use the first instance found for all microagents that start with name on the agent(s) specified. If multiple microagents are found for a data attachment, the data for each will be returned. If multiple microagents are found for a command, the command will execute on each microagent. - name*:X - Data attachments and commands will use the X instance for all microagents that start with name on the agent(s) specified. If multiple microagents are found for a data attachment, the data for each will be returned. If multiple microagents are found for a command, the command will execute on each microagent. - name*:* - Data attachments and commands will use all active instances for all microagents that start with name on the agent(s) specified. If multiple microagents are found for a data attachment, the data for each will be returned. If multiple microagents are found for a command, the command will execute on each microagent.

TIBCO Rendezvous Data Source

11461: Improved parsing of RV messages with same field names

The Rendezvous data source has been improved to better handle messages containing containing multiple fields with the same name, and to expand nested message fields within messages which have an alias specified in RVALIAS.ini. For example, say a message with a subject of x.y.z has two fields named F, one containing an integer value of 123 and the other containing a value of 456. In prior releases, if a table object had its valueTable property attached to RV message subject=x.y.z and message field=*, then the table would have two columns named F but both columns would contain the value 123. In this release, the table will have two columns named F, the first containing 123 and the second containing 456, as expected. As another example, say a message with a subject of ORDERS.CUSTOMERS.NEW has several fields all of which are named Order, and the value of each Order field is an RV message which itself contains two fields named CustomerId and OrderNumber. In this release, the following entry could be added to RVALIAS.ini: NewOrders ORDERS.CUSTOMERS.NEW Order Then, if a table object is attached to NewOrders, the table will have two columns, named CustomerId and OrderNumber, corresponding to the columns in the nested Order message, and it will contain N rows, where N is the number of Order fields appearing in the ORDERS.CUSTOMERS.NEW message. Limitation: If a message contains multiple fields with the same name, then any data attachment that specifies that field name will always get the value of the first field with that name. So, using the message in the first example above, if an RV data attachment is made with message subject=x.y.z and message field=F, the attachment will always get the value of the first F column in the message. There is no way to make an RV data attachment to the second F column.

12704: User can now specify the Network Interface to use with rvtrace

A new option has been added to the TIBCO Rendezvous data source to allow the specification of the Network Interface to use when rvtrace is started. The interface can be set from the TIBCO Rendezvous Monitoring tab of the TIBCO Rendezvous options dialog, or from the command-line using the "-rvds:rvtrace.interface" switch. For example, run_viewer -rvds:rvtrace.interface:\Device\NPF_{12345} where \Device\NPF_{12345} is the network interface on which rvtrace should be started. Note that this is equivalent to running rvtrace from the command-line using the -i switch as follows: rvtrace -i \Device\NPF_{12345} Additional information about determining the Network Interface can be found in the TIBCO Rendezvous Administration manual. Please refer to Chapter 11, "Protocol Monitor (rvtrace)" and in particular, to the document titled "Selecting the Network Interface".

XML Data Source

12655: XML data source time zone parsing problem fixed

In previous releases of Enterprise RTView, there was a problem with parsing time zone data in the XML data source. It has been fixed.

Display Server

12399: Thin Client performance improvements

This release includes two performance improvements to the Display Server and Thin Client: 1) During a display refresh or drill down, the Thin Client will wait until the new image has finished downloading before using it to replace the old image. This eliminates the screen flash and image banding or striping that occurred in Internet Explorer. 2) For each display, the Display Server will automatically choose the format (png or jpg) that produces the smaller image, in order to reduce the download time for the client. These improvements are discussed in more detail below. 1) This improvement is most noticeable on clients using a slower WAN connection where the image download duration is longer. On a LAN the screen flash and banding were less noticeable. 2) In prior releases, the Display Server used jpg (jpeg) format for all the images it generated. Now, it can also use png format. The Display Server will automatically chose the format that results in the smaller (fewer bytes) image for each display. This means that jpg may be chosen for some displays and png for others. The imagequality option can affect the server's format choice. A higher imagequality value will increase the size of generated jpg images, but will not affect the size of png images (png quality is always 100%). So increasing the value of the imagequality may cause the server to choose png format for more displays. The Display Server is likely to choose jpg format for displays which: - use a jpg file as the display background image - use jpg files as background images on RTView graphs or labels - have many gradients using different colors (especially at lower imagequality values). For all other displays, the server will usually choose png format. The output from the Display Server's -verbose option now indicates which format is used for a display and the size of the generated image. By default the Display Server will automatically choose an image format for each display, as described above. If desired, the Server can be forced to use the same format for all displays via a command-line option, as follows: Use jpg for all displays: run_displayserver -imageformat:jpg Use png for all displays: run_displayserver -imageformat:png These is currently no way to specify the format for individual displays. ***************************** (DEVNOTE: The -imageformat option has existed since 4.2 but may not have been previously documented). *****************************

12618: rtvRefreshInterval can now be set for displays with bg image

In prior releases, the model property named rtvRefreshInterval could not be set in the Display Builder on a display that used a background image. This has been fixed.

12678: Main display now refreshes after executing ds command in popup

In the Thin Client, the display is refreshed after the user clicks on an object that executes a data source command, in order to show the effects of the command, if any, on the display objects. For example, executing an alert acknowledege command may cause changes in a table that displays the current alerts. In prior releases, only the display containing the object that executed the command was refreshed. In this release, if the command object is in a popup window, the main window will also be refreshed.

12681: Browser window resize fixed

In the 4.5c1 release, a browser window is not resized to fit a Thin Client display loaded from panels.jsp or or panels.html, as it was in releases prior to 4.5c1. This problem is fixed.

12683: Combo box values with double quotes now supported

In prior releases, the Thin Client did not support combo box controls or list box controls if their list items contained the double quote character. This is fixed.

12684: Thin Client display refresh performance improved

The performance of the Thin Client display refresh feature has been improved. The Thin Client refreshes a display periodically. As in prior releases, the refresh interval is determined by the DefaultRefreshInterval property of the rtvdisplay servlet or, if set, by each display's rtvRefreshInterval property. An interval value of zero indicates that a display should not be refreshed. In this release, before refreshing a display the Thin Client will first ask the Display Server if any data source has applied data to the display since its last refresh. If not, then there is no need to refresh the display so the refresh is skipped. This is repeated on each refresh cycle. If needless refreshes can be skipped, the performance of the Thin Client and the Display Server is improved. The actual performance gains will vary according to the characteristics of individual displays and the data they display. In general, the displays that will benefit the most are those which (1) show data from asynchronous data sources (RV, Hawk, Alerts), if new data typically arrives at longer intervals than the display's refresh interval, or (2) show data from a polled data source query (SQL, JMX), if the query is static, on-demand, or has a longer poll interval than the display's refresh interval. For example, if a display has a refresh interval of 10 seconds and it contains one table object that shows the current alert data, and typically the alert data only changes once per minute, then the display will typically only refresh once per minute. In prior releases, the display would refresh every 10 seconds whether or not the alert data had changed. Displays that will not benefit from this improvement are those showing data from sources which apply new data at shorter intervals than the display's refresh interval. For example, if a display has a refresh interval of 15 seconds and it shows data from a non-static XML data source which the Display Server polls every 2 seconds, then the display will always be refreshed every 15 seconds, since new XML data is applied every 2 seconds. If a display contains a trend graph object configured with timeShift >= 0, then the display will be refreshed on each interval, even if no new data has been applied since the last refresh. This is necessary in order to shift the graph's time axis. Similarly, if a custom object requires a refresh on each interval, it must define a GMS variable named __dispSrvRefreshRequired (the name begins with 2 underscore characters) of type GMS.G_INTEGER with a value of 1. To support this improvement, the rtvdisplay servlet makes a second connection to the Display Server. If the -verbose option is specified when starting the Display Server, the following output will appear in the Display Server console: connect client 1 connect client 2 This is normal.

Distribution

12383: JMX support added to the Historian

JMX support has been added to the Historian. There are now commands to start and stop data storage, to purge stored data, and to terminate the Historian, as well as properties to examine the status of the Historian and the data configuration files in use by the Historian.

12627: Missing make_war.sh scripts added

Missing scripts servlets/rtvreport/make_war.sh and servlets/rtvportlet/make_war.sh have been added.

Functions

12563: New argument Restrict to Data Combinations for GROUPBYU

The Group By Unique Values function now has an additional argument Restrict to Data Combinations (that defaults to 0). When this argument is 0 the returned data will contain all possible combinations of unique values found in the specified Index Columns (as previously). When this argument is 1, the returned data will be restricted to only those combinations that occur in the data.

12572: Baseline Over Time no longer throws exception for string data

Previously the Baseline Over Time (BASETR) function would throw an exception if the data column was of type String. This is now no longer the case.

12628: FILTERTR no longer throws exception for column type string

Previously the FILTERTR function would throw an exception if the data column was of type String. This is now no longer the case.

12677: Support added for global functions

Support has been added for global functions. In prior releases, an object's property can be attached to a function either (a) defined in the current display, or (b) defined in another display file that is included by the current display. Note that (a) works best for a function that is only used on one display or is simple and so can easily be redefined on each display that uses it, while (b) works best for a function (or a set of functions) that is used on multiple displays. But (b) can be inefficient in some cases. For example, say there is a display file named Inc1.rtv that defines a function named f1. If two displays are opened in the Viewer and both displays include Inc1.rtv, then two copies of F1 are created and the result is computed for each. If the user closes both displays, both copies of F1 are discarded. If the user then opens another display that includes Inc1.rtv, a new copy of F1 will be created and the result computed again. This can be inefficient if computing the result of F1 requires significant CPU time or memory (for example, a complex operation on a large data table). In that case it may be more efficient to specify F1 as a global function. A global function is defined in a Global Definition file and its result is available to objects on any display. A Global Definition file, or global file for short, is simply a .rtv file that has been selected on the Globals tab of the Options dialog. Each global file is loaded when an Enterprise RTView application starts. Only one instance of each global function is created and its result can be used by objects on multiple displays. Global functions are supported in all deployments. As with any function, a global function is updated whenever its input (argument) values change. A global function will be updated even if none of the currently open displays use the result. Because of this, the current result is immediately available when a display that does use the result is opened. However, avoid defining a function as global if its result is not often needed and computing the result is expensive, otherwise performance may suffer. In the Display Builder, use the Globals tab in the Options Dialog to designate a global file. Click on the Add button to select an rtv file. The selected file will be added to the table of global files. Each row in the table shows the name of the global file and a list of substitutions, if any, which should be applied to the global file when it is loaded. Click in the appropriate column to edit the file name or the substitutions. Click OK, Apply, or Save in the options dialog and the global files will be loaded. To reload a global file that was already loaded, select the corresponding row in the table and click Refresh Selection. This is useful after you've used the Display Builder to make and save changes to a global file and you wish to see the effect on other displays, without restarting the Builder. In some cases, it may be useful for a global function to use substitutions in its inputs and in the function name. The values for those substitutions are specified in the Substitutions column of the table in the Globals tab. This allows the same file to be specified multiple times in the Globals table with different substitutions to create multiple global functions. For example, say you're creating displays that show data from the RTView XML simulator, and you want a global function that sorts the production_table by the Units Completed column, another global function that sorts it by the Units in Production column, and a third global function that sorts by the plant name. This could be accomplished by either of the procedures below. Procedure A. Create three global functions: - Create a new display. - Add a function named Sort.completed that calls the Sort Table function, attach its Table argument to production_table from update.xml, and set its Sort Column Name to 'Units Completed'. - Add a function named Sort.inProd that calls the Sort Table function, attach its Table argument to production_table from update.xml, and set its Sort Column Name to 'Units in Production'. - Add a function named Sort.plant that calls the Sort Table function, attach its Table argument to production_table from update.xml, and set its Sort Column Name to Plant. - For all 3 functions, make sure the Public checkbox in the Edit Function dialog is checked. - Save the display as SortFunc.rtv. - In the Globals tab, add SortFunc.rtv to the list of global files. Procedure B. Create a single global function that uses substitutions: - Create a new display. - Add a function named getSortCol that calls the Get Substitution function on $sortColumn. Uncheck the Public checkbox (more on this later). - Add a function named Sort.$fname that calls the Sort Table function, attach its Table argument to production_table from update.xml, and attach its Sort Column Name to the getSortCol function. Check the Public checkbox. - Save this display as SortFunc.rtv - In the Globals tab, add SortFunc.rtv to the list of global files and specify the following substitutions: $fname:completed $sortColumn:'Units Completed' - Repeat the previous step and specify the following substitutions: $fname:inProd $sortColumn:'Units in Production' - Repeat the previous step and specify the following substitutions: $fname:plant $sortColumn:Plant Both procedures produce 3 global functions named Sort.completed, Sort.inProd, and Sort.plant. Procedure B may look more complicated but it uses fewer functions so it might be easier to maintain. (In this example, the functions are simple so this is not a significant benefit, but a real application might find B useful). Note that procedure B also defines a function named getSortCol. It is intended to be used only as an input to the Sort.$fname function and should not become a global function. The Public option is unchecked when the getSortCol was created, which prevents the function from appearing in the function attachment list, even though it is defined in a global file. Limitation Global functions are not currently supported with alerts.

12682: Set sub function no longer adds invalid listeners

In prior releases, the following problems could occur if the SETSUB function was used to change a substitution string that appeared in a data attachment: - On display callup, the substitution string could sometimes be assigned a blank value, causing syntax errors in the data attachment string. - The initial data attachment was sometimes registered twice, causing the attachment to remain even after the display was dismissed. - The effects of changes to the substitution string were delayed until the next periodic update. These problems are fixed.

12731: Public flag supported by Include File functionality

The Include File functionality now takes advantage of the "public" flag added for global functions. Non-public functions in included files will not be visible to other displays. This is consistent with the behavior of non-public functions in Global Definition files.

GmsTabularData

12603: Improved support for date/time parsing

Support for date/time parsing has been improved, and a mechanism to enter custom date/time formats has been added to the Application Options. The formats entered in the Date Formats tab follow the syntax of the date and time pattern strings documented in the java.text.SimpleDateFormat class.

Java Version Dependencies

12523: Java 1.6 Runtime Environment is now supported

Java 1.6 Runtime Environment is now supported by Enterprise RTView. In previous versions the Display Builder would crash when run under the Java 1.6 Runtime Environment. This has been fixed.

Local Variables

12621: Display Builder no longer crashes with undefined local var

In the previous release, the Display Builder would throw an exception if the user attempted to asign a value to a local variable that was used in a data attachment but had not been previously defined. This could occur only if an rtv file was modified outside of the Builder, in a text editor for example. This problem is fixed.

Object Library

12688: Antialiasing of text is now the default

Antialiasing of text is now done by default. In the General tab of the Options dialog, you can turn off antialiasing.

Bar Charts

12585: New property yAxisGridMode for greater control of grid lines

A new property has been added to the bar graph to allow additional control overi the alignment of grid lines with the y-axes drawn to the left and right of the bargraph. The property, yAxisGridMode, can have the following values: Bar Axis ( 0 ) - Align grid lines with the left (bar) y-axis. This is the default. Trace Axis ( 1 ) - Align grid lines with the right (trace) y-axis. Bar and Trace Axis ( 2 ) - Draw two sets of grid lines, one aligned with the left y-axis and the other with the right y-axis. Two new properties have been added to the bar graph to allow additional control of the placement and spacing of tick marks on the trace y-axis, which is drawn to the right of the bar graph when the traceYAxisFlag is set. The properties, traceYAxisMajorDivisions, and traceYAxisMinorDivisions specify the number of major tickmarks on the axis and the number of minor tickmarks between each pair of major tickmarks, respectively.

12616: traceYAxisFlag no longer cleared when drawHorizontalFlag set

In the bar graph, the value of the traceYAxisFlag was cleared whenever the drawHorizontalFlag was set. This has been corrected.

Control Objects

12670: Double-clicking *Values properties no longer causes crash

In the Display Builder Object Properties dialog, certain properties have specific dialogs for editing their values, which are invoked by double-clicking the property name, or clicking the property value field to enable the v button and clicking that. These properties include: barProperties columnAlignment columnDisplayNames columnFormat columnsToHide columnProperties commandConfirmText drillDownColumnSubs drillDownTarget filterProperties iconProperties indexColumns listValues radioListValues traceProperties wedgeProperties If these properties are attached to data, double-clicking the property name should bring up an Attach To Data dialog. However there was a problem in the Display Builder such that for listValues or radioListValues, double-clicking an attached property would cause a crash, and for the remainder of the above list, double-clicking an attached property would bring up the value editor dialog rather than an Attach To Data dialog. This problem has been fixed.

Tables

12636: columnResizeEnabledFlag added to table object

A property named columnResizeEnabledFlag has been added to the table object. If the property is checked, the table's columns can be resized by dragging the vertical separators between the column headers. If the property is unchecked, the column widths cannot be resized interactively. The property is checked by default and is located in the Interaction category. The columnResizeEnabledFlag property is supported in Display Builder, Display Viewer, and Thin Client. In the Thin Client, however, runtime changes to the property value are ignored.

12686: The Table Object now displays milliseconds properly

The Table Object will now display times with a precision of milliseconds. A columnFormat ending in "ss.S" can be used to display the time in milliseconds.

12718: Row selection now behaves properly if table row is deleted

The indexColumns property of the table object (obj_table02) can be configured to maintain the row selection across updates to the data table. (See the release note for E12468 for details). In the prior release, the property did not work as expected if any of the selected rows was removed during an update but the total number of rows in the table did not change. This problem is fixed. Note that the indexColumns property is not supported in the thin client.

Trend Charts

12644: Outer Y axis color now follows labelTextColor in Strip Charts

In previous releases, the y axis was drawn in the color of the trace if the yAxisMultiRangeMode was set to Strip Chart and the yAxisPosition was one of the Outer positions. It now draws in the labelTextColor instead.

TIBCO EMS Manager

12579: TIBCO EMS Manager look and feel upgrade

The TIBCO EMS Manager look and feel has been upgraded. All features work exactly as before.

Transaction Message Monitor

12520: Enhancement to maintain summary values between sessions

This release adds the ability to maintain previous summary values when restarting the Transaction Monitor. By adding either the new "-maintainstate" argument to the command line, or "maintainstate" in the TMOPTIONS.INI file, the Transaction Monitor will, when restarted, pick up from where it left off, populating the tranasction and interface summary values as they had been before the shutdown event. Note that only summary values are maintained. No detail information is maintained. The transaction and interface detail data are reset to zero values. Omitting the "maintainstate" argument will retain the previous behavior of clearing all values on restart. How we weight the values for Rate, Latency and Size rolling averages: The manner in which we set up the initial values is based on an average of the last x number of completed interfaces and transactions. This number (x) is determined by taking the last rate value, found in tm_summary.xml, and dividing it by a time unit value. (And this time unit value is calculated by dividing the TM's rateUnit by its calcInterval. ex: the unit of time / the time interval). Once we determine how many past transactions to use to repopulate the TM's initial data tables, we then init each of the table rows with the last found latency, size and rate values. As new transaction messages are received, the rolling averages recommence with the older summary data values expiring, replaced by the new message data.

12613: TM Generator now properly generates table attachments

In the previous release, tables on some of the standard Transaction Monitor displays were always empty. This is fixed.

12646: Transaction Monitor now supports remoting via JMX

The Transaction Monitor now supports remoting via JMX. This allows for remotely pausing and resuming the monitor, checking whether it's in its paused state, resetting all values, and retrieving a table of the transaction and interface names. The JMX Monitor demo has been enhanced to offer support for this functionalty. As well, access is available through the standard java JConsole application. run_tm.bat has been modified to accept a command line argument specifying the port to use. The command line syntax is: -jmxport:9994 Port 9994 is recommended for the Transaction Monitor (and is preset for the JMX Monitor demo).

Version 4.5c1 Release Notes

Alerts

12360: Alerts can now be generated on Japanese OS

In Enterprise RTView 4.4c1, alerts were not generated on systems using the JST time zone. This has been fixed.

12498: Time constraint removed from alert data source

In Enterprise RTView 4.4c1, alerts that were more than 24 hours old were removed from the system. This has been fixed, so that these alerts are not removed.

Builder - Editing

12609: Bug with drillDownTarget field fixed

In prior releases, if the bgVisFlag and valueVisFlag properties of an obj_meter06 or obj_meter21 object were assigned different values (that is, if one of those properties was checked and the other was unchecked), then it was not possible to configure the drillDownTarget property on any object in the display. Also, properties associated with bgVisFlag, such as bg3dFlag, bgGradientFlag etc., were hidden when valueVisFlag was unchecked, rather than being hidden when bgVisFlag was checked. This has been fixed.

Data Server

12499: Data Server improved to handle larger data sets

The Data Server performance has been improved. In previous releases, the server sent data formatted as XML text to its Display Viewer clients. Now it sends serialized data objects, allowing the server to handle larger data sets and improving the overall efficiency of the server and client. The Display Viewer will still accept XML data received from custom servers.

Data Sources

IBM WebSphere MQ Administration Data Source

12492: IBM WebSphere MQ Administration data source added

Display Builder You can use IBM Websphere MQ Administration as an IBM Websphere MQ Administration Connection. An IBM Websphere MQ Administration Connection is a named connection to a specified QueueManager. In addition you will also need to specify the Host Name, Port (Number) and QueueManager used by IBM Websphere MQ Administration. You will need to specify the IBM Websphere MQ Administration Connection as follows: Connection Name: The name to use when referencing this IBM Websphere MQ Administration connection in your data attachments. Host Name: The name of the host the IBM Websphere MQ Administration Queue Manager resides on, e.g MyServer. Port (Number): The listener port of the QueueManager you wish to connect to, e.g. 1414. Channel: Client Channel to use for this connection, e.g. SYSTEM.DEF.SVRCONN. These parameters are IBM Websphere MQ Administration specific. Display Builder + Display Viewer At run time you will need to place the IBM Websphere MQ Administration client jars (com.ibm.mq.jar, connector.jar) + PCF jar (com.ibm.mq.pcf-6.0.jar) on the class path to use this functionality. This is normally done by setting the RTV_USERPATH environment variable. The IBM Websphere MQ Administration client jars can be found in the Java\lib directory where you installed the IBM Websphere MQ Administration server, e.g: "C:\Program Files\IBM\WebSphere MQ\Java\lib" The PCF jar can be obtained from the "MS0B: WebSphere MQ Java classes for PCF" support pack as described here: http://www-1.ibm.com/support/docview.wss?rs=203&uid=swg24000668&loc=en_US&cs=utf-8&lang=en

JMS Data Source

11445: Support for IBM WebSphere MQ in JMS and Transaction Monitor

Websphere MQ may now be used as JMS Data source. *Builder* You can use IBM Websphere MQ as a JMS Connection. The JMS connection can be either a Topic connection, or a Queue connection. For a Topic connection you will need to select com.ibm.mq.jms.MQQueueConnectionFactory as the Factory class name. For a Queue connection you will need to select com.ibm.mq.jms.MQTopicConnectionFactory as the Factory class name. In addition you will also need to specify the Host Name, Port (Number) and QueueManager used by WebSphere Host Name: The name of the host the Websphere MQ Queue Manager resides on. e.g MyServer Port (Number): The listener port of the QueueManager you wish to connect to. e.g. 1414 QueueManager: The name of the Queue manager you wish to connect to. e.g. MyQueueManager These parameters are WebSphere MQ specific. You should only use a Topic connection for topic related activities and a queue connection for Queue related activities, otherwise Websphere MQ may give the following message: javax.jms.IllegalStateException: MQJMS1112: JMS1.1 Invalid operation for domain specific object *Builder + Viewer* At run time you will need to place the Websphere MQ JMS client jars (jms.jar, com.ibm.mq.jar, com.ibm.mqjms.jar, connector.jar, dhbcore.jar) on the class path to use this functionality These Jars can be found in the Java\lib directory where you installed the Websphere MQ server e.g. "C:\Program Files\IBM\WebSphere MQ\Java\lib" *JmsSimulator* The Jms Simulator can be used with websphere. New command line arguments are available for configuring hostname, port and queue manager. Note : you may need to explicitly set the client ID to NULL - as it has a non null default. You will need to set the class path as described above. e.g. -jmsfactory:com.ibm.mq.jms.MQTopicConnectionFactory -jmsclient:null -jmsuser:myUser -jmspassword:myPassword -jmshostname:myServer -jmsport:1414 -jmsqueuemanager:myQueueManager *Jms Transaction Simulator * The Jms Transaction Simulator can be used with websphere. New command line arguments are available for configuring hostname, port and queue manager. Note : you may need to explicitly set the client ID to NULL - as it has a non null default. You will need to set the class path as described above. e.g. -jmsfactory:com.ibm.mq.jms.MQTopicConnectionFactory -jmsclient:null -jmsuser:myUser -jmspassword:myPassword -jmshostname:myServer -jmsport:1414 -jmsqueuemanager:myQueueManager *Jms Transaction Monitor Utility * The Transaction Monitor Utility can be used with websphere. New command line arguments are available for configuring hostname, port and queue manager.. Note : you may need to explicitly set the client ID to NULL - as it has a non null default. You will need to set the class path as described above. e.g. -jmsfactory:com.ibm.mq.jms.MQTopicConnectionFactory -jmsclient:null -jmsuser:myUser -jmspassword:myPassword -jmshostname:myServer -jmsport:1414 -jmsqueuemanager:myQueueManager Websphere MQ Specific notes JMS Message properties must be valid Java Identifiers (e.g. no spaces in property name). Websphere MQ Topic syntax does not support spaces in names.

12461: Validation of subs now handled properly by JMS Command dialog

Previously the JMS Command dialog did not process substitutions when validating field values. This has been fixed.

OSISoft PI Data Source

11181: OSIsoft PI data source added

The OSIsoft PI data source provides historical and current data for named data points. Data attachments include a connection to a OSIsoft PI Server, with an optional user name and password, a OSIsoft PI point name, a query mode, start and end dates, and a retrieval mode. Currently no validation is performed on the dsstring, so care must be taken to ensure that the connection, point name, dates, and modes are valid. The Point Name list is populated by querying the list of points from the OSIsoft PI Server specified in the Connection combo box. A filter is provided to narrow down the list of points displayed. The pattern for the filter is defined by the OSIsoft PI WildCard Search function. The query mode identifies the type of data to be retrieved from the OSIsoft PI Server. There are three supported query modes: 1. Historical Data - Only historical data is returned, from the start date to the end date. 2. Historical and Current Data - Historical data from the start date to the present is returned, and then new data is returned as it is added to the OSIsoft PI database. The end date is ignored for this query mode. 3. Current Data - The most current value for the point is returned from the OSIsoft PI database. New values are returned as data is added to the OSIsoft PI database. Both the start and end dates are ignored for this query mode. In all query modes, if a date is left blank the current date is used. So for example, if the end date is left blank in a Historical Data query, data will be returned from the start date to the present. Because the query is for historical data only, the data will only be retrieved once. To cause the data to update as new values are added, specify a Historical and Current Data query mode instead. The retrieval mode specifies the method used to return data from the OSIsoft PI database. This mode applies to both the Historical Data and to the Historical and Current Data query modes, but is ignored for the Current Data query mode. There are two supported retrieval modes: 1. GetArcValueSX - This mode returns all data for the specified interval. If more than the maximum number of points are available, the returned data is truncated so that the final values are not included. 2. PlotValues - This mode divides the specified interval into equal time slices and returns the values of the data at the start and end of each interval, as well as the minimum and maximum values of the data during the interval. In addition, an exception code is returned for each interval. The exception code is a OSIsoft PI error code that indicates whether a problem occurred with the data during the interval. For example, an exception might occur if a piece of equipment were taken off-line for maintenance, or if a network failure prevented the transfer of data to the OSIsoft PI Server. The OSIsoft PI data source also includes an Options dialog that allows the definition of Connections to OSIsoft PI Servers as well as the following data source variables, which are defined in the OSIsoft PI Administration tab. Default Tag Mask - This mask will appear in the Attach to Data dialog when it is first displayed. Maximum Number of Point Names - This option limits the maximum number of point names displayed in the Attach to Data dialog. Maximum Number of Point Values - This option limits the maximum number of points to return in a single data query. For the PlotValues retrieval mode, this option also defines the number of time slices into which the interval is divided.

StreamBase Data Source

12444: StreamBase data source added to Enterprise RTView

A StreamBase data source has been added to Enterprise RTView. This data source allows you to view stream data and stream metrics data in Enterprise RTView and also to send tuples.

12488: StreamBase Application Options dialog implemented

In the Display Builder Application Options dialog and in the standalone Configuration Utility, the StreamBase category now includes three tabs which implement the full set of StreamBase data source options. The tabs and their options are as follows: StreamBase Connections URI - this displays a single connection URI StreamBase Streams - displays the following lists with the ability to add and remove entries: Streams History Streams Simulated Streams StreamBase Administration - displays the following options: Enable Monitor Metrics Write History History Depth Note the following, which appears on the Administration tab: The options "Enable Monitor Metrics" and "History Depth" will not be applied to the current session of Enterprise RTView. To apply these options, save the initialization file and restart.

12489: Connection definitions implemented for StreamBase

The Display Builder Application Options dialog for the StreamBase Data Source has been enhanced so that connections to StreamBase servers, specified by URI, may be named, and a default connection may be specified. On the Connections tab you will find a list of connections with buttons to add and remove them, and a selector for the default connection. When you add a connection you're given a dialog which allows you to enter the name and the URI of the connection.

12493: StreamBase data source available streams list fixed

In the Display Builder, dialogs for the StreamBase Data Source are fixed. The list of streams available from a given connection previously showed in the dialog even if the server was not sending data to the stream. This pertained to the Application Options dialog, the Attach To Data dialog, and the StreamBase Commands dialog.

12527: Field alignment in StreamBase command dialog fixed

In the Display Builder, the Define StreamBase Command dialog has been improved in appearance, so that the fields line up correctly.

12569: StreamBase displays added to dstutorial

Sample screens illustrating use of the StreamBase data source have been added to the Data Sources Demo.

XML Data Source

12506: XML Data Source memory usage optimized

The amount of memory used by the XML data source when loading a data set containing many duplicate string values has been reduced.

Demos

RV Monitor Demo

12606: Bug in Current Traffic Trends display fixed

In Enterprise RTView 4.4c1, the Current Traffic Trends display in the rvmonitor demo did not work correctly. This has been fixed.

Display Server

12438: Display Server display preload functionality enhanced

The Display Server can be configured to preload display files. In prior releases this feature was of limited use since a preloaded display was unloaded after a client requested it but then no other client requested it again before the display timeout interval (default 60 seconds) expired. As of this release, a preloaded display will never be unloaded unless the Display Server is restarted or the display cache is cleared from the JMX console.

12465: Errors in Firefox JavaScript console fixed

In prior releases, the Thin Client Browser sometimes caused error messages in the Firefox JavaScript console when changing the foreground and background colors of table cells. The error messages were similar to the following: Error: Expected color but found 'undefined'. This problem is fixed.

12475: Support for -notablecontrols removed

The Display Server notablecontrols option is obsolete and is no longer supported. If the option is specified a warning message will be printed in the Display Server console and will otherwise be ignored.

12573: Graph scrollbar bug fixed

In the previous version of Enterprise RTView, graph scrollbars would not work in the Thin Client Browser if the display contained one or more functions. This has been fixed.

12580: Incorrect drilldown behavior with Thin Client Browser fixed

In the prior release, the Thin Client Browser treated all drilldowns as though the Open In Named Window option was set, even if the Open In New Window option was actually selected. Also, if the Open In New Window option was selected and the named window was already open, a drilldown to that window would not raise the window, often leaving it obscured by the main browser window. These problems are fixed.

Distribution

12600: Can't stop sims in custom demos if started from SM Launcher

In the previous version of Enterprise RTView, the EMS Manager option "Edit Display" did not work if the EMS Manager was started from the Start Menu. This has been fixed.

12601: EMS Manager "Edit Display" option fixed

In the previous version of Enterprise RTView, the "Stop Simulator" button in the Trader Exchange Demo of EMS Manager Example did not work if the EMS Manager was started from the Start Menu. This has been fixed.

Drill Down

12494: Reload of display on initial drill down fixed

In prior releases, if an object's drill down target was set to the current display and current window, the display would be reloaded unnecessarily the first time that the drill down was performed, resetting any local variables, scroll bars, and trace data on the display. This is fixed.

12599: Drill down in graphs and stock chart fixed

In the previous beta release, it was not possible to drill down by a left click on the trend graph, xy graph, or stock chart if its zoomEnableFlag property was checked. This is fixed.

Functions

10382: New include display functionality added

A feature has been added to allow a display to include the contents of another display file. The functions, local variables, and graphical objects from the included file are added to the display. This feature is useful if several displays use a common set of functions and local variables, or require a common set of graphical objects (a set of navigation controls at the top of each display, for example). Previously, it would have been necessary to duplicate those common objects in each display. Now the common objects can be defined and maintained in a separate file, and that file can be included by each display that needs them. The files to be included by a display are specified using the Include Files dialog, opened from the Tools menu in the Display Builder. A display can specify multiple include files. Nesting is supported, that is, an included file can include other files. When a file is removed from Include Files list, all objects, functions, and local variables that were loaded from that file are removed from the current display. When a display includes a file, graphical objects from the included file will appear in the display, and local variables and functions from the included file can be used in data attachments by other objects in the display. In the Display Viewer, objects that are loaded from an included file are treated exactly as objects that are loaded from the display's own file. However, to ensure that all displays that include a file use the same object definitions, the Display Builder does not allow included objects to be modified, nor does it save the included objects to the display's rtv file. That is, the definitions of the included objects do not become a permanent part of the current display. (An exception to this is the initial value of a local variable from an included file, described below). When a graphical object from an included file is selected in the Display Builder, the object is highlighted but no resize handles are drawn. The object can't be moved, scaled, deleted, or re-ordered. It cannot be the target of a Paste Attachments or Paste Properties. The object's properties are shown in the Object Properties window but they can't be changed. The name of the include file, in parentheses, is appended to the object's objName property. An included object can be copied and pasted. The pasted object becomes a part of the current display, not a part of the included file. Functions from an included file are listed in the Functions dialog but cannot be removed or modified. An included function's result can, of course, be used in data attachments. If an included function is copied, it becomes part of the current display. When an included function is displayed in the Edit Function dialog, an extra field labeled "Include File" shows the name of the function's file. Local variables from an included file are listed in the Local Variables dialog but cannot be removed. However, the initial value of an included local variable can be changed in the Local Variables dialog, and the value will be saved in the display's rtv file. This can be useful in cases such as the following: Assume several displays include a file named Header.rtv, which defines a label object to appear at the top of each display, showing the title of the display. The label property of the title object is attached to a local variable named headerTitle, defined in Header.rtv, with its initial value set to "Your Title Goes Here". If a display is configured to include Header.rtv, the title object will appear in the display, showing the text "Your Title Goes Here", and the variable named headerTitle will appear in the Local Variables dialog. If headerTitle is selected, the Remove button will be disabled (since it was loaded from Header.rtv, not the current display) and the initial value can be changed to read "My Display Title". This value will be saved with the current display when it is saved from the Display Builder. The background properties (image, model properties) in an included file are ignored. That is, they are not added to the display that includes the file. The Display Builder will print an error message if a display includes the same file more than once or if the included files are circular (e.g. file A.rtv includes B.rtv which includes A.rtv). If an included file is in the same directory the file that includes it, or a subdirectory, a relative path to the included file is saved in the display's rtv file. Otherwise, an absolute path to the included file is saved. Objects from an included file may have the same name (that is, the same value for the objName property) as objects from other include files or from the display file. This may cause links to attach to the wrong object, since a link's starting and ending nodes are found by name. This can be avoided by assigning a unique value to the objName property of objects in an include file. For example, you might append "_Header" to the name of each object when building an include file named Header.rtv.

11979: Custom function API has been improved

It is possible to perform calculations on your data before it displayed in Enterprise RTView. A number of built-in functions are available to be used. This new feature allows the user to create custom functions that can be used just as the built-in ones are. For example, you can create a custom function that will take the floating point value of a number and return the rounded integer value. To display the results, attach your functions to objects using the Attach to Function Data dialog. Functions can be given input data as arguments and can return data in four different types: integer, double, string or table. B: IMPLEMENTATION This is an example of how to use the API. Here are the steps to create a Round function that will take the floating point value of a number and return the rounded integer value. You will be creating a java class called MyFunctionHandler that subclasses GmsRtViewCustomFunctionHandler. This will contain all of your custom functions in a single file. You must use the exact name MyFunctionHandler as your class name and filename. 1. Add a GmsRtViewFunctionDescriptor in the getFunctionDescriptors() method. The name of the function to be created in this example is "Round". public Vector getFunctionDescriptors () { // vector of function descriptors Vector<GmsRtViewFunctionDescriptor> v = new Vector<GmsRtViewFunctionDescriptor> // Round GmsRtViewFunctionArgument roundArgs[] = new GmsRtViewFunctionArgument[1]; roundArgs[0] = new GmsRtViewFunctionArgument("Value", GMS.G_DOUBLE); v.addElement(new GmsRtViewFunctionDescriptor("Round", roundArgs, GMS.G_INTEGER, null, "This function rounds the value to the nearest integer.\n", "This is the extended Help description.\n", false)); // return the vector full of functions return v; } Notice that the function is added to a Vector of function descriptors. The creation of the GmsRtViewFunctionDescriptors is done by creating an array of argument objects as GmsRtViewFunctionArgument. In this case only one argument is created called "Value" of type double. The four choices are: GMS.G_INTEGER, GMS.G_DOUBLE, GMS.G_STRING or GMS.G_TABLE. The function is given a return type of GMS.G_INTEGER. If the return type is GMS.G_TABLE an array of return columns is given next, otherwise use null. Finally the descriptor is given the two strings that will appear, when the new Round function is chosen in the Edit Function dialog in the Display Builder. The first string is the brief help sentence or two that shows in the dialog. The Extended Help is the help that is shown if the Help button in the dialog is pressed. 2. Next you need to implement the function logic and attach that logic to the correct place to return the new value. In this example the result is an integer so the implementation is done via the getIntResult() method. Similar methods exist for the other return types: getDoubleResult(), getStringResult() and getTabularResult(). See the Enterprise RTView User guide for more details. //---------------------------------------------------- // Method for functions that return an integer result //--------------------------------------------------- public int getIntResult (String functionName, GmsRtViewFunctionDescriptor functionDesc, GmsModelVariables functionIcon) { int ret = 0; //-------------------------------------------- // Add an element for each custom function //-------------------------------------------- if (functionName.equals("Round")) { ret = getRoundedValue(functionIcon, functionDesc); } return ret; } Notice that this method actually calls getRoundedValue, which is a private method that has been chosen by the implementer. You are free to implement private methods as you choose in MyFunctionHandler.java. The getRoundedValue() method works as follows: //--------------------------------------------------- // Define a custom function which rounds the value //--------------------------------------------------- private int getRoundedValue (GmsModelVariables functionIcon, GmsRtViewFunctionDescriptor functionDesc) { double num = Double.NaN; try { // get the argument value via the descriptor num = functionDesc.getArgDoubleValue("Value", functionIcon); } catch (Exception e) { // show error message, if argument not found System.out.println(e.getMessage()); } // round to the nearest integer int retval = (int) Math.rint(num); // return the result to the caller return retval; } C: INTEGRATION Compile and link your file to the gmsjrtview.jar and any other libraries that you may need. Create a new jar file containing your class or classes. D: DEPLOYMENT Make sure that the jar file containing your new class is added to RTV_USERPATH and is available at run time.

12485: Function execution enhanced

The function data source has been improved to avoid unnecessary updates to functions, improving performance. No changes are required to custom function handlers.

12597: Functions exception fixed

In the previous release, the functions Filter By Pattern and Filter and Extract Matches would throw an exception if the input table contained a string column that contained nulls. This error has been fixed.

Object Library

Bar Charts

11795: Mouseover for bar graphs fixed

In prior releases, the mouseover tooltips for a bargraph would sometimes be displayed when the mouse was moved over objects in other panels, such as a drilldown window. This has been fixed.

12401: Bug with *AxisMinLabelWidth fixed

Previously you could not set vertAxisMinLabelWidth or yAxisMinLabelWidth to a value less than 10. This has been fixed.

Charts (General)

12487: Grid lines now being drawn correctily

Previously the xy graph, stock chart, and trend graph would occasionally display grid lines outside of the graph area. This has been fixed.

Control Objects

12307: listValues and radioValues properties now support text editor

In the Display Builder property sheet, the listValues and radioValues properties for the radio button, list box, and combo box controls has been enhanced with the option to bring up a text edit dialog by clicking on the "..." button at the end of the property field.

12467: hotkey keyboard activation for buttons added

The button control object (obj_c1button) now supports keyboard activation. An alphanumeric key (A-Z or 0-9) can be assigned to a button's hotKey property. If the user holds the Alt key and presses the corresponding key when the panel containing the button has focus, the button will be activated. If the character that corresponds to a button's hotKey appears in the button label, in upper or lower case, it will be underlined. If multiple buttons in the same display have the same hotKey assignment, only one will be activated when the user presses Alt+hotKey. The same is true if multiple panels are displayed in the Display Viewer and multiple buttons with the same hotKey appear in the panels.

Tables

12466: Support for multiple row selection added

The table object (obj_table02) now supports selection of multiple rows. This is enabled by a new property named multiSelectFlag. By default this property is unchecked. When multiSelectFlag is checked, all selected rows will be highlighted regardless of the value of the rowHighlightEnabledFlag property. When multiSelectFlag is checked, multiple rows can be selected in the table in several ways, for example: - Ctrl+LeftClick on an unselected row to select it, or Ctrl+LeftClick on a selected row to deselect it, without deselecting any other currently selected rows. - Shift+LeftClick on a row to select all rows between it and the nearest selected row. - Press the left mouse button on the first row to be selected, then drag over adjacent rows to select them, then release the mouse. - Click on the first row to be selected, and then hold the Shift key down while pressing the up or down arrow keys to select additional adjacent rows. (Note: In the main window of the Display Builder, the last two actions will move the table). If a drill down target is defined for the table, and if single-click mode is enabled, then any of the above actions will trigger a drill down if the table is displayed in the Display Viewer. If single-click mode is disabled, or if the table is displayed in the Display Builder then to trigger a drill down with multiple rows selected in the table, you must right-click on a selected row and and then pick Drill Down from the popup menu. When a drill down is performed from a table in which multiple rows are selected, each substitution defined in the table's drillDownColumnSubs is assigned a string containing the values from the appropriate column in each of the selected rows. If multiple rows are selected, the column values are separated by semicolons. For example, assume a table contains 2 columns named Airport and Code as follows: Airport Code ------- ----- Baltimore BWI Dallas DFW Denver DEN Also assume the table's drillDownColumnSubs property has these assignments: Airport : $air Code : $code Then, if a drill down is performed from the table with the rows for Dallas and Denver selected, the drill down subs will contain the following values: $air = Dallas;Denver $code = DFW;DEN If instead the table's drillDownColumnSubs property is empty, then on drill down the predefined table substitution named $col1 would contain the value "Dallas;Denver". None of the other predefined table substitutions ($1rowName, $celldata, $colName, etc) or row name subs are affected by selection of multiple rows. These substitutions will contain values from the appropriate columns in the first row that is currently selected in the table. A selected row can be deselected by a Ctrl+LeftClick action. Continuing with the previous example, if you deselect the Denver row but left Dallas selected, then the table's drillDownColumnSubs would be assigned these values: $air = Dallas $code = DFW Limitations: Deslecting all rows in the table will not clear the value of the table's drill down substitutions, they will keep the values from the last row that was selected. Continuing with the previous example where only the row for Dallas was selected in the table, if you then deselected that row, leaving no rows selected, the values for the subs $air and $code would still be Dallas and DFW, respectively. The Thin Client Browser has the following limitations: - Multiple rows can only be selected by a Ctrl+LeftClick on each row. No other actions will select multiple rows. - The selected column is determined only by a mouse click, it cannot be changed by using the arrows keys. - In a table that has the multiSelectFlag property checked, a right click will not select the row under the mouse pointer. - After a table is displayed in the Thin Client Browser, changes to the value of its multiSelectFlag property are ignored. - In Firefox, the popup menu does not open in response to a right-click on a table that has the multiSelectFlag property checked. Instead, a double right-click must be used to open the popup menu.

12468: Ability to keep row selection after updates added

The table object (obj_table02) has been enhanced to restore the row selection after a data update is received that changes the number of rows or the order of rows in the table. A new property named indexColumns has been added to support this feature, as described below. Another new property named scrollToSelectionFlag has been added. If this property is checked, the table will scroll if necessary to keep the first (topmost) selected row visible after a sort or a data update. If indexColumns is left blank (the default) the row selection is maintained using the data row index of the selected rows. For example, assume the user selects rows in the table that correspond to rows 3 and 5 in the valueTable attachment (note that data rows 3 and 5 may be shown in table rows other than 3 and 5 if a sort column has been selected). If the valueTable is then updated by the data source, the table rows that correspond to rows 3 and 5 in the new valueTable will be selected in the table (these rows may appear in different positions than they did before the update, if a sort column is defined). This is sufficient for maintaining the row selection if: - the number of rows in the valueTable data attachment either does not change or new rows are always appended. - the order of the rows in the valueTable data attachment does not change. If either of the above is false, and the row selection needs to be maintained across data updates, then the indexColumns property should be configured. If there is a single column in the valueTable attachment that uniquely identifies each row, then select that column in the Index Columns configuration dialog. To uniquely identify a row, the row's value in the selected column can not be duplicated in any other row, and it must remain unchanged across data updates. (It is okay if rows are added and removed). To select the row label column of the valueTable as an index column, type "empty" in the edit box at the bottom of the Index Columns dialog, then click Add Column, then click the checkbox for the "empty" column. If no single index column exists, select a combination of columns in the Index Columns dialog that will uniquely identify each row in the valueTable. The combined value of the index columns for a row must be unique. For example, if the valueTable contents are as follows ... City State Temperature ---- ----- ----------- Boston MA 35 Springfield PA 37 Springfield IL 22 ... then City and State can be used for indexColumns. But if the contents are as follows .. City State Temperature ---- ----- ----------- Boston MA 35 Springfield PA 37 Springfield IL 22 Springfield PA 40 ... then City and State are not sufficient to use for indexColumns (maybe a County column needs to be added to the data table!). If there is no combination of columns that uniquely identifies a row, then the indexColumns property should not be assigned. It is not necessary for the index columns to be visible in the table, they can be hidden using the columnsToHide property. Limitations: The indexColumns property is ignored by the Thin Client Browser. In addition, the Thin Client Browser will clear the selection in a table if the number of rows in the table is changed by a data update.

12497: Right-click actions on multiple rows in table fixed

In prior releases, the editing feature of obj_table02 only allowed one row or column to be removed at a time, since a right mouse click in a table in edit mode would deselect all cells except the cell under the mouse pointer. This is fixed.

12590: Filter string crash for scalar object fixed

In the prior release, an array bounds exception would be thrown if the valueTable property of an object had an XML attachment with a filter that returned a table with one or more columns but no rows. This is fixed. obj_btlabel01 obj_tilabel03 obj_drumcount01 obj_drumcount02

Trend Charts

12525: Trend graph problem with scalar values fixed

In the previous release, in some conditions if a Display Viewer client requested a scalar value for the traceNValue property of a trend graph object, the Data Server would never send the value and the trend graph would plot no data. This is fixed. Note that this fix does not address the issue in which the trend graph only plots changed scalar values when used with the Data Server. As before, this issue is addressed by unchecking the "Send Changed Data Only" option in the Data Server options dialog. See the Data Server documentation for details.

12617: Data table not sorted by ascending timestamps can be plotted

In the prior release, the trend graph would not plot a data table if its rows were not sorted by ascending timestamps. This is fixed.

XY Charts

12574: XY graph problem with displaying -0 on x axis fixed

In prior releases, the xy graph would sometimes show -0 on an x axis label rather than 0. This is fixed.

TIBCO EMS Manager - Administration

11680: Bridge administration screens added to TIBCO EMS Manager

There is now an separate Manage Bridges screen under EMS Administration and a table of Bridges is included on the Connections, Etc screen under the server under EMS Monitoring. It is possible to add and delete bridges for a chosen server. Two new commands were added to the GmsRtViewJmsAdmDs data source to create_bridge and delete_bridge. These changes require the use of TIBCO EMS 4.2+.

11862: User able to set more EMS Manager Queues and Topics properties

The EMS Manager now allows the user to set the following properties on Queues and Topics. Topics: flowControlMaxBytes, secure, MaxMsgs and overflowPolicy Queues: flowControlMaxBytes, secure, exclusive, maxRedelivery, MaxMsgs and overflowPolicy (The property flowControlMaxBytes like maxMB is set in units of MB or megabytes.) Which properties are fully supported depends on which version of TIBCO EMS is running on both the management computer and the targeted EMS server.

Transaction Message Monitor

12507: RV and JMS Transaction Monitors now a single application

This release combines both the TIBCO Rendezvous and JMS Transaction Monitors into a single application. Users can now, within the one application, configure messages to come from either TIBCO Rendezvous or any flavor of JMS, and the two types can be used within a transaction definition. To support this enhancement, a new file - run_tm.bat - combines the functionality of the current run_jmstm.bat and run_rvtm.bat files. Additionally, two new parameters were added that allow for specifying data sources - defaultds and ds. The defaultds parameter specifies a default data source at the application level, and the ds parameter can be used to override the default data source at the transaction level, the message level, or both. defaultds: The defaultds parameter can be used in the TMOPTIONS.ini file and as a command argument. In both cases, it must be followed by either JMS or TIBCO Rendezvous, depending on the desired default data source. If anything other than JMS or TIBCO Rendezvous is found, the Transaction Monitor will inform the user of the error and set JMS as the default data source. e.g. defaultds jms # used as a parameter in TMOPTIONS.ini -defaultds:jms # used as a command line argument ds: parameter This parameter allows for specifying the data source at the transaction level and/or the message level of the TRANSACTIONS.ini file. This can be accomplished by adding the ds: parameter to the desired message or transaction entry. To specify a TIBCO Rendezvous data source, use ds:rv. For JMS, use ds:jms. e.g. To specify that the transaction "My Transaction" uses a TIBCO Rendezvous data source: startBusTransaction 'My Transaction' ds:rv # sets default to rv msg msgA ID ds:jms # this message uses JMS msg MsgB ID # this defaults back to rv Adding this parameter to any message definition line will override the current transaction-level ds for (only) that message. Adding the parameter to any transaction definition will override the current application level defaultds for (only) that transaction, including all messages within the transaction that do not contain their own ds: overrides. ====================================================== Though the Transaction Monitor now supports both TIBCO Rendezvous and JMS, you are not required to have both types installed. the Transaction Monitor will check for only the message service(s) specified in the TRANSACTION.ini file. If a required service is not found, the Transaction Monitor will exit gracefully leaving an error message explaining the problem.

12575: Transaction Monitor can now send data over a socket conection

With this release, the Transaction Monitor can now send its data over a socket connection. You can enable this functionalty in the Transaction Monitor by adding either a command line argument, or an entry in TMOPTIONS.ini. For the command line, add: -socket This will default to port 4068 If an alternate port is desired, add: -port:xxxx where xxxx is any number above 1024 ex: -socket -port:1234 For TMOPTIONS.ini add: socket This will default to port 4068 If an alternate port is desired, add: port xxxx where xxxx is any number above 1024 ex: socket port 1234 In your corresponding display(s), you'll need to configure the XML sources to read data from the server. To do this, select Tools/Options from the Display Builder menu, then click on the XML tab. In the XML Sources list, double click on the tm_summary.xml entry. This will open the "Edit XML Source" dialog. Change the "XML Source Path" to the following: remote://localhost:4068/tm_summary.xml Repeat this for the tm_detailactive.xml and/or tm_detaildone.xml source entries. If the server is run on a different host than the Display Builder, specifiy the server's host name in place of localhost above. The tm_xxxxxxx.xml files will not be written to when set up to use this socket connection.

Version 4.4c1 Release Notes

Alerts

12232: Alert engine added to Enterprise RTView

Support for alerts has been added to Enterprise RTView. Alert definitions are configured in the Display Builder. These alert definitions are then used by the Alert data source to generate alerts and if specified execute commands such as sending email when the alert is generated. Users can view alert data by attaching the objects in their display to tables in the Alert data source. The Alert data source is active in the Display Server and Data Server regardless of whether any clients are connected, so alerts will be generated even if no one is viewing the system.

Builder

12174: Dialogs defaulting to docked status after -resetlayout

In the Display Builder, certain dialogs which are dockable are intended to appear floating the first time they are invoked after the "Reset Layout" command is used. These dialogs include Local Vars, Functions, and Object List. There was a problem such that if a Reset Layout was done and the application closed before any of these dialogs was invoked, then that dialog was invoked on a subsequent run, it would not appear floating but rather would be docked in a default position. This problem has been fixed.

12362: Missing SL Logo fixed

If the Display Builder was invoked from the command line with the name of a display that could not be found, the resulting error dialog did not display the SL icon. This has been fixed.

12435: Incorrect selection with background model properties fixed

In the Display Builder when displaying the Model Properties via the Background Properties dialog, it was possible to see a very small selected object just below and to the left of the editing area. Furthermore clicking on this object would cause a crash. These problems have been fixed.

Builder - Editing

10027: Option added to specify grid properties

The Display Builder has been enhanced with a new dialog, Builder Options, which manages settings for the Display Builder. It is invoked from the Builder Options menu item on the Tools menu. The values set in this dialog are automatically restored on application startup and saved on application exit. The dialog consists of a button panel and two tabbed panels. The button panel includes the buttons Ok, Apply, Default, and Cancel. The Default button will write to default values to the current tab; these values may then be applied. The second panel is titled Grid and includes the following items: Grid Visible: This controls whether the grid is visible. Snap To Grid: This controls whether move or resize operations will be "snapped" to the nearest grid intersection. This setting is independent of the grid visibility. Color This is the color in which the grid lines will be drawn. A sample of the current color is displayed; clicking the sample will bring up a Color Chooser box. Style This is the style of the grid lines; two choices are available in of the drop-down list: Lines and Dots. Default value is Dots. Spacing (Horizontal and Vertical) This is the number of pixels between major divisions in the grid. Valid values are positive numbers. Default value is 64.0. Subdivisions (Horizontal and Vertical) This is the number of subdivisions between each major division. Valid values are positive integers. Default value is 8. Offset (Horizontal and Vertical) This is an offset in pixels that will be applied to the grid lines. Values may be negative. Default value is 0.0.

10907: Escape key has been mapped to cancel mode

In the Display Builder the Escape key will now cancel any current zoom or editing mode.

11412: Option added to show grid lines on screen

The Display Builder has been enhanced with a visible grid that may be used to position and size objects. The grid may be made visible and invisible by means of a new toggle button on the toolbar. The snap-to-grid function is independent of the visibility of the grid and may be turned on and off by means of a second toggle button.

11521: Order and Delete menu items disabled in drill down windows

In the Display Builder, when invoking a popup menu from the Preview window or a drill down window, the following menu items were not always disabled: Delete, Order, Align, Distribute. This has been fixed.

11522: Paste Properties now applies to all selected objects

In the Display Builder, if multiple objects were selected, the Paste Properties commands would apply properties to only the first selected object. This has been corrected so that the properties will be applied to all of the selected objects.

11867: Builder options dialog added

The Display Builder has been enhanced with a new dialog, Builder Options, which manages settings for the Display Builder. It is invoked from the "Builder Options" menu item on the Tools menu. The values set in this dialog are automatically restored on application startup and saved on application exit. The dialog consists of a button panel and a panel titled General. The button panel includes the buttons Ok, Apply, Default, and Cancel. The Default button will write to default values to the current tab; these values may then be applied. The General panel includes the following items: History List Size This is the number of items that will be kept in the History Undo and Redo lists. Valid values are integers in the range 0 - 1000. The default value is 20. Recently Used File List Size This is the number of items that will be listed in the recently-used file list on the File menu. Valid values are integers in the range zero 0 - 9. The default value is 4. Console Window Buffer Size This is the number of lines of text that will be saved in the Console window. Valid values are integers in the range 0 - 5000. The default value is 1500. Keyboard Arrow Movement Amount This is the number of pixels that an object will be moved when the keyboard arrow keys are used. Valid values are numbers in the range 1.0 - 100.0 The default value is 1.0.

12207: Select by Extent button added

In the Display Builder you can select several objects by clicking on the background and drawing a rectangle around the objects you want to select. However if your display is crowded with objects that may be difficult to find a clear space to click on to start your selection. To work around this problem the Display Builder has been enhanced with a select-by-extent mode. This mode is initiated by clicking the toolbar Select By Extent toggle button. When the mode is enabled, clicking on an object will start a select-by-extent operation just as clicking on the display background does normally. The object you clicked on to start the selection will not be included among the selected objects. Otherwise this operation behaves just like a normal select-by-extent operation: any object which is not entirely within the selection extent will also not be included, and the new selection will replace any current selection unless you hold the Control or Shift keys while performing the operation, in which case the new selection will be added to the current selection. The select-by-extent mode remains in effect (as indicated by the state of the toolbar toggle button) until one of the following occurs: 1. You make a selection 2. You click or right-click on the background or any object 3. You press Escape.

12221: Menu item syntax made consistent

In the Display Viewer and the Display Builder menus, items that invoke a dialog should end with "...". This was not always the case, but it has been made consistent.

12370: Support added for .png files are now supported

In the Display Builder, image files in the Portable Network Graphics (PNG) format are now supported in addition to JPG and GIF formats. PNG-format images may be used as display backgrounds, as labels for objects that support image labels, and with a "Display Image" Filter action.

12378: Cursor changes to "+" when in select by extent mode

In the Display Builder when the select-by-extent mode is enabled (using the Select By Extent toolbar button) or when an extent selection operation is initiated by pressing the mouse button while over the display background, cursor will change to a crosshair indicating a select-by-extent operation is in progress.

Builder - Options Dialogs

12299: Tab list added to left side of Options dialog

The Display Builder Application Options dialog has been reorganized into categories; each category represents a related group of tabs. A category may be selected from the list on the left of the dialog and the corresponding tab or tabs will be displayed on the right.

Builder - Property Dialogs

12355: visFlag property fixed

In the previous release, if the user unchecked the visFlag property in the Display Builder property sheet, the selected object would become invisible as expected, but for some objects the visFlag checkbox would remain checked. Clicking on the checkbox again had no effect so the object remained invisible. Objects on the Controls, Graphs, and Tables palettes were not affected by this problem; all other objects were affected. This problem is fixed.

Commands

12301: Email command added to system commands

An email command has been added to the available System commands. In order to use this command from an Applet, it is necessary to add the following to the Java Policy file. (Change the first two to suit the SMTP server being used. The second two are only needed if attachments are to be sent.) -- grant { permission java.net.SocketPermission "sl631", "resolve"; }; grant { permission java.net.SocketPermission "192.9.200.208:25", "accept, connect, listen, resolve"; }; grant { permission java.util.PropertyPermission "user.name", "read"; }; grant { permission java.io.FilePermission "<<ALL FILES>>", "read"; };

12382: Open Browser command now supported in application

In previous releases, the Open Browser command only worked the Display Viewer Applet and the Display Server. It has been enhanced to work in the Display Builder and Display Viewer as well.

12404: Email system command supported in Display Server

The Display Server now supports the email system command. When an email command is executed from a thin client display, the email message is transmitted from the Display Server, so the SMTP host specified in the email command must be accessible from the Display Server host. The path to an attached file, if not absolute, is relative to the working directory of the Display Server. Limitations: If the email command fails, an error message is printed in the Display Server console but the message is not shown on the thin client. Similarly, the commandWindowCloseOnSuccess property is not supported in the thin client. Threshold commands are not supported. (These limitations apply to all commands executed from the thin client).

Data Historian

12412: Historian support for PostgreSQL8.x improved

The Historian supports PostgreSQL 8.x, using the JDBC3 driver included with Postgres. A typical Historian setup for Postgres is as follows: JDBC Driver Class Name: org.postgresql.Driver JDBC Database URL: jdbc:postgresql://localhost/RTVHISTORY The jar file containing the Postgres JDBC3 driver class must be included in the classpath, for example: set RTV_USERPATH=C:\Program Files\PostgreSQL\8.1\jdbc\postgresql-8.1-405.jdbc3.jar As with other datatabase systems, before using the Historian with Postgres and empty database named RTVHISTORY must be created. This can be done with the pgAdminIII application included with Postgres. The Historian will automatically create the tables it needs in the RTVHISTORY database. But if its preferrable to create those tables manually, the following SQL commands should be used. Note that all table and column names are lowercase and are unquoted. CREATE TABLE history ( var_name varchar(100), time_stamp varchar(30), time_stamp_ls varchar(14), var_value float8 ) WITHOUT OIDS; ALTER TABLE history OWNER TO postgres; CREATE TABLE history_s ( var_name varchar(100), time_stamp varchar(30), time_stamp_ls varchar(14), var_svalue varchar(40) ) WITHOUT OIDS; ALTER TABLE history_s OWNER TO postgres;

Data Sources

JMS Admin Data Source (for TIBCO EMS only)

12380: Attach to EMS Administration dialog no longer crashes

In previous versions, the Attach to EMS Administration dialog would sometimes crash if it was opened very quickly after starting the Display Builder. This has been fixed.

JMS Data Source

12442: EMS Servers tab in Options dialog fixed

The EMS Servers tab in the Display Builder Application Options is no longer initially blank when a custom servers.xml file is used and server discovery is disabled.

JMX Data Source

12377: The JMX data source now supports the java.util.Date type

The JMX data source now supports the java.util.Date type.

SQL Data Source

12387: The BIGINT SQL type is now supported.

The BIGINT SQL type is now supported. A column of this type results in a LONG column in the resulting GmsTabularData.

12388: Memory usage has been reduced when processing text columns

Enhancements have been made to the SQL data source to reduce memory usage when processing strings.

12451: SQL query no longer fails in Data Server with -xmlredirect

In prior releases, if the Display Builder or Viewer redirected SQL queries to the Data Server and the xmlredirect option was specified, then SQL queries containing single quotes would fail. This is fixed.

TIBCO Hawk Data Source

12392: Double values > 2E10^7 in a table no longer display incorrectly

In previous releases, double values greater than 21,000,000 from a TIBCO Hawk Microagent were displayed incorrectly. This has been fixed.

TIBCO Rendezvous Data Source

12297: RV Monitor metrics now include % Retrans and % Pkts Missd

The tables and bar graphs in the RV Monitor application have been updated to show the percentages of missed packets to packets received and retransmitted packets to packets sent.

12302: Support added for multiple transports for RV Monitor

The tables and graphs in the Tibco Rendezvous Monitor have been modified to support multiple transports on a single host.

12381: RV monitor now shows hostnames in addition to IP Address

Tables in the RV Monitor now show the host names in addition to the IP addresses.

Demos

GI Demo

12434: GI demo added to the deliverable

The GI demo has been added to the standard release. The GI demo illustrates the integration of Enterprise RTView with TIBCO GI. The TIBCO GI framework provides the web application frames, with frame content provided by the Enterprise RTView Display Server (thin-client deployment). Refer to demos\gi\JSXAPPS\SLHawkMonitor\README.txt for details on how to integrate TIBCO GI with Enterprise RTView.

Display Server

12223: Property added to specify display's refresh rate in Thin Client

In a Display Server deployment, a display is refreshed in the client browser at regular intervals. The interval (15 seconds, by default) is defined in rtvdisplay.properties and can be changed, but it applies to all displays. In this release, a refresh interval can be assigned to each display using a new background model property named rtvRefreshInterval. To assign a Display Server refresh interval to a display, open the display in the Display Builder and click File/Background Properties and in the dialog click Model Properties. In the property sheet, enter a value for rtvRefreshInterval. If the value of rtvRefreshInterval is an empty string (the default) or is a number less than zero, or is not a number, the default refresh interval (defined in rtvdisplay.properties) will be used. If the value of rtvRefreshInterval is zero, the display will not be periodically refreshed. (The user can still request a refresh from the Thin Client popup menu). A positive number specifies the Display Server refresh rate, in seconds. The minimum interval is 5 seconds. A substitute string may be entered as the value of rtvRefreshInterval, for example $myRefreshInterval. The value for the substitute string could be assigned in a drill down to the display. It is also possible to attach rtvRefreshInterval to data. If the 'refresh' parameter is specified in the URL used to open the display, this value overrides any value specified in the display's rtvRefreshInterval property.

12318: New portlet added for viewing displays in a portlet container

This release includes a portlet which can be used to view Enterprise RTView displays in a JSR 168 compliant portlet container. The portlet has been tested in Liferay/Tomcat but should also work in other JSR 168 compliant portlet containers. The release includes additional configuration files specific to Liferay. For other portlet containers, additional setup may be required.

12373: Display server improved to eliminate blink between page loads

The Thin Client has been improved to eliminate the flash or blink that sometimes occurred when loading a new display. This occurred as the browser cleared the previous page before loading the page for the new display and was most noticeable on large display or in cases where the server response was slow to arrive. In this release, navigating to a new display does not cause the browser to load a new page. As part of this improvement, Back and Next items have been added to the thin client's popup menu. These can be used to recall up to 10 previous displays.

12384: Timestamp provided for -verbose output for Display/Data Server

A timestamp is now included in the diagnostic output from the Data Server and Display Server enabled by the -verbose option.

12390: Bug with logo in headless mode fixed

In the previous release, if the Display Server was run in headless mode and a client viewed panels.html or panels.jsp, the logo panel at the bottom of the page would display an error message. In some cases this would cause subsequent problems loading other displays. This problem is fixed.

12397: Firefox cpu performance improved when connecting to Thin Client

In the previous release, browser CPU usage would increase if a display was left open and refreshing for an extended period in the Thin Client. The problem was more noticeable if multiple panels were used and if the refresh interval was short. This problem is fixed.

12423: obj_table03 no longer crashes display server in -daemon mode

In prior releases, if the Display Server was run with the -daemon option and a client opened a display containing a rotated table object (obj_table03), the server would throw an exception. This is fixed.

12432: Table scrollbars no longer paint outside table in FireFox

In the previous release, when using the Thin Client in Firefox, a table with a width of less than 150 pixels was not drawn correctly. In particular, the table's vertical scrollbar was drawn outside of the table. This is fixed.

12459: Bar graph colors no longer incorrect for multiple bar groups

In the previous release, if a display with a background image also contained a bar graph whose barProperties specified a color index > 32, the Display Server would draw the corresponding bars in white instead of the specified color. This is fixed.

Distribution

12391: Data sources are now found if a final backslash in env variable

In Enterprise RTView 4.3, the data sources did not load correctly if the supporting environment variables ended with \. This has been fixed.

Functions

10497: Edit Function dialog layout reworked

In the Display Builder, the Edit Function dialog has been given an improved layout that will work better when the dialog is resized.

11539: More help information added to the Edit Function dialog

A Help button has been added to the Edit Function dialog, to bring up a dialog containing a detailed description of the selected function.

12338: The Subtotal By Time function now returns time column as DATE

The Subtotal By Time function previously returned the "Value" column as a STRING even if the first column was of DATE type. The new version of this function now sets the type of the resulting table to be the same type as the original data, as long as the Date Format argument is left blank. If the Date Format argument is specified, the function will return a String in the first column as it did before. NOTE: In previous versions, a null Date Format field would result in a default format used in returning the String column. This behavior is now changed and could result in a visual difference is some displays.

12347: New Filter By Wildcard and Extract Data functions using Regex

Two functions have been added for filtering tables: Filter By Pattern, Filter And Extract Matches. The Filter By Pattern function returns a table containing all rows from the input table where the value of a column matches a pattern. This function takes the following arguments: Table: The input table. Filter Column Name: A string that specifies the name of the column in the input table to which the pattern is applied. If this argument is blank, then the pattern is applied to the row name. Pattern: A string that specifies a pattern. For each row in the input table, if the value in the specified column matches the pattern then the row is included in the result table. Pattern Is Reg Expr: An integer. If zero (the default), then Pattern should contain a string where * is a wildcard that represents any character, including none. If nonzero then Pattern must contain a regular expression as described at http://java.sun.com/j2se/1.5/docs/api/java/util/regex/Pattern.html The Filter And Extract Matches function also returns a table containing all rows from the input table in which the value of a column matches a pattern. The result table includes additional columns that contain each token that matches a group in the pattern. This function takes all of the arguments described above for the Filter By Pattern function, plus the following additional arguments: Number of New Columns: An integer specifying the number of new columns that should be added to the result table, to contain the matching groups extracted from the filter column in the input table. In the result table, the new columns appear to the right of the columns copied from the input table. New Column Names: A string specifying the names for each of the new columns, separated by semicolon. This argument is optional. If Number of Columns is larger than the number of names in Column Names, "Group N" will be used for each additional column, where N = 1,2,. For example, if Filter And Extract Matches is configured as follows: Table: trade_table from update.xml (from XML simulator) Filter Column Name: Customer Pattern: * * Pattern Is Reg Expr: 0 Number of New Columns: 2 New Column Names: FirstName;LastName then the result table will contain 2 additional columns named FirstName and LastName, after all the columns from the trade_table, as follows: Customer Symbol Shares Purchase Current High Low FirstName LastName Alice Chen ABC xx x.x x.x x.x x.x Alice Chen Betty Jones XYZ xx x.x x.x x.x x.x Betty Jones and so on. Note that the token that matches each wildcard in the pattern (in this case the customer's first name and last name) is extracted to a new column. The same result table could be obtained with a regular expression: Pattern: (.+) (.+) PatternIsRegExpr: 0 Note that parentheses are placed around each capturing group in the expression. (These are included implicitly around each * in a wildcard string). For more information on Patterns and capturing groups, see the Java documentation for java.util.regex.Pattern at http://java.sun.com/j2se/1.5/docs/api/java/util/regex/Pattern.html

12351: The Subtotal/Count Unique Values function has been optimized

The Subtotal/Count Unique Value functions previously performed poorly when there was a large number of rows in the table, or if the first column of data was of DATE type. These function has been optimized to perform well in both cases

12352: The Pivot On Unique Values function has been optimized

The Pivot On Unique Values function previously performed poorly when the "Key" column was of DATE type. This function has been optimized to perform well with all data types.

12353: The Pivot On Unique Values function now performs subtotaling

The Pivot On Unique Values function previously replaced the data in the pivot columns when consecutive rows were encountered containing identical pivot name values. This function has been enhanced to now subtotal the data when consecutive pivot names are encountered.

12354: The Subtotal functions now have option to retain columns names

The Subtotal By Time and Unique Value functions now provide an argument that permits the retention of the original columns names. Previously, the subtotal columns were names "Subtotal1..." or "Total1". The new argument "Use Column Names" when set to 1 retains the original column names. A value of 0 maintains existing behavior, useful when a display is built that needs to be independent of the column names in the data.

12356: Count By Bands function added

A new function Count By Bands has been added. This function accepts as arguments a Min Value, Max Value and Number of Bands. It divides the range given by the min and max into bands and counts the number of rows in the Table argument that contain a value that lies within each band. This function returns a table containing one column that holds the midpoint values of each band (one row for each band), and N additional columns, one for each column that was contained in the given Table argument. These columns contain the total counts of values that fall within the calculated bands. If the Return Cumulative Percents argument is set to true (1) then the returned columns will contain the cumulative percentage of the total count in each cell, rather than the individual counts.

12415: New First(n) and Last(n) functions added

Two new functions, First Table Rows and Last Table Rows, have been added. These functions provide the ability to select a given number of rows at the beginning or at the end of a given table. Additionally, it is possible to a specify a set of Index Columns which may be used to group the selected rows by the unique values in the index columns. If Index Columns are specified then the given number of rows will be returned each combination of unique values in the index columns.

12416: Provide Baseline Over Time function added

A new function has been added to provide the ability to calculate a baseline average over time given a time-series data set. The Baseline Over Time function calculates a baseline average of the values in the specified Table over the number of Date Part Intervals and offsets the timestamp to a Reference Time. It can be used to generate a baseline trace which may be plotted in the same chart against a set of current data for comparison purposes.

12420: Count and Subtotal By Time no longer incorrectly rounds days

In previous versions, the Count and Subtotal By Time functions would round the date if multiple date parts were specified. This has been fixed.

12424: New Group By Unique Values Function added

A new function has been added, the Group By Unique Values function. This function is similar to the existing Subtotal By Unique Values function, but is more general. It provides the ability to specify a set of Index Columns along with a predefined Value List. All data in the given table are aggregated and grouped by the given index columns. A Group Type parameter may be set to "SUM", "COUNT", "AVERAGE", "MIN", or "MAX" to indicate the type of aggregation that is desired.

12425: New Group By Time Function added

A new function has been added, the Group By Time function. This function is similar to the existing Subtotal By Time function, but is more general. It provides the ability to specify a Date Column, a Time Range, and an aggregation Interval. All data within the specified range are aggregated by the given time interval. A Group Type parameter may be set to "SUM", "COUNT", "AVERAGE", "MIN", or "MAX" to indicate the type of aggregation that is desired.

12426: New Group By Time and Unique Values Function added

A new function has been added, the Group By Time And Unique Values function. This function is a combination of the Group By Time and the Group By Unique Values, permitting the aggregation of data by both time and index columns. This is the most general of the aggregation functions provided in Enterprise RTView.

12427: New Filter By Time Range function added

A new function, Filter by Time Range, has been added. This function provides a way to filter a table based on a given Start and End Time. It returns a copy of the given table containing only the rows in which the value in the Time Column falls within the specified Range.

12462: New Reference Function added

A new Reference function has been added. This function makes a reference to a specified table without copying the contents.

Local Variables

12422: Initial value now saved correctly if it contains quotes

In prior releases, the initial value of a local variable could not contain the double quote character. This is fixed.

Object Library

11695: tableStringValues changed to valueTable for all objects

The tableStringValues property has been renamed valueTable. This affects the following objects: obj_aggalertlava, obj_bargraph, obj_objectgrid, obj_pie, obj_radar, obj_table02, obj_table03, obj_xygraph.

12240: Bug in Object Properties for combo boxes has been fixed

A minor bug that was appearing in some of the Object Properties combo boxes has been repaired. When clicking on some combo boxes, the bug caused an incorrect value to be initially selected in a few circumstances. This bug did not impact the user's ability to correctly choose values from the combo box.

12458: Default bgEdgeWidth changed for all rectangle general objects

In the Display Builder, the rectangle objects on the General tab of the Object Palette have been modified to have a bgEdgeWidth value of 1.

Bar Charts

12298: Bar graph no longer fails to show very small values

The obj_bargraph graph would sometimes fail to show any bar when the values were very small (compared to the graph scale) whereas a zero value bar would show as a very small bar. This behavior has been modified so that very small values and zero values will both show a very small bar.

12337: More space added between labels

The calculation used to decide whether to rotate axis labels in the bar graph has been improved. In previous versions of RTView, the labels had to be within 1 pixel of each other before the rotation code was activated. A larger gap is now maintained between horizontal labels.

Charts (General)

12324: Trace marker appearance has been improved

In previous version, markers on traces were often but not always drawn symmetrically. This bug was fixed and now the markers are drawn more symmetrically in most cases.

Control Objects

12229: valueToSet* properties added to check box control object

The checkbox control object (obj_c1btn_chk) has been enhanced to include two new properties, valueToSetChecked and valueToSetUnchecked. The default values are 1 and 0, respectively. A checkbox can be used to set a local variable, by attaching the variable to the varToSet property of the checkbox. If the new valueToSetChecked and valueToSetUnchecked properties are set to their default values (1 and 0), the checkbox will continue to work as in previous versions, setting the local variable to 1 when checked and to 0 when unchecked. To have values other than 1 and 0 placed into the varToSet local variable when the checkbox is checked and unchecked, assign the desired values to valueToSetChecked and valueToSetUnchecked properties. A string or number can be entered for either property, including an empty (zero-length) string. The value property of the checkbox can also be attached to data. Typically it is attached to the same local variable as the varToSet property. For compatibility with previous versions, if valueToSetChecked is 1 and valueToSetUnchecked is 0, then the the checkbox will be checked when its value property can be converted to a nonzero integer value and will be unchecked otherwise. If valueToSetChecked is not 1 or valueToSetUnchecked is not 0, then the checkbox will be checked when its value property equals the the valueToSetChecked property and will be unchecked otherwise.

12262: Text entry and area control Display objects now lose focus

In prior releases, in the Display Builder's preview window and drill down windows, a lost focus event was not delivered to a text control object unless the user clicked on another control object or outside of the window. Clicking on blank space in the window or on a non-control object should also generate a lost focus event. This is fixed.

12311: Color and font support enhanced for controls

Control objects have been enhanced. The fgColor property is now supported on the button, combo box, and list box controls. The labelTextFont and labelTextSize properties are now supported on the button control. The Display Builder allows a value of "Default" to be assigned to the bgColor and fgColor properties of most control objects, indicating that the default color should be used for that property. For example, if Default is assigned to the bgColor and fgColor of a push button, then in the Display Viewer the push button will have the standard Java push button look (black text on a blue/white gradient). In a browser using the Enterprise RTView thin client, the push button will have the browser's default push button look. This feature is supported on the push button, combo box, and list box controls, and on all text edit controls. "Default" is the initial value for bgColor and fgColor when an instance of any of those controls is made from the Controls palette. To assign Default to bgColor or fgColor through a data attachment, use a value of -1.

12456: Combo box no longer crashes if all entries in listValues are

If the listValues property of a combo box was attached to a table and a nonexistent column name was specified, an array bounds exception was thrown. This is fixed.

Legends

12341: Color thumbnail in legend has been enlarged

The color swatch in the Legend now shows slightly larger and is positioned vertically to be approximately centered. With a legend text font size of 16 points or more, the position is given a slight adjustment to look better in the larger vertical space available.

Links

12406: Links now supported between very small nodes

In versions 4.3c1 and 4.3d1, it was very difficult to create a link between very small nodes. This has been fixed.

12407: Link creation line no longer left in a display

In previous versions, if the user cancelled in the middle of adding a link, the link creation line was left in the display. This has been fixed.

12408: Cloning multiple links now properly shows all links

In previous releases, when multiple links between the same two nodes were copied and pasted, the pasted links drew on top of each other until the display was reloaded. This has been fixed.

Object Grid

12364: Boolean data can now be mapped to integer fields

The object grid has been enhanced so that columns of boolean data can be mapped to integer fields in the Icon Properties dialog.

Tables

11942: Row selection is lost after sorting a table

In the table object (obj_table02) if you selected a row and then resorted the table by clicking on one of the column headers, the selection would stay on the same row number instead of following the data for the originally selected row. This has been fixed.

12165: Column headers now display when a row filter returns no rows

In previous versions, if a row filter resulted in no rows, the object did not display the column headers. This has been fixed.

12176: Drill down no longer occurs when you left-click in edit mode

This bug has been fixed and now drill down does NOT occur when a cell in a obj_table02 is left-clicked, while the table is being edited and drill-down is active.

12212: Support null value for date field

Support for null timestamps has been improved in the SQL and XML data sources. In prior releases, these data sources converted null timestamp to a value of zero, which was displayed as a time near Jan 1 1970 (The actual displayed time depended on the local timezone). In this release, a null timestamp will be displayed as an empty string.

12457: bgBorderFlag added to default background model

In the Display Builder, the default background model has been given an additional property, bgBorderFlag. You will see this property when you open the Background Properties dialog and click Model Properties. Unchecking bgBorderFlag will remove the 1-pixel black line around the outside edges of the background.

Trend Charts

10675: Autoscale on Trend Graph includes all traces

This bug was fixed by adding the yAxisAutoScaleVisTracesOnlyFlag property to the Trend Graph in the Y-Axis category. yAxisAutoScaleVisTracesOnlyFlag is false by default and controls whether invisible traces contribute to the autoscaling of the Y axis. True means include only visible traces and false means include all (even invisible) traces.

12261: Zoom-out of trend graph no longer interrupted by multi-select

In the previous release, the zoom-out feature of the trend graph was erratic in the main editing window of the Display Builder, since a Shift+Click event is also used to deselect an object. Now, if the user performs a zoom-in on a trend graph in the main window, a subsequent Shift+Click on the graph area will perform a zoom-out, as in the Display Viewer.

12330: Option added to round start and end times

The trend graph has been enhanced to allow the time axis endpoints to be rounded for historical traces. In prior versions, if a positive value is specified for the timeShift property, the time axis endpoints are rounded to the nearest multiple of that value in seconds. But a positive timeShift value also causes the time axis to shift at the timeShift interval to include the current time, which is unsuitable for historical traces. In this release, if a negative timeShift value is specified the time axis endpoints will be rounded to the nearest positive multiple of that value in seconds, but the time axis will not shift unless the trace data changes. For example if timeShift = 15 (the default), the time axis endpoints are rounded to the nearest 15 second interval, and the time axis will shift left every 15 seconds to include the current time. In this release, if timeShift = -15, the time axis endpoints are rounded as before but the time axis will only shift if new data is received. So, a graph with historical traces should use a negative timeShift value.

12334: Trace line no longer covered by scrollbar

In prior releases, if a trend graph trace line was drawn at the very bottom of the trace area it was obscured by the graph's horizontal scrollbar. This is fixed.

12441: Support added to plot multiple points at same time

The trend graph can now plot multiple y values with the same x (time) value, as it could in releases prior to 4.3

12445: traceNValue saved to HISTORY_S table

In release 4.3, if a display contained a trend graph with traceNValue (N=1,2,3...) attached to a scalar data value (not a table), and the display was used as a data configuration file in the Historian, the Historian would not store the data in the history table as expected and would be unavailable to the Display Builder and Display Viewer. This problem is fixed.

RTView Display Panel

10052: Add recently opened file list to the File menu

The Display Viewer and Display Builder have been enhanced to display lists of recently-opened files on their respective File menus. You may use these lists to re-open files you have recently opened.

Reporting

12186: Report generated for All EMS Servers include all data

In previous versions, reports generated for the "All EMS Servers" display were missing data. The previously missing data now appears in the generated report.

12285: Display name is no longer the same for all displays

Previously reports generated by the report generator using a report config file containing multiple sections would have all the pages with the name of the first display as their header. Now the header for each page is the name of the display used for the section (unless the report title option is used, in which case the title of the report will be used as the header for all pages in the report).

12346: Rotated table now supported in expanded report

In previous versions, expanded rotated tables (obj-table03) were not included in reports. Rotated tables now appear expanded in reports.

12374: Dotted lines now appear in generated reports

Previously dotted lines did not appear in PDF output. Dotted lines now appear in PDF output.

12375: Size of generated tables and object grids reduced

In previous versions, expanded tables and object grids were too large in generated reports. Generated reports are now scaled such that expanded tables and object grids are the same size in the printed report, as they appear on a 19 inch 1280x1024 display.

12398: Indication added when report is generating

The Display Builder and Display Viewer now display a transient dialog to give an indication that PDF is being generated. The dialog is automatically dismissed when the PDF generation is complete.

12411: Asian characters now appear in pdf output

Previously Asian characters used in objects were not included in pdf output. PDF output will now contain Japanese characters when generated in a Japanese locale. Chinese characters in a Chinese locale, and Korean Characters in a Korean locale are also supported.

12428: Slider object no longer crashes headless report generation

Previously displays containing slider objects would cause errors when attempting to create reports using the Report Generator in headless mode. This has been fixed.

12429: Option added to use only date for generated report

The attribute append_timestamp in the output element of the report configuration file has been enhanced to allow just the date to be used as the timestamp part of the report file name. The values and the effect on the output filename are as follows. Value is the value of the append_timestamp attribute. e.g. append_timestamp = "value" timestamp is the format of the timestamp part of the generated report file name Value Timestamp none <none> false <none> true _yyyyMMdd_HHmmss date_time _yyyyMMdd_HHmmss date_only _yyyyMMdd

12430: Date format in generated reports changed

Previously when reports were generated with the attribute append_timestamp = "true" in the output element of the report configuration file, a long, field separated timestamp was generated. (of the form yyyy_MM_dd_hh_mm_ss ). A more compact timestamp (of the form yyyyMMdd_hhmmss) is now used.

12431: New title attribute supported for report generation

The report configuration file for the report generator now has a new, optional, attribute for the report element - title. When set, the the title value will appear as the title for all pages in the report. e.g. <report name = "report1" title = "My Report" >

12443: Error message displays when trying to overwrite open pdf

Previously, no error message was given when attempting to export a PDF to an output file that was already open by another application (e.g. exporting to a previously generated PDF file, when that file was currently open in acrobat). This error is now reported. The report generator will issue an error on (standard) output. The Display Builder and Display Viewer will raise an error dialog.

Substitution

11977: '\' character in a dd sub no longer saved as '/' character

In prior releases, substitution values in the drill down target property of a non-control object could not contain backslashes. This is fixed.

12455: Spaces in command line arguments no longer break on Windows

In version 4.3d1, command line arguments with spaces were not processed correctly. This has been fixed for Windows. To specify a command line argument with spaces, enclose the entire argument in quotes. For example: run_builder "-sub:mysub:sub value"

TIBCO EMS Manager

12290: Monitor Messages no longer required to browse topics and queues

Previously, in order to browse topics or queues it was necessary to start the EMS Manager with the Monitor Messages option enabled. This limitation has been removed. The EMS Manager will now attempt to make an administrative connection to a server whenever a topic or queue browser is requested. Once an administrative connection has been made, it will remain active so that subsequent topic or queue browsing for the same server will use the existing connection.

Transaction Message Monitor

12231: Support added for header & property fields in JMS TM

The JMS Transaction Monitor now supports getting the transaction id from property and header fields in a JMS message. To specify that the id field is a header, prefix the header field name with $header. For example: msg msgA $header:JMSCorrelationID To specify that the id field is a property, prefix the property field name with $prop. For example: msg msgA $prop:senderID Both the header and property fields can be used in conjunction with other fields when concatenating a transaction id. For example, msg msgA $header:JMSCorrelationID $prop:senderID fieldA The JMS Transaction Monitor does not support XML in either the header or property fields.

12286: Transaction Monitor no longer outputs bad data

In previous releases, there were 2 cases where the Transaction Monitor would output bad data. The first case is when the first message in any transaction definition is used in any other transaction definition. This has been fixed by only allowing one transaction with a given ID to process at a time. There is still one limitation for this. The first message in a transaction definition cannot be used as the first message in any other transaction definition. # The second case where bad data was produced is if one or more messages were skipped in a transaction. For example, if a transaction definition contained 5 messages and the first message then the last message was received without the messages in between, the transaction was completed. This has been fixed. Now if a message in the transaction is skipped, an error message will print to the console that a message was received out of order and the transaction will not be updated.

Version 4.3d1 Release Notes

Enterprise RTView

Reporting

B12345: Rotated table no longer causes crash when exporting report

In Enterprise RTView version 4.3c1, exporting a report for a display that contained a rotated table (obj_table03) caused an exception to be thrown and the application to hang. This problem has been fixed.

B12348: Report Save As dialog now shows directories

In Enterprise RTView version 4.3c1, the Save As dialog for exporting reports did not show directories. This made it difficult to save reports in a directory other than the one containing the display. This has been fixed.

Editing Functionality

B12349: Preview now works for displays with file names containing spaces

In Enterprise RTView version 4.3c1, the preview window did not work for displays with file names containing spaces. This has been fixed.

Distribution

B12342: All Windows shortcuts now work without RTV_HOME\bin in PATH

In Enterprise RTView version 4.3c1, many of the Microsoft Windows shortcuts in <install_directory>\shortcuts did not work. This has been fixed.

B12344: Run scripts now work when run as UNIX background processes

In Enterprise RTView version 4.3c1, some of the run scripts did not work when run as UNIX background processes. This has been fixed.

Version 4.3c1 Release Notes

Enterprise RTView

Builder Application Body

B12193: Undo stack correct if select an item in a drill down window

In previous Enterprise RTView releases, if selecting an object in a drill down window deselected an object in the main window, the undo event did not get recorded. This caused the history stack to get corrupted. This problem has been fixed.

B12195: Copy from drill down window fixed

In the Display Builder, if an attempt was made to copy an object from a drill down window to the main display it would fail. This has been fixed.

Reporting

E11400: PDF report generation now supported

PDF reports can now be exported from, or generated using, Enterprise RTView. The 'export' functionality is available from all interactive deployment options of Enterprise RTView. For interactive versions of the Display Viewer or Display Builder: The user can choose which Enterprise RTView display for which they want a report generated. The user can select the kind of report to be exported ('Display' or 'Report') The user can select page layout options (orientation, margins) for the generated report. The user can select where the exported report is to be saved. Instructions for interactive applications Select the type of report you wish to export from the main menu, or from the popup menu on a display. Select the desired output (orientation, margin) options from the Page Setup Dialog. For non-applet applications you can then choose the name of the file you wish the generated report to be saved as using the Save Dialog. The report is then generated and saved. For browser based interaction (applets + Display Server based), once the Page Setup has been set, the generated PDF will be opened in a new browser window. NOTE: Some popup blockers may prevent the creation of this new browser window. Please configure your popup blockers to allow the creation of these new windows if you wish to view and save the generated PDF. If Adobe Acrobat has been configured as the application to view PDF files from within a browser, then the "Save a copy" toolbar button can be used to save the generated PDF file to the local file system from within the browser. Reports can also be generated from the "Report Generator" by means of a configuration file that controls the contents of the generated report(s). Report Generator This is designed to allow the generation of specified reports from the command line by means of a(n XML) report configuration file. It is run by running the run_reportgen script in the directory where the Enterprise RTView .rtv files reside. It takes the following arguments: -report:<<>report config file name<>> // name of configuration file to be used -verbose // output verbose status information during report generation -silent // supress vebose xml parsing e.g. cd %RTV_HOME%/demos/features run_simdata run_reportgen -report:report.xml A report generator configuration file is an XML file. An example report.xml file is given below. <?xml version="1.0" ?> <rtvreport xmlns="www.sl.com" version="1.0"> <report name = "report1"> <section display = "object_variety.rtv" subs = "" timeout = "0"> <page_setup orientation = "landscape" margin_left = "1.0" margin_right = "1.0" margin_top = "1.0" margin_bottom = "1.0"> </page_setup> </section> <section display = "object_variety2.rtv" subs = "" timeout = "0"> <page_setup orientation = "landscape" margin_left = "1.0" margin_right = "1.0" margin_top = "1.0" margin_bottom = "1.0"> </page_setup> </section> <output filename = "report1" append_timestamp = "true" report_or_display = "report"> </output> </report> <report name = "report2"> <section display = "object_variety3.rtv" subs = "value1:value2 value3:value4" timeout = "0"> <page_setup orientation = "landscape" margin_left = "1.0" margin_right = "1.0" margin_top = "1.0" margin_bottom = "1.0"> </page_setup> </section> <output filename = "report2" append_timestamp = "true" report_or_display = "report"> </output> </report> </rtvreport> The report configuration is contained within the <rtvreport> element. An rtvreport can consist of multiple reports. A report is contained in a <report> element, and has a 'name' attribute. A report consists of multiple <section> elements and an <output> element. A <section element> has a <page_setup> element. A <section element> has the following attributes: display = "object_variety3.rtv" subs = "value1:value2 value3:value4" timeout = "0" 'display' - name of rtv display to use for section 'subs' - any subs values to apply to rtv display 'timeout' - time to wait (in seconds) for data sources to update before producing report for section A <page_setup> element has: 'orientation' element - values are "portrait" or "landscape" margin attributes (values are in inches) margin_left = "1.0" margin_right = "1.0" margin_top = "1.0" margin_bottom = "1.0" An <output> element has the following attributes: filename = "report2" append_timestamp = "true" report_or_display = "report" 'filename' - base name of generated report file - pdf suffix will be added automatically 'append_timestamp' - values are "true" or "false" - append timestamp to file basename - timestamp is a 'version' of ISO date format that allows sorting, and will work on windows filesystems 'report_or_display - kind of report to generate , values are "report" or "display"

Editing Functionality

E10038: Click and drag scaling of objects added

Improvements have been made in the way selected objects are displayed and how they are moved and scaled, as described in the following list. Objects may be selected and unselected as before: by drawing a rectangle around a group of objects, by clicking (with or without Shift and Control modifier keys) on objects, by the keyboard shortcut Control-A, and by using the Object List dialog. Selected objects are outlined with an extent rectangle. Within the selection extent the selected objects (if more than one) are outlined with highlights. The first object selected will be outlined with a broad dashed line and the others with a narrow solid line. The first object (sometimes called the focus object) will have its properties displayed in the property dialog and will be used as the anchor object for align operations. The entire selection may be moved by grabbing with the mouse any object in the selection or any side of the selection extent. The entire selection may be scaled by grabbing with the mouse any of the handles at the corners of the extent and at the midpoints of its sides. Scaling by grabbing a corner handle will cause the objects to be scaled in both width and height, while grabbing a side handle will cause the objects to be scaled in either width or height but not both. (Note the "scale" menu items have been removed.) The mouse cursor will change when over a selected object or an extent side to indicate the object(s) may be moved, and will change when over an extent handle to indicate they may be scaled. These cursor changes replace the textual "move" and "scale" tooltips. The cursor will also change when adding an object from a palette, or via a copy-paste operation, and when adding a link. These cursor changes replace the textual "add" and "connect" tooltips. The extent handles are disabled in drill down windows. The highlights within the selection may be disabled, leaving only the exterior extent rectangle, with the command-line option nohilites.

E12269: Preview Window added to Display Builder

A new "Preview Window" option and toolbar button have been added to the Display Builder. Selecting this option brings up the current display in a Preview Window, so that you can exercise control objects. (Control objects are not active in the main editing window). Once you have made any edits, the Preview button becomes greyed out until you do a Save. This is because the Display Builder cannot do the preview without loading the display from disk.

Command Execution

E12085: Mechanism implemented to notify user of command failure

In this release of Enterprise RTView, commands executed by a custom data source or a custom command handler can return a status object, indicating whether the command succeeded or failed, and containing an optional error or information message that will be displayed in a dialog window. For the Display Server, the status message is printed to the Display Server console but is not shown on the client.

E12086: Command confirm added for control objects

The commandConfirm property is now supported for controls. The default is false.

E12087: Mechanism implemented to close window on successful command

All objects now support a commandCloseWindowOnSuccess property. The value of this property is a boolean. If true, and if the object is displayed in a popup window, the popup window will be closed after the object is clicked and its command is successfully executed. Custom commands and custom data source commands can be coded to return a status object that indicates whether the command succeeded or failed (E12085). Note that this commandCloseWindowOnSuccess is ignored by the Display Server. Also note that all built-in system and data source commands return a success status, regardless of the actual command results, so for those commands the popup window will always close if commandCloseWindowOnSuccess is true.

E11978: Command confirm text property implemented for objects

All objects now support a commandConfirmText property. The value of this property is a string. When an object is clicked, if a command is defined for the object and the commandConfirm option is checked, the value of commandConfirmText will be displayed in a confirmation dialog. The property value may be attached to data, and may also contain substitutions. For control objects, it may also contain $value.

B12210: Text box in System Command dialog fixed

In the Display Builder Define Command dialog, some of the text boxes would be displayed with their bottom edge truncated after text was entered and the dialog re-displayed. This has been fixed.

Functions

B12183: Attach to Function Data now allows sub in name

In Enterprise RTView version 4.2c, a bug was introduced that disallows substitutions in the name of a function specified in the Attach to Function Data Dialog. This has been corrected.

Display Server

B12291: Thin Client grid no longer loses rows when table shrinks

In prior Enterprise RTView releases, if a scrolled grid was displayed on the Thin Client and the user had scrolled down in the grid, and if the grid was then updated with a data table that contained fewer rows, sometimes rows were missing or clipped in the updated grid. This problem is fixed.

B12245: IE browser now works with long URLs from Display Server

The Display Server used to generate URL's that exceeded the Internet Explorer limit of 2048 characters for displays that had a large number of substitutions, or substitutions that contained a lot of characters. This problem has been fixed.

B12185: General SQL query error in Display Server fixed

In the previous Enterprise RTView release, if the Display Server closed a display at the same time that it was opening another display, and if both displays used the same general SQL query, the query results were discarded and the following error appeared in the Display Server's console window: ERROR: Can't share general SQL query. This has been fixed.

B12243: Command confirm now works correctly in Display Server

In previous versions, the command confirm did not work in the Display Server for datasource commands, and did not include all arguments in the case of system commands. This has been fixed.

B12168: Column headers now centered in Display Server

In the previous release, the Display Server aligned table column header text incorrectly. The text was shifted several pixels to the left to allow room for the sort icon, even when a column was not selected as the sort column. This has been fixed.

B12169: Arrow icon missing on column sort in Display Server

In Enterprise RTView version 4.2c, a bug was introduced that caused the arrow icon, visible when columns are sorted in a table, to disappear in the Display Server. This has been corrected.

B12170: Scrolling no longer breaks time range in Display Server graphs

In Enterprise RTView version 4.2c, a bug was introduced that caused scrolling to break the time range when toggling between two time ranges in trend graphs in the Display Server. This has been corrected.

B12226: Stock and XY graphs on mult clients with diff range fixed

In prior releases, the Display Server would sometimes draw a scrolled graph with an incorrect x or y range if multiple clients were viewing the same display and interacting with the scroll bar on the graph. This problem is fixed. PALREV: (360816)

B12172: Trend graph scroll problem with multiple clients fixed

In Enterprise RTView version 4.2c, if two clients were viewing the same display with a trend graph, and one client changed the time range of the graph using a local variable, the other client would also see this time range if they scrolled. This has been corrected.

E12122: Support for using Display Server output in an HTML DIV tag

A custom JSP tag library is now supported by the Display Server. The tag library, or taglib, allows users to create custom JSP pages containing one or more Enterprise RTView displays, without writing JSP scriptlet code. This feature requires a servlet container that supports JSP 2.0 such as Tomcat 5.0 or newer. TAGS: The Enterprise RTView taglib defines two tags: 1. setup - This tag must be included once on each JSP page that uses the Enterprise RTView taglib. It will insert references to Javascript files and CSS files required by the Display Server. This tag has no attributes. Example: <rtv:setup/> 2. display - This tag inserts an HTML DIV tag containing an Enterprise RTView display. Note that the setup tag must be included in the JSP page before the first display tag. The display tag has the following attributes: id - (required) the ID for this tag. This must be unique on the JSP page. An id must start with a letter and may contain only letters and digits. displayname - (required) a string specifying an Enterprise RTView display (.rtv) file name. This should correspond to the name of a display file accessible by the Display Server. refresh - (optional) a positive number defining the rate, in seconds, at which the display inside this DIV should be refreshed. If zero, the DIV is not periodically refreshed. If not specified, the refresh rate is determined by the setting in rtvdisplay.properties. style - (optional) the CSS style to be used for this DIV Example: <rtv:display id="d1" displayname="MyDisplay" refresh=0"/> REQUIREMENTS: There are a several requirements for JSP pages using the Enterprise RTView taglib: - The taglib must be defined at the top of the JSP page as follows: <%@ taglib prefix="rtv" uri="rtv.tld" %> Note that the file rtv.tld is contained in rtvdisplay.war - For proper operation of the Enterprise RTView menu, the onmousedown and onkeydown event handler of the page's BODY should be defined as follows: <BODY onmousedown="rtvBodyMouseDown(event)" onkeydown="rtvBodyKeyDown(event)"> If other functions are already assigned to these event handlers, then those functions should call rtvBodyMouseDown and rtvBodyKeyDown. - As mentioned above, the <rtv:setup> tag must be included once per JSP page, before the first display tag. - As mentioned above, the id attribute of each <rtv:display> tag must be unique on the page and may contain only letters and digits. - Each JSP page must include the Enterprise RTView menu, as follows: <jsp:include page="rtvmenu.html"/> This is typically added near the end of the page's BODY, and should not be enclosed in any elements other than <BODY>. - All .jsp files must be added to the rtvdisplay.war file, which must then be redeployed. EXAMPLE: The following is a simple JSP page using the Enterprise RTView taglib. <%@ page contentType="text/html;charset=UTF-8"%> <%@ taglib prefix="rtv" uri="rtv.tld" %> <HTML> <BODY topmargin='0' leftmargin='0' onmousedown="rtvBodyMouseDown(event)" onkeydown="rtvBodyKeyDown(event)"> <rtv:setup/> <rtv:display id="d1" displayname="MyDisplay" refresh="0"/> <rtv:display id="d2" displayname="AnotherDisplay" refresh="30"/> <jsp:include page="rtvmenu.html"/> </BODY> </HTML> LIMITATIONS: A separate timer is used for each <rtv:display/> tag that has a nonzero refresh rate. If all of the display tags on a page use the same refresh rate, they may still be refreshed at slightly different times. Also a display's timer is restarted when a drilldown is performed in the display, which may offset its refresh timer from other refresh timers on the page.

E12127: Display Server now runs as a daemon process

The Display Server can now be run on a headless host, as follows: run_displayserver -daemon

Data Server

B12265: Data Servlet sometime fails to reconnect

In prior releases, if the Display Viewer was configured to connect to the Data Servlet via HTTP and if the connection was lost and then quickly restored, the Display Viewer would sometimes ignore subsequent data updates from the Data Server until a different display was opened. This has been fixed.

B12238: Data Server improved to avoid sending redundant data

The Data Server has been improved to avoid sending redundant data when a client adds or changes data listeners.

Transaction Message Monitor

E12187: JMS Transaction Monitor now supports JMSCorrelationID

The JMS Transaction Monitor has been enhanced to allow the use of the JMSCorrelationID as an id field.

Data Sources

E12246: Return command status implemented for all system commands

The handling of system command errors in the Display Viewer has been improved. If a system command fails, a message dialog will be displayed. Also, if the command is invoked from an object in a popup window and the object's commandCloseWindowOnSuccess property is set, the popup window will be closed if the command succeeds but will not if it fails. Previously, the message was only printed in the Display Viewer's console window and if commandCloseWindowOnSuccess was set the popup window was closed whether or not the command succeeded. This change affects these system commands: Execute URL Open Browser Play Audio File Run DOS or Unix Command Note that support for this feature on Custom Commands and Custom Data Source Commands was added in the previous release. Currently, this feature is not supported on Data Source commands. For a DOS or UNIX system command, the Display Viewer checks if the command is started succesfully. It does not check the command's exit status. The Display Server is not affected by this change.

TIBCO RV Datasource - Monitor Feature

E12192: TIBCO Rendezvous Monitor support for RV data source added

The TIBCO Rendezvous data source has been enhanced to support built-in monitoring functions. The metrics produced by these functions are accessible via data attachments to special subjects that start with the name "RTViewDs.". There is a new Display Builder Options tab named "TIBCO Rendezvous Monitoring". On this tab, there is a check box that can be used to control whether the special RTViewDs subject tables are made visible in the data attachment dialog. This is off by default, but may be turned on in order to attach to the monitoring metrics. The following monitoring metrics tables are available: RTViewDs.HostStatusTotal - the latest data for all hosts obtained from the TIBCO Rendezvous information message: _RV.INFO.SYSTEM.HOST.STATUS RTViewDs.HostStatusCurrent - the same as the previous table, except that each numeric value is replaced with a delta from the previous message RTViewDs.HostStatusHistory - a running history of all the HostStatusCurrent rows only sets a property on an object when referenced for the first time; used for trend graph history RTViewDs.HostStatusHistory2 - same as History, but sets a property on an object every time a new row is added; used in history table RTViewDs.ConfigServices - output from tibrvconfig getServices method RTViewDs.ConfigClientTransports - output from tibrvconfig getClientTransports method RTViewDs.MultiCast* - six tables showing all output from rvtrace: PacketSource, PacketDest, PacketTotal SubjectSource, SubjectDest, SubjectTotal In the TIBCO Rendezvous Monitoring dialog, the following options are available: Show Monitor Tables in Data Dialog - Controls whether tables appear in data dialog Monitor Host Status Messages on Start - Controls whether Enterprise RTView begins monitoring on startup or waits until a display references a HostStatus table Host Status History Depth - Sets the number of rows of data kept for each host. Default = 1000. A value of 0 means keep no history. A value of -1 means it is unbounded. Run Rvtrace on Start - Controls whether rvtrace begins running on startup or waits until a reference is made to a Multicast table Rvtrace Period - Sets the rvtrace update period. Default is 10. A value of 0 means use the default of 10. The following command line options may be used to override any of the default values or those set by the Options Dialog and stored in RVOPTIONS.ini -rvds:showindialog: - true or false -rvds:rtviewds.hostatus.onstart: - true or false -rvds:rtviewds.hoststatus.history: - set to -1, 0, or positive integer -rvds:rtviewds.rvtrace.onstart: - true or false -rvds:rtviewds.rvtrace.period: - set to 0 or positive integer

TIBCO Hawk Data Source

B12184: Objects showing RTViewDs Alert no longer cleared with alerts

In previous releases of Enterprise RTView, a scalar object (ie, meter, label, scale) that was displaying the Alert column of the RTViewDs microagent would go blank when the cleared alerts were removed. Cleared alerts are only removed if the Rate to Remove Cleared Alerts is set to a value greater than 0 in the TIBCO Hawk Methods and Alerts tab of the Application Options dialog. This problem has been fixed.

B12209: HAWK problem when saving options fixed

A crash would sometimes occur in the TIBCO Hawk data source when saving Options if there was no default console active. This has been corrected.

OLAP Data Source

E12268: Support for multi-byte strings added for ODBO connections

In previous Enterprise RTView releases, OLAP databases containing multi-byte characters were not supported in the ODBO connection. This has been fixed.

JMS Admin Data Source (for TIBCO EMS only)

B12280: Objects displaying filtered EMS Manager data are now cleared

In previous versions of Enterprise RTView, filtered data was not cleared from the objects displaying row filtered data in the queue demo in the TIBCO EMS Manager. This has been fixed.

B12281: Queue browser enhanced

The behavior of the queue browser has been changed to provide a snapshot of the queue on each update rather than only displaying new messages in the queue.

Sample Displays and Applications

RV Monitoring Sample Application

E12233: RV Monitor demo has been added

A new demo "rvmonitor" has been added to the demos directory. This demo consists of a set of displays that can be used out-of-the-box to monitor the health and status of a set of TIBCO Rendezvous daemons.

GI Demo

E12247: GI Demo link added to Start Menu

A link to the online GI Demo has been added to the Start Menu.

JMX Monitor

B12241: All substitutions now shown in JMX Monitor for Display Server

In the JMX Monitor, the Display Server Application Manager RNREV: (082906) previously showed only the requested substitutions for each active display. This has been changed so that the current (actual) substitutions are shown instead, including substitutions that are embedded in the display as well as any substitutions made as the results of drilldown-sub (SETSUB) functions on the objects in the display.

Object Library

E12237: Several properties are renamed for consistency

The following object properties have been renamed: command string is now command command confirm is now commandConfirm drill down target is now drillDownTarget

E10664: Text Area object added

A text area control object has been added. The control supports display and entry of multi-line text with optional word wrap. Scrollbars appear in the control as needed. A text area control can be configured to set a local variable or to perform a command. These actions are performed when the control loses focus. The text area control supports properties for font, font size, foreground (text) color, and background color. In this release, these properties are also supported for the single-line text edit control. In prior releases, only the background color property was supported. In the Display Viewer, pressing the tab key inside a text area control will insert a tab character in the text. To move the keyboard focus away from a text area control, either click outside of the control or press Ctrl-Tab. In the Thin Client Browser, pressing the tab key inside a text area will move the keyboard focus.

Tables

B12140: Table Filter Properties dialog fixed to show scrollbars

In the Display Builder the Filter Properties dialog, which lists the filters applied to a table, would not present scrollbars if the list grew longer than the available area. This has been fixed.

B12276: filterProperties applied correctly in Display Server

In prior releases, if the filterProperties of an obj_table02 instance were configured to change row, cell, or text colors but the filter did not apply to any cells when the display was loaded, then any color changes made by the filter on subsequent refreshes were ignored by the Display Servlet. This problem is fixed.

E11893: Local variables and substitutions supported in filterProperties

The filterProperties on a table object can now contain substitute strings and local variable names. These can be used in a filter's column name, comparison value, and action value.

Object Grid

E10305: objectClassName renamed to iconProperties and dialog added

The Object Grid table (obj_objectgrid) now provides a full-featured dialog for editing the iconProperties property. This property used to be called objectClassName. The Icon Properties dialog allows the user to specify the Icon Class Name for the icon object to be displayed in the Object Grid. Most of the objects listed in the various tabs of the Object Palette can be used as icon objects in an Object Grid. Valid objects are automatically listed in the popup menu for the Icon Class Name field. Objects from the Object Palette that do not appear in the Icon Class Name popup menu may not be used as icon objects in the Object Grid. Invalid objects include the tables, controls, links and most of the graphs. Custom objects that do not appear in the Object Palette may be used as icon objects in the Object Grid by typing in the Icon Class Name. Not all of a icon object's properties may be specified through the iconProperties property. The properties that are available for specification are listed in the Icon Properties dialog. The Map column offers three choices for each icon object property: Default, Value and Column. Pick Default if you want to use the default value for the property. If the default value for this property changes in future releases of Enterprise RTView, your icon object will reflect the new default value. Set Map to Value to specify a particular value for the property. Data attachments, substitutions and local variables may not be used for Property Values. Set Map to Column to specify that the value for a property should be pulled from a particular column in the table that is attached to the Object Grid's tableStringValues property. When Map is set to Column, the Property Value column will automatically display all of the columns in the table from tableStringValues. You may specify the name of a column that is not yet in the attached table by simply typing in the column name. By default, the Object Grid will display one object instance (of type Icon Class Name) for each row in the table attached to the Object Grid's tableStringValues property. Any properties with Map set to Column will pull their values from the column specified and from the row represented by that icon object instance. To display more than one icon object for each row in the attached table, turn on the "Allow multiple icon types" checkbox. Use the Add Icon and Delete Icon buttons to manage the list of icon objects to be displayed for each row in the attached table. If you enter the name of a custom object that is not currently visible to the Display Builder, the Add Property and Delete Property buttons will allow you to manage the properties of your custom object.

Graphs (General)

B12191: New editors for line style, line thickness and marker style

The Object Properties window now offers improved display and editing of properties controlling line style, line thickness and marker style. Previously these properties were displayed and edited simply as numbers, with each number representing a different option index value. Now the line style, line thickness and marker style properties are displayed with descriptive text and edited by choosing from a list of option descriptions. For line style, you may now choose from the following list: No Line Solid Dotted Dashed Dot Dashed This applies to all properties with names ending with LineStyle or TraceStyle, including: trace*LineStyle in the trend graph radialAxisLineStyle in the radar graph radialGridLineStyle in the radar graph valueAxisLineStyle in the radar graph valueGridLineStyle in the radar graph priceTraceLineStyle in the stock chart overlay*LineStyle in the stock chart valueHighAlarmTraceStyle in the trend, stock and xy graphs valueHighWarningTraceStyle in the trend, stock and xy graphs valueLowAlarmTraceStyle in the trend, stock and xy graphs valueLowWarningTraceStyle in the trend, stock and xy graphs For line thickness, you may now choose from the following list: Thin Medium Thick This applies to all properties with names ending with LineThickness, including: trace*LineThickness in the trend graph priceTraceLineThickness in the stock chart overlay*LineThickness in the stock chart For marker style, you may now choose from the following list: No Marker Dot + * o x Filled Circle Filled Diamond Filled Triangle Filled Square Filled Star This applies to all properties with names ending with MarkStyle, including: trace*MarkStyle in the trend graph valueHighAlarmMarkStyle in the trend, bar, radar, stock and xy graphs valueHighWarningMarkStyle in the trend, bar, radar, stock and xy graphs valueLowAlarmMarkStyle in the trend, bar, radar, stock and xy graphs valueLowWarningMarkStyle in the trend, bar, radar, stock and xy graphs

E12204: Support for date formatting of graph labels has been added

Support has been added to allow date formatting of graph labels. In the previous Enterprise RTView version, the labelColumnFormat property of the bar, pie, radar and xy graphs only allowed for number formatting of numeric graph label data. If the graph label data is of type date, the labelColumnFormat property may use any of the standard Java date formatting strings to format the graph labels. Applying a date format string to numeric label data is not supported. Similarly, applying a numeric format string to date label data is also not supported.

Legends

E11828: Easily scalable legend object added for charts

The legend object (obj_legend) has been added to the Graphs tab of the Object Palette. This new object has been introduced so that legend information may be displayed outside of a graph. The Legend object is especially handy for saving space when displaying multiple graphs that all have the same legend information. The legend object is designed to be used in conjunction with a bar, pie, radar or xy graph. To associate a legend object with a particular graph, set the graphName property of your legend object to match the value displayed in the objName property of your graph object. The legend object will automatically pick up data and formatting information from the associated graph object. Use the legendValueVisFlag to display the data values associated with each legend label. The horizontal space allotted to the data values will automatically adjust to match the length of the longest data value. To reserve a minimum amount of horizontal space for the data values, use the legendValueMinSpace property.

Bar Graphs

E12205: X-axis rotation control enhanced

The label rotation feature on the bar graph has been improved, especially when handling long labels. In previous versions of Enterprise RTView, long labels were often drawn on top of each other and clipped where they extended beyond the graph area. The horizAxisMinLabelHeight property has been added to the bar graph to control the minimum amount of space that will be reserved for the labels on the horizontal axis. If your axis labels vary over time, this property may be used to reserve a consistent amount of space below the graph for axis labels. The horizAxisLabelRotationAngle property has been added to the bar graph to control the amount of rotation for labels on the horizontal axis. Values for the horizAxisLabelRotationAngle may range from 0 to 90 degrees. Setting the value to 0 will cause the bar graph to automatically pick the optimum angle of rotation.

B12181: Autoscroll when bars resized in Display Server fixed

In prior releases, the Display Server would sometimes draw a scrolled graph with an incorrect x or y range. For example, this occurred on a scrolled bar graph if the minimum bar width was attached to a local variable and the variable's value changed at runtime. This problem is fixed.

E10936: An improved dialog for barProperties is added

An editor dialog has been added for the bar graph barProperties property. This dialog allows the user to view the actual bar colors and fill patterns to be used when plotting bars.

E10937: New dialog for traceProperties

An editor dialog has been added to the bar, radar and xy graphs for the traceProperties property. This dialog allows the user to specify the line color, line style, line width, marker color and marker style used when plotting traces in the graph.

E11542: Editor dialog added for wedgeProperties

An editor dialog has been added to the pie graph for the wedgeProperties property. This dialog allows the user to view the actual wedge color to be used when plotting the pie.

XY Graphs

B12202: mouseOverFlag data corrected for sorted data

A bug in the XY graph that was causing the incorrect data to be displayed in the mouseOverFlag information box has been repaired. This bug was visible when the xValueSortFlag was set to 1 and the x-value data was not already sorted in the tableStringsValues table.

E12200: Support added for reverse plotting on x-axis

The XY graph now offers the option of reversing the orientation of the x-axis. In previous versions of Enterprise RTView, the x-axis always plotted values increasing from left to right. Turn on the xAxisReverseFlag to reverse the orientation of the x-axis and plot values increasing from right to left.

Trend Graphs

E12159: The trend graph enhanced to accept timestamp information

The trend graph has been enhanced to accept timestamp information along with new values to be plotted. As in previous versions of Enterprise RTView, if the traceNValue property for a given trace is passed a single scalar value, the scalar value is automatically stamped with the current time and plotted accordingly. If the traceNValue property is passed a table containing timestamps in the first column and values in the second column, the new version of Enterprise RTView plots the table values using the table timestamps. Note: Since the traceNValue property is now defined as a table in the Object Properties window, entering scalar values directly into the property will still work, but the scalar value will no longer be visible in the Object Properties window.

Control Objects

B12190: Combo box now updates unlisted values correctly

In the previous Enterprise RTView releases, if a non-editable combo box had its selectedValue property attached to a local variable, and the value of the local variable did not correspond to any of the items in the combo box drop down menu, the combo box would show the previously selected item instead. This has been fixed.

TIBCO EMS Management Application

E12234: EMS Manager problem with Display Server fixed

In the previous release, the Display Server would sometimes throw a null pointer exception when a client viewed the EMS Manager display ems_allservers_api.rtv. This is fixed.

E11742: Support Fault-Tolerant EMS Server connections

The EMS Manager for TIBCO has been enhanced to support fault-tolerant servers. In the EMS Server Topology display, the active server in a fault-tolerant pair will appear in green, with the suffix (A) appended to its URL to indicate its active status. The fault-tolerant standby server will appear in blue, with the suffix (S) appended to its URL to indicate its status. A blue link is drawn between the pair of servers, labeled "FT". The edge widths of both nodes are increased to highlight the pair of servers. If a fault-tolerant node fails, the edges of both nodes in the pair and the link between the nodes will be drawn in red to indicate the failure. The remaining active server will be drawn in green and its label will have the suffix (A!) appended to indicate that it is still active, but that it's fault-tolerant backup has failed. The failed server will be drawn in red and its label will have the suffix (X!) appended to indicate that it has failed. Routes are only created between the active server in a fault-tolerant pair and other networked servers. Two check boxes, "Show Standby Servers" and "Show Inactive Servers", allow standby and inactive servers to be included or excluded in the topology diagram. By default, standby servers are included in the diagram and inactive servers are not shown. In the Navigation tree, the names of fault-tolerant servers will have the same suffix (A), (S), (A!), or (X!) appended as described in the discussion above. In addition, once a server has been added to the Navigation tree, it is never removed. If an individual (i.e. non-fault-tolerant) server becomes inactive, its name will have the suffix (X) appended to indicate that it was a once-active server. The suffix will be removed when the server becomes active again. In the All EMS Servers display, a server in fault-tolerant standby mode will be drawn in blue. In the Manage Routes dialog, only the active server in a fault-tolerant pair will appear in the "Select From Server" table. In the "Select To Server" table, a single entry with the combined URL for the fault-tolerant pair will appear in the list, and the individual servers will not be shown separately. The "Routes" table has also been enhanced to display the combined URL for a fault-tolerant server pair.

TIB EMS Admin Monitoring

B12101: Monitor Messages browsing of queues and topics fixed

In previous Enterprise RTView releases, if the TIBCO EMS Manager option Monitor Messages was turned off, browsing of queues and topics always went to the local host, rather than the selected server. This has been fixed.

Distribution

B12163: TIBCO Hawk 4.1 and older no longer supported

TIBCO Hawk version 4.1 and earlier is no longer supported by Enterprise RTView.

B12175: Run scripts no longer fail on Win200 due to command line limit

In previous releases of Enterprise RTView, some Windows 2000 users were not able to use the run scripts due to a command line limitation of 2048 characters. This problem has been fixed.

Version 4.2c1 Release Notes

Enterprise RTView

Java Version Dependencies

E12011: Enterprise RTView has upgraded to Java version 1.5

Enterprise RTView now requires Java version 1.5.0_01+ to run. Previous versions only required Java version 1.4.2+.

Application Frameworks

E12017: Support suppressing add object buttons in Display Builder

The Display Builder may now be invoked with the command line argument "-noobjecticons", which will remove the add object buttons from the Object Toolbar. The add object buttons include the following: Add Table Add Object Grid Add Bar Graph Add Pie Graph Add Trend Graph Add XY Graph Add Radar Graph Add Label Add Circle Label Add Rectangle Label

E11859: The Display Builder now has a console window

The Display Builder now has a Console Window, which will display text written to the standard output and error streams. The Console Window will display a maximum of 1500 lines, and then start removing lines from the top of its display. The Console Window is displayed by default, and can be invoked from the Tools menu.

E11701: Display Builder now centers small displays in main panel

The Display Builder centers a display in the main panel if the display's modelWidth or modelHeight are smaller than the panel's width or height, and a shadow is drawn at the display's bottom and right edges. In prior releases, the display was always positioned in the top left corner of the main panel. Limitations If a custom background model is used, the Display Builder will center it as described above, but will not draw a shadow.

Multi-Panel Frameworks

B11905: Tab order for widgets is no longer reversed in Display Server

In prior releases, the tab order of control objects (list boxes, buttons, etc.) was reversed by the Display Server, as compared to the Display Builder and Display Viewer. This is fixed.

Applet Functionality

B12053: EMS Manager applet may not draw properly when reloaded

In prior releases, when the EMS Manager was deployed as an applet, the main panel would sometimes go blank after the user opened a popup menu or a popup window. It would redraw when the user clicked inside the panel. This is fixed.

B12044: Problems with Display Builder applet fixed

If the Display Builder was run as an applet, some of the dialogs which edit object properties would fail to come up, and others would be missing the SL icon. These problems have been fixed.

Builder Application Body

B12041: Drill down model save error fixed

In the previous release, if a drill down was performed in the Display Builder to the current window and the drill down display file was located in a subdirectory of the startup directory, then a save of the drill down display would fail with a "File not writeable" error. This has been fixed.

Editing Functionality

B12115: Pasting objects into another display fixed

In the Display Builder, if you copied some objects from one display and pasted them into another, the objects would be ordered as you selected them, rather than keeping the order they had in the original display. This has been fixed.

E11971: Commonly used non-modal dialogs now dockable

In the Display Builder, the Functions, Local Variables, and Object List dialogs have been integrated into the docking framework. They may now be docked to any side of the main window, either in their own tab group or combined with existing tabs. The Display Builder saves and restores the docking configuration of these dialogs as it does for the Object Properties and Object Palette dialogs.

B11945: Keyboard shortcuts now work if dialog has focus

In the Display Builder, the keyboard shortcuts for some file and edit operations that are available in the main window are now available when working in certain dialogs, specifically: Background Properties Application Options Functions Local Variables The keyboard shortcuts available in these dialogs include: Command Shortcut New Ctrl-N Open Ctrl-O Save Ctrl-S Print Ctrl-P Undo Ctrl-Z Redo Ctrl-Y

E11972: Tooltip string added to Undo and Redo buttons

The Undo and Redo buttons on the Display Builder toolbar now have tooltips which display the editing action which will be undone or redone if the button is clicked.

E11671: Common keyboard shortcuts implemented

The following keyboard shortcuts have been added for commands on the File menu of the Display Builder: New Ctrl-N Open Ctrl-O Save Ctrl-S Print Ctrl-P

E11973: Object List auto-scroll fixed

The Display Builder's Object List dialog will now ensure that the selected item is visible, scrolling the list if needed. If there are multiple selected items it will ensure that the item with the lowest index is selected.

B11974: Ghost outline in Object List fixed

In the Display Builder's Object List dialog, when an item was deleted, the next item in the list would become the "focused item" and would have an outline rectangle drawn around it. This rectangle is no longer drawn.

E11851: Select objects by extent now supported in Display Builder

It is now possible to select objects in the Display Builder by drawing an extent rectangle around them. Click and drag the mouse and the objects within the rectangle will be selected.

E11852: Select All option added to Edit menu

The command Select All has been added to the Edit menu. This command may also be invoked by the keyboard shortcut Ctrl-A.

B11325: Pasting multiple objects with links fixed

In the Display Builder, if a selection of nodes and links were copied and pasted, only the nodes would be pasted. This has been fixed. Note that for a link to be included in the set that is pasted, both its nodes must be included as well.

Background Property Dialog

B11883: Background image ghosting in Display Builder fixed

In prior releases, if a background image was used which did not completely fill the Display Builder's main panel, the unused space around the edges of the image would sometimes contain fragments of the image or contents of other frames. This is fixed.

Object Property Dialog

E11850: Support collapsable grouping of Object Properties

The Object Properties dialog in the Display Builder now displays properties in categories. Individual categories can be expanded or collapsed using icons at the left of the category row; all the categories can be expanded or collapsed at once by means of buttons in a toolbar at the top of the dialog. The properties can also be displayed in alphabetic order as in the previous version, and can be switched between categorized and alphabetized view, by using buttons in the same toolbar.

E11776: Object Props and Subs windows re-sizeable

In the Display Builder's Properties dialog, the property table and the substitution panel are now separated by a splitter, so they can be independently resized.

Command Execution

B12116: Empty strings in quotes no longer lost in command execution

Previously, if a command string contained an empty string embedded in single quotes, it was lost before processing. This has been fixed.

E11337: Close Window command added to the Define System Command dialog

The Define System Command dialog now offers a Close Window command. When executed, this command closes the window specified in the Window Name argument. If no Window Name is given, this command closes the window containing the object that is generating the command. The Close Window command may not be used to close the main window.

Functions

B12158: Join function exception with null cell data fixed

In previous releases, the Join function threw a NullPointerException if the cell data in the column specified in the Left Column Name argument was null. This has been fixed.

Display Server

B12136: Display Server now supports quotes and \n in valueToSet

In prior releases, the Display Server did not support pushbuttons and other control objects whose valueToSet property contained double quotes or the backslash-n character sequence. This is fixed.

E12135: Display Server is now instrumented with JMX data

The Enterprise RTView Display Server has been instrumented with a JMX Management Bean (MBean) that allows it to be monitored and managed using JMX.

B12128: "\" in table text is now displayed in Display Server

Backslashes now appear as table objects in the Display Server. The character sequence \n is interpreted by RTView as an end-of-line character, however. In this case the string will be split into multiple lines and the \n characters will not be displayed.

B10534: SetSubstitution function now supported by Display Server

In the previous Display Server release, if the value of a substitute string is changed by the Set Substitution function, and that substitute is then used in a drill down or a command, the Thin Client would use the original value of the substitute, rather than the value set by the function. This is fixed.

B12055: Display Server no longer ignores columnAlignment property

In prior releases, the Display Server ignored the columnAlignment property on obj_table02 for numeric columns and always used right alignment. This is fixed.

B12054: Column alignment for exported tables is now consistent

In the previous release, numeric columns in a table exported to HTML or Excel were sometimes left aligned rather than right aligned. This is fixed.

E12049: Display Server optimization for gradients

The memory used by the Display Server when rendering displays with gradients has been reduced.

B12046: Problems with Export to Excel feature resolved

In prior releases, there were several issues with the Display Server's Export Table to Excel feature. In Internet Explorer, the export would fail if the display had many substitutions set, making the rtvdisplay servlet URL longer than 256 characters. Also, in Internet Explorer, if the user selected Save rather than Open in the Download dialog, the save would sometimes fail. In Internet Explorer or Firefox, if the user selected Save rather than Open in the Download dialog, the file had a .jsp extension rather than .xls. Lastly, in Firefox, the Excel window was completely obscured by a new, empty Firefox browser window. These problems are fixed. (In Firefox, an empty browser window will still appear on top of the Excel window, but it is now much smaller so it does not obscure Excel).

B12039: Bug causing hidden table columns to be included in export fixed

In the previous release, if a table with hidden columns was exported to HTML or Excel, the Display Server would exclude the hidden columns from the exported table's header as expected, but would not exclude them from the table's rows. This problem occured only if the rowHeaderEnabledFlag property was false. This problem has been fixed.

B12022: Crash during refresh in Display Server fixed

In prior releases, each Display Server refresh adds an entry to the servlet container's error log. The following example is from Tomcat, in %CATALINA_HOME%/logs/localhost_log: java.lang.IllegalStateException: getOutputStream() has already been called for this response at org.apache.coyote.tomcat5.CoyoteResponse.getWriter (CoyoteResponse.java:611) at org.apache.coyote.tomcat5.CoyoteResponseFacade.getWriter (CoyoteResponseFacade.java:210) at org.apache.jasper.runtime.JspWriterImpl.initOut (JspWriterImpl.java:167) at org.apache.jasper.runtime.JspWriterImpl.flushBuffer (JspWriterImpl.java:160) at org.apache.jasper.runtime.PageContextImpl.release (PageContextImpl.java:235) at org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext (JspFactoryImpl.java:160) at org.apache.jasper.runtime.JspFactoryImpl.releasePageContext (JspFactoryImpl.java:120) at org.apache.jsp.getjpg_jsp._jspService(getjpg_jsp.java:59) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133) at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) This has been fixed.

B12016: Display Server exception fixed

In prior releases, the Display Server threw an exception while rendering an obj_table02 instance attached to a table with zero columns and which had its columnDisplayNames property assigned. This is fixed.

B11998: Problem with invisible objects remaining visible fixed

In prior releases of the Display Server, if a control object's visFlag property was initially true but was changed to false before the first display refresh, the control would remain visible. This affected button, text entry, list box, combo box, and checkbox controls. Radio buttons, tables, and non-control display objects were not affected. This problem has been fixed.

B11968: Export to HTML no longer creates borderless cells

In prior releases, the Export Table to HTML feature of the Display Server would generate a table with no borders around any cell that contained a blank string. This is fixed.

B11948: drilldown incorrect from object grid with sort column

In prior releases of the Display Server, a drill down from the object grid would select the incorrect element if the grid's sortColumnName property was set. This is fixed.

B11839: Display Server draws invisible objects with default sizes

In prior releases of the Display Server, if a control object was initially invisible and became visible on a subsequent refresh, it would be drawn using the default size of the control rather than its configured size. This has been fixed.

E11792: Table performance improved in Display Server

The performance of large tables in the Thin Client Browser has been improved. If a table has more than 500 cells (rows x columns), it is displayed in virtual mode. In this mode only the visible cells are rendered by the browser, reducing the time required to display, refresh, and sort a large table. When a table is scrolled in virtual mode, some rows appear blank until the user stops scrolling. By default, virtual mode is enabled for any table that has more than 500 cells (for example, 101 rows x 5 columns). This threshold can be changed by modifying the the VirtualThreshold property in rtvdisplay.properties. See the documentation for more details on modifying rtvdisplay.properties. Support for row headers has also been improved in the Thin Client Browser. The rowHeaderFilterColorsEnabledFlag property is now supported, and the user can resize the row header column interactively, as with the other columns.

E11756: Support for scroll bars on all tables and graphs added

Support for scroll bars has been added to tables and graphs in the Display Server with the following limitation: The scrollbarSize property is not supported in the Display Server. The size of a scrollbar is a platform-dependent, system-wide setting, and cannot be individually specified per-object.

E12003: Slider control object now supported in Display Server

The Display Server now supports the obj_c1scale control object, with the following limitations: - In the Thin Client Browser, the object is drawn as a scrollbar rather than a scale/slider. No tick marks are drawn. - The updateWhileAdjustingFlag, bgColor, and objHeight properties are not supported by the Display Server. - The enabledFlag property is not supported in Firefox.

B11267: Objects not visible in Object Grid generate drill down URLs

In prior releases, if elements in the object grid (obj_objectgrid) were scrolled out of view, the Display Server would still generate clickable areas for these element in the web page, outside of the object grid's extent.

Data Server

E12134: Data Server now instrumented with JMX data

The Enterprise RTView Data Server has been instrumented with a JMX Management Bean (MBean) that allows it to be monitored and managed using JMX.

B12058: Data Server deadlocking issue fixed

In previous releases, under certain conditions the Data Server would deadlock and stop sending data to clients. This is fixed.

B11949: Support for transient data attachments implemented

The SQL data source supports a new Run Query On Demand update mode for data attachments. In this mode, an SQL query is run each time a display that uses the query is opened and each time a substitution string that appears in the query string is changed. The query is not run periodically.

Data Sources

E12097: Data-driven display refreshes enhancement added

The Display Viewer and Builder have been enhanced to support data-driven display refreshes. In the Display Viewer and Builder, a display must be redrawn in order for new data values to be displayed. This is done periodically according to the Update Period set on the General Options tab. The default Update Period is 2 seconds. Data from an asynchronous data source can arrive at any time between periodic redraws. In prior releases, it was necessary to lower the Update Period if new asychronous data needed to be shown more quickly. This resulted in additional overhead. In this release, a display is automatically redrawn shortly after data is received that affects the display. The rate of data-driven redraws is determined by the Max Data Redraw Rate option, which can be set from the General Options tab. The default is 500 milliseconds (a half second). In most applications this should be suitable. However, in applications that have a continuously high rate of asynchronous data, it may be desirable to set this option to a higher value, or to disable data redraws entirely by using the corresponding checkbox. Please note that the SQL data source is asynchronous as of this release. See the release note for E11457 for details. Other asynchronous data sources include TIBCO Rendezvous, TIBCO Hawk, JMS, and any data source that is delivered via the Data Server. E11457: Multithreaded SQL queries now allowed if JDBC driver used *The SQL data source has been enhanced to use asynchronous multithreading. This can improve overall performance in some configurations. Background: On each update cycle, the SQL data builds a list of the queries that are due for an update based on each query's Update Mode. Each query uses a database connection. Database connections can be predefined on the SQL Options tab. Also, a database connection is defined automatically if an SQL attachment uses a database name that is not defined on the Options tab. In prior releases the SQL data source was single-threaded and synchronous: the data source would execute the first query from the list, wait for the result, and then run the next query on the list. After the last query on the list was completed, the Display Viewer would redraw the display to show the query results. In the Data Server, the query results would be pushed to the clients. A long-running query could result in delays during display callup in the Display Viewer, and delays in sending the results of all queries in the Data Server. In this release the SQL data source is asynchronous and multi-threaded. Two types of multi-threading are supported. (1) One thread per database connection: The SQL data source creates a separate execution thread for each database connection. This allows queries that use different database connections to run concurrently. Queries that use the same connection are still run sequentially. This is the default behavior of the SQL data source. (2) One thread per query: A database connection can be configured to allow concurrent queries. A checkbox to enable this behavior appears on the Add Database dialog, labeled 'Run Queries Concurrently'. If this checkbox is Selected, each query on the connection is run on its own execution thread. By default this option is disabled. This option should be used with caution since it may cause SQL errors when used with some configurations (for example, an ODBC connection to Microsoft SQL Server 2000). In addition, even if no SQL errors occur, this option may degrade performance due to additional database server overhead (for example, if the database server runs on a host with a single CPU, or if all queries to the database use the same table which the server locks during a query, etc). Please refer to your database documentation for guidance. In either configuration, the Display Viewer and Data Server do not wait for the SQL queries to complete. Instead the SQL data source requests a display redraw or a data push when a query completes. The maximum rate for these data-driven redraws is determined by a new option on the General tab named Max Data Redraw Rate. For details please see the release note for E12097. The improvements described above apply to the SQL data source when used in the Display Builder, Display Viewer and Data Server. However, the Display Server still runs the SQL data source in single-threaded/synchronous mode, as in prior releases. This will be addressed in a future release.

E11999: Attach to Data and Define Command dialog layouts improved

The Display Builder Attach to Data and Define Command dialogs have been improved in appearance, and the Define Command dialogs have also been made resizeable.

E11849: Ellipses button (...) added to Attach to Data dialogs

An ellipses button has been added to the Attach to Data dialogs. This button brings up the Select Columns dialog and is equivalent to choosing Select Columns from the popup menu that appears as a result of a right-click on the column-related combination box. The following dialogs now offer the ellipses button: Attach to TIBCO Hawk Data Attach to TIBCO Rendezvous Data Attach to XML Data Attach to SQL Data Attach to JMS Data Attach to TIBCO EMS Administration Data Attach to Function Data

E11987: Property name now shown in function and local var ATD

In the Display Builder, the Attach to Data dialogs for Functions and Local Variables did not display the name of the property being attached. This has been fixed.

SQL Data Source

E11457: Multithreaded SQL queries now allowed if JDBC driver used

The SQL data source has been enhanced to use asynchronous multithreading. This can improve overall performance in some configurations. Background: On each update cycle, the SQL data builds a list of the queries that are due for an update, according to each query's Update Mode. Each query uses a database connection. Database connections can be predefined on the SQL options tab. Also, a database connection is defined automatically if an SQL attachment uses a database name that is not defined on the options tab. In prior releases the SQL data source was single-threaded and synchronous: the data source would execute the first query from the list, wait for the result, and then run the next query on the list, and so on. After the last query on the list was completed, the Display Viewer would redraw the display to show the query results or, in the Data Server, the query results would be pushed to the clients. A long-running query could result in delays during display callup in the Viewer or, in the Data Server, delays in sending the results of all queries. In this release the SQL data source is asynchronous and multi-threaded. Two types of multi-threading are supported. (1) One thread per database connection: The SQL data source creates a separate execution thread for each database connection. This allows queries that use different database connections to run concurrently. Queries that use the same connection are still run sequentially. This is the default behavior of the SQL data source. (2) One thread per query: A database connection can be configured to allow concurrent queries. A checkbox to enable this behavior appears on the Add Database dialog, labeled 'Run Queries Concurrently'. If this checkbox is selected each query on the connection is run on its own excecution thread. By default this option is disabled. This option should be used with caution since it may cause SQL errors when used with some configurations (for example, an ODBC connection to Microsoft SQL Server 2000). In addition, even if no SQL errors occur, this option may degrade performance due to aditional database server overhead (for example, if the database server runs on a host with a single CPU, or if all queries to the database use the same table which the server locks during a query, etc). Please refer to your database documentation for guidance. In either configuration, the Display Viewer and Data Server do not wait for the SQL queries to complete. Instead the SQL data source requests a display redraw or a data push when a query completes. The maximum rate for these data-driven redraws is determined by a new option on the general tab named Max Data Redraw Rate. For details please see the release note for E12097. The improvements described above apply to the SQL data source when used in the Display Builder, Display Viewer, and Data Server. However, the Display Server still runs the SQL data source in single-threaded/synchronous mode, as in prior releases. This will be addressed in a future release.

TIBCO Hawk Data Source

B12144: TIBCO Hawk Methods and Alerts tab now warns that restart needed

In the Enterprise RTView 4.1c1 release, the note at the bottom of the TIBCO Hawk Methods and Alerts options dialog tab was missing. This has been fixed.

B12113: Cluster agent groups showing wrong agents fixed

A bug in the TIBCO Hawk Agent Groups tab of the Application Options dialog has been fixed. The Selected Agents column was displaying too many agents for some of the automatically-generated agent groups.

B12014: Agents with same name on multiple domains now display correctly

The TIBCO Hawk Data Source now supports the use of the same agent name within different Hawk domains. When specifying an agent name in any of the Hawk data source dialogs, append the connection name, enclosed in parentheses, to specify a connection other than the default connection. For example: Agent1 - This represents Agent1 from the default connection. Agent1(ConnectionA) - This represents Agent1 from ConnectionA. Agent1(ConnectionB) - This represents Agent1 from ConnectionB. This combination of agent name and connection name has been added to the RTViewDs microagent as the DSName property. It is returned in the DSName column of the getAllData and getDSName methods. To attach to data for a particular agent name from all connections containing that agent, append (*) to the Agent Name value. For example: Agent1(*) - This will get Agent1 from all connections. To specify all agents for a particular connection, use the TIBCO Hawk Agent Group that is automatically created for that connection. For example: *:ConnectionB - This represents all agents from ConnectionB.

JMS Data Source

E12137: JMS BytesMessages are now supported

The JMS Datasource has been enhanced to support subscription data source has been enhanced to support subscription to a BytesMessage. Previously BytesMessages were completely ignored. Now, when a BytesMessage is received a table row is produced containing only a single column labeled "". The data contained in the bytes message is presented only as "" and not formatted in any way.

E12118: Standard JMS Message Header added to Properties

The following standard JMS Message Header properties are now available in the Properties portion of a JMS data attachment: JMSCorrelationID, JMSMessageID, JMSType, JMSTimestamp, JMSExpiration, JMSDeliveryMode, JMSPriority, JMSRedelivered, JMSReplyTo.

E12089: Capability to subscribe to durables added

The JMS data source now supports making a durable subscription. When adding topics in the JMS Topic Options dialog, specify the name of the durable along with the Topic name (optional). When Enterprise RTView subscribes to that topic, it will use the durable subscription that was specified.

E11256: Implemented commands to send JMS topic messages

The JMS data source has been enhanced to provide a command function to send a JMS Topic message. The command dialog allows the user to specify a JMS connection, a topic name, and a series of name/value pairs. You can also select whether the message type is Map or Text.

JMX Data Source

E10549: A JMX data source is now available

A JMX data source has been added to Enteprise RTView. This data source allows you to display the MBean methods and attributes from a JMX instrumented application as well as to execute JMX operations.

NetExpert Data Source

E11885: An Agilent NETeXPERT data source is now available

A beta version of the Agilent NETeXPERT data source is now available by request. Contact SL sales for an evaluation copy.

Sample Displays and Applications

E12091: Demo server upgraded to Tomcat 5.5

The Tomcat demo server included with the Enterprise RTView installation has been upgraded to Tomcat version 5.5.

B12061: Demo server launcher displays error message on failure

In previous versions of Enterprise RTView, selecting Start Demo Server from the Start->Programs->Enterprise RTView->Demos menu would fail silently if the environment variable JAVA_HOME was not set on the system. Now the script displays the error message: *** JAVA_HOME is not defined. Tomcat will require that JAVA_HOME be defined as the root directory of the Java installation; i.e., set JAVA_HOME so that the Java executables such as java.exe are in JAVA_HOME\bin. Please define JAVA_HOME and re-run this script. Press any key to continue . . .

E11950: Stock chart data added to standard XML simulator

The XML simulator has been updated to output sample stock data. The simulator outputs the file stockdata.xml that contains three months of daily data for three stocks, and five days of intra-day data for three stocks.

E11956: Data Source Demo now includes JMX

The Data Source Demo has been updated to include displays for the JMX data source.

SQL Datasource Tutorial

E11774: An Excel SQL/ODBC example has been added to dstutorial

Sample displays that access data from an Excel spreadsheet have been added to the dstutorial example located in the demos/dstutorial directory. Data can be queried from tabular data in an Excel spreadsheet as long as the data is defined as a named range in the spreadsheet. Enterprise RTView treats the Excel spreadsheet the same way it treats all SQL databases. Refer to the Appendix D - SQL section for more information.

Object Library

E12007: Image list no longer case sensitive

In the Display Builder Object Property and Background Properties dialogs, properties which present a list of image files look for files of type ".gif" and ".jpg". However the Display Builder was not correctly ignoring the case of the file type, so that "file.jpg" would be found but "file.JPG" would not. This has been fixed.

Tables

B12072: Column widths now correct if initial data is not available

A bug that was causing custom column widths in the table (obj_table02) to be ignored has been repaired. The bug was appearing in tables attached to data that was not immediately available when the table was initially displayed.

B12117: Rotated table supports Ctrl-C/V keyboard shortcuts

If a Rotated Table (obj_table03) object was added to a display in the Display Builder and subsequently an attempt was made to copy and paste it into the display using Ctrl-C, this would fail. This problem has been fixed.

E12002: Bitmaps in table cells are now supported

The table object, obj_table02, now supports placing images into table cells. The filterProperties attribute now offers a Display Image action. To display images in a table, add a new filter, specify the Condition as you would for any other filter, choose Display Image for the Action, and specify an image file name. Image files must be of type .gif or .jpg. Image file names may contain spaces, but may not contain any of the following strings, set off by spaces: if then = != > >= => < <= =<

E10924: Dialog interface for columnAlignment and columnsToHide added

The object property editors that operate on column-related attributes have been improved to provide a more consistent user interface. The following list of properties (mostly from obj_table02) now use the new Property Editor dialog: columnAlignment columnDisplayNames columnFormat columnsToHide columnProperties drillDownColumnSubs The formats for each of these property strings have not been modified. Only the dialogs for editing these property strings have changed.

Graphs (General)

E12059: labelFormat property renamed to labelColumnFormat

In the bar (obj_bargraph), pie (obj_pie), radar (obj_radar), and xy (obj_xygraph) graphs, the labelFormat property has been renamed to labelColumnFormat and moved to the Data Format category. The labelColumnFormat property provides formatting for labels in situations where the label column is numeric. Labels may appear along the x-axis or in the legend and mouseOver tooltip information area.

E11844: Improved appearance of rotated text labels

The appearance of rotated text labels in the bar graphs have been improved.

E11835: Support for columnsToHide property added to graphs

The columnsToHide property has been added to the bar, legend, pie, radar and xy graphs. This property allows users to prevent particular columns in the attached data from being used in the graph for plotted data or labels. For graphs with more than one data attachment, the columnsToHide property applies to all data attachments. If the same column name appears in both the labelColumnName and columnsToHide properties, the labelColumnName property takes precedence. Data from the labelColumnName column is used for labels even if that column name appears in the columnsToHide property. All columns from a data attachment are available for use in the drillDownColumnSubs property, including columns that have been excluded from the graph with the columnsToHide property.

Bar Graphs

B12042: Bar graph bars and traces now support NaN values

The bar graph (obj_bargraph) now supports data attachments that contain NaN (not-a-number) values. This allows the bar graph to handle missing or undefined data points when rendering bars and bar traces.

B11955: Bar graph support for more than 255 bars added

In prior releases an exception was thrown if a bar graph contained a group with more than 255 bars. This is fixed.

Stock Chart

B12038: Stock chart in intraday mode no longer plots unneeded data

In prior releases, the stock chart in intraday mode would plot all data points for the first hour of a trading day at the same horizontal position, for days in which daylight savings time was in effect. This is fixed.

Control Objects

E11855: varToSet problem with drill down fixed

In prior releases, if a drill down was applied to a new window from the Display Builder and the drill down display contained a control object and the user changed the value of the control (for example, typed a string into an edit box) the property sheet would sometimes show the new value as the value of the control's varToSet property. This is fixed.

E11854: Text Entry controls now update correctly when tabbed

In prior releases, if a Text Entry control had executeOnFocusLost set and if its value affected the value of another Text Entry control which was next in the tab order, then tabbing from the first Text Entry control to the other did not change the value shown in the second Text Entry control. This is fixed.

E11763: Support for key-value pairs in list and combo box added

The list box and combo box controls now support label-value pairs in the listValues property. This allows the control to display a descriptive label to the user, and set a corresponding value when the label is selected. The pairs can be specified as a string on the listValues property, where a label is separated its corresponding value by a comma, and pairs are separated by a semicolon. For example: listValues: White,0;Black,7;Red,1;Green,2 For the above string, the control's list will display: White Black Red Green If the user selects White, the local variable attached to the varToSet property is set to 0. If the user selects Black, the local var is set to 7, and so on. The listValues property can also be attached to a 2-column table, where the first column has the labels and the second column has the corresponding values. As in prior releases, the listValues property may contain only labels, in which case the values and the labels are the same. For example: listValues: White;Black;Red;Green For the above string, the control's list will display the same labels as above, but in this case if the user selects White, the local variable attached to the varToSet property is set to "White".

TIBCO EMS Management Application

B12048: Single servers now displayed in topology map

Previously, individual servers not connected to any other servers by a route would not appear in the Server Topology Diagram. This problem has been corrected.

EMS Manager Configuration

E11681: SSL available for EMS servers

JMS connections created with Enterprise RTView using the com.tibco.tibjms.TibjmsTopicConnectionFactory may now use an SSL connection for added security. Additionally, the Enterprise RTView TIBCO EMS Manager now supports the ability to monitor and administer your TIBCO EMS Servers through an SSL connection. Note: To use the SSL connection, you must have a working knowledge of writing, compiling and deploying Java classes. *** Using SSL in the JMS data source *** To use an SSL JMS connection, you will need to create a Java class named MyJmsDsSSLHandler that extends the GmsRtViewJmsDsSSLHandler class. In MyJmsDsSSLHandler.java, define the following method: public Map getSSLParams (String serverUrl) This method will be called to retrieve the list of SSL parameters for use when Enterprise RTView creates a TIBCO JMS connection factory. Add gmsjjmsds.jar, located in the lib directory (found in your installation directory), to your classpath when you compile MyJmsDsSSLHandler. The compiled MyJmsDsSSLHandler jar file must be included in the Enterprise RTView classpath by adding it to the definition for the RTV_USERPATH environment variable. The following is an example of MyJmsDsSSLHandler: import java.util.*; import com.tibco.tibjms.TibjmsSSL; import com.sl.gmsjjmsds.GmsRtViewJmsDsSSLHandler; public class MyJmsDsSSLHandler extends GmsRtViewJmsDsSSLHandler { public Map getSSLParams (String serverUrl) { System.out.println("==> MyJmsDsSSLHandler.getSSLParams"); return null; } } *** Using SSL with Enterprise RTView TIBCO EMS Manager *** To use SSL with Enterprise RTView TIBCO EMS Manager, you will need to create a Java class named MyTibJmsSSLHandler that extends the GmsRtViewTibJmsSSLHandler class. In MyTibJmsSSLHandler.java, define the following method: public Map getSSLParams (String serverUrl) This method will be called to retrieve the list of SSL parameters for use when EMS Manager creates a TibjmsAdmin object for use in managing a TIBCO EMS Server. Add gmsjtibjmsadmin.jar, located in the lib directory (found in your installation directory), to your classpath when you compile MyTibJmsSSLHandler. The compiled MyTibJmsSSLHandler jar file must be included in the Enterprise RTView classpath by adding it to the definition for the RTV_USERPATH environment variable. The following is an example of MyTibJmsSSLHandler: import java.util.*; import com.tibco.tibjms.TibjmsSSL; import com.sl.gmsjtibjmsadmin.GmsRtViewTibJmsSSLHandler; public class MyTibJmsSSLHandler extends GmsRtViewTibJmsSSLHandler { public Map getSSLParams (String serverUrl) { System.out.println("==> MyTibJmsSSLHandler.getSSLParams"); return null; } }

Distribution

B12015: Installation dialog reference to JAVA_HOME fixed

In previous versions of Enterprise RTView, the installation dialog incorrectly indicated that the JAVA_HOME environment variable was not set if JAVA_HOME was set as a user defined variable for the current user. This has been fixed.

B11529: Enterprise RTView command prompt launcher fixed

In previous versions, the Enterprise RTView command prompt link from the Windows Start menu did not work if your installation was not on the C: drive. This has been fixed. A bug that was preventing the labelTextColor property from being applied to the x-axis text in the bar graph has been resolved.

B11303: File association is now set consistently by installer

In previous versions, the file association for display (.rtv) files was not always set correctly by the installer. This has been corrected.

E11858: Registration dialog now can be launched from installation

The Enterprise RTView installer now allows the user to invoke the registration program.

Version 4.1c1 Release Notes

Enterprise RTView

RTV File Handling

B11857: File save location bug fixed

In prior releases, if a display was opened in the Display Builder from a directory other than the default directory, and then a drill down to the same file or another file was performed, and that file was then saved, it would be saved to the default directory instead of the selected directory. This has been fixed.

Editing Functionality

E11270: Object List dialog added to Display Builder

An Object List dialog has been added to the Display Builder. Select Object List from the Tools menu to open the Object List dialog. The Object List dialog provides a list of all the objects from the current display. For each object in the current display, the Object List will display the objName property, the object class name, and the objX and objY properties. Selecting any item in the Object List will cause the corresponding object in the display to be selected. Hold down the shift key while selecting in the Object List to extend the list selection. Hold down the control key while selecting in the Object List to add or remove individual items from the current list selection. Press the Select All button (or control-a) to select all of the objects in the current display. Press the Deselect All button to select no objects in the display.

E10167: Implemented key movement in Display Builder

The Display Builder has been enhanced with the ability to move selected objects via the keyboard arrow keys. By default each key press will move the object(s) one pixel in the indicated direction.

E10011: Undo and redo now supported in the Display Builder

The Display Builder has been enhanced with undo and redo capability. Editing operations may be undone and subsequently redone. The Display Builder will keep a history of the last 20 operations. Undo and redo are supported for the following operations: Select Create, Copy/Paste, Delete Connect Move, Scale Align, Order, Distribute Undo and redo are also supported for changes to the following: Object Properties Background Properties Functions Local Variables

E11840: Attach to Data and Define Command dialog implementation changed

The Attach to Data and Define Command dialogs have changed to support undo and redo. They no longer have access to the GmsRtObject that is being edited, instead they have a GmsObjectProperty object. The following changes will need to be made in custom attach to data and define command dialogs when upgrading to 4.1a1. 1. Modify the constructor arguments: public MyAttachToDataDialog (JFrame dialogParent) public MyDefineCommandDialog (JFrame dialogParent) 2. The GmsRtObject object fields is no longer available. Make the following changes: old: if (object.getIcon() instanceof GmsTableVariables) new: if (objProp.isTabular()) old: String dsString = object.getDsString(varName, true); new: String dsString = null; if (objProp.isAttached()) dsString = (String)objProp.getPropertyValue(); old: object.processSubs(String) new: owner.processSubs(String) old: object.processSubsNQ(String) new: owner.processSubsNQ(String) old: varName new: objProp.getName()

E10041: Object alignment functionality has been implemented

Support has been added for aligning and distributing selections of objects. The align operations include Top, Bottom, Left, and Right, which mean that the corresponding edge of the first selected object will be used as a reference and the corresponding edges of the remaining selected objects will be aligned with it. The distribute operations include Horizontal and Vertical, which mean that the selected objects between the first and last, horizontally or vertically, will be spaced evenly in that direction.

E11931: Display Builder interface has been enhanced

The Display Builder menus and toolbar have been enhanced with additional edit items, and have been made sensitive to editing conditions, so that they are disabled if their actions are not applicable to the current conditions.

Object Property Dialog

E11668: Text properties may now be edited using a text entry dialog

Text properties in the properties sheet may now be edited via a text entry dialog. This dialog makes it easier to enter and modify values that have many characters or contain multiple lines of text.

Drill Down

B11914: Local variables supported in drill down branching functions

Previously, you could not use a local variable as the value argument of a drill down branch function, if the value of the local variable is set from a substitution as part of the drilldown (e.g., using drilldownColumnSubs). This problem has been fixed.

B10237: Improvements made to avoid delays displaying SQL and OLAP data

The Display Builder, Display Viewer and Display Server have been improved to avoid delays in displaying SQL and OLAP data. These delays would sometimes occur after changing the value of a substitution or local variable, opening a display, or reconfiguring a data attachment, and were most noticeable if the update period was large or if the 'nohistory' option was used.

Functions

B11827: Copy function now handles Datetime data type properly

In the 4.0a1 release of Enterprise RTView, the Copy function did not handle a Datetime type column Datetime properly, resulting in an empty column. This problem has been fixed.

E11829: Subtotal by Unique Value enhanced to process multiple columns

The Subtotal By Unique Values function has been enhanced to operate on multiple columns. It expects a minimum of two columns, but may have more than two. The names of the resulting columns will be "Value", for the first column containing unique values, followed by "Total" for the first column with a sum total, and "Total2", "Total3", etc., for additional columns with sum totals.

E11830: Set Lookup Subs function to set subs via lookup table added

A new function has been added to the list of functions. The "Set Substitutions By Lookup" function sets multiple Substitution Strings to values that are obtained using a Lookup Table. The first column in the Lookup Table contains a set of values that is compared against the given Selector. The name of each remaining column is used as the name of a substitution to set. The value to set for each substitution is the value of the field in the corresponding column in the row that matches the Selector. This function returns the value of the Selector.

E11673: Format Date now accepts formatted date string and date object

The Date Format function has been enhanced to accept formatted date strings and date objects.

Security

E11674: Single signon supported for Display Builder and all deployments

The login now supports single singon. For the Display Builder/Viewer application, the username and password can be specified by new command-line parameters, named rtvuser and rtvpass. For example: run_builder -rtvuser:admin -rtvpass:admin The role can be specified by the rtvrole option: run_builder -rtvuser:guest -rtvpass:abc123 -rtvrole:guest If the rtvuser and rtvpass options are used to login but the rtvrole option is not specified, the first role defined for the user is used. For the Display Builder/Viewer applet, the username, password, and role can be specified by applet parameters, using the same names as above. For example: rtvuser="guest" rtvpass="abc123" rtvrole="guest" To avoid having the username and password appear in plain text, a parameter named rtvsign parameter can be used. This parameter takes a sign-on string containing the encrpyted username and password. For example: run_viewer -rtvsign:8I559A5NA8A5864J6J924N0B2 Or, as an applet parameter: rtvsign="8I559A5NA8A5864J6J924N0B2" The sign-on string can be generated with the run_scrambler utility, as follows: run_scrambler <username> <password> For example: run_scrambler admin admin Note that the username may not contain a space. To enter the username and password in a dialog window rather than on the command line, specify the -w option: run_scrambler -w The login features of the Display Server have also been enhanced. The username and password can be specified by new URL parameters, named rtvuser and rtvpass. For example: http://server:port/rtvdisplay/getdisplay.jsp?display=disp1&rtvuser=admin&rtvpass=admin The role can be specified by the URL parameter named rtvrole. Note that it may be necessary to URL-encode the username, password, or role, depending on the characters they contain. To avoid having the username and password appear in plain text, the URL parameter named rtvsign can be used. As described above, this parameter takes a sign-on string containing the encrpyted username and password. For example: getdisplay.jsp?display=disp1&rtvsign=8I559A5NA8A5864J6J924N0B2 The sign-on string will only contain alphanumeric characters, so it need not be URL-encoded. For the Display Server, two additional login features have been added: (1) login from servlet container, (2) login from custom JavaScript. These are described in (1) and (2) below. (1) A general feature of servlet containers (Tomcat, WebLogic, etc) is user authentication: A servlet can be configured to require user login before the web server allows access to the servlet. A servlet's authentication requirements are configured in its web.xml file. The file named web.xml.auth_example, in the rtvdisplay directory, shows how web.xml could be configured for the rtvdisplay servlet. It requires a user to login to the servlet container in order to open any rtvdisplay URL, and grants access to all rtvdisplay server URLs to any authenicated user. (The example web.xml specifies DIGEST authentication mode, which tells the browser to prompt the user for a username and password in a dialog window, and to encrypt the password before sending it to the web server. Most modern browsers and servlet containers support DIGEST mode. Other modes are also defined, but note that support for the authentication modes is determined by the servlet container and browser, not by Enterprise RTView. For more information on this topic, see http://java.sun.com/developer/Books/certification/scwcd_9.pdf). The rtvdisplay servlet can be configured to accept a username that has been authenticated by the servlet container as the login username for the Display Server. This is done by configuring web.xml as described above, and modifying LoginEnabled property in the rtvdisplay.properties file as follows: LoginEnabled=AUTH After a user has logged in to the servlet container, the username is used to login to the Display Server. To allow a single sign-on to the servlet container and the Display Server, the servlet container login name must match a username defined for the Display Server. It is not necessary for the passwords to match, since its assumed that the username has already been authenticated by the servlet container. For example, the user database for Tomcat is defined in the file <tomcat_home>/conf/tomcat-users.xml. By default, a user named "admin" is defined. The default user database for Enterprise RTView also defines a user named "admin". If the rtvdisplay files web.xml and rtvdisplay.properties are configured as described above, a user could login to Tomcat as "admin" and the rtvdisplay servlet would then automatically login the "admin" user to the Display Server, without prompting again for username and password. (2) The rtvdisplay servlet also supports login from custom JavaScript, by calling the following JavaScript function: rtvLogin(username, password, role) The function returns the string "ok" if the login is successful, otherwise it returns a string with an error message. The role argument is optional. The password is encrypted before it is sent to the server. To call the rtvLogin function from a custom web page, the page must be included in the rtvdisplay.war file and it must import the rtv.js and rtvx.js script files. An rtvLogout function is also available. These functions use the XMLHttpRequest object that is included with most modern browsers. In Internet Explorer, if scripting of ActiveX objects is disabled, these functions will fail. For example, the following HTML file will present the user with a combo box containing the usernames "admin" and "guest", and a text box for entering a password. When the user clicks OK, the rtvLogin function is called. If the login information is validated by the Display Server, the displays.html file is opened in the browser, otherwise an error dialog appears. ======================= <html> <script src="rtv.js"></script> <script src="rtvx.js"></script> <script> function doLogin () { var user = document.getElementById("usercombo").value; var pwd = document.getElementById("password").value; var msg = rtvLogin(user, pwd); if (msg != "ok") alert(msg); else document.location = "displays.html"; } </script> <body> <div>Please log in</div> <table border="0" cellpadding="2" cellspacing="0"> <tr><td align="right" nowrap>Username:</td> <td align="right"> <select id="usercombo" style="width:120px"> <option value="admin">admin</option> <option value="guest">guest</option> </select> </td></tr> <tr><td align="right" nowrap>Password:</td> <td align="right"><input type="password" id="password" style="width:120px" value="" onkeypress="if (isEnterKey(event)) doLogin()"> </td></tr> <tr><td colspan="2" align="right"> <button onclick="doLogin()">OK </td></tr> </table> </body> </html> Limitation: For Tomcat, single sign-on using Tomcat authentication requires version 5.0.28 or newer.

Display Server

B11958: Occasional crash in Export to HTML fixed

In previous versions, the Thin Client 'Export to HTML' feature would fail if the Display Server had unloaded the display, which was more likely when the refresh=0 option was used. This has been fixed.

B11915: Export to Excel no longer fails in IE if loginEnabled=true

In previous releases, if the Display Server's loginEnabled property was set to true, the Export Table to Excel feature would sometimes fail when used from Internet Explorer. This has been fixed.

E11908: Initial value of mapped local variable now set properly

In prior releases, the initial value of a local variable marked for "Use as Substitution" was not included in the substitutions when a a drilldown or a command was performed by the Display Server. This has been fixed.

B10031: Improved handling of ' in conjunction with -passclientlogin

In the previous release, if the Display Server was run with the -passclientlogin option, and an SQL database was configured with the "use client credentials" option, then some queries containing single quotes would fail with an SQL syntax error. This has been fixed.

B11874: Display Server no longer loads displays in PANELS.ini twice

In prior releases, when a client viewed rtvdisplays/panels.html, the display server would load and update each display listed in PANELS.ini twice, if the display servlet login feature was enabled. This has been fixed.

B11807: drillDownSelectMode supported in Display Server

The Display Server now supports the drillDownSelectMode property. This property is defined on tabular objects such as obj_table02 and obj_bargraph. When set to 'Element Only', the object's drilldown or command can be invoked only by clicking on an element (a bar, a table cell, etc). When set to 'Anywhere', the drilldown or command can be invoked by clicking anywhere on the object (on its border, for example) although if the click is not on an element the table substitutions ($col1, $celldata, etc) will not be set. In prior releases, the Display Server used 'Element Only' mode for all tabular objects, ignoring the drillDownSelectMode property. In this release, the drillDownSelectMode property setting on each object is used. In addition, the following changes were made to improve feedback to the user when moving the mouse over Display Server objects: 1. On a 3D bargraph, a bar can be selected by clicking any edge of the bar, not just its face as in prior releases. Also, a bar's mouseover information will appear when the mouse is over any part of the bar. 2. For tabular objects with a drill down or command: - the browser's status bar text will show 'click to drill down' or 'click to run command' when the mouse is over an element in Element Only mode, or anywhere over the object in Anywhere mode - if the mouse is over an element (bar,cell) in the object, the browser's cursor will change to a hand - if the mouse is over the object but not one of its elements, the cursor won't change to a hand, even in Anywhere mode. This is intentional, to indicate to the user when the mouse is over an element, and that clicking to drill down will set the table substitutions accordingly. Limitations: In Internet Explorer 5.5, the status bar will not show the 'click to drill down' text when the cursor changes to a hand. Also the cursor will not change to a hand when over a table cell. In Firefox, changes to the status bar text are initially disabled. To enable changes, open Firefox's Tools/Options dialog, click the "Advanced..." button near the "Enable Javascript" checkbox, and then click the "Change Status Bar Text" checkbox. In Firefox versions earlier than 1.5, the browser status bar text gets stuck on "Transferring data ..." after the first refresh of a display. Afterwards, it will not change when the mouse is over an object with a drill down or command until another display is opened. Upward Compatibility: If necessary, the old Display Server behavior (always using 'Element Only' mode) can be enabled by specifying the -ddelementonly command line option as follows: run_displayserver -ddelementonly ... or by adding a line to the DISPLAYSERVER.ini file as follows: ddelementonly true

E11812: Add configuration to servlets that prints to logfile

The rtvdisplay and rtvdata servlets have been modified to provide version information. This can be useful in verifying that the version of the servlet matches the version of the installed Display Server and Data Server. The version of the rtvdisplay servlet can be viewed by browsing the following URL: http://host:port/rtvdisplay/version.jsp The version of the rtvdata servlet, along with other diagnostic information, can be viewed by browsing the following URL: http://host:port/rtvdata/test.jsp?test=1 In addition, when each servlet starts, it will print the version information to the standard output of its servlet container. (Tomcat's stdout log file, for example). The rtvdisplay servlet also includes the version string as a comment in each HTML file it generates, as follows: >!-- rtvdisplay servlet: version_string --<

B11814: Rapid clicking of control objects no longer causes problems

When using the Display Server, after the user clicks on an object, if the server response is delayed the user may be able to click on additional objects before the server reply is received. In previous releases, those additional clicks were sometimes lost or ignored. This has been fixed.

E11677: Bundle tomcat directory that contains war file into rtvimage

An Apache-Tomcat 5.0.28 Web Server is now included in the Enterprise RTView distribution to allow users to run the server and servlet based demo components of Enterprise RTView without having to set them up on their own Web Server. The Demo Server is located in the servers/jakarta-tomcat-5.0.28-sl directory of the distribution. The following scripts have been added to the distribution to start and stop the Demo Server: run_startup_demoserver starts the Apache-Tomcat Demo Server run_shutdown_demoserver stops the Apache-Tomcat Demo Server The Demo Server runs on the HTTP/1.1 Connector port 8068. The shutdown port is 8069 and the AJP Connector port is 8070. Once the Demo Server is started, you should be able to access both the Rich and Thin Client versions of the following demos: Data Sources ElectroSphere Features Geothermal TIBCO Hawk Monitor You should also be able to run the Rich Client version of: TIBCO EMS Manager To Run Rich/Thin Client Demos ----------------------------- To run a Thin Client demo you must start the Demo Server, start the Display Server in the desired demo directory, start any simulators in the desired demo directory and access the demo in the browser on the localhost on port 8068. To determine the appropriate URL access the Start Programs menu items on Windows or view the file view_displayserver.url in the desired demo directory on UNIX. To run a Rich Client demo you must start the Demo Server (if it is not already running), start any simulators in the desired demo directory, start the Data Server in the desired demo directory, add access the applet in the browser on the localhost on port 8068 (http://localhost:8068/esphere_applet). To determine the appropriate URL access the Start Programs menu items on Windows or view the file view_applet.url in the desired demo directory on UNIX. More detailed instructions are provided in the Enterprise RTView Documentation. To Modify Rich/Thin Client Demos -------------------------------- If you wish to modify a Thin Client demo you need to recreate the .war file by executing the make_war.bat script in the desired demo directory and then copy the .war file to the Demo Servers web applications directory. The following script has been added to the distribution to copy the specified .war file to the Demo Servers appication directory: install_to_demoserver warfile Note that this script stops the Demo Server if it is running, removes the existing .war file and directory from the Demo Server webapps directory, copies the new war file to the webapps directory and restarts the Demo Server. The script must be run from the directory containing the warfile. If you wish to modify a Rich Client demo or add your own demo, you will need to stop the Demo Server if it is running, copy the desired demo directory to the webapps\ROOT directory of the Demo Server (servers\jakarta-tomcat-5.0.28-sl\webapps\ROOT) and copy the necessary jars from the lib directory.

Data Sources

E11767: Date type implemented for XML, SQL, and Rendezvous data sources

Support for date data types is now fully supported in the XML, SQL and Rendezvous data sources. In XML, columns may now use "date" as a data type. Entries for date columns may be formatted date strings or a number string representing the number of milliseconds since midnight, January 1, 1970. For SQL data sources, the DATE, TIME and TIMESTAMP column types will now be interpreted as dates and not merely date strings. For Rendezvous messages, the DATETIME data type is now interpreted as a date and not simply a date string. No changes have been made to RTView's support for OLAP, Hawk and JMS, since these data sources do not provide a date data type.

SQL Data Source

B11816: SQL column names with hyphens supported

In previous releases, if a column name containing a hyphen was picked from the Column(s) drop-down list in the Attach to SQL Data dialog, the resulting query would fail with syntax errors. This has been fixed.

E11459: Support for commands has been added to the SQL datasource

Support for commands has been added to the SQL data source. The actionCommand property of a control object, or the command string property of a standard object, can be configured to perform an SQL update, insert, or delete operation to modify a database table, or to perform other SQL operations. An SQL Command is configured In the Builder, using the Define SQL Command dialog. In the dialog, a database is selected and the SQL command string is entered. The SQL string can contain substitutions, for example: UPDATE system_table SET Status = 'online' WHERE System = '$systype' The dialog allows selection of the "Run Affected Queries After Command" option. If this option is selected, the SQL data source will re-run any queries that use the same database table that is modified by the command. This is useful for viewing changes to the table immediately, rather than waiting for the next scheduled query update. SQL commands use the same database connections that are used to run SQL queries. If a database has the "Use Client Credentials" option checked in the SQL tab of the options dialog, then an SQL command executed on that database will use the same credentials. If the -sqltime command-line option is specified, the elapsed time and status will be printed when an SQL command is executed. Limitations: The "Run Affected Queries After Command" option is only supported for update, insert, and delete operations in which the name of the database table to be modified is specified explicitly. If a command performs another SQL operation (such as running a stored procedure which modifies tables), then the results of the operation will not be displayed until the next scheduled update of each affected query. Also, display of the modified data may be delayed for other reasons, for example if the database does not commit the results immediately and instead returns the old data on the next query.

TIBCO Hawk Data Source

E11686: Support Multiple Domains for Hawk

Enterprise RTView now supports multiple connections to TIBCO Hawk on the TIBCO Hawk Communications tab in the Application Options dialog. For each connection, a name must be specified. This name is used to create an Agent Group by the same name that contains all of the agents on that connection. A Connection Name field has also been added to the RTViewDs microagent. A default connection is automatically created. The parameters for this connection can be modified, but it cannot be removed. Users should not create multiple connections with the same parameters as some agents from that connection will be added to one group and some to the other.

JMS Data Source

E11860: SonicMQ factory class name added to the JMS Connection dialog

The SonicMQ factory class name has been added to the JMS Connection dialog to make it easier to create a connection to SonicMQ. See the Setup section of the documentation for information on how to setup your classpath to include the SonicMQ classes.

E11861: Queue browsing now supported for SonicMQ

Queue browsing is now supported for SonicMQ.

Object Library

B11832: Image name handling improved

Enterprise RTView has been improved to better handle image file names that contain leading or trailing blank spaces.

E11652: transparencyPercent property added to most objects in palette

The ability to apply an alpha composite value has been added to most of the objects in the RTView palette. The transparencyPercent property controls the level of transparency used when drawing the object. Valid values for the transparencyPercent property range from 0 to 100. Use 0, the default, for a fully opaque object. If you are stacking objects, use lower values for objects toward the back of the stack and increase the transparencyPercent for objects stacked in front. Values approaching 100 will increase the level of transparency to the point of invisibility. The transparencyPercent property is not supported in the tables (obj_table02 and obj_table03), in the object grid (obj_objectgrid), or in any of the items in the Controls section of the Object Palette. The transparencyPercent property is not supported when using the -optimizeredraw command line argument.

B11140: The obj_text01 label object now supports rotated drawing

The obj_text01 label object now supports rotated drawing. Set the rotationAngle property to a positive or negative number of degrees of rotation. Use 0 degrees for no rotation.

Links

E11920: Improved link performance

Performance of link drawing has been increased significantly especially for larger numbers of links.

Tables

E11913: Table row limit increased from 10000 to 131072

The maximum number of rows that a table can support has been increased from 10000 to 131072.

E11872: Column reordering in table objects has been disabled

In previous versions of Enterprise RTView, columns in a table could be reordered by dragging the column header, but this order was not persisted after the display was closed. Reordering the columns by dragging the column header has been disabled. To modify the order of the columns in a table, modify the order of the columns in the data attachment for the table.

B11871: Numeric strings that are integers are not formatted as doubles

The table object (obj_table02) now only applies default formatting to numeric string columns when the column values look like floating point numbers (contain a decimal point).

E11751: Row highlight funtionality added to table

The rowHighlightEnabledFlag property has been added to the table (obj_table02). This property allows an entire row to be highlighted when selected, instead of just a single focused cell. The highlighting of the focused row takes precedence over any filter colors that may be applied to a row.

E11431: Option to lock the first column of a table implemented

The table object (obj_table02) now allows the first column in the data table to be locked through the use of row headers. The rowHeaderEnableFlag turns row headers on or off. The rowHeaderBgColor, rowHeaderTextColor, rowHeaderTextFont, and rowHeaderTextSize properties control the appearance of the row header column. The rowHeaderFilterColorsEnabledFlag controls whether row filter colors are applied to the row header. Row visibility filters are applied to the row header regardless of the setting of this flag. Limitations: 1. The row header column cannot be resized by dragging, although it can be resized using the columnProperties attribute. 2. The row header column cannot be hidden using the columnsToHide property. A warning message will be displayed if this property is changed to include the row header column.

E11696: Option to lock the first column of a table supported

The Data Server now allows the first column in the data table (obj_table02) to be locked through the use of row headers. The properties that control row headers and limitations on the use of row headers are described in release note E11431. Additional Limitations: 1. The rowHeaderFilterColorsEnabledFlag is not supported in the Display Server. Filter colors are only applied to the table cells and not to the row headers.

E11570: Formatting has been implemented for Datetime columns

The table object (obj_table02) now supports formatting of columns containing date/time data. Formatting should be applied using the columnFormat attribute.

E11471: Alternating row colors now supported

The table object (obj_table02) now has an option to display alternating stripes for the row background color. This option may be turned on by checking the cellBgStripedFlag property. The stripe color is based on the cellBgColor. If cellBgColor is white, the stripe color will be gray. Otherwise, it will be a paler version of the cellBgColor.

Graphs (General)

B11870: Auto-scaling enhanced to work with values 10E-4 or smaller

Auto-scaling in all graphs has been improved to now handle data values that are 10E-4 or smaller

E11479: Trace markers in bar, trend and xy graphs have been improved

The trace markers in the bar, trend and xy graphs have been improved to provide the same functionality as the markers in the radar graph. For bar and xy graphs, the marker style index of the traceProperties attribute now supports the following values: 0 = no marker 1 = dot 2 = + 3 = * 4 = o 5 = x 6 = filled circle 7 = filled diamond 8 = filled triangle 9 = filled square 10 = filled star For trend graphs, the above values may be used for the trace*MarkStyle attribute. The bar, trend and xy graphs also now provide the markDefaultSize and markScaleMode attributes. The markDefaultSize attribute specifies the size of the markers in pixels. The markScaleMode attribute allows markers to be scaled increasingly, either by trace or within each trace.

Bar Graphs

B11803: Value font size adjusts to available space for stacked bars

Bar graphs with stacked bars have been improved to prevent crowding and overlapping of bar value labels. In cases where a bar segment is too small to contain a value label, the font size of the value label will be reduced to make the label fit. If a label with a smaller font still does not fit within the bar segment, the label will not be displayed.

B11794: Bar graph flicker bug has been fixed

A bug that was causing the bar graphs to flicker on drill down has been repaired.

E11748: A traceValueDivisor property has been added to the bar graph

A traceValueDivisor property has been added to the bar graph. In previous versions, the trace values were adjusted in conjunction with the bar values via the valueDivisor property. This new property allows trace values to now be adjusted independently of the bar values. Setting traceValueDivisor to zero (the default) will prevent any adjustment of the trace values. It is important to note that previously existing displays may need to be revised in order to continue working in the same manner under the new version of Enterprise RTView. The valueDivisor property should be copied into the traceValueDivisor property for any bar graph that displays traces and has a non-zero valueDivisor property.

Pie Graphs

B11656: Bug fix has removed gray gap between wedges

A bug that was causing a gray gap to be drawn between two wedges of a pie graph has been repaired.

Radar Graphs

E11836: labelTextAlignX property added to radar graph object

The radar graph now has a labelTextAlignX property. This property provides the option of positioning the graph title label at the left, center or right of the graph.

Stock Chart

B11929: Stock chart no longer throws exception when data column changed

In prior releases, the stock chart would throw an exception if a trace was attached to a data table that contained a timestamp column but no columns of numeric data. This has been fixed.

B11928: Stock chart no longer crashes if scaled to be very narrow

In previous versions, the stock chart would crash in candlestick mode if it was scaled to be very narrow.

B11923: Stock chart y-axis labels no longer clipped by edge of graph

In prior releases, if a stock chart was configured to have one or more overlay traces and no price trace, the y axis labels with large values were partially clipped at the left edge of the chart. This has been fixed.

B11868: Traces update properly now if data object is updated and reused

In the previous release, the stock chart did not update if it was attached to a data table from a custom datasource which updated the existing data table, rather than creating a new table. This has been fixed.

E11939: timeFormat property added to the stock chart

The "timeFormat" property has been added to the stock chart. This property is only used when the timeRangeMode is CONTINUOUS. All other times it is ignored. If left blank, the axis is labelled with a default format, determined based on the range.

E11799: x-axis labels no longer overlap

In prior releases, the time axis labels on the stock chart would overlap under some conditions. This has been fixed.

Control Objects

E11520: Add Radio Button controls

A Radio Button Group control (obj_c1radio) has been added to RTView. This control allows users to create and manage a bank of radio buttons. Use the radioListValues property to specify the labels and values for each radio button. For this property, provide a semicolon- delimited list containing the information for each radio button. For example: Red;Green;Blue If you want the radio button label to be different from the value returned when the radio button is selected, you may provide an optional value property after each label, separated from the label by a comma. For example: Low,25;Medium,50;High,75 You may optionally attach the radioListValues property to a table. The first column of the table will be used for the radio button labels. If the table contains more than one column of data, the second column will be used for the radio button values. Use the selectedValue property to specify which radio button should be turned on. If none of the radio button values match the value given in the selectedValue property, then no change will be made to the state of the radio button group. Use the horizontalGap property to specify the width, in pixels, of the gap that separates radio buttons horizontally. Use the verticalGap property to specify the height, in pixels, of the gap that separates radio buttons vertically. Use the orientationMode property to specify the order in which radio buttons will be laid out in the group. When orientationMode is set to Horizontal, radio buttons will be populated by row. When orientationMode is set to Vertical, radio buttons will be populated by column. For example, suppose a radio button group has room for three rows and three columns of radio buttons and the button labels are A, B, C, D, E, F and G. With orientationMode set to Horizontal, the buttons will appear as: A B C D E F G With orientationMode set to Vertical, the buttons will appear as: A D G B E C F Use the numberOfColumns property to force the radio button group to have a specific number of columns. Specifying zero for this property will allow the radio button group to dynamically choose the number of columns. Use the numberOfRows property to force the radio button group to have a specific number of rows. Specifying zero for this property will allow the radio button group to dynamically choose the number of rows. The pixel dimensions of the radio button group are specified with the objHeight and objWidth properties. If not all of the radio buttons will fit within the group's extent, the radio buttons that fall outside of the extent will not be displayed.

E11700: Radio Button controls added to Display Server

The Display Server now supports radio buttons. There are some limitations: The vertical alignment of a radio button and its label may differ slightly when viewed via the Display Server as compared to the Display Viewer. If the is insufficient space to display the entire label text of a radio button, the Display Viewer and Internet Explorer will display ellipsis. Firefox will clip the label text. The radio button bgColor property is not supported by the display server.

TIBCO EMS Management Application

B11941: Edit Display improved to run on most Windows systems

In previous versions of Enterprise RTView, the Edit Display option in the TIBCO EMS Manager did not work on some Windows systems. This has been fixed, however the Edit Display option is not supported on Windows 98 (see B11963).

B11837: Trading Exchange Demo displays fixed

In the previous release, the Trading Exchange Demo custom displays in demos/emsdemo did not display data. This has been fixed.

Tree Handling and Navigation

B11818: Font and colors can be configured for RtViewNavTreePanel

The font and colors used by the Display Viewer to display an RtViewNavTreePanel can be configured, by using the new <treefont> and <treecolor> tags in the navtreedata file. Typically, this file is named navtree.xml. The <treefont> tag can appear anywhere in the navtree.xml file, for example: <treefont name="serif" style="bold italic" size="16"> The <treefont> attributes are: name - specifies the font family name style - either "plain", "bold", "italic", or "bold italic". size - font point size. If any of these attributes are omitted, the corresponding default value is used. If the <treefont> tag is omitted entirely, the default tree font is used (typically SansSerif plain 12 point). The <treecolor> tag can appear anywhere in the navtree.xml file, for example: <treecolor text="pink" background="gray" selection="#00B9F3"> The <treecolor> attributes are: text - specifies the text color for the tree labels background - background color for tree and non-selected tree labels selection - background color for selected tree label A color attribute values can be specifed in hex RGB format #rrggbb. For example, cyan is specifed as #00FFFF. Or, one of the following color names can be used: black, white, red, blue, green, yellow, cyan, magenta, gray, lightGray, darkGray, orange, pink. If any of these attributes are omitted, the corresponding default color is used. If the <treecolor> tag is omitted entirely, the default tree colors are used. The font and color of an individual tree node can be specified by using HTML in the node's label attribute. For example, the following label will be drawn in green using a 50 point italic monospaced font: <node label="<html><p style= 'font-family:monospaced;font-style:italic;font-size:50;color:green'> Your Label Goes Here" display="med_panel"> Font settings specified for a label with HTML overrides the <treecolor> and <treefont> settings.

Distribution

B11922: Uninstalling Enterprise RTView no longer leaves empty menus

In previous version of Enterprise RTView the uninstall sometimes left an empty menu item. This has been fixed.

E10039: Jar certificates have been updated.

The digital certificates for the jars in previous releases expire in March 2006. This will not cause them to stop functioning. If you are running the Display Viewer Applet with a jar that has an expired certificate, and your browser is configured to present certificate information to the user, the user will see that it is expired. They can still choose to run it. The certificates have been updated, the new expiration date is March 2009.

E11925: Default jars are no longer signed

In previous releases, all of the Enterprise RTView jars in the lib directory were signed with a digital certificate. The jars in the lib directory are now unsigned. Signed versions of all of the jars are in lib\signed_jars.zip.

Version 4.0a1 Release Notes

Enterprise RTView

General

E11784: New -timezone option available for setting default timezone

The -timezone command line parameter has been added to set the default timezone used when interpreting and displaying dates. The -timezone parameter should include a Java timezone ID. For example: -timezone:US/Eastern The timezone ID should be a full name from the list below or a custom ID, such as "GMT-8:00". Unrecognized IDs will be treated as GMT. The list of timezone ID values will vary slightly with each Java virtual machine. If you run the RTView Builder with a valid -timezone parameter and then save Application Options, the timezone information will be preserved in the options.ini file. To prevent the -timezone value in the options.ini file from being used, pass "none" as the timezone ID in the command line parameter. For example: -timezone:none See the documentation for valid Timezone ID values.

E11683: XML Server and Image Server have been renamed

The XML Server and Image Server have been renamed. The XML Server has been renamed to the Data Server. Some command line options have also changed: Data Server -xmlout is now -dataout Display Builder and Display Viewer -xmlserver is now -dataserver The options file for the Data Server has been renamed to DATASERVER.ini. XMLSERVER.ini files from previous installations will still work. The xmlservlet has also been renamed and is now distributed in a new directory: \servlets\rtvdata The default URL for the servlet has also changed: http:\\host:port\rtvdata The installation script for the new servlet will not remove the old servlet from your web server. If you would like to remove the old servlet, this must be done manually. The Image Server has been renamed to the Display Server. The following command line option has changed: -image is now -display The options file for the Display Server has been renamed to DISPLAYSERVER.ini. IMAGESERVER.ini files from previous installations will still work. The rtvimage servlet has also been renamed and is now distributed in a new directory: \serlvets\rtvdisplay The default URL has also changed: http:\\host:port\rtvdisplay Several of the properties in rtvdisplay.properties (previously named rtvimage.properties) have changed: ImageServerHost -> DisplayServerHost ImageServerPort -> DisplayServerPort ImageServerTimeout -> DisplayServerTimeout The old property names are still supported. The installation script for the new servlet will not remove the old servlet from your web server. If you would like to remove the old servlet, this must be done manually. To upgrade an existing Display Server deployment: 1. Rename IMAGESERVER.ini to DISPLAYSERVER.ini 2. Modify any references to getimage.jsp to getdisplay.jsp 3. Modify any references to imageFrame to displayFrame 4. Rename rtvimage.properties to rtvdisplay.properties 5. Modify rtvdisplay.properties to use new property names: ImageServerHost -> DisplayServerHost ImageServerPort -> DisplayServerPort ImageServerTimeout->DisplayServerTimeout 6. Modify description and listener in web.xml: Display Server Servlet gmsjsp.rtvdisplay If you are using the rtvimage war file included with your Enterprise RTView installation, the URL to access the Display Server displays was http://host:port/rtvimage This will now be http://host:port/rtvdisplay

Application Frameworks

E10483: Provide dockable window framework for Display Builder

The Display Builder now uses dockable windows to present the Object Palette and Object Properties dialogs. Window layouts are persisted between application runs. To revert to the initial layout, select Reset Window Layout from the Tools menu.

Object Property Dialog

E10229: Object name property, objName, added to all objects

A new property, objName, has been added to all objects. A name is automatically assigned to each new object when it is added to the display. You can modify this name using the objName property. The name for each object must be unique.

Substitution

B11622: Existing subs removed properly if linked with local variable

Previously, the Remove Existing Substitutions option did not clear subtitutions from a drill down window if the subtitution had a corresponding local variable. This problem has been fixed. When substitutions are cleared, any local variables are restored to their initial values.

Security

B11733: Custom user manager crash fixed

In version 3.0e1, the custom user manager would crash when running with the Data Server if the getPassword() method returned null. This problem has been fixed.

Java Web Start

B10296: Support deployment using Java Web Start

The Display Builder, Display Viewer, Data Server and Registration applications can now be deployed using Java Web Start.

Display Server

B11804: Display server crash fixed

A display server problem has been fixed that caused Internet Explorer to crash occasionally while updating the current display after clicking on an object that changed a substitution or local variable.

B11797: Scrollbar bug in tables with Firefox 1.5 fixed

If using Firefox 1.5 with prior Display Server versions, unwanted scrollbars appear in the column headers, and the table's horizontal and vertical scrollbars do not appear when needed. These problems have been fixed.

E11448: Deployment of multiple Display Servers supported

It is now easier to deploy multiple Display Server applications as the install_to_tomcat scripts have been moved to the "bin" directory and can be used from any Display Server application. The install_to_tomcat script takes one argument, the name of the .war file (without the .war extension), that contains a modified rtvdisplay application. In each application directory there will need to be a script (e.g. make_war.bat) which copies the rtvdisplay.war file from the servlets/rtvdisplay directory and updates it with files unique to that application. With this release, the demos/esphere application has been enhanced to include some sample files so that it can be run via the display server (E11585).

Data Sources

SQL Data Source

B11782: Calculated columns in SQL Server no longer causes crash

A calculated column in SQL Server, which results in a column with no name, previously caused a crash in Enterprise RTView. This problem has been fixed.

E11783: Maximum Rows option implemented for SQL data attachments

A new field, Maximum Rows, has been implemented to allow you to specify how many rows of data are returned by a SQL query. The maxNumberOfRows object property is still applicable to tables with a SQL data attachment with Maximum Rows set, so you may not see as many rows as you specify in your data attachment if you do not also adjust maxNumberOfRows.

TIBCO Hawk Data Source

E11687: Tibco Hawk 4.6 now supported

Enterprise RTView now supports TIBCO Hawk 4.6.

E11688: SSL supported for Hawk when running on an EMS transport

TIBCO Hawk 4.6 supports specifying SSL parameters to use when connecting to Hawk agents using an EMS transport. To specify your SSL parameters in Enterprise RTView, you must implement a MyHawkSSLHandler. See the Enterprise RTView User Guide for more information on how to setup this class.

OLAP Data Source

E11719: Speed of OLAP queries using Applix Java API has been improved

The OLAP datasource has been modified to improve the performance of database connections that use the Applix Java API. This reduces the time required to perform a query with a large result, and the time required to fill the dimensions tree when browsing a cube.

B11702: Incorrect lost connection errors no longer occur

In the previous release, for some Applix TM1 databases, the OLAP datasource would incorrectly report lost connections when using the Applix Java API. This has been fixed.

B11703: Trailing whitespace no longer causes MDX syntax error

In the previous release, if space characters were typed at the end of the Columns or Rows text field in the OLAP data dialog when using an ODBO connection, the query was constructed incorrectly, causing an MDX syntax error.

B11704: Multiple dimensions in an ODBO slicer are supported

In previous releases, the OLAP data dialog allowed selection of only a single item in the slicer of a query using an ODBO connection. Now, the dialog allows selection of items from multiple dimensions for the slicer. However, only one item from each dimension, which is not already used on the query's column or row axis, may be selected.

E11664: Option added to suppress permissions errors

An option has been added to the OLAP datasource to suppress errors from OLAP queries. A checkbox for this option, labeled "Suppress Query Errors", appears on the OLAP tab in the Options dialog of the Display Builder. From the command line, specify "-olapquiet".

E11435: Asian string support for TM1 Java API connections implemented

OLAP connections using the Applix TM1 Java API now support Japanese characters, on systems running Japanese Windows. Japanese characters may appear in cube names, dimension names, element names, and query results.

JMS Data Source

B11669: Maximum number of messages in Queue Browser can be specified

The queue browsing function now respects a limit to the number of messages that will be browsed from a queue. The default is 1000. This can be changed by specifying the command line options: -jms_maxqueuemsgcount:N where "N" is the maximum number of messages that will be queried from a queue browser for any queue. This option was added to prevent long delays when reading large number of messages from a queue.

E11114: Automatic reconnection to a server is now supported

If an established server connection fails, an attempt is now made to reconnect to the server and reestablish message listeners. This reconnect attempt is made continuously approximately every 30 seconds by default. This can be changed using the command line argument: -jms_minreconnecttime:N where "N" is the minimum number of seconds to wait before attempting to reconnect to the server. This option will be saved to the JMSOPTIONS.ini file if a Save is done in the Options dialog.

JMS Admin Data Source (for TIBCO EMS only)

E11532: "Localhost" in hostnames is substituted with actual host name

The behaviour in the EMS Manager of servers that are listed in the servers.xml file with "localhost" as the hostname has been changed. Previously, the server table would be constructed with the "localhost" retained in the URL. This caused problems with the administration of routes and the selection of servers. Now, the localhost is always substituted with the actual host name that is found on the system on which the EMS Manager is running.

E11721: The default setting for "Enable Monitor Messages" is now false

The default setting for "Enable Monitor Messages" is now false. Enabling monitor messages on a system with many servers can cause high network traffic. Monitor messages should be used carefully and only for debugging the behavior of a system. Refer to the TIBCO documentation for more information about how to use monitor messages.

E11167: Server topology can be discovered via routes

A new option has been added to the TIBCO EMS Administration dialog. If enabled, the "Discover Servers by Routes" option will use the information contained in the server metrics "Routes" table to discover servers that are linked to any of the servers already known. A new server is added to the table only if the route to that server is "active", and is "connected".

E11722: New "Remove All Servers" button added to options

In the TIBCO EMS Servers Option Dialog, there is a new button added to permit the removal of all servers in one operation. Note: Unless "Discover Servers" is turned off, the list will be repopulated immediately with all known servers.

E11659: Use of XML data files for JMS metrics is no longer supported

The "Write Admin Data to External File" option has been removed in this version of the EMS Manager and the JMS Administration Datasource. The use of XML data files for JMS metrics is no longer supported.

B11679: Admin commands are now supported in the Data Server

In the EMS Manager, all admin commands are now implemented in the JMSADM data source. This means that when the EMS Manager is used with the Data Server, the command is issued to the Data Server and the admin function is performed in the server. The client applications no longer needs to make its own connection to the target server.

B11762: Server status no longer toggles if servers.xml contains "admin"

Previously, if a server specification was saved in servers.xml with the user name "admin", that server's status would toggle incorrectly between active and inactive. This problem has been fixed.

B11666: servers.xml is no longer saved as default xml source

Previously, the servers.xml file would get saved out as the default xml source. This no longer occurs.

E11725: Maximum server metrics table size can now be specified

In order to reduce the chance of high cpu utilization or memory usage, a limit has been placed on the reading of topics, queues, connections, and durables. The maximum number of rows that can be read is 1000 by default. If the number of rows in one of these metrics tables is greater than the max, no rows will be read at all. Instead, one row is added to the table with a Name field that has the value "TOO MANY !". The value for the maximum row count can be set using the command line option: -jmsadm_maxmetricsrowcount:N where "N" is the maximum number of rows to query for topics and queues. This value will be saved the .ini file whenever a Save is done from the Options dialog in the Display Builder.

E11731: Pattern-searching now available for topics and queues

The ability to select Topics and Queues by specifying a pattern to match has been added to the JMSADM Datasource and also to the EMS Manager Topics and Queues pages. Patterns are specified in the usual TIBCO fashion, e.g. sample.* or orders.>

E11658: Adding a server with an invalid hostname no longer causes delay

In previous versions of RTView, adding a server with an invalid hostname could cause a delay of up to several seconds. This delay has been minimized in most cases, but still can occur occasionally.

E11644: Mechanism for retrieving EMS Server metrics has been enhanced

The mechanism for retrieving EMS server metrics has been enhanced to minimize overhead and CPU utilization. Previously, all metrics were being retrieved from each server on every metrics update. Now, the ServerInfo metrics are retrieved for each server, but all other metrics are only retrieved if they are being monitored in an open display. In addition, the "All EMS Servers" and the "Server Info" displays no longer have the "keepalive" mode set in the emsmgr_navtree.xml control file. This was done to minimize the server metrics that are regularly being retrieved.

E11654: Add field to EMS Admin dialog to set metrics update period

The EMS Administration Options Dialog Tab has been enhanced to include a way to specify the metrics update period. This value is also saved in the JMSADMOPTIONS.ini file when options are saved.

E11743: Minimum server reconnect time is configurable

The default time to wait before attempting a reconnect to a server that has failed to connect is 30 seconds. It is now possible to configure this time by specifying the command line option: -jmsadm_minreconnecttime:N where N is the number of seconds to wait before attempting a reconnect for admin connections.

Sample Displays and Applications

Esphere Sample Application

E11585: Esphere demo enhanced to show configuration of Display Server

The demos/esphere sample application has been enhanced to show how the Enterprise RTView Display Server can be configured for an individual application. A "displayserver" subdirectory is now provided which contains a set of files that are used to override some of the HTML, XML, and properties files contained in the standard rtvdisplay.war file contained in the %RTV_HOME%/servlets/rtvdisplay directory. This directory includes several HTML files, including a top-level index.html page that customizes the look of the application and the contents of the side navigation panel. The web.xml file and the rtvdisplay.properties files are used to customize the name of the application and the port used to run the Display Server. The esphere web application is created by running the make_war.bat or make_war.sh script. This script copies the rtvdisplay.war file from servlets/rtvdisplay and updates the file with the contents of the displayserver directory. Once the war file is made, run the install_to_tomcat.bat or install_to_tomcat (unix) script to copy the war file to the Tomcat webapps directory, and stop and start the tomcat servlet engine. After this the webapp can be accessed typically using a URL address like "http://localhost:8080/esphere". At the top level of the directory, the DISPLAYSERVER.ini file is used to configure settings for the RTView Display Server. The port number specified in this file must match the port number specified in the rtvdisplay.properties file. In the demos/esphere directory, you must also start the Display Server application using the command "run_displayserver", in order to generate the displays for the application.

Hawk Monitoring Sample Application

E11610: Hawk Monitoring demo added to the installation

A new demo, "Hawk Monitoring", has been added to the installation. It can be accessed from the demos in the Start Menu or from RTV_HOME/demos/hawkmonitor.

XML JSP Datasource Tutorial

E11611: JSP example displays have been integrated into the DS Tutorial

The DS Tutorial example has been updated to include displays for Java Server Pages. The separate demos/jspdisplays example has been removed.

Object Library

Tables

B11781: columnsToHide inconsistency bug fixed

In prior releases, a hidden column in a table object would become visible if the names or number of the table columns changed after the table was displayed. This has been fixed.

Graphs (General)

B11761: Scrollbar visibility for invisible objects fixed

In prior releases, setting the visFlag property to false did not hide the scrollbars on the bar graph, trend graph, and xy graph objects. This has been fixed.

E11736: New stock chart graph added

1. Overview The stock chart object plots the price of a stock over time. The chart supports intra-day, daily, weekly, monthly, quarterly, and yearly plots. The price data can be plotted as a line, bars, or candlesticks. A candlestick shows the stock's open, high, close, and low price for each time interval. Multiple overlay traces can be configured to show trading volume, to compare the stock's price to that of other stocks or stock indexes, and to show events such as dividend payments, splits, etc. Overlay traces can be bars or lines. Colors, styles, labels, gradient fill, and other properties can be configured for each trace. The chart supports features available on the other Enterprise RTView graph objects, including: - autoscaling and multiranging on the y axis - a trace legend, either fixed or floating - a sliding cursor - zooming and scrolling - mouseover on trace points - drilldown from trace points 2. Trace data The stock chart supports ten traces: one price trace and up to 9 overlay traces. Each trace has two properties used to provide the trace data, one for the trace's initial (historical) data, and another for new data to update the trace while it is displayed. For the price trace, these properties are named priceTraceHistoryTable and priceTraceCurrentTable, respectively. For an overlay trace, the property names are overlayNHistoryTable and overlayNCurrentTable, where N is the overlay number, from 1 to 9. A history table contains multiple rows of price data, one for each point that will be drawn when the trace is displayed. A current table is expected to contain only one row of data, which is used to either update the last (most recent) point on the trace with new data, or to add a new point to the end of the trace. If a trace displays only historical data (for example, a trace of weekly year-to-date prices) then the current table property need not be assigned. For the price trace, the historical and current table must each contain 5 columns. For an overlay trace the tables must each contain 2 columns. The first column of all tables must contain timestamp data. The timestamp can be a string, specifying a date or a date and time, or it can be a numeric value representing the number of milliseconds since Jan 1 1970 GMT (the conventional Java long timestamp). The table rows do not need to be in time order, the chart will sort them if necessary. For an overlay trace, the second column of each table must contain the data values (price, shares sold, etc) to be plotted. Any additional columns are ignored. For the price trace, the second through fifth column must contain the open, high, low, and close price of the stock, in that order. 3. Time Axis The chart's x axis shows time values, increasing from left to right. By default, the chart's time range is set to match the oldest and newest timestamps in the price trace data tables. The time range can also be controlled by several properties, and also by using the zoom and scroll features, as with the trend graph object. These are described later. In addition, the timeRangeMode property determines the interval between trace data points. The timeRangeMode property has several settings, as described below. However, in most cases the Auto setting will be used, allowing the chart to select the setting that best matches the time intervals in the price trace's data tables. If timeRangeMode is set to Continuous, the chart will plot each point using its corresponding timestamp from the data table. In Continuous mode, the stock chart is very similar in behavior to the trend graph object Intra-day mode is used for viewing price data with time intervals less than one day (hourly, every 15 minutes, every minute, etc). In intra- day mode, the tradeDayBegin and tradeDayEnd properties are used to define the daily start and end times of the trading day. No data is plotted between the end of a trading day and the beginning of the next. The default values are 09:30 and 16:00. The timeRangeMode can also be set to Daily, Weekly, Monthly, or Quarterly, or Yearly. In each of these "periodic" modes, at most one data point is plotted for each trace at the selected period (one point per day, one per week, etc). If the data tables contain data at more frequent intervals than indicated by the mode (for example, timeRangeMode is weekly but the data tables contain daily price data), the chart will aggregate the data to match the mode. This is described in more detail later in this note. If timeRangeMode is set to Auto, the interval between the two most recent data points in the price trace's historical data table is used to select the mode. If the interval is less than 1 minute, then Continuous mode is selected. If it is one minute or more but less than 1 day, intra-day mode is selected. Otherwise, the periodic mode that best matches the data is selected (Daily, Weekly, etc). 4. Time Axis Labels The labels that appear on the time axis vary, in number and format, according to the chart's visible time range, the timeRangeMode, and the trace data. If timeRangeMode is Continuous, the number of time axis labels is controlled by the xAxisMajorDivisions property, as with the trend graph. The labels show the start and end time of the visible time range, and possibly other evenly spaced times between. Note that the time labels and their tick marks may not align exactly with any of the trace's data points. In the other modes, if space allows, time axis tick marks & labels are shown at regular intervals and each aligns with a point in the price trace. For example, a monthly chart with 12 data points would have a tick mark and label showing the 3 letter abbreviation for each month. However, if the chart shows a longer time range, say 5 years of monthly data, then the chart may only show a tick mark and label for January of each year, using the year as the label. The other months would not be labeled. If the user zooms in on the chart, so that fewer months are visible, then more of the months may be labeled. In Intra-day mode, the labels show the hour and minute of the day, day of week, day of month, month of year, and/or year. In Daily and Weekly mode, the labels show the day of the month, month of the year, and/or year. In Monthly mode, the labels show month of the year, and/or year. In Quarterly mode, the labels show quarter (Q1, Q2, etc) and/or year. In Yearly mode, the the labels show years. The first label for an interval may differ from the other labels. For example, if the hours of the day are shown on an intra-day chart, the first label for each trading day will show the day of the week (Mon, Tue, etc) rather than the opening time (09:30). Similarly, on a daily or weekly chart, the first trading day in the month will be labeled with the name of the month, while the other labels will show the day of the month. On a monthly chart with a time range of more than one year, January of each year will be labeled with the year. In any mode, if the trace contains a large number of points, the Continuous time axis labels described earlier are used instead of the interval labels. 5. Time Range The time range of the chart is controlled by the timeRange, timeRangeBegin, and timeRangeEnd properties in a manner similar to the trend graph. If both timeRangeBegin and timeRangeEnd are specified, then their values determining the time range of the graph, and the timeRange property is ignored. If timeRangeBegin but not timeRangeEnd is specified, then the timeRange property is used to determine the chart's end time. If the timeRange is -1, then all data newer than timeRangeBegin is plotted. If timeRangeEnd but not timeRangeBegin is specified, then the timeRange property is used to determine the chart's begin time. If the timeRange is -1, then all data older than timeRangeBegin is plotted. The data time range (which is used if timeRange = -1) is determined by the minimum and maximum timestamp found in the price trace's history table and current table. If both of those tables are empty, the chart uses the minimin and maximum timestamp of the first overlay trace that has its history table and/or current table attached to data. If the timeRange is greater than zero, then its value indicates the number of time units the chart should display. The units are determined by the timeRangeMode, as follows. If timeRangeMode is ... Then the timeRange units are ... ----------------------- -------------------------------- Continuous seconds Intra-day days, if < 900, else seconds Daily days Weekly weeks Monthly months Quarterly quarters (3 months) Yearly years Auto one of the above If timeRangeMode = Auto, and the data interval is one week, and timeRange = 12, the time range of the chart will be set to twelve weeks. The format used for timeRangeBegin and timeRangeEnd is YYYY-MM-DD HH:mm:ss, for example: 2005-07-28 14:58:00 The date can be omitted, for example: 14:58 But if any part of the date is specified, then the string must conform to the YYYY-MM-DD HH:mm:ss time string. The timeRangeBegin and timeRangeEnd properties can also specify milliseconds since Jan 1, 1970. This can be useful if either property is attached to a function that provides timestamps in that format. 6. Y Axis The stock chart supports y-axis autoscaling and multiranging, as in the trend graph, although the stock chart multirange can only be set to on or off. When on, it is equivalent to 'Classic' multiranging in the trendgraph: the y-range for the price trace is shown on outer labels on the y-axis, while the ranges for the overlay traces are shown as inner y-axis labels. No y-axis labels are displayed for an event trace. The stock chart also supports a yAxisPercentFlag property. If checked, each point on each trace is plotted as a percent change from the first (oldest) data point of the trace. The first data point is plotted as 0%. This is useful for comparing the performance of one stock to another stock or index. For that reason, it is most useful when used with yAxisMultiRangeFlag off, so that all traces are plotted against the same y-axis. 7. Overlay traces A chart can have zero to nine overlay traces. Each has its own history and current data table attachments. Typically, the price trace's history and current table will be used to determine the chart's data range and its time range mode (if timeRangeMode = Auto). However, if the price trace's data tables are both empty (not attached) then the first overlay trace that has data is used for that purpose instead. An overlay trace's type can be set to Line, Bar, or Event. For all types, the first column of the trace's historical and current data table must contain timestamps, as described earlier. For Line and Bar types, the second column in the data table must be a numeric value, and is used to supply the Y values for the trace. The Line and Bar types are intended for overlays that display other stock prices or indexes, trading volume, etc. For an Event trace, the second column can contain numeric values or strings. For each row in an event trace's data table, an event marker is drawn near the price trace, using the timestamp for the row. An event marker is a text rectangle containing the first character of the trace's label string. If the cursorFlag or mouseOverFlag is checked, and the mouse is positioned near an event marker, the corresponding value from the second column of the data table is displayed in the chart's mouseover text or it's legend. Event traces are not aggregated (see below). 8. Aggregation As mentioned earlier, if the price trace's data tables contain data at more frequent intervals than indicated by the timeRangeMode property the chart will aggregate the price trace data to match the mode. For example, if timeRangeMode is set to Weekly, but priceTraceHistoryTable contains daily prices, the chart will aggregate the daily prices into weekly prices as follows: open price for week W = open price for first trading day in week W high price for week W = highest price for all trading days in week W low price for week W = lowest price for all trading days in week W close price for week W = close price for last trading day in week W Similar aggregation is done for daily-to-monthly, weekly-to-monthly, monthly-to-yearly, etc. Only the price trace data is aggregated, since it is required to contain open/high/low/close price data. The overlay trace data is not aggregated, since the chart places no requirements on the overlay data (it could represent closing price, high price, average price or volume, etc). On a chart with aggregated price data, an overlay trace may plot multiple Y values at the same time (x) position. 9. Time Zone The time axis labels are affected by the local time zone, and the time zone information, if any, in the data timestamps. The timestamps in the data tables must be one of the following: 1. A string with no time zone, for example: Nov 30, 2005 10:00:00 AM 2. A string with a time zone, for example: Nov 30, 2005 10:00:00 AM EST 3. A timestamp of milliseconds since Jan 1 1970 GMT: 1133326800000 Internally, the stock chart converts types (1) and (2) into GMT (type 3), for efficiency. When a timestamp is displayed on the chart's time axis, legend, etc., it is converted from GMT back into a string. A timestamp of type (1) will be converted to GMT using the local time zone. So when the chart displays the timestamp, it will not be affected by time zone differences. In other words, if the timestamp string in the data is "10:00", the stock chart will display it as "10:00" A timestamp of type (2) will be converted to GMT using the time zone indicated in the string. So when the chart displays the timestamp, it will be affected by time zone differences. In other words, if the timestamp string in the data is "10:00 EST", and if the local time zone is PST, the stock chart will display it as "07:00". A timestamp of type (3) is already in GMT. So when the chart displays the timestamp, it will be converted to a string using the local time zone. The -timezone option can be used when starting the Display Viewer to change the local time zone to a different zone. This can be useful in situations like the following: - price data is from the NY Stock Exchange (US/Eastern time zone) - data timestamps are in GMT or contain a time zone designation - local time zone is US/Pacific - user wants chart to display times in US/Eastern In the above scenario, if the -timezone option is not specified, the chart will display the times as US/Pacific. The -timezone option can be used to display the times as US/Eastern. See the description of the timezone option for more information.

E11481: Graph axis labels now support value formatting

The Enterprise RTView graphs now offer the option to apply number formatting to axes, values and labels. The trend graph (obj_trendgraph02) now includes the yAxisFormat and yValueFormat properties. The yAxisFormat property provides formatting for the y-axis. The yValueFormat property provides formatting for data values displayed in the legend and popup legend. The bar graph (obj_bargraph) now includes the yAxisFormat, yValueFormat, traceYAxisFormat, traceYValueFormat and labelFormat properties. The yAxisFormat property provides formatting for the y-axis. The yValueFormat property provides formatting for data values displayed on bars and in the legend and mouseOver tooltip information box. The traceYAxisFormat property provides formatting for the trace y-axis. The traceYValueFormat property provides formatting for trace data values displayed in the legend and mouseOver tooltip information box. The labelFormat property provides formatting for labels in situations where the label column is numeric. Labels may appear along the x-axis or in the legend and mouseOver tooltip information area. Note: The yValueFormat property supercedes and replaces the barValuePrecision property. The pie graph (obj_pie) now includes the valueFormat and labelFormat properties. The valueFormat property provides formatting for data values displayed on bars and in the legend and mouseOver tooltip information area. The labelFormat property provides formatting for labels in situations where the label column is numeric. Labels may appear in the legend and mouseOver tooltip information area. The radar graph (obj_radar) now includes the valueAxisFormat, valueFormat and labelFormat properties. The valueAxisFormat property provides formatting for the value axis. The valueFormat property provides formatting for data values displayed in the mouseOver tooltip information box. The labelFormat property provides formatting for labels in situations where the label column is numeric. Labels may appear along the radial axis or in the legend and mouseOver tooltip information area. The XY graph (obj_xygraph) now includes the xAxisFormat, yAxisFormat, xValueFormat, yValueFormat and labelFormat properties. The xAxisFormat and yAxisFormat properties provide formatting for the axes. The xValueFormat and yValueFormat properties provide formatting for data values displayed in the legend and popup legend. The labelFormat property provides formatting for labels in situations where the label column is numeric. Labels may appear in the legend and popup legend.

Bar Graphs

B11780: Display Server Bar Graph now sets correct drill down subs

In the prior release, the Display Server assigned incorrect table substitutions ($col1, $celldata, etc) if a drill down was performed from the trace on a Bar Graph that also displayed bars. This has been fixed.

Trend Graphs

E11095: Trace color and style change color based on alarm threshold

The Trend Graph and XY Graph now allow the color and style of trace lines to be changed when an alarm threshold is crossed. To support this feature, the following properties were added to the Trend Graph and XY Graph: valueHighAlarmTraceColor valueHighWarningTraceColor valueLowAlarmTraceColor valueLowWarningTraceColor valueHighAlarmTraceStyle valueHighWarningTraceStyle valueLowAlarmTraceStyle valueLowWarningTraceStyle For example, if valueHighAlarmEnabledFlag is checked, any segment of a trace line that is above valueHighAlarm is drawn using valueHighAlarmTraceColor and valueHighAlarmTraceStyle. However, if valueHighAlarmTraceStyle is set to -1, the color of the line segment will not be set to valueHighAlarmTraceColor. This is used to support the behavior of prior releases, where only the marker color and style changed when an alarm threshold was crossed.

Pie Graphs

E11533: Gradient option added for Pie Graph wedges

Pie Graph wedges may now be drawn with a gradient by setting the wedgeGradientFlag property.

TIBCO EMS Management Application

B11691: Window icon no longer missing for drill down windows

In previous releases, drill down windows did not use the correct window icon if the Drill Down Windows Always on Top option was deselected. This has been fixed.

E11726: Print option added to popup menu

A "Print ..." menu option has been added to the popup menu that appears on a right mouse press in the main display area. Any display may be printed.

B11670: EMS manager can now be opened in a directory with PANELS.ini

In previous versions, the EMS Manager could not be opened from a directory where a PANELS.ini was present. This behavior has been fixed, and the EMS Manager now references EMSMGR_PANELS.ini instead of PANELS.ini.

TIB EMS Admin Monitoring

E11705: Server topology display added to EMS Manager

A Server Topology display has been added to the EMS Manager. This display shows all servers and any routes that are defined between the servers. An arrow indicates the direction of an "Active" route. A server is colored green if its state is active, red if it is inactive.

E11732: Color indicates status of EMS Servers

In the All Servers display, servers with state "No Connection" are now shown in red.

E11746: -usehawk option added to control accessibility of Hawk displays

The "usehawk" option is now available in the EMS Manager EMSMGR.ini file to control whether Hawk displays are to be provided. This option functions independently from the JMSADM datasource. Even if Hawk is being used to discover servers, you can disable the Hawk Host Details page by setting "usehawk false" in the EMSMGR.ini file. Conversely, if Hawk is NOT being used to discover servers, you can still enable the Hawk Host Details display by setting "usehawk true".

TIB EMS Administration

E11538: Name is automatically generated for new route

In previous versions of the EMS Manager, it was possible to enter an arbitrary name for a route when it was created. However, JMS requires that the route name be the same as the server name to which the route makes a connection. In this version, the route name is automatically set to be the server name of the target server for the newly created route. The Route Name field is editable after selection, so that the route name can be changed if the server is offline but the server's name is known.

E11718: Admin functions can be performed via the Data Server

In previous versions of the EMS Manager a problem existed in that you could not perform admin functions if you were using the Data Server to connect to the Server Metrics. This problem has been fixed.

Tree Handling and Navigation

E11699: EMS Manager no longer crashes if used without navigation tree

If the EMS Manager applet was used without a navigation tree, a crash resulted. This has been fixed.

B11662: Navigation tree redraws correctly on refresh of applet

A problem with refreshing the EMS Manager applet has been fixed. Previously, a grey area would replace the navigation tree in some cases.

Version 3.0e1 Release Notes

Enterprise RTView

Applet Functionality

E11599: AWT examples have been removed

The AWT examples have been removed from the Enterprise RTView product.

Viewer Application Body

E11602: Single-click for drill down and commands is now default

The Single-Click for Drill Down and Commands option is now enabled by default. This means that drill down and command execution in the Display Viewer and Display Viewer applet now occur when you single-click instead of when you double-click. You may disable this feature in the General tab of the Application Options dialog or by specifying -nosingleclick on the command line.

Editing Functionality

E11561: Click now deselects objects

When multiple objects are selected, clicking again on one of the objects will now deselect it.

E11559: You can now select multiple objects using shift-click

You may now select multiple objects by holding the shift key down while clicking. This works just like the ctrl-click functionality added in version 3.0d1.

Functions

E11650: New isWindowsOS function has been added

A new function, isWindowsOS, has been added to Enterprise RTView. This function returns 1 if Enterprise RTView is not running in an applet and is running on a Windows operating system. Otherwise, it returns 0.

E11633: Set Substitution function is saved at top of display file

Saving rtv files has been enhanced so that Set Substitution functions now appear before any other object information. Get Substitution functions appear after Set Substitution functions and before all other object information.

E11625: Sort Table function now sorts numeric string columns properly

The Sort Table function has been enhanced to properly sort number string columns.

B11598: Percent function no longer ignores min value

A bug where the percent function was ignoring the Min Value has been repaired. If the Min Value is non-zero, the percent calculation is now correct.

B11552: Pivot on Unique Values no longer displays error

A bug in the Pivot on Unique Values function has been repaired. The problem was occurring when the Restrict to Name List field was set to 1 and the Name List value was not defined.

E10464: Average, Max, Min and Sum functions now apply to tabular data

The Average, Max, Min and Sum functions have been enhanced to accept an entire table of input data instead of just a single input data column. These functions can now operate across a table to return a column of result values, one value for each row, or they can operate down a table to return a row of result values, one value for each column. Users may specify a label for the result row or column. If the result is a row of values, users may also specify a column to be populated with the result label. The Combine function has been enhanced to allow tables to be combined vertically, appending rows of one table under the rows of another table. The original horizontal combine, appending columns of one table to the right of another table, has been improved to allow merging of tables with different numbers of rows. Details: The Average function calculates the average within each column or row of the specified Table. All numerical columns will be included in the calculation. To get a column of result values, one value for each row, set Return Column to 1. To get a row of result values, one value for each column, set Return Column to 0. Use Result Label to specify a label for the result row or column. To have the Result Label placed in a particular column (when Return Column is 0), specify a column name in Result Label Column. This function returns a table. The Max function finds the maximum value within each column or row of the specified Table. All numerical columns will be included in the calculation. To get a column of result values, one value for each row, set Return Column to 1. To get a row of result values, one value for each column, set Return Column to 0. Use Result Label to specify a label for the result row or column. To have the Result Label placed in a particular column (when Return Column is 0), specify a column name in Result Label Column. This function returns a table. The Min function finds the minimum value within each column or row of the specified Table. All numerical columns will be included in the calculation. To get a column of result values, one value for each row, set Return Column to 1. To get a row of result values, one value for each column, set Return Column to 0. Use Result Label to specify a label for the result row or column. To have the Result Label placed in a particular column (when Return Column is 0), specify a column name in Result Label Column. This function returns a table. The Sum function calculates the sum within each column or row of the specified Table. All numerical columns will be included in the calculation. To get a column of result values, one value for each row, set Return Column to 1. To get a row of result values, one value for each column, set Return Column to 0. Use Result Label to specify a label for the result row or column. To have the Result Label placed in a particular column (when Return Column is 0), specify a column name in Result Label Column. This function returns a table. The Combine function combines Table 1 and Table 2 into a single table. When Combine Rows is 0, the combined table will contain the columns from Table 1 followed by the columns from Table 2. When Combine Rows is 1, the combined table will contain the rows from Table 1 followed by the rows from Table 2. In addition, when Combine Rows is 1, set Ignore Column Names to 0 to reorder the columns of Table 2 so its column names match Table 1 before merging rows. Set Ignore Column Names to 1 to merge rows without trying to match up columns by name. This function returns a table.

Security

E11566: User and role definitions now support substitutions

User and role definitions now support substitutions. Enterprise RTView will automatically define 2 substitutions if the application was started with the login: $rtvuser - the user name from the login $rtvrole - the role from the login Additionally, you may specify substitutions to set based on a user or role. The syntax for adding substitutions to a user definition: <user> <name>admin</name> <password>admin</password> <sub name="$sub1" value="value1" /> <sub name="$sub2" value="value2" /> <role>admin</role> </user> The syntax for adding substitutions to a role definition: <role> <name>admin</name> <sub name="role1sub1" value="role1value1"/> <sub name="role1sub2" value="role1value2"/> <displays> <include>ALL</include> </displays> </role>

E11567: No exceptions are generated if no roles are defined for a user

In 3.0d1, Enterprise RTView would throw an exception if the user name from the login did not have any associated roles. This has been fixed. The fix is to not validate the login if the user does not have any associated roles.

B11555: Users can not write files they do not have permission to view

The role based security has been enhanced so that users are not allowed to save over files they are not allowed to view.

B11553: Backup of users.xml is always generated

In version 3.0d1, the backup of users.xml was not created if there was a path for users.xml. This has been corrected.

Image Server

B11651: Local variable value of text edit controls displayed

In prior releases, if the value property of an obj_c1textedit_i or obj_c1textedit_d object (integer and double edit boxes) was attached to a local variable, the value was not displayed in an imageserver display. The problem did not occur with obj_c1textedit.

B11635: Characters no longer mishandled in drill down from Ajax table

In Image Server displays in the previous release, if a drill down was performed from a cell in an Ajax table object and the cell text contained the <, >, &, or ' characters, substitute strings that used the cell text (for example, $celldata) were assigned incorrect values. This problem has been fixed.

B11634: Default table subs are now mapped to local vars

In prior releases, if an object's drill down target had one or more substitute strings with no values assigned, then default substitutions (for example, $col1) were sometimes assigned incorrect values when the drill down was performed in an Image Server display. This problem has been fixed.

E11615: Support for the -nohtmlcontrol option has been removed

The -nohtmlcontrol option is no longer supported by the Image Server.

B11614: $value now used in display name for drill down from controls

In prior releases, a drill down from a control object in an Image Server display did not replace $value in the drill down display name with the control's current value. This problem has been fixed.

B11613: Edit box is no longer updated while focused

In the previous release, the Image Server would refresh the text in an edit box control even if the edit box had keyboard focus, possibly overwriting text the user was entering. Now, an edit box will be refreshed only if it does not have focus.

B11604: Button value now updated in Image Server displays

In the prior release, the value of a button control's valueToSet property was not updated on Image Server displays, it always kept its initial value even if attached to a local variable. This has been fixed.

E10318: Logout is now available from the Permission Denied screen

When the Image Server displays a "Permission Denied" screen to the user, indicating that the requested display is not viewable given the user's current role, it will also display a Log Off button. This allows the user to login with different credentials.

B11637: Right-clicking inside control object no longer causes problems

In previous versions, the right-click menu in the Image Server would appear in the top left corner of the generated image if the user right-clicked inside a control object. This behavior has been fixed.

E11568: Export to Excel option has been added to Image Server tables

Displays generated by the Image Server now support a context menu. The menu appears when the user right-clicks anywhere in an Image Server display, and contains the entries listed below. 1. Refresh: Refresh the display, without reloading the HTML page 2. Export Table to Excel: Export the selected table object to an Excel spreadsheet, using HTML format. On a Windows client with Excel installed, the spreadsheet will be opened in Excel. If there is no table object under the cursor, this item is grayed-out. 3. Export Table to HTML: Export the selected table object to an HTML table, which will be displayed in a new browser window. If there is no table object under the cursor, this item is grayed-out. 4. Log Off: Log off the current user. This item will appear only if the Image Server login feature is enabled. To open the browser's context menu instead of the Image Server menu, hold down the shift key while right-clicking.

B11575: Column header alignment is now correct in javascript table

In Image Server displays, all table column header text is now center aligned, consistent with the Display Builder and Display Viewer.

B11576: Column width now matchs display if table initially empty

In prior releases, the width and text alignment of columns in the javascript table in Image Server displays was sometimes incorrect, if the table was initially empty, or if columns were added after the table was initially displayed. This has been fixed.

B11582: Mouseover tooltips now consistent

The mouseover tooltips shown in Image Server displays for the bar, radar, and pie graph objects are now consisitent with those shown by the Display Builder and Display Viewer.

B11563: getimage.jsp no longer contains BOM character

On of the Imager Server servlet jsp files, getimage.jsp, contained a BOM character which caused it not to load correctly on some Unix web servers. This has been fixed.

B11558: Chained substitutions with spaces now have correct format

In prior releases, if a control object was configured with a drill down action that used $value in multiple substitutions, and if the control's value contained a space, the 2nd and any subsequent substitutions using $value would be enclosed in single quotes. This has been fixed.

B11557: Chained subs now work in Image Server for in-place drill down

In previous versions, the chained substitutions did not work properly in the Image Server when the drill down target was set to the current display and window. This has been fixed.

E11541: Page no longer reloaded when you drill down to same display

The HTML page for an Image Server display will be updated in place when the user performs a drill down to the current display and panel, or clicks on a control that sets a local variable. In previous versions, these operations would reload the HTML page, causing the display to flash and resetting scrollbars. Note that this change can affect the behavior of the browser refresh button. Since the HTML page is not reloaded in the situations described above, the URL for the browser page is also unchanged. So, a subsequent click on the browser refresh button will reload the page using the initial URL, which will not include any substitutions or local variable changes made by the drilling down to the current page.

E11334: Role based security now supported in Image Server

A. INTRO The Image Server supports the Enterprise RTView role based security. The rtvimage servlet can be configured to require a client to enter a username and password before viewing any displays from the Image Server. These credentials are validated using the information in the users.xml and roles.xml files or, if defined, custom user manager and role manager classes. B. SETUP By default, the role management features are disabled in the rtvimage servlet. They are enabled as follows: 1. Edit the rtvimage.properties file, found in the demos/rtvimage directory. Change the following line: LoginEnabled=false to this: LoginEnabled=true 2. Run the make_war script 3. Install the new rtvimage.war file on your application server (by running install_to_tomcat.bat, for example). C. LOGIN TO SERVLET When a client browser opens a URL that references the rtvimage servlet (for exmaple, http://myserver/rtvimage/index.html), a login prompt will appear. After the user enters a username and password, these are validated by the Image Server, in the same manner as in the Builder/Viewer. If the credentials are valid, and the username supports multiple roles, the user will be prompted to select a role from a dropdown list. After a valid username and password are entered, the page that was specified in the URL will be displayed in the browser. Otherwise, the user will be prompted to retry logging in. A login remains valid for the life of the client session. A session ends for several reasons, such as closing the browser window (for some browsers, but not all) timeout after a period of client inactivity (typically 30 minutes), or a restart of the app server. A user can explicity logout by clicking the Log Off button in the left frame of rtvimage/index.html, or by browsing to rtvimage/logout.jsp. D. EXCLUDED DISPLAYS According to the role assigned to the user, certain RTView display files may be excluded. Excluded displays will not appear in the display list shown in the left frame of rtvimage/index.html. If a users attemps to drilldown to an excluded display, or specifies an excluded display in a URL, the following message will appear in the browser: Cannot open file <filename> Permission denied for <rolename> E. SUBSTITUTIONS As in the Builder/Viewer, once a user has logged in and been assigned a role, the Image Server will assign the corresponding values to the $rtvuser and $rtvrole substitutions. Any custom substitutions defined for the user and role (in users.xml, roles.xml, or the custom user/role manager classes) will also be defined. These substitutions may affect the displays viewed by the Image Server client. F. MODIFYING CUSTOM HTML Custom HTML files that contain multiple frames using the rtvimage servlet may need to be modified for best results, if the servlet login feature is enabled. Otherwise the login prompt may appear simlutaneously in multiple frames. This can be avoided as follows: 1. If the custom html file is named custom_frames.html, rename it to frame_display.html (for example). 2. create a new custom_frames.html with this content: <html> <script> location.href = "login.jsp?destPath=frame_display.html"; <script> <html> Then, when a user browses to custom_frames.html, the login prompt will appear instead. If a valid login is entered, the browser will then proceed to the custom frameset. G. CUSTOM USER/ROLE MANAGER As in the Display Builder and Display Viewer,the Image Server will use custom user and role manager classes to validate username and passwords, and to provide role names, and custom user and role substitutions. Methods were added to the GmsCustomRoleManager class to allow a single role manager to provide information about multiple roles, queried by role name.

B11153: Commands now supported by the Image Server

The Image Server now supports the following system commands: Drill Down or Set Substitution, Execute Custom Command, Execute URL, Open Browser. The HAWK and RV commands are also supported. If an object is configured with both a command and a drilldown target, a left click on the object will execute the command, while a right click will open the context menu, from which the user can select the command or the drilldown. A command is initiated by clicking on a display object, but the command is actually executed by either the client browser or by the Image Server, as follows: The HAWK and RV commands are always executed by the Image Server. The Drill Down or Set Substitution, Execute URL, and Open Browser commands are always executed by the client browser. A Custom command can be configured to be executed by either the browser or the server, as described below. In the Image Server, custom commands are supported by the file named rtv_custom.js. This file contains the following 2 javascript functions: 1. function rtvGetInvokeCommandOnClient (commandString) This javascript function should return false if the custom command named should be executed by the Image Server. It should return true if the command should be executed by the browser, using the rtvGetInvokeCommandOnClient function below. The default implementation of this function always returns false, so by default all custom commands are invoked by the Image Server. Custom commands that are to be executed by the Image Server must be implemented in MyCommandHandler.java, and MyCommandHandler.class must be found in the Image Server's classpath. See the documentation for more details. 2. function rtvInvokeCommand (commandString, valueString) This javascript function should implement each commandString for which rtvGetInvokeCommandOnClient(commandString) returns true, as described above. The default implementation of rtvInvokeCommand() does nothing. For example, a command named client_echo, which simply displays its arguments in a browser dialog, could be implemented in rtv_custom.js as follows: //////////////////////////// function rtvGetInvokeCommandOnClient (commandString) { switch (commandString) { case 'client_echo': // the custom "client_echo" command should // be run in the client browser, so // return true here return true; default: // all other custom commands should be // run on the server return false; } } function rtvInvokeCommand (commandString, valueString) { switch (commandString) { case 'client_echo': alert("ECHO: " + valueString); break; } } //////////////////////////// Note: The rtvInvokeCommand function is invoked in a hidden IFrame that is a child of the Frame containing the Image Server display, which can be referenced in script as "window.parent". The default implementation of rtv_custom.js is found in rtvimage.war. To replace it, rtvimage.war must be rebuilt and reinstalled on the application server. See the documentation for more information. PAL: 1. Supported browsers are Internet Explorer 5.5 and newer, Netscape 7.1 and newer, and Firefox 1.0 and newer. However, Netscape and Firefox may crash occasionally when closing the browser or navigating between displays. 2. The Image Server does not support these commands: Beep, Play Audio File, Run DOS Command or Unix Shell. 3. Since objects in an Image Server display can now support a command and/or drilldown when clicked, the HREF of these objects in the generated HTML map no longer contains the URL for the drilldown display. Instead it merely contains the URL of the current display.

XML Server

B11450: New option added to send all data over the socket

In previous releases, the XML Server running in socket mode only sent changed data to clients in order to optimize the amount of information being sent over the socket. This can be a problem if you want to plot repeated data in the trend graph. A new option has been added to send all of the data over the socket regardless of whether or not it has changed. To send all data, deselect the Send New Data Only checkbox in the XML Server or use the -sendalldata command line option.

Data Sources

SQL Data Source

E11584: Default update rate for SQL data attachments is now static

In previous versions of Enterprise RTView, the default Update Mode for SQL data attachments was Run Query Every Update Period. Due to the static nature of SQL data, the default has been changed to Run Query Once (Static Data). This change will not affect existing data attachments.

B11577: \ in column name no longer causes error in generated query

In previous releases of Enterprise RTView, an invalid query was generated if a column name contained a \. This has been fixed.

E11453: User login credentials now passed into SQL database connection

User login credentials can now be passed into the SQL database connection. To specify that a connection should use the user credentials, select the Use Client Credentials checkbox in the Add Database dialog. If this is selected, the user credentials from the Enterprise RTView login will be passed into the database. The User Name and Password from the Add Database dialog will not be used. If Use Client Credentials is selected, the connection will only be made if the application is running with the login enabled. When using this feature with the XML Server, you must use the -passclientlogin command line option or select the Use Client Credentials for Database Login option in the XML Server interface in addition to running the Display Viewer or Display Viewer Applet with the login enabled. When using this feature with the Image Server, you must use the -passclientlogin command line option in addition to setting the login enabled flag in the servlet.

TIBCO Hawk Data Source

E11560: TIBCO JMX Microagent now works in Attach to Data Dialog

The TIBCO JMX Microagent now works correctly in the Attach to TIBCO Hawk Data dialog.

E11113: Hawk 4.5 is now supported.

Enterprise RTView has been enhanced to provide support for attaching to TIBCO Hawk using the TIBCO EMS transport. The default transport still uses a TIBCO Rendezvous rvd transport. To enable the TIBCO EMS transport, select EMS from the Transports menu on the Hawk Communications tab of the Options dialog. You may enter the URL of the EMS Server and a user name and password to log in. If left blank, the following URL will be used: tcp://localhost:7222 In order to use the TIBCO EMS transport, you must also set the TIBJMS_ROOT environment variable to the location of your TIBCO EMS installation. This will already be setup for you if you entered the location of your TIBCO EMS installation in the windows installer.

OLAP Data Source

E11355: Supported added for Applix TM1 aliases, views, and subsets

The OLAP datasource has been enhanced to support several advanced features of Applix TM1, including aliases, views, and subsets. In addition, the OLAP data attachment dialog has been improved to allow selection of elements from multiple dimensions on a single axis (column or row). This enhancement allows crossjoin queries to be configured easily, without using MDX query syntax. These are described in detail, below. A. Configuring OLAP database connections To use OLAP data in Enterprise RTView displays, an OLAP database connection must be defined. This is done from the OLAP tab in the Builder's options dialog. Two types of OLAP connections are now supported: 1. ODBO 2. Applix Java API ODBO allows connection to any OLAP provider that supports Microsoft's ODBO interface. The Applix Java API supports connections to Applix TM1. Since TM1 supports ODBO, either type of connection can be used for TM1. However, the Applix Java API supports aliases, views, and subsets, but ODBO does not. Also ODBO supports MDX queries, but the Applix Java API does not. The setup for an ODBO connection is unchanged from the previous release. To setup a Applix Java API connection, a database name, user name, and password must be configured. These items are also required for an ODBO connection. For a Applix Java API connection, the following additional items must be configured: TM1 Admin Host: If the TM1 Admin Server runs locally, leave this field blank. Otherwise, enter the name of the host on which the TM1 Admin Server is located. If the Admin Server is not using the port number, append a colon followed by the port number, for example: MyAdminServerHost:4567 See the Applix TM1 documentation for more information on the TM1 Admin Server. TM1 Server Name: A TM1 OLAP database is accessed through a TM1 server. A combo box displays the available servers. If the required name is not displayed, it can be entered manually. An Applix TM1 installation includes a jar file named TM1JavaApi.jar. This file should be included in the RTV_USERPATH environment variable. For example, on Windows: set RTV_USERPATH=C:\Program Files\Applix\bin\classes\TM1JavaApi.jar If TM1JavaApi.jar cannot be found at runtime, the following error will occur when Enterprise RTView attempts to make a Applix Java API connection: ERROR loading com.sl.gmsjtm1.GmsTm1Connection, java.lang.NoClassDefFoundError B. OLAP Data Attachment Dialog The OLAP Data Attachment Dialog has been modified. After selecting an OLAP database name, the connection type (ODBO or Applix Java API) is displayed in a combo box. The connection type cannot be changed. The items displayed in the Data Attachment Dialog vary according to the connection type, as follows. 1. "Enter MDX Query" checkbox This checkbox will appear only if the connection type is ODBO, since MDX queries are not supported by the Applix Java API. 2. "Use TM1 View" checbox This checkbox will appear only if the connection type is Applix Java API. A View is a predefined query that is stored within a cube in a TM1 server. After selecting a cube from the Cube Name combo box, the views defined for the selected cube are displayed in the View combo box. Select the desired view. No other configuration is required. C. Select Dimensions Dialog The Select Dimensions Dialog is used to select row, column, and slicer dimensions for an OLAP query. It has been modified to support TM1 aliases and subsets, and to allow selection of elements from multiple dimensions on a single axis. In TM1, an alias is an alternate set of labels for the members of a dimension. For example, a Month dimension might contain members whose labels are the numbers 1 through 12. An alias named English could be defined on the Month dimension, with values January, February, etc. Another alias named Spanish could be defined on Month using the Spanish month names. In the Select Dimensions Dialog, a tree in the left panel displays dimensions as the top-level children of the root node. Right click on a dimension node and, if the connection type is Applix Java API, a popup menu appears. The menu contains a radio button for each alias defined for the dimension. Select the desired alias, and each child node of that dimension will display the corresponding alias label. The selected alias is also used when the query is performed, so the alias labels appear in the column or row labels. Select from the popup menu to clear the alias setting. In TM1, a subset is a predefined set of elements from a dimension. If the same set of elements is frequently used in queries, it can be convenient to define a subset and use it when configuring queries, instead of selecting the individual elements each time. In the Select Dimensions Dialog, a dimension's subsets, if any, appear under a child node of the dimension, labeled "Subsets". This is supported only if the connection type is Applix Java API. In previous releases, the Select Dimensions Dialog only allowed elements from one dimension to be selected for a column or row. Now it allows selection of elements from multiple dimensions. This is supported for both OLAP connection types. Elements that belong to the same dimension are automatically grouped together in the Selected Dimensions list. After using the Move Up/Down buttons, the elements may also be regrouped. The Select Dimensions Dialog does not allow elements from a dimension to be added to an axis (column, row, slicer) if the dimension is already in use on another axis. In this case, the Add button is disabled. D. Slicer For ODBO connections only a single slicer item can be selected from the OLAP Data Attachment dialog. For Applix Java API connections a single item from each dimension, which is not used as a column or row dimension, can be selected. In both cases, any dimension that is not specified on the column, row, or slicer axis is used an implied slicer. For TM1, the first child node of the dimension, as displayed in the dimension tree, is used as that dimension's element in the implied slicer. E. OLAP Datasource options The OLAP Datasource supports the following command-line options: -olaptrace This option causes diagnostic messages to be printed to the console when OLAP database connections are made, closed, or lost. -olaptime This option causes diagnostic messages to be printed to the console when each OLAP query is performed -olapretry:nnn This option enables OLAP connection retries. If an OLAP connection fails initially, or (for Applix Java API connections only) is established initially but is later lost, a reconnection will be attempted every nnn seconds. By default, retries are disabled.

JMS Data Source

E11617: Queue browsing is now supported

The JMS Datasource has been enhanced to support browsing the contents of a queue. In the JMS data attachment dialog, it is possible to select either a Topic or a Queue Browser. If a Topic is selected, then the user may enter the name of a Topic, or select one that was previously registered in the JMS Options dialog. A listener for the content of the given topic will be established and all subsequent messages on that topic will be received and displayed in the associated object. If a Queue Browser is selected, the user must enter the name of the queue that is to be browsed. Once entered, a Queue Browser will be created on that queue and the contents of that queue will be polled on every update, but no more often than every five seconds. The contents of the queue at time of the polling are read non-destructively and are displayed in the associated object. Note that this technique can only show the contents of the queue at a specific instant; queued messages that come and go between polling times will not appear in the browser.

JMS Admin Data Source (for TIBCO EMS only)

E11534: New JMS Admin Data Source implemented

The administration and monitoring functions of the TIBCO EMS Manager application have been packaged into an RTView datasource module, providing greater flexibility than previously available. By providing these functions within the datasource, it is now easier to develop displays that access monitoring metrics as they are immediately available within the RTView Builder application. Additionally, the XML Data Server and Display Image Server can be used to present monitoring information easily with no special configuration required.

Sample Displays and Applications

B11268: EMS Manager features now work with shortcuts and launchers

In previous versions, when you started the ems manager from a shortcut or from the launchers, the Edit Display option and the topic and queue simulators would not work unless you had %RTV_HOME%\bin in your PATH environment variable. This has been fixed.

Datasource Tutorial Example

E11609: Datasource demos have been combined into a single tutorial

A Data Source tutorial that illustrates the use of the Enterprise RTView data sources has been added to the deliverable. In the previous release the data source example displays were organized in a separate directory for each data source. The example displays have been consolidated into a single directory, demo/dstutorial. The Data Source tutorial is designed to be run in the Display Viewer. However, you may also want to view the displays for the data source of interest in the Display Build to view the data attachments.

Object Library

E11632: Default appearance of tables and graphs has changed

The default appearances of the graphs and tables have been modified to be more consistent.

E11205: Meter graphics and properties have been enhanced

The objects of the Meters palette have been enhanced so that they all have 3 configurable alarm ranges and better graphical properties.

Tables

E11556: Copy table values to Excel now includes column headers

Column headers are now copied along with the table content when performing "Copy to Table Values" on tables in Enterprise RTView.

E11524: Numeric column formatting now supported

The option to apply a format to a column of numbers has been added to the table object (obj_table02). The columnFormat property provides a dialog for associating number formats with particular columns. The Column Format value accepts format strings similar to those used in the Format Number and Format Table Columns functions. The Column Format can be specified as a Java format specification, or with the following shorthand: $ for money values, $$ for money values with additional formatting, or () for non-money values, formatted similar to money. Both positive and negative formats can be supplied, for example: #,###;(#,###). Additionally, text columns containing String data where all the values happen to represent numbers are now treated as if they were number columns. Number formats may be applied to these String columns. The values in these columns will also be treated as numbers for the purpose of sorting. For example, a String column that used to be sorted alphabetically as 11, 5, 9 will now be sorted as 5, 9, 11.

B11298: Column header alignment now correct for multi line tet

A formatting bug in multi-line table column headers has been repaired. Inserting \n tokens into the column header strings for the obj_table02 table object allows the header to have multiple lines. Previously, only the first line of the header was center justified, with subsequent lines left justified. All lines are now center justified.

Object Grid

E11645: New property fgEdgeColor added to object grid

An edge line has been added around the object grid (obj_objectgrid) and a new property, fgEdgeColor, has been added to control the color of this edge line.

Graphs (General)

B11605: Graph images now found in subdirectories

A bug that was causing graph images from subdirectories to not load has been repaired. This bug was present in the background images for graphs as well as the bar graph's bar images.

E11514: Bar, xy, radar and pie graphs now support columnDisplayNames

The option to display alternate column titles has been added to bar, xy, pie and radar graphs. For any of these graphs, use the columnDisplayNames property to to associate alternate display names with columns in the graph's data.

E11476: Transparent colors supported for all filled traces

The option to fill trace areas with gradients and transparent colors has been added to bar, trend, xy and radar graphs. For any of these graphs, set the traceFillStyle property to specify the style for filling under the traces. The options for the traceFillStyle property are None, Solid, Transparent, Gradient and Transparent Gradient. The Transparent and Transparent Gradient options for the traceFillStyle property are not supported by the AWT applet.

E11478: Filled trace areas supported in bar, trend, xy and radar graphs

The option to fill the trace areas has been added to bar, trend, xy and radar graphs. For any of these graphs, set the traceFillStyle property to Solid to fill under the trace with a solid color. Set traceFillStyle to None to remove the fill.

E11433: Gradient background added to legend for all graphs

Gradient backgrounds have been added to the legends of the Enterprise RTView graphs. For any graph, set the legendBgColor property to a color and check the legendBgGradiendFlag property to put a gradient into the background of the legend.

E11301: Bar, pie, radar, xy graphs now support plotting numeric text

Support for converting string data to numbers has been added to the bar, pie, radar and xy graphs. The ability to specify which column should be used for labels has also been added. For any of these graphs, set the labelColumnName property to the name of a data source column to designate that column as the source for labels. The column may contain any type of data. If the labelColumnName property is left blank, the first non-numeric string data column will be used for labels. For bar graphs, the labelColumnName property designates the bar labels and the traceLabelColumnName property designates the labels for traces plotted within the bar graph.

Bar Graphs

B11627: X-axis clipping bug has been fixed

A bug that was clipping the bar graph's leftmost x-axis label has been repaired.

B11596: Bars now correct if yAxisAutoScaleMode and drawWaterfallFlag on

Two bugs in the bar graphs have been repaired. The first was an inconsistency between waterfall and stacked graphs in the axis range when yAxisAutoScaleMode is on. The axis for waterfall bar graphs did not always include zero while zero was always included in stacked graphs. Waterfall bar graphs now always include zero in the axis range. The second bug occurred in waterfall bar graphs when using a non-zero yValueMin for the axis range with yAxisAutoScaleMode set to Off. In this situation, the bars are now drawn correctly.

B11529: labelTextColor now applies to the x-axis

A bug that was preventing the labelTextColor property from being applied to the x-axis text in the bar graph has been resolved. A bug that was preventing the labelTextColor property from being applied to the x-axis text in the bar graph has been resolved.

TIBCO EMS Management Application

E11286: Built-in displays are now available using Edit Display

It is now easier to edit the EMS Manager built-in displays along with user-customized displays. All the built-in displays are available from the Edit Display popup menu option in the EMS Manager. Also, the JMSADM datasource is available from within the builder, so the data attachments are all available for selection during editing, without any special procedures.

E11287: The EMS Manager displays now work with the Image Server

The EMS Manager Displays now work with the Image Server. Since the monitoring metrics are now obtained via the JMSADM datasource, all displays are viewable in the standard way.

E11288: The EMS Manager displays now work with the XML Server

The EMS Manager Displays now work with the XML Server. Since the monitoring metrics are now obtained via the JMSADM datasource, all displays are viewable in the standard way.

E11170: EMS Manager support for applets improved

It is now possible to run EMS Manager displays in an applet without requiring the use of the navigation tree. Previously one display had to be cached using the navigation tree (the ems_allservers_api All Servers Display). This is no longer required.

EMS Manager Configuration

E11487: TIBCO EMS Servers Option Dialog tab added

The TIBCO EMS Servers Option Dialog tab is now provided in the RTView Builder to allow a user to add, remove, or edit EMS server definitions that will be stored in the servers.xml file. A button on this dialog allows the user to save the modified servers.xml file.

E11591: TIBCO EMS Administration Options Dialog tab added

The TIBCO EMS Administration Option Dialog tab is now provided in the RTView Builder to allow a user to modify and apply options that are relevant to TIBCO EMS monitoring and administration.

E11653: Option added to control the rate at which server metrics apply

Previously, all EMS Servers were monitored at a rate of once every 2 seconds. In this version, an option has been added to control the rate at which server metrics are polled. Any of the RTView applications that access the TIBCO EMS Admin metrics can be started with the -jmsadm_metrics_period:N option to set the period for updates to N milliseconds. The default is 2000 milliseconds (or 2 seconds). This option will be saved in the JMSADMOPTIONS.ini file if the builder is started and used to Save options.

TIB EMS Admin Monitoring

E11238: Browsing message content of queues is now supported

The EMS Manager has been enhanced to provide the ability to browse the contents of a selected queue. In the Monitor Queues display for any server, the user may select a specific queue, then click the button "Browse Selected Queue". A new window will appear that will show the contents of the queue each time it is polled. Polling occurs at the update period of the EMS Manager, but no more often than every five seconds.

E11618: Browsing message content of topics is now supported

The EMS Manager has been enhanced to provide the ability to browse the contents of a selected topic. In the Monitor Topics display for any server, the user may select a specific topic, then click the button "Show Selected Topic". A new window will appear that will show the Topic messages as they are received by the EMS Manager. Up to 100 messages may be displayed, with each new message appearing at the top of the table in this window.

Version 3.0d1 Release Notes

Enterprise RTView

General

E11349: deleteOnExit() method is no longer used

The File.deleteOnExit() method was used by several classes in Enterprise RTView in order to delete temporary files that are created when writing XML. This method is no longer used, since it causes a memory leak according to Sun bug #4513817. This may result in the occasional temporary file being left on your system if you unexpectedly terminate any Enterprise RTView application while it is outputting an XML file.

Multi-Panel Frameworks

B11336: Panels no longer lose aspect ration when resizing

Two new attributes can be specified in the PANELS.ini file: 1. minWidth: This attribute can be specified for a BorderPanel in PANELS.ini. It sets the minimum width for a BorderPanel, in pixels. The default value is 300. The minimum height is determined by the min width and the overall aspect ratio of the panels contained in the BorderPanel. The minWidth attribute can be used to prevent the Viewer from being resized so small that the displays in the BorderPanel are unreadable. Example: <BorderPanel minWidth="500"> <RTViewPanel region="north" display="title.rtv"/> <RTViewPanel region="center" name="main" display="init.rtv"/> </BorderPanel> 2. scrollbars: This attribute can be specified for an RTViewPanel in PANELS.ini to control the visibility of scrollbars in the panel. The permitted values are "as-needed", "never", and "always". The default value is "as-needed". In some cases, setting the scrollbars attribute to "never" on title or footer panels can improve the resize behavior of the Display Viewer. Example: <BorderPanel> <RTViewPanel region="north" display="title.rtv" scrollbars="never"/> <RTViewPanel region="center" name="main" display="init.rtv"/> </BorderPanel>

B11207: Loading new display in border panel no longer causes resize

A bug in multi-panel displays was introduced in 3.0c1 which caused erroroneous drilldown and resizing behaviour. If a display was replaced in one panel of a multi-panel display, the entire set of displays was resized incorrectly. This has been fixed.

E11229: Memory usage reduced for tabbed panels

Memory usage for tabbed panels has been significantly reduced by destroying the pixel buffers for panels that are not visible.

E11198: Tree nodes without associated displays are now supported

In the panel configuration file, PANELS.ini, it is now possible to specify a node in a tree that does not reference an RTView display.

Editing Functionality

E11269: Users can now set the x,y location of an objects

Two new properties have been added to all non-link objects: objX and objY. These properties can be used to set the location of the object in pixels either using the Object Property dialog or from a data attachment. Each object is centered at objX, objY.

E10028: Multiple object selection now supported

Multiple object selection has been implemented. To select multiple objects, hold down the Control key while left-clicking on objects. The objects that are selected can be moved, deleted, copied, pasted, and moved to the back or front as a unit. Object properties and scaling will apply only to the last object selected. If a single link is selected, paste will enable CONNECT mode. If multiple objects including one or more links is selected, the links will not be copied.

Background Property Dialog

B11200: Background Properties dialog now closes with OK button

In the previous version clicking the OK button of the Background Properties dialog was ignored if none of the fields were changed. This bug has been fixed.

Object Property Dialog

E11277: Color chooser displays color index and rgb values in tooltip

The color chooser dialogs have been enhanced to show a tooltip containing the color index as well as the rgb value for each color.

Substitution

B11174: Subs set in Options now applied if display contains local vars

In previous versions of the Display Builder, if a display was loaded which contained any local variables mapped to substitutions, there was a problem with setting those substitution values from the Options/Substitutions dialog. Setting them would only work if the substitution was already defined prior to loading the display. They would fail to be set if created in the Options dialog after the display was loaded. This problem has been fixed.

Drill Down

B11291: Single-Click to Drill Down no longer applies to Display Builder

Setting the Single-Click to Drill Down option in the Display Builder now properly only applies to the Display Viewer.

B11420: Meaning of "Current Display" modified for Named Panels

The meaning of "Current Display" for a named panel has changed in the latest release. Previously, the name of the display contained in the panel from which a drill down was initiated was used in the named panel. This was incorrect. In the new version, Current Display means the display that is currently in the named panel. This change makes it possible to set substitutions in a named panel without having to specify the name of the display that is in that panel.

Command Execution

B11379: URL launched from table no longer contains erroneous "'"

A string containing a "/" at the end will now properly be passed in as a substitution to a command or drilldown.

E11306: Open Browser command now supports window options

A new Browser Window argument has been added to the Open Browser (From Applet Only) Command. In previous versions of Enterprise RTView, the URL would always be opened in a new browser window. This version gives the user more control over where the URL will be opened. The new Browser Window argument values: Current - open the URL in the frame that contains the applet Parent - open the URL in the applet's parent frame Top - open the URL in the top-level frame of the applet's window New - open the URL in a new browser window. Named - open the URL in the frame or window with the name specified in the Window Name property. If the named frame or window does not exist, a new window will be created with that name.

B11202: Single quotes are now correct in Define Command dialog fields

In previous releases of Enterprise RTView, single quotes were not handled properly in the Define Command Dialog. This has been fixed.

Functions

E11373: Pivot On Unique Values function added

A new function called "Pivot on Unique Values" has been added. This function provides a way to "pivot" a table based on a column containing unique values. This function returns a table in which row data from the given Table has been rotated into columns. The Pivot Name Column contains values that become new column names in the returned table. The Key Column is used to group rows containing unique names in the Pivot Name Column into a single row. The Pivot Value Column contains the data of interest. All consecutive rows that contain the same value in the Key Column will have the data in the Pivot Value Column placed into the same row of the resulting table, in the appropriate column. To include columns in the returned table for names that are not present in the Pivot Name Column, specify a table column in the Name List argument which contains all possible names. If Restrict to Name List is set to 0 or if the Name List is not specified, all unique values from the Pivot Name Column are included in the returned table, otherwise only values from the Name List will be included.

B11378: The Replace Value function now works for null or "" string

The Replace Value function now works properly with strings that are equal to "".

B11364: Format Number function shows "S" instead of "$" for neg currency

The "$$" format used in the Format Number function incorrectly produced a lead "S" instead of a "$" when formatting negative currency

E11509: The Set Substitution function has been added

A new function has been added, "Set Substitution". This function is passed a Value and the name of a substitution variable to be set. Whenever the Value changes, the value of the named substitution is set.

E11190: Subtotal by Time function no longer crashes on Japanese systems

In previous versions, the Subtotal By Time function threw an exception when Enterprise RTView was run on a machine with a Japanese locale. This has been fixed.

E11071: Support for date/time processing has been enhanced

A new argument, Date Part, has been added to the Count Unique Values By Time and Subtotal By Time functions. If no value is provided for Date Part, the Interval is assumed to be in seconds. Specify s, m, h, d, w, M, q or y, for seconds, minutes, hours, days, weeks, months, quarters or years, respectively. The Date Format property has been extended to provide support for a Date Part of quarters. Use q, qqq, or qqqq for short, medium or long versions of quarter notation. For example, qqq-yyyy will result in a string of the form Qtr 1-2005. It is important to note, when specifying Date Part, that Enterprise RTView will act slightly differently when you explicitly specify days or weeks (using d or w) versus when you specify the same amount of time in seconds, minutes or hours. A day is 84,400 seconds and a week is 604,800 seconds. If you use d to specify an Interval, and your collection of periods crosses over a change in daylight savings time, each period will start at midnight, and one period will contain either 23 or 25 hours. If you specify a one-day Interval in seconds, minutes or hours, and your collection of periods crosses over a change in daylight savings time, each period will always contain exactly 24 hours. This means the period start time will shift away from midnight to accommodate the daylight time change. Similarly, if you explicitly specify a week for Date Part using w, your week periods will always start at midnight on the first day of the week as defined by your Java locale. The first day of the week is Sunday for many locales. France starts the week on Monday. If you specify a one-week Interval in seconds, minutes or hours, your periods will start on Thursday and will also be subject to a shift away from midnight to accommodate the daylight time change. Six new functions have also been added: Date Add, Date Compare, Date Difference, Date Now, Date Ceiling and Date Floor. The Date Add function adds a number (which may be negative) to a date/time and returns the resulting date. The Date Compare function compares two date/time arguments, them, and returns -1 if Date 1 is less than Date 2, 0 if the values are equal and 1 if Date 1 is greater than Date 2. The Date Difference function returns the integer number of Date Part intervals by the first date is less than the second date. The Date Now function returns a string representing the current date/time. The Date Ceiling function determines which interval contains the specified date/time, and returns a string representing the starting date/time value of the next interval. The Date Floor function determines which interval contains the specified date/time, and returns a string representing the starting date/time value of that interval. Finally, the name of the DateTime function has been changed to Date Format to make it more consistent with the other date function and to better describe its functionality.

Security

E11233: Role based security is now available

Role management has been added to the Enterprise RTView Display Builder, Display Viewer, Display Viewer Swing Applet and TIBCO EMS Manager which allows administrators to control access to displays based on a login. Role management is enabled by default, with an initial name and password: User Name: admin Password: admin Administrators can define users and roles in either an xml file format or by implementing two simple Java classes. By default, Enterprise RTView looks for user definitions in users.xml, which has the following format: <?xml version="1.0"?> <users xmlns="www.sl.com" > <user> <name>user name</name> <password>user password</password> <role>user role1</role> <role>user role2</role> </user> </users> Once this file is created, it will be used by Enterprise RTView to validate the user login. Enterprise RTView can save this file with the password encoded. By default, Enterprise RTView looks for role definitions in roles.xml, which has the following format: <?xml version="1.0"?> <roles xmlns="www.sl.com"> <role> <name>role1</name> <displays> <include>ALL</include> <exclude>admin*.rtv</exclude> </displays> </role> </roles> Administrators can setup the location of these files as well as control whether or not an Enterprise RTView application requires a login.

Image Server

B11545: executeOnFocusLostFlag for text fields ignored by Image Server

The executeOnFocusLostFlag property for text fields is is now supported in the Image Server.

B11351: Image Server now applies initial local variable values to subs

In prior releases, if a substitution string was used in a data source attachment and a local variable with an initial value was mapped to that substitution, the Image Server did not use the initial value. This has been fixed.

E11293: Displays now update without regenerating whole page

Image Server display updating has been improved. In previous releases, the entire page was regenerated on each update, which caused the display to flash and also reset the scroll position of the browser and any list controls on the display. This no longer occurs. The improved display updates rely on javascript and may not work in older browsers. The minimum versions are: Internet Explorer 5.5 Netscape 7.1 Firefox 1.0 No other browsers have been tested.

B11232: Combo boxes in Image Server now show correct initial selection

If a display generated by the Image Server contains a combo box, and none of the items on its dropdown list are currently selected, then the combo box will appear blank. In prior releases, if none of the items were selected then the first item from the list was displayed in the combo box, which could be misconstrued as an indication that the item was selected. In addition, the user could not select the first item without selecting another item beforehand.

E11212: Multibyte characters supported in file names for Image Server

In prior releases, filenames that contain multibyte (e.g. Asian) characters were not displayed correctly in the Image Server's list of available displays. This has been fixed.

E11213: Multibyte characters supported in substitutions for Image Server

In prior releases, the Image Server did not support multibyte (e.g. Asian) characters in substitutions or as labels for HTML controls. This has been fixed. Note that the system on which the Image Server is run must support multibyte characters, for example by setting the system locale to Japanese.

E11210: A web.xml file now provided for the Image Server Servlet

The Image Server Servlet now includes a web.xml file to comply with the J2EE standard.

E11152: Image Server tables now support scrolling and sorting

Support for tables in Image Server displays has been improved. Table objects in an Image Server display now support scrolling, sorting, and column resizing. Previously, the user could only page up and down in a table, and sorting and column resize were unsupported. The improved table object has a few limitations in Image Server displays, which are listed below. If these are unacceptable, the -notablecontrols option can be specified when starting the Image Server, to enable the old behavior in which table objects are rendered as part of the display image bitmap (with no scrolling or sorting support). Limitations: 1. The scrollbarMode and editDataEnabledFlag properties are not supported by the improved table object in Image Server displays. The default values are used instead. 2. If a sort column is configured on the table in the .rtv file, the table contents will be properly sorted in the Image Server display, but the sort icon will not appear in the column header. If the user picks a different sort column at runtime, the sort icon will be shown in that column's header. 3. If the number of cells in a table (the number of rows times the number of columns) is large, there may be a delay when a table is displayed, refreshed, or sorted. The length of the delay will vary according to the number of table cells and the CPU speed of the client computer. 4. The improved table object relies on javascript and may not work in older browsers. The minimum requirements are: Internet Explorer 5.5 Netscape 7.1 Firefox 1.0 No other browsers have been tested.

E11154: The Image Server now supports local variables

Control objects can now be used to set local variable on displays rendered by the Image Server. In prior releases, local variables could not be set by controls on Image Server displays.

XML Server

B11187: Image Server Servlet does not hardcode location for image map

The Image Servlet no longer requires /rtvimage in the URL. Users can now configure their application server to use a different path in the URL for the servlet, although http://MyHost/rtvimage is still the default.

Data Sources

SQL Data Source

B11194: Excluding tables from Attach to SQL Data menus now supported

Enterprise RTView now supports two mechanisms to control, and potentially reduce, the list of tables displayed when attaching to a SQL data source. The first mechanism is controlled by the Table Types field in the Add Database dialog. The items listed in this field will control which types of tables will be gathered when querying the metadata of a particular database. Users will need to consult their database manual for the list of table types that are valid for their database. Typical types are "TABLE", "VIEW", "SYSTEM TABLE", "ALIAS" and "SYNONYM". If nothing is specified, "TABLE","VIEW" is used. The table types should be entered into the field as a comma-delimited list. It is important to be aware that changing the table types value after metadata has already been pulled from a database will not cause the previously acquired list of tables to be purged. You should save your initialization file and restart the Display Builder to see the changes. The second mechanism for controlling the list of tables displayed when attaching to a SQL data source is the sqlexcludedtables.xml file. This file lists tables that will be removed from the list of available tables for each database. The simplest way to create a sqlexcludedtables.xml file is to start by duplicating and renaming a sqlrepository.xml file. You can create a sqlrepository.xml file by clicking the Save Database Repository button in the SQL tab of the Application Options dialog. Open your new sqlexcludedtables.xml file with a text editor and search for sections describing the tables you want to see displayed in the list when attaching to SQL data from RTView. Table descriptions begin with "<table name=" and end with "</table$gt;". To have a table included in the list displayed by Enterprise RTView, delete that tables's entire description from the sqlexcludedtables.xml file. Repeat this process so that the sqlexcludedtables.xml file ends up containing descriptions for only the tables that you do not want to see listed in Enterprise RTView. When you are finished editing the sqlexcludedtables.xml file, place it in your local or RTV_HOME\lib directory in the same manner as you would deploy the sqlrepository.xml file. You do not have to have a sqlrepository.xml file in order to include a sqlexcludedtables.xml file. Enterprise RTView still will use the sqlexcludedtables.xml file to reduce the list of tables gathered from a live query of a database's metadata. If you do have a sqlrepository.xml file, the sqlexcludedtables.xml file will also be used to reduce the list of tables in the repository. As a final note, if you do have a sqlexcludedtables.xml file and you click the Save Database Repository button, the new sqlrepository.xml file will not contain any of the tables listed in your sqlexcludedtables.xml file. To get a complete list of all available tables in your sqlrepository.xml file, temporarily move or rename your sqlexcludedtables.xml file before running Enterprise RTView and clicking the Save Database Repository button.

Local Variable Data Source

B11139: Setting a sub in the Options dialog now changes local variables

Setting a substitution in the Options dialog now properly applies that value to any local variables defined in a currently open display.

B11263: Local var initial values now always applied to substitutions

In a drill down window, if no substitutions are defined, local variable values that are mapped to substitutions failed to create the substitution. This bug has been fixed.

OLAP Data Source

E11066: An OLAP data source has been added

An OLAP data source has been added to Enterprise RTView. This data source allows you to display data from Microsoft SQL Server with Analysis Services and Applix TM1 OLAP databases.

JMS Data Source

B11362: The default TIBCO Factory Class Name has been changed

In previous releases, com.tibco.tibjms.TibjmsConnectionFactory could be used by TIBCO users as the Factory Name for their connections. They must now use com.tibco.tibjms.TibjmsTopicConnectionFactory instead.

Sample Displays and Applications

E11357: A new demo, esphere, has been added to the installation

A new demo, esphere, has been added under the demos directory of Enterprise RTView.

E11182: Tree and card examples to have been added to the multipanel demo

Examples of the RTViewNavTreePanel and the CardPanel have been added to the demo in demos/multipanel.

Object Library

E11432: bgEdgeWidth and bg3dFlag have been added to tables and graphs

All of the graphs, the tables, and the object grid now have the bgEdgeWidth and bg3dFlag properties available. This provides greater flexibility in controlling the look and feel of custom displays.

B11344: Window resize causes extraneous lines on edges of some objects

On window resize, some objects would have extra border pixels, giving an inconsistent look. This problem has been eliminated.

E11310: obj_pricebox added to the Object Palette

A new object, obj_pricebox, has been added to the Labels tab of the Object Palette. This object is useful for displaying sales and financial data.

B11354: Hidden fields no longer lose data attachments

Previously, a property that could be "hidden" would lose its data attachment when a display was saved and reloaded. This problem has been fixed. Note: an example of a "hidden" property is the "barValueTextPos" property of the bar graph. If the "barValueVisFlag" is turned off, then "barValueTextPos" does not show up. A data attachment to "varValueTextPos" would previously have been lost.

Links

E11271: Range thresholds now supported for links

A new property, valueAlertMode, has been added to the links to support discrete alerts, range alerts and no alerts. When the valueAlertMode property is set to Discrete Alerts, the user can set discrete alert thresholds on the link which will cause the color of the link to change. If valueAlertMode is set to Range Alerts, the user can set range alert thresholds on the link that will cause the color of the link to change. If valueAlertMode is set to No Alerts, all alert behavior is disabled.

B11279: Link thickness no longer inconsistent if same thickness value

Previously, links were sometimes being drawn with inconsistent widths after a zoom or resize operation, even if the links had exactly the same thickness specified. This problem has been corrected for links of the type DIRECT. It has not been corrected for links that are DIRECT_OFFSET, or ORTHOGONAL.

Tables

B11339: Table cell values now display all significant digits

Starting with version 3.0a, numeric columns in the table object were limited to three fraction digits (digits to the right of the decimal point). This limit has been removed.

E11203: Table now limits GmsTabularData size to maxNumRows

Use of insertNewRowsFlag on obj_table02 no longer leaks memory. In prior releases, if a display containing an obj_table02 object with the insertNewRowsFlag property checked was displayed in the Display Viewer for an extended time, an out-of-memory exception could occur. This has been fixed.

Graphs (General)

E11346: Bitmap and gradient added to the plot area for all graphs

Support for gradients and images has been added to the plot area for the trend graph (obj_trendgraph02), radar graph (obj_radar), and XY graph (obj_xygraph). This has also been added to the bar graph - see the release note for E11347. For trend graphs, set the traceBgColor property to a color and check the traceBgGradientFlag property to put a gradient into the background of the graph. To display an image in the background of the graph, specify an image file name in the traceBgImageName property. For radar graphs, set the plotBgColor property to a color and check the plotBgGradientFlag property to put a gradient into the background of the graph. To display an image in the background of the graph, specify an image file name in the plotBgImageName property. Note: The gradient and image background features are not supported by the radar graph in the AWT applet. The AWT applet will ignore the plotBgGradientFlag and plotBgImageName properties when drawing radar graphs. For XY graphs, set the gridBgColor property to a color and check the gridBgGradientFlag property to put a gradient into the background of the graph. To display an image in the background of the graph, specify an image file name in the gridBgImageName property.

Bar Graphs

B11544: bargraph keeps image buffer reference after painting

None needed.

E11377: Support added for bar centering and fit to plot area

The Bar Graph has been enhanced with two new properties. The "barFitFlag" can be used to control whether the bars are scaled to fit the available plot area. The "barCenterFlag" is used to control whether the bars are centered in the plot area. If the "barFitFlag" is false, then the minBarWidth and minSpaceBetween properties precisely control the bar width and spacing. If the bars are not centered, then they are left justified, or top-justified if the bar graph is drawn horizontally.

E11347: Visual improvements added to bars and background

The Bar Graph object has been enhanced to include several new properties that control the visual appearance of the bar and the background grid area. The property "barGradientStyle" can be set to "None", "Shaded", or "Rounded", to control whether the bar is drawn with a gradient style. The default is None. The property "barImage" can be used to place an image on the bars. The image will be stretched to fit the full extent of the bar. The property "gridBgGradientFlag" can be used to draw the grid background area in a gradient style. The property "gridBgImage" can be used to place an image in the grid background area; the image will be stretched to fit the available area in the graph.

B11352: The position of rotated x axis labels is now correct

The position of rotated x axis labels was incorrect and has now been fixed.

E11283: The trace axis now displays correctly if only one trace point

In prior versions, the Y axis labels for traces on the bar graph were missing if the trace lines had only a single point. This problem has been fixed.

B11264: Bar graph autoscale no longer includes 0 if no bars displayed

In prior releases, if a bar graph had traces but no bars. and if yAxisAutoScaleMode was set to On or On-include min/max, the autoscale range would always include zero, even if the trace data did not. This problem has been fixed.

E11265: Scrollable x-axis added to the bar graph

The bar graph object has been enhanced to support scrolling. The scrolling behavior is determined by the bar graph's drawHorizontalFlag property, and several new properties, as described below. If drawHorizontalFlag is off, the bar graph can be configured to display a horizontal scrollbar. This is useful if the bar graph is not wide enough to show all of the bars at once. If drawHorizontalFlag is on, the bar graph can be configured to display a vertical scrollbar. This is useful if the bar graph is not tall enough to show all of the bars at once. Note that a vertical and a horizontal scrollbar will never both appear on the bar graph. The following bar graph properties have been added to support scrolling: 1. minSpacePerBar: If drawHorizontalFlag is off,this property defines the minimum width for each bar, in pixels. If drawHorizontalFlag is on, it defines the minimum height for each bar. Note that the bars may be wider/taller than this value, if the bar graph's width/height allow. The default value is 1 pixel. Typically, a larger value such as 20 pixels would be selected if scrolling is enabled. 2. scrollbarMode: This property is used to enable scrolling. It has the following values: Never: scrollbars are never displayed on the bar graph. This is the default value. Always: If drawHorizontalFlag is off, a horizontal scrollbar is always displayed on the bar graph. If drawHorizontalFlag is on, a vertical scrollbar is always displayed. As Needed: If drawHorizontalFlag is off, a horizontal scrollbar appears on the bar graph if it is too narrow to display all of the bars, where each bar is minSpacePerBar pixels wide. If drawHorizontalFlag is on, a vertical scrollbar appears on the graph if it is too short to display all of the bars, where each bar is minSpacePerBar pixels tall. 3. scrollbarSize: The height in pixels of the horizontal scrollbar, or width of the vertical scrollbar. The default value is -1, which indicates that the standard size (about 18 pixels) should be used.

B11375: Stacked bargraphs changed to use minSpacingBetweenGroups

Previously, the spacing between groups of stacked bars was incorrectly controlled by the property "minSpaceBetweenBars". It has been changed to correctly use "minSpaceBetweenGroups". Note that this change may affect stacked bar graphs that were previously created using the incorrect property.

Trend Graphs

E11356: Object Property dialog only gets updated if value changes

In prior releases, if the trend graph's timeRangeBegin or timeRangeEnd property was attached to data, and if the popup menu from the graph's property sheet was opened in the Display Builder, the menu would be closed on each display update. This has been fixed.

E11272: CPU performance improved when showing a large number of points

The performance of the trend graph when plotting a large number of points per trace has been improved. Note that the trace line thickness and line style should both be set to 1 for traces with many points, for best performance.

E11273: Max number of points for trend graph has been increased to 30000

The upper limit on the trend graph's maxPointsPerTrace property has been increased to 30000. Previously, the limit was 20000.

Pie Graphs

E10309: Wedge colors are now configurable in the pie graph

The "wedgeProperties" property has been added to the Pie Graph object. This works the same way as the barProperties on the Bar Graph. The user can set the color index for each pie wedge with a string of the form "2;3;1" where each color index is separated by a semi-colon.

Control Objects

E11353: Property added to control whether the slider updates on movement

The Slider Control has the new property "updateWhileAdjustingFlag" which controls whether the slider object will cause an update while it is being dragged (adjusting), or only on release of the mouse.

B11112: Text field no longer loses focus too late

In previous releases, the focus lost event on the text field was received after another object had been selected. If a text field executed a command on focus lost and the next selected item executed a command on single click, the text field command was executed second. This has been fixed.

B11183: Text field no longer executes twice on focus lost

In previous releases, the text field executed twice on focus lost if the executeOnFocusLostFlag was selected. This has been fixed.

B10579: Labels no longer redrawing incorrectly if changed by controls

In previous releases, when the value of a label was set from a control, it did not always redraw correctly until the next update pass. This has been fixed.

TIBCO EMS Management Application

B11342: Blank EMS Server name in servers.xml no longer causes exception

A blank server name in the servers.xml file no longer causes a crash.

B11307: High memory usage by run_tibjmsadmin utility fixed

Running the EMS Manager "run_tibjmsadmin" utility program directly was previously resulting in high memory usage. This problem has been corrected.

B11218: All EMS Manager features now work with shortcuts and launchers

In version 3.0c1, the Edit Display option in the EMS Manager only worked when running from the command line. In the EMS Manager demo, the Start Simulation and Stop Simulation buttons only worked when running from the command line. These problems have been fixed.

E11381: User can now specify path for servers.xml

The EMS Manager application may be started with the -servers: command line argument to specify the name of the servers.xml file. In an applet, the "servers" parameter may be specified to do this.

TIB EMS Admin Monitoring

E11246: Detailed monitor page added for Durables

A new page has been added to the EMS Manager for each server which permits detailed monitoring of Durables.

E11252: The "failsafe" attribute added for topics (monitor and admin)

The "failsafe" attribute has been added to all displays related to topics and queues. The failsafe attribute may be set when a topic or queue is created using the Administration pages.

TIB EMS Administration

E11247: Administration page added for Durables

A new page has been added to the EMS Manager that permits the creation, deletion, and purging of Durables.

B11316: Zone Name and Type are now fully supported for Route Management

Route Management now fully supports Zone Name and Type.

Distribution

E11302: EMS Manager shortcuts now in the standard shortcuts directory

The EMS Manager shortcuts have been moved from <installation directory>/demos/emsdemo/shortcuts to <installation directory>/shortcuts.

E11315: Shortcuts directory added to Windows program group

The <installation directory>/shortcuts directory has been added to the Enterprise RTView program group in the Windows Start menu.

B11209: R30c1 Windows installer now finishes properly on all systems

In the 3.0c1 release, the installer failed on some windows systems. This problem has been fixed.

E11228: RTV_HOME\bin now added to PATH as part of Windows installation

The Enterprise RTView Windows installation now adds RTV_HOME\bin to the PATH environment variable if the user selects Yes to set RTV_HOME globally on their system. When the installation in RTV_HOME is uninstalled, the RTV_HOME environment variable is removed and RTV_HOME\bin is removed from PATH.

Version 3.0c1 Release Notes

Enterprise RTView

General

E11106: All scripts now can accept Java options

It is now possible to pass in Java options to all Enterprise RTView scripts by setting the environment variable RTV_JAVAOPTS to the options you wish to set.

Java Version Dependencies

E11097: Enterprise RTView applications require proper JVM to run

A method to check the JVM version has been added to the Enterprise RTView applications. If the JVM version is not 1.4.2 or later, an error message will appear and the application will exit. In cases where there is no user-interface e.g. the Historian running in daemon mode, the error message will be printed on the console before exiting the application.

Multi-Panel Frameworks

B11078: Problem with panel name main has been solved

There was a problem with using the name "main" in any panel when using the new XML format for PANELS.ini. This problem has been corrected.

E11145: Card Panel added for keeping multiple panels active

A new type of panel, a CardPanel, has been added to the panels configuration file. A CardPanel may be used to keep multiple RTViewPanels active in memory, maintaining state, such as trend graphs, or tabular data. Only one of the panels contained in the card panel may be visible at a time. A CardPanel is specified in a panel configuration file as follows: <CardPanel> <RtViewPanel title=" Title " display="display_name"/> <RtViewPanel title=" Title2 " display="display2_name"/> <RtViewPanel title=" Title3 " display="display3_name"/> </CardPanel> After initialization, the first panel is made visible. Subsequently, any drill down that is done using a panelname of "." (Same Window) attempts to find one of the RtViewPanels contained in the CardPanel by matching the display_name and substitutions specified in the drilldown. If the corresponding panel is found it is made visible. If it is not found, then the display in the first RTViewPanel is replaced and the specified substitutions are set.

E10882: Provide a Navigation Tree Panel for navigating displays

The panel configuration file (PANELS.ini) has been enhanced to include a navigation tree panel, the RtViewNavTreePanel. This panel type may be used to describe a navigation tree, used specifically for displaying a hierarchical set of displays and navigating to these displays; additionally, and drill downs performed within the target CardPanel will update the navigation tree to indicate the currently selected display. A navigation tree panel is specified using the XML keyword "RTViewNavTreePanel" and must be used in conjunction with a CardPanel (see E11145) which contains at least one RTViewPanel. The CardPanel must be defined before the RTViewNavTreePanel in the PANELS.ini file and becomes the target panel for any navigation performed in the tree panel. When a display is selected in the navigation tree, the first RTViewPanel contained in the CardPanel is used as the target panel of an implied drill down - effectively the selected display replaces whatever display was currently shown in that target panel, unless the "mode" attribute of the target display is set to "keepalive" (see below), in which case the displays always remains in memory in its own panel within the CardPanel. A typical PANELS.ini file will look like the following: <?xml version="1.0" ?> <panels xmlns="www.sl.com" version="1.0"> <BorderPanel> <CardPanel region="center"> <RtViewPanel title=" Overview " name="main" display="e10882"/> </CardPanel> <RtViewNavTreePanel region="west" width="200" height="432" lineStyle="Angled" navtreedata="navtree.xml"> </RtViewNavTreePanel> </BorderPanel> </panels> Notice that the CardPanel and the RtViewNavTreePanel are defined within a BorderPanel in the "west" and "center" regions typically. The navigation tree panel requires the existence of a CardPanel within the same BorderPanel. The RtViewNavTreePanel has an attribute, "navtreedata", which specifies an xml file that contains a description of all the elements that are to be shown in the navigation tree and various attributes of those nodes: A typical navtreedata XML file looks like: <?xml version="1.0" ?> <navtree xmlns="www.sl.com" version="1.0"> <node label="Top Tree Node" display="test"> <node label="Main Displays" display="e10882"> <node label="Show Value 1" mode="keepalive" display="e10882_2" subs="$valueName:'Element 1' $value:element1_load"> </node> <node label="Show Value 2" mode="keepalive" display="e10882_2" subs="$valueName:'Element 2' $value:element2_load"> </node> </node> <node label="Indirect Return Test" display="e10882_indirect"> </node> </node> </navtree> The "node" element may be nested to any level and describes which tree elements will show up when the tree is initialized. Only the first and second level of nodes will be visible when the navigation tree is activated. A tree node may be expanded using double-click to show elements under it. Each tree node requires a "display" attribute, which indicates the RTView display that will be shown when that node is selected. It also may contain a "label" which is the text that shows up in the tree for that node. If the label is not specified that the name of the display will show up in the tree node label. Additionally, substitutions may be specified using the "subs" attribute where the value is of the form "$sub1:value1 $subs2:value2". If a value contains white space it must be enclosed in single quote marks. A special attribute of the node element, the "mode", may be used to control whether a specified display is to remain in memory or the be swapped out whenever a drill down is performed to it. If the mode attribute is set to "keepalive", the display is loaded into its own private panel (in the associated CardPanel) on initialization and remains in memory during the entire run of the program. When that tree node is selected, the corresponding private panel is made visible within the CardPanel, and the display is shown. This capability is especially useful for applications that require trend graphs where the graph needs to keep collecting data even though the display is not visible.

Applet Functionality

E11116: All Enterprise RTView jars are now signed

All Enterprise RTView jars are now signed.

Viewer Application Body

B11088: Print option now works for the Display Builder

In version 3.0b1, the Print option did not work in the Display Builder. This has been fixed.

Background Property Dialog

E10250: User can now specify how to add or remove space from background

The Enterprise RTView Display Builder Background Properties dialog has been enhanced as follows: 1. Previously increasing the background height would always result in adding space to the top of the display, and shifting any objects in the display down. Now the user will be prompted with a dialog to choose whether they want to add space to the top of the display or to the bottom of the display, with the cancel option as usual. If clicked yes, the behavior will be same as before. Clicking No will add space at the bottom of the display so the object position will not change. 2. When reducing the background size, the user will be prompted with a dialog to choose whether to remove the space from the top of the display or from the bottom of the display. If any existing objects are outside the new background extent, the user will be warned with another dialog and given a choice to continue the operation or cancel. 3. When changing to another model or to a background image, the dialog checks if any existing objects are outside the new background extent. If yes, the user is warned with a dialog and given a choice to continue or cancel.

Substitution

B11197: Single quotes no longer cause unwanted truncation of sub values

In previous versions of Enterprise RTView, command strings using substitutions that contained single quotes were not processed correctly. This problem has been fixed.

Drill Down

E11094: XML and function tables now set filterfield and filtervalue subs

Two new drill down substitutions are passed down from tables attached to XML or function data if the data attachment contains a filter: $filterfield - the name of filter field $filtervalue - the filter value for the selected row

Image Server

E11105: Imageserver generates HTML control objects for displays

Support for control objects in Image Server displays has been improved. The Image Server will generate HTML controls for combo box, list box, text entry, button, and check box controls, if the object's actionCommand is Drill Down or Set Substitution. This allows full user interaction with these types of controls. In prior releases, control objects were rendered as part of the image, which limited user interaction. If a control object's actionCommand is not Drill Down or Set Substitution, or if the object is disabled or invisible, an HTML control will not be generated and the control will be rendered as part of the image. Users should be aware of the following issues with HTML controls on Image Server displays: 1. By default, displays are refreshed every 15 seconds. On refresh, the display image and its controls are regenerated. So if a user is interacting with a control (e.g. typing text in a text entry field) when the refresh occurs, the control will revert to its initial state. 2. When the user clicks on one of the HTML controls described above, a drill down operation is performed. This will also cause the controls to appear in their initial state, even if the drill down is to the same display. So if a combo box or list box should show the selected value, be sure to configure the selectedValue property of the control to show the value of the same substitution string that is set to the control's value by the drill down action. 3. The HTML controls will be drawn using the browser's default font and color scheme. The control object's bgColor and valueTextFont properties are ignored. 4. In older browsers that do not support CSS, the HTML controls may not be positioned correctly, appearing outside the image. To disable generation of HTML controls and enable the behavior from prior releases, specify the -nohtmlcontrols option on the command line, when starting the Image Server.

B11077: Chained substitutions now work in the Image Server

In previous releases, the Image Server did not process chained substitutions properly. For example if the following substitutions were defined: $sub1:$sub2 $sub2:xyz the Image Server would replace $sub1 with $sub2, instead of the correct value of xyz. This has been fixed.

Data Historian

B11089: Unix crash with obj_xygraph and -daemon option fixed

The Historian no longer crashes when it is run on a Unix server with the -daemon option, the Display is not set, and an xygraph object is used in one of the configuration files.

XML Server

B11126: The XML Servlet is now compatible with BEA WebLogic 8.1.

The XML Servlet is now compatible with BEA WebLogic 8.1.

Transaction Message Monitor

E11072: Transaction Monitor now monitors JMS messages

A JMS version of the Transaction Monitor has been added to Enterprise RTView which allows you to monitor JMS message transactions.

Data Sources

SQL Data Source

E11147: SQL DECIMAL type now supported

The SQL DECIMAL data type is now supported as a double.

Local Variable Data Source

B11076: Table copy bug has been fixed

Version 3.0b1 introduced a bug in which the data contents of an object such as a table would not be retained in "paste" operation if there was an unused local variable in the same panel. This bug has been fixed.

TIBCO Rendezvous Data Source

E11120: TIBCO Rendezvous XML messages have been added to sample displays

An example has been added to demos\rvdisplays\sample_data.rtv which illustrates how to display XML data from TIBCO Rendezvous messages.

JMS Data Source

E11052: JMS Data Source added to Enterprise RTView

A JMS data source has been added to Enterprise RTView. This data source allows you to display JMS message content.

Object Library

E11121: Objects in gmsjmodels.jar are now packaged

The Java classes that implement the Enterprise RTView display objects now belong to a package named com.sl.gmsjmodels. In prior releases, these classes belonged to the unnamed package. In most cases, this change will have no affect on displays or on custom applications. However, custom application code that relies on the class names of display objects may need to be changed. For example, the following code: if (iconName.equals("obj_table02")) ... should be changed to this: if (iconName.equals("com.sl.gmsjmodels.obj_table02")) ...

Tables

B11123: Sorting or resizing columns prompts user to save

In 3.0b1, the user was not prompted to save their display after resizing or sorting on a column in obj_table02. This bug is now fixed.

B11080: Copy cell value is working again

Copy cell value was broken in 3.0b1. This has been fixed.

Object Grid

E11127: Add the "drillDownSelectMode" property

The "drillDownSelectMode" property has been added to the Object Grid.This property controls whether drill down can be performed anywhere in the grid, or only on a valid icon.

Graphs (General)

B11125: Bug in legend value fixed

In prior releases, decimal values slightly greater or less than zero were sometimes displayed incorrectly in the legend of the trend graph and xy graph. This problem has been fixed.

Bar Graphs

E11081: Bar graph supports a separate vertical axis for traces

The bar graph now supports a separate vertical axis for traces. This is useful when there is a large difference between the range of the bar data and the range of the trace data. The trace axis is enabled by the traceYAxisFlag property. When this property is checked, a vertical axis displaying the trace range will be drawn at the right edge of the bar/trace area. The traces are plotted against this axis. Also, two new properties named traceYAxisValueMin and traceYAxisValueMax will be displayed in the property sheet. If yAxisAutoScaleMode is set to Off or On-Include Min/Max, these two properties will be used in determining the trace range. Note that the yAxisAutoScaleMode and the valueDivisor properties apply to the bars and the traces. The traceYAxisFlag property is not available if drawHorizontalFlag is checked.

Trend Graphs

B11087: Cursor now shows correct values after trace detached from data

In previous releases, if the trend graph's traceXValueTable property was detached from data, incorrect values would be shown in the legend as the cursor was moved, for all following traces. This has been fixed.

E11091: Trend graphs now support use of text labels on the y axis

The trend graph now supports use of text labels on the y axis, such as "On", "Off", etc. These labels will also be shown in the legend, in place of a trace's numeric value. This feature is intended for use on traces which display discrete values. Each y axis label and its corresponding value are defined by the new yAxisValueLabels property. It is a string with this format: value1=label1,value2=label2,... For each value/label pair, a tick mark and label will be drawn on the trace's y axis. A horizontal grid line will be drawn for each tick mark. The labels, tick marks, and grid lines will scroll if the trace is scrolled vertically. The yAxisMajor/MinorDivision property is ignored if yAxisValueLabels is assigned. If the cursor value for a trace matches one of the values in yAxisValueLabels, the corresponding label will be shown in the legend. Otherwise, the numeric value is shown in the legend. If yAxisMultiRangeMode is set to Multiple Axis or Strip Chart mode, yAxisValueLabels is ignored. The y axis labels are assigned for each trace using the traceNYAxisValueLabels property, where N is the trace number. This feature is intended for use with discrete values, where yAxisValueLabels will have a value/label pair for each possible value. A label can be left blank. This will result in a tick mark with no label. For example: 0=Off,1,2=On Labels can contain blanks, but may not contain a comma, which is always treated as a separator. The values do not need to be listed in numerical order.

E11055: Axes, grid, and range improvements to trend graphs

This release contains several trend graph improvements: 1. support for y axis positioning 2. grid visibility properties 3. improved multiranging support //////////////////////////////////////////// 1. Support for y axis positioning A new property named yAxisPosition has been added to the trend graph. It has the following settings: Outer Left Outer Right Outer Mixed Inner Left Inner Right Inner Mixed An outer axis is drawn outside the trace area, with an axis line, tick marks, and tick labels. An inner axis is drawn inside the trace area, with tick labels but no axis line or tick marks. The label text height for both types is yAxisLabelTextHeight. Grid lines are drawn for outer and inner axes. For an inner axis, the bottom/topmost labels may not be aligned with the corresponding grid line, but may instead be aligned with the bottom/top of the trace area, so as not to extend beyond the trace area. The Outer Mixed and Inner Mixed settings place the axes for odd numbered traces on the left, and the axes for even numbered traces on the right. The axis for a lower numbered trace will be closer to the edge of the trace area than the axis for a higher numbered trace. These settings are intended for use when yAxisMultiRangeMode is set to Multiple Axis mode (see below). For all other multirange modes, Outer Mixed is treated as Outer Left. Inner axis labels have been improved over the previous implementation (which was used when yAxisMultiRangeFlag was On). A label will now be drawn for each yAxisMajorDivision, rather than just bottom, mid, and top. Also, an outline is drawn around each label using the trace bg color, so it is not obscured by trace lines. //////////////////////////////////////////// 2. Grid visibility properties Normally, a vertical grid line is drawn for each major tick mark on the x axis, and a horizontal grid line is drawn for each major tick mark on the y axis. The visibility of these grid lines can now be controlled by using the xAxisGridVisFlag and yAxisGridVisFlag properties, respectively. If yAxisMultiRangeMode is set to Multiple Axis or Strip Chart mode (see below), then the horizontal grid line visibility for each trace can be set by using traceNYAxisGridVisFlag, where N is the trace number. //////////////////////////////////////////// 3. Improved multiranging support: The yAxisMultiRange property has been replaced by yAxisMultiRangeMode, which has the following settings: Off, Classic, Multiple Axis, Strip Chart. Off: In this mode, all traces are plotted against a single Y axis. The position of the Y axis is determined by the yAxisPosition property (see below). Classic: This mode preserves the behavior of yAxisMultiRange=On in prior releases: Each trace's range is determined by autoscaling. A single Y axis is drawn on the left edge of the graph, showing the range of trace 1. The ranges of all other traces are shown on labels drawn inside the trace area, using the color of the corresponding trace line. Multiple Axis: In this mode, a Y axis is drawn for each trace. The positions of the Y axes are determined by the yAxisPosition property (see below). If a trace's visFlag is off, then its axis is not drawn. Strip Chart: In this mode, the trace area is divided into horizontal strips, one strip for each visible trace, so that the traces never overlap. (In all other modes, all traces share the same trace area, so the trace lines may overlap). In Strip Chart mode each strip has its own Y axis but all traces share the same X (time) axis. Zooming and scrolling can only be performed horizontally. //////////////////////////////////////////// Additional per-trace properties: When yAxisMultiRangeMode is set to Multiple Axis or Strip Chart, the following additional properties are displayed for each trace: traceNYAxisAutoScaleMode traceNYAxisValueMin traceNYAxisValueMax traceNYAxisGridVisFlag traceNYAxisMinLabelWidth traceNYAxisValueLabels traceNYAxisVisFlag where N is trace number 1,2, etc. Each of these overrides a graph property that applies to all traces when multirange mode is Off or Classic. For example, when multirange mode is Off or Classic, the autoscale mode for all traces is set by yAxisAutoScaleMode, and if yAxisAutoScaleMode=Off the range for all traces is set by yValueMin and yValueMax. But if multirange mode is Multiple Axis or Strip Chart, then the autoscale mode for trace 1 is set by trace1YAxisAutoScaleMode. If trace1YAxisAutoScaleMode is Off, then the range of trace 1 is set by trace1YAxisValueMin and trace1YAxisValueMax. The graph property overridden by each per-trace property is shown below: per-trace property overrides graph property traceNYAxisAutoScaleMode yAxisAutoScaleMode traceNYAxisValueMin yValueMin traceNYAxisValueMax yValueMax traceNYAxisGridVisFlag yAxisGridVisFlag traceNYAxisMinLabelWidth yAxisMinLabelWidth traceNYAxisValueLabels yAxisValueLabels traceNYAxisVisFlag yAxisVisFlag Again, the per-trace properties are visible only if yAxisMultiRangeMode is set to Multiple Axis or Strip Chart.

Control Objects

B11058: executeOnFocusLostFlag is working again

The executeOnFocusLostFlag was broken in 3.0b1 and has now been restored to its previous capabilities.

TIBCO EMS Management Application

E11075: TIBCO EMS Manager Application added to Enterprise RTView

The TIBCO EMS Manager has been added to Enterprise RTView. The TIBCO EMS Manager allows you to monitor and administer your TIBCO EMS Servers. Using the TIBCO EMS Manager, you can create and delete topics, queues and routes. You can also monitor your TIBCO EMS Servers using the TIBCO EMS Admin API. The TIBCO EMS Manager application can automatically discover your EMS Servers if you are running the TIBCO Hawk JMS_Controller microagent. In addition to the automatic discovery of your EMS Servers, the TIBCO EMS Manager also allows you to configure which servers to monitor. The navigation tree in the TIBCO EMS Manager contains several built-in displays including displays that are generated for each EMS Server being monitored. You may also add your own custom displays to the TIBCO EMS Manager.

Version 3.0b1 Release Notes

Enterprise RTView

Application Frameworks

E11007: Default background size and color has been changed

The default background size is now larger and the color has changed.

E11009: An Add Object toolbar has been added to the Display Builder

You can now add frequently used objects to your display using the Add Object toolbar in the Display Builder instead of bringing up the Object Palette.

E11010: Options and grid buttons have been added to the standard toolbar

Two new buttons have been added to the standard toolbar. The options button will bring up the Application Options dialog and the snap to grid button will enable or disable the snap to grid option.

Multi-Panel Frameworks

E11015: Enhanced panel configuration file in XML format has been added

The Multiple Display Panels have been enhanced to include 2 new layouts, a grid layout and a tab layout in addition to the existing border layout. The panel configuration file used to configure the layout of your displays now uses an XML format. The PANELS.ini file format that was provided in prior releases is still supported, but is deprecated. The older file format will not be supported in the release following 3.0b1. By default, Enterprise RTView will look for a file by the name PANELS.ini in the local directory. If it is not found, it will then look in the lib directory of your Enterprise RTView installation. Alternatively, the name of the panel configuration file may be specified on the command line, in an applet parameter, or in the OPTIONS.ini file. command line argument: -panelconfig:PANELS.ini applet parameter: name="panelconfig" value="PANELS.ini" OPTIONS.ini: panelconfig PANELS.ini If the value of this argument is blank, then the panel configuration file name will be overridden and no file will be read. The XML formatted file must contain the following lines: two at the beginning, and one at the end. The panel configuration information is inserted between them. <?xml version="1.0" ?> <panels xmlns="www.sl.com" version="1.0"> ... panel configuration ... </panels> In the prior releases, the border panel was supported in a flat text format. In this release, a border panel arrangement would look like: <BorderPanel> <RTViewPanel region="north" name="title_panel" display="title_panel"/> <RTViewPanel region="center" name="main" display="system_table2" subs="$system:WINNT"/> <RTViewPanel region="west" name="display1" display="display1" subs="$title:'Display West'"/> <RTViewPanel region="east" name="display2" display="display1" subs="$title:'Display East'"/> <RTViewPanel region="south" name="display_south" display="display1" subs="$title:'Display South'"/> </BorderPanel> Note that the border region is specified using the "region" attribute. The name of the panel is given in the "name" attribute. The name of the display (.rtv) file is given in the "display" attribute. Substitutions are specified using the "subs" attribute. This release also supports tabbed panels. These may be specified as follows: <TabbedPanel title="Test of Tabbed Panels" placement="left"> <RTViewPanel title=" Table Overview " display="e10484"/> <RTViewPanel title=" Production Table " display="production_table"/> <RTViewPanel title=" System Table " display="system_table"/> <RTViewPanel title=" System Table (WINNT) " display="system_table2" subs="$system:WINNT"/> <RTViewPanel title=" System Table (SOLARIS) " display="system_table2" subs="$system:SOLARIS"/> </TabbedPanel> The title of the tab that will contain the RTViewPanel is specified with the "title" attribute. The placement of the tabs is controlled by the "placement" attribute, which can be one of "top", "bottom", "left", or "right". When using tabbed panels, the panelname does not need to be specified. You can specify a panel name, and do drill down navigation using the name of that panel. However, for convenience, the tabbed panel constructs an internal name for each panel that is a combination of the display name and the substitutions that are assigned to the panel. When you do a drill down to the "Current Window" within any display in your viewer session, and there is a tabbed panel involved, Enterprise RTView will try to find the correct tab for you. It uses the display name and substitutions that you specify in the drill down to look for the panel that matches, and automatically switches to that tab, instead of replacing the panel in the current window. This release of Enterprise RTView also supports grid panels. These may be specified as follows: <GridPanel rows="0" columns="2"> <RTViewPanel name="detail1" display="small_panel" subs="$title:'101'"/> <RTViewPanel name="detail2" display="small_panel" subs="$title:'102'"/> <RTViewPanel name="detail3" display="small_panel" subs="$title:'103'"/> <RTViewPanel name="detail4" display="small_panel" subs="$title:'201'"/> <RTViewPanel name="detail5" display="small_panel" subs="$title:'202'"/> <RTViewPanel name="detail6" display="small_panel" subs="$title:'203'"/> </GridPanel> The row and columns counts are specified using the "rows" and "columns" attributes. If either is 0, then Enterprise RTView will create as many rows and columns as are needed for the RTViewPanels listed. Additionally, when any of these panels are created using the panels configuration file, you may specify a title to be assigned to the outer Window Frame of the application. This is done by including the "title" attribute in the outermost XML element description. This title will show up in the outer window frame. For example: <GridPanel title="Test of Grid Panels" rows="0" columns="3">

E10484: Tab and grid layouts now available for selecting multiple views

Multiple Display Panels have been enhanced to support a tabbed layout and a grid layout. See the release note for E11015 for more information.

Applet Functionality

E11036: A new JavaScript method, doDrilldown, has been added

A JavaScript method, doDrilldown() has been added that allows you to perform a drill down on the Display Viewer Applet programmatically. This method is defined as: void doDrilldown (String panelName, String displayName, String subs) The panelName may be an empty string, in which case, the drill down will operate on the main panel for the application. If the panelName is "*", a new window will be opened to contain the specified rtview. The displayName is the name of the display (.rtv) file that is to be loaded. This parameter may be set to ".", in which case it keeps the same display in the panel. Substitutions are optional and may be specified in the form "$subname:$subvalue $subname2:$subvalue2". Additionally, the subs string may begin with "g$clear" which indicates that all subs are to be removed from the panel before the drill down is performed.

Object Property Dialog

B10980: Horizontal scroll bar added to lists in "Select Columns" Dialog

Horizontal scroll bars are now enabled for the lists in the Select Columns Dialog.

Substitution

B11031: Substitutions with spaces no longer cause problems in SQL query

In previous versions of Enterprise RTView, a substitution containing spaces could not be used when entering an SQL query. This has been fixed.

B11029: Substitutions containing a space and a ' now parsed correctly

In previous versions of Enterprise RTView, substitutions containing spaces and ' were not parsed correctly. This has been fixed.

B10967: It is now possible to set a substitution to blank value

In previous versions of Enterprise RTView, a substitution could not be set to a blank value. This has been fixed.

B10969: Error in "Remove Existing Substitutions" option fixed

The Drill Down Properties dialog option "Remove Existing Substitutions" was exhibiting incorrect behavior; it would cause side effects in displays in other panels. This has been corrected so that the removal of substitutions affects only the drill down target panel.

B10891: Drill down subs no longer affect values in other windows

A bug was introduced into 3.0a1 which caused objects in any window to be affected by any drill down anywhere. The object's data would temporarily be reset to 0 before being refreshed if its data attachment made reference to a substitution variable that was used in another drill down. This problem has been corrected.

E10970: Listeners no longer reattached if drill down subs are identical

If a drill down is done to an existing panel and display, and the specified substitutions are the same as the ones already on the panel, listeners are no longer removed and reattached to their data sources. Previously, the data would be requeried even if the substitution values had not changed.

E10985: Listeners no longer added/removed unless affected by sub change

Substitution processing during drill down has been enhanced to be more efficient. Previously, when substitution variables were changed in a display by a drill down, all objects in that display would have their data attachments reinitialized. Now, only those objects that are directly affected by substitutions that have changed will be affected.

B10992: Chained substitutions now passed by value

The way in which chained substitutions are processed has been changed. Previously a substitution like $data2:$data1 would remain linked, so that if $data1 was changed, $data2 would also change. Now, the substitutions are passed by value rather than reference, so once the substitutions are passed to a drill down they are no longer linked. This means you can change the value of one substitution without changing the other.

B10993: Problem with data attachments using more than one sub fixed

A problem with data attachments that reference more than one substitution has been fixed. This problem sometimes resulted in multiple data points being plotted in a graph for each update.

B10638: Replaced substitutions are now passed into child panels

In previous versions of Enterprise RTView, changing substitutions on a panel did not cause the change to be seen in panels that were invoked as children of that panel, i.e. using the New Window drill down. This problem has now been fixed.

E10596: Substitution now associated with local variables for ease of use

Substitutions may now be linked with local variables. When a local variable is defined with the same name as a substitution and the "Use As Substitution" option is set, then the local variable automatically takes on the value of that substitution. When the substitution is changed, the local variable is changed and vice-versa. This eliminates the need for using the Get Substitution function to display the value of a substitution; simply make it a local variable instead so it can be used as a data attachment. Similarly, if a local variable is set from a control, such as a drop down list, the associated substitution is automatically set, without having to setup a drill down to set the substitution.

B10642: Existing substitutions can now be passed between sibling panels

It is now possible to pass an existing substitution to a sibling panel, using the following syntax in a drill down: $sub:$sub. When a drill down invokes a "child" window or panel, all substitutions in the current window are known to the new window, since it is a child of the current window. When performing a drill down to a sibling window or panel that already exists, not ALL of the existing substitutions are passed to the sibling, only those explicitly listed in the drilldown parameter.

Drill Down

B10867: A new drillDownSelectMode property added to tabular data objects

The objects that display tabular data now support a property named drillDownSelectMode. This property can be assigned a value of "Anywhere" or "Element Only". If set to Anywhere, the user can drill down by clicking anywhere on the object. If set to Element Only, the user must click on an element to drill down. An element is a cell in a table, a bar or marker in a bar graph, a slice in a pie graph, or a marker on an XY or radar graph. Note that each element corresponds to a specific row and column in the tabular data that is attached to the object. In the standard table (obj_able02), if the rowLabelMode property is set to 1, then a column of row labels is shown. If drillDownSelectMode is set to "Element Only", a drill down can not be performed by clicking in the row label column, since this column does not correspond to an actual data column in the tabular data.

B10851: Drill down file name can now contain spaces or :

Drill down files names can now contain spaces or :.

E10267: Drill down to URL now supported

A URL can now be used as a drill down display name. In prior releases, only a file name could be used. For example, the following URL could be configured as a drill down display name: http://servername/rtvFiles/dd_1.rtv As with other drill down operations, the path portion of the URL is used in subsequent drill downs that do not specify a full path. So for example, if a drill down was done, using the URL above, to dd_1.rtv, and dd_1.rtv contains an object configured to drill down to dd_2.rtv, then dd_2.rtv would be opened with the URL http://servername/rtvFiles/dd_2.rtv. If the URL contains a space, this should be encoded as %20. For example, if the URL of a drill down display is as follows: http://servername/rtvFiles/My Display.rtv you should enter it as follows: http://servername/rtvFiles/My%20Display.rtv

Functions

B10975: Functions now support filtering on *, "*" and empty string

Users can now filter their Function data attachments by *, "*", or and empty string. Filtering by a value of * will return all rows in the table. Filtering by a value of "*" will use * as a literal for comparing cell values. Filtering by an empty string will return all rows where the cell in the specified column contains no text. The Filter By Rows function has also been enhanced to support *, "*" and empty strings.

B10965: No crash when function deleted if links are in the display

In previous versions, the Display Builder crashed when a function was deleted from a display that contained a link. This has been fixed.

E10957: Subtotal By Time function now accepts more date/time types

The Subtotal By Time function has been enhanced so that the date/time column can be in any reasonable format; it will accept a long string (internal date/time format), or a string containing date and/or time.

E10958: A new Count Unique Values By Time Range function has been added

A new function has been added: Count Unique Values By Time Range. This function provides a way to count the number of rows of data that contain a unique value in a table column, sorted by a time stamp contained in another column.

Licensing

E10999: Licensing no longer fails on non-English windows systems

In Enterprise RTView version 3.0a, licensing failed on some non-English windows systems. This has been fixed.

Localization

E10879: The registration dialog has been internationalized

The registration dialog has been internationalized.

Image Server

E10986: Tabs now supported in Image Server

A more extensive panels configuration capability (PANELS.ini) has been added to this release of Enterprise RTView. See the release note E11015 for more information. The Image Server supports the new XML format of PANELS.ini and the plain text format from prior releases. The BorderPanel and TabbedPanel layouts are supported by the Image Server. To use this feature in the Image Server: Install the rtvimage servlet, as described in the documentation. Run the Image Server in a directory containing a PANELS.ini file. In a browser, open the following URL, with the appropriate server name for your installation: http://servername/rtvimage/panels.html The Image Server will use HTML Framesets to generate a display with the layout defined in PANELS.ini To specify a different panel configuration file other than PANELS.ini, such as MyPanels.ini, specify a URL as follows: http://servername/rtvimage/panels.jsp?file=MyPanels.ini

DATA SOURCES

E11002: Multiple values can now be specified in Filter Value

The filter functionality of the XML and Function data sources has been enhanced so that multiple values may be specified in the Filter Value field of the Attach To Data Dialog. Previously, only a single value could be listed, but now multiple values may be listed, e.g., Value1;Value2;Value3. Filter values containing a ; must be enclosed in single quotes. This enhancement also applies to the Filter By Row function.

B10959: A mismatch error no longer occurs if column names do not match

In previous releases, Enterprise RTView reported a column mismatch under any of the following conditions when using the TIBCO Rendezvous data source in a data attachment: 1. If a TIBCO Rendezvous message is received that contains the same fields (columns) as those in earlier messages for the same subject, but the fields are in a different order 2. If a TIBCO Rendezvous message is received that contains one or more fields which did not appear in earlier messages received for the same subject 3. If a TIBCO Rendezvous message is received that is missing one or more fields which appeared in earlier messages received for the same subject 4. If a TIBCO Rendezvous message is received that contains the same fields as those in earlier messages for the same subject, but one or more of the fields in the new message have a different data type than the earlier messages In this release, conditions 1, 2, and 3 will not result in a column mismatch error. Condition 4 will still result in a column mismatch error. If condition (1) occurs, the columns in the new message and the existing table will be matched by name. If condition (2) occurs, the new columns will be added to the existing data table. The new columns will appear after any existing columns. If condition (3) occurs, then the missing columns in the message will be filled with the default values for the data type of the field (zero for int and floating point types, false for boolean, and "N/A" for string). But, if there is an existing entry in the data table for the same subject (that is, there is already a row in the table whose name matches the subject of the new message), then the values from that existing row can be used to fill in the missing values. This "partial row update" feature is enabled for a subject by adding an entry to the RVALIAS.ini file with the keyword partialUpdatesOK, for example: AnyOrderStatus orders.STATUS.* partialUpdatesOK Data attachments that use AnyOrderStatus will have the partial row update feature enabled.

XML Data Source

B10972: XML now supports filtering on *, "*" and empty string

Users can now filter their XML data attachments by *, "*", or an empty string. Filtering by a value of * will return all rows in the table. Filtering by a value of "*" will use * as a literal for comparing cell values. Filtering by an empty string will return all rows where the cell in the specified column contains no text.

SQL Data Source

E11042: static querys continue to run if error and no listeners

In previous versions, static queries that were not sucessful continued to run even if there were no objects attached to them. This has been fixed.

E10871: New option -sqlquote added to allow quotes table names

A new option is supported for the SQL data source. On the command line it is specified as "-sqlquote", and in OPTIONS.ini or an applet parameter it is named "sqlquote" with a value of "true" or "false". When this option is specified, all names that are specified in the Table Name or the Column(s) fields in the Attach to SQL Data dialog will be enclosed in double quotes when the SQL query is performed. This can be useful when attaching to databases which support case-sensitive table and column names, such as PostgreSQL and Oracle, (table and column names are case-insensitive in Microsoft Access and SQL Server, so quoting the table and column names is not required but is harmless). For example, if a table with 2 columns is created in PostgreSQL or Oracle with the following SQL command: create table "MyTable" ("Customer" varchar(20), "Age" int) then the table and columns will have case-sensitive names (because each is quoted) and SQL queries must put those names in double quotes. With the -sqlquote option, the table and column names will be quoted automatically if the following is entered in the Attach to SQL Data dialog: Table Name: MyTable Column(s) : Customer However, if a case-sensitive column name is used in the data attachment filter, it must be enclosed in quotes, even if the -sqlquote option is specified, for example: Filter: "Customer" = 'Alice Chen' Case-sensitive table and column names must also be quoted if the SQL query is entered directly, via the "Enter SQL Query" checkbox, for example: select "Customer" from "MyTable" where "Customer" = 'Alice Chen' Note that if the table is created in PostgreSQL with the following SQL command: select * from MyTable then the table name will be converted to lower case, since it is not quoted. (For Oracle, it would be converted to upper case). Consequently, the table name need not be quoted in queries.

TIBCO Rendezvous Data Source

E10857: XML attributes in TIBCO Rendezvous messages are now supported

You may now display XML attributes contained in TIBCO Rendezvous messages. To display XML attributes, add $attrib= to the end of the field name in your alias definition. You may specify a specific attribute, or you may specify * to show all attributes. If you specify **, all values and all attributes will be displayed.

TIBCO Hawk Data Source

B10868: A microagent with a ":" in its name is now handled properly

The Enterprise RTView TIBCO Hawk data source now recognizes a microagent with a ":" in its name as long as all ":" in the name are contained within a pair of "(" and ")". For example, the EMS controller microagent is given the name "JMS_controller (tcp://localhost:7222)" by default. This name is now recognized properly.

OBJECT LIBRARY

E10944: New visFlag property added to all objects

A property named visFlag has been added to all display objects. By default, this property is selected. If it is deselected, the object will be invisible in the Display Viewer and Display Builder. An invisible object can still be selected in the Display Builder, by clicking within the object's extent. The visFlag property can be attached to data, such as a local variable, to change its value dynamically.

Tables

B10988: Float data types now respond to filter properties

In previous versions, filterProperties did not get applied to float data. This has been fixed.

B10864: Sort icon fill color now matches column header color

The sort icon in the table header now displays in the header color.

B10865: Sorting now disabled if showSortIconFlag is off

Previously, if the sort icon was disabled (not visible), a click in the column header would still sort the table. Now the sorting is disabled if the sort icon is not visible.

B10866: Color of empty part of table is now configurable

A new property, tableBgColor, has been added to the table which sets the color for the empty part of the table. The default color is gray.

E10856: Multi-line text in table cells and headers is now supported

If the text for a column header or cell contains a newline (\n) character, the text will be displayed as multi-line text.

E10946: User can now set the scrollbar policy on the table

A new property, scrollbarMode, has been added to the table which allows you to set the scrollbar policy for the table. You may set the scrollbar policy to Never, As-Needed or Always.

E10803: Added columnsToHide property to allow hiding columns

Previously, all columns for a data attachment were displayed in the table. This was a problem for users that wanted to sort or filter by, or pass drill down substitution information from, a column that they did not want to display. To hide a column, enter the name of the column in the columnsToHide property. To hide more than one column, separate column names with a semicolon. If a column name contains a semicolon, enclose it in single quotes. For example: Plant;'Column; Name'

B10458: insertNewRowsFlag now works for tables attached to XML or SQL

The insertNewRowsFlag property on the table object (obj_table02) now works for XML and SQL data attachments. In previous releases, it had no effect if the table was attached to the XML or SQL data source.

Object Grid

E11001: Added bgVisFlag property to the Object Grid

The bgVisFlag property has been added to the Object Grid.

Bar Graphs

B10960: Autoscale values now rounded for the bar graph

When yAxisAutoScaleMode is set to "On - Include Min/Max" the y axis labels now scale to rounded values.

XY Graphs

E10953: Scrolling now supported in the XY graph

The XY Graph now supports a property named scrollbarMode, which can be set to one of three values: Never: Scrollbars are never displayed. This is the default value. Always: A horizontal and a vertical scrollbar are always displayed. As Needed: In this mode, a vertical scrollbar appears when the visible Y range is less than the Y range of any of trace on the graph. This will occur if the Y value is outside the range of the yValueMin and yValueMax or if a graph zoom operation is performed. A horizontal scrollbar will appear if the visible X range is less than the X range of all the data that is stored in the graph. This will occur if the X value is outside the range of the xValueMin and xValueMax or if a graph zoom operation is performed. The scrollbarSize property can be used to set the height of the horizontal scrollbar and the width of the vertical scrollbar, in pixels. The default value is -1, which indicates that the platform default (typically about 15 pixels) should be used.

E10954: The XY graph now supports zooming

The XY graph now supports a property named zoomEnabledFlag. If set to true, then a graph zoom operation can be performed as follows: Press the left mouse button in the graph's trace area, at one corner of the rectangular area to be expanded by the zoom. Then drag the cursor to the opposite corner of desired zoom rectangle and release the mouse button. While dragging, a yellow rectangle is drawn to show the zoom rectangle. The color of this rectangle is controlled by the cursorColor property. After the zoom is performed, the labels on the x and y axis will show the range of the zoom rectangle. If the scrollbarMode property is set to As Needed, a horizontal and/or vertical scrollbar may also appear. These can be used to scroll to regions of the graph outside of the zoom rectangle. To zoom out, left click in the graph's trace area while pressing the Shift key. The graph stores a history queue of up to 4 zoom operations. Each of these is restored, in order, by a zoom out. When the zoom history queue is empty, a zoom out will restore the graph to 100% of the x and y range. Note that if the graph has a drill down target and the user clicks rapidly when performing multiple zoom out operations, it may be interpreted as a double-click and a drill down operation will be performed on the display.

Trend Graphs

B10996: Cursor no longer crashes empty trend graph if ctrl key pressed

In previous releases of Enterprise RTView, a trend graph with no data attachments would crash if the cursorFlag was turned on and the mouse was moved over the trace area with the ctrl key pressed. This has been fixed.

B10968: Pasting static properties no longer causes crash

In previous versions copying and pasting static values from one trend graph to another could crash Enterprise RTView. This crash has been fixed.

B10961: Y axis limits set correctly if trace visibility is off

In previous versions, the y axis limits might have been set incorrectly if a trend graph had multiple traces with yAxisAutoScale set to ON, yAxisMultiRangeFlag set to OFF and one of the traces was made invisible. This has been fixed.

E10951: timeRangeOfData property added to trend graph to limit history

The trend graph supports a property named timeRangeOfHistory. It specifies the number of seconds of historical data to be loaded into the graph. Normally, the timeRange property determines both the visible time range of the graph and the time range of the historical data loaded into the graph. In some situations it may be useful to load more historical data into the graph, and use the horizontal scrollbar to view the additional data. For example, to configure an instance of the trend graph to have a visible time range of 1 hour and load 2 hours of historical data for trace 1: 1. check the trace1ValueHistoryFlag checkbox 2. set timeRange to 3600 3. timeRangeOfHistoryData to 7200 4. set scrollbarMode to As Needed When the graph is first displayed, it will show one hour of data ending with the current time. The horizontal scroll bar will allow the user to scroll to view data collected up to two hours ago. (This assumes the Historian is properly configured). The default value of timeRangeOfHistory is -1. If timeRangeOfHistory is zero or less, or if it is less than the value of timeRange, then the timeRange property determines the amount of historical data to be retrieved, as in previous releases.

B10950: Cursor and popup legend only show for trace area

The cursor and popup legend have been adjusted to only appear if the mouse pointer is inside the trace area of a trend graph.

B10952: Extreme zoom-in on trend graph or XY graph no longer crashes

In previous versions an exception could be thrown if the graph zoom feature is used to zoom in too many times on a long trace with a traceLineThickness of 1. This has been fixed.

E10943: Zooming now enabled on trend graphs

The Trend Graph now supports a property named zoomEnabledFlag. If set to true, then a graph zoom operation can be performed as follows: Press the left mouse button in the graph's trace area, at one corner of the rectangular area to be expanded by the zoom. Then drag the cursor to the opposite corner of desired zoom rectangle and release the mouse button. While dragging, a yellow rectangle is drawn to show the zoom rectangle. The color of this rectangle is controlled by the cursorColor property. After the zoom is performed, the labels on the x and y axis will show the range of the zoom rectangle. If the scrollbarMode property is set to As Needed, a horizontal and/or vertical scrollbar may also appear. These can be used to scroll to regions of the graph outside of the zoom rectangle. After a zoom is performed on the trend graph, it is paused (time shifts are not performed) until the graph is reset to 100% zoom. To zoom out, left click in the graph's trace area while pressing the Shift key. The graph stores a history queue of up to 4 zoom operations. Each of these is restored, in order, by a zoom out. When the zoom history queue is empty, a zoom out will restore the graph to 100% of the x and y range. Note that if the graph has a drill down target and the user clicks rapidly when performing multiple zoom out operations, it may be interpreted as a double-click and a drill down operation will be performed on the display.

E10855: Scrolling is now supported by trend graphs

The trend graph now supports a property named scrollbarMode, which can be set to one of three values: Never: Scroll bars are never displayed. This is the default value. Always: A horizontal and a vertical scroll bar are always displayed. As Needed: In this mode, a vertical scroll bar appears when the visible Y range is less than the Y range of any of trace on the graph. This occurs when the Y values are outside the yValueMin and yValueMax range or if a graph zoom operation is performed. A horizontal scroll bar will appear if the visible X range is less than the X range of all the data that is stored in the graph. This occurs if the X values are outside the visible time range or if a graph zoom has been performed. The scrollbarSize property can be used to set the height of the horizontal scroll bar and the width of the vertical scroll bar, in pixels. The default value is -1, which indicates that the platform default (typically about 15 pixels) should be used. If either scroll bar appears because a graph zoom has been performed, the trend graph is paused (no time shifts are performed on the trend graph) until the zoom is reset. Also, if the horizontal scroll bar appears because the timeRange property is less than the data time range, the trend graph will be paused if the scroll bar is used to scroll the trend graph's time axis. In this case, scrolling fully to the right will un-pause the trend (time shifts will resume). If new data is received while the trend graph is paused, the horizontal scroll bar knob may shift to the left and decrease in size, although the time axis values will remain the same. This behavior is expected, and indicates the visible time range's position and size in the overall time range of the data.

E10889: Newlines in timeFormat string using "\n" are now supported

Multi-line time axis labels are supported on the trend graph, by specifying '\n' in the timeFormat property. For example, to show month/day on the first line and the time on the second line of the time axis, specify the timeFormat as follows: MM/dd'\n'hh:mm:ss This will display a label similar to the following: 10/18 12:34:56

Radar Graphs

E11025: plotBgColor property added to radar graph

A new property, plotBgColor, been added to the radar graph. This property sets the background color of the plot area.

Control Objects

B10971: Combo box now always displays selected value

In Enterprise RTView version 3.0a, the selected value of a combo box did not update unless it was attached to a local variable. This has been fixed.

B11020: List box now always displays selected value

In previous versions of Enterprise RTView, the selected value of a list box did not update unless it was attached to a local variable. This has been fixed.

E10870: enabledFlag property added to all control objects

A property named enabledFlag has been added to all of the control objects. By default, this property is selected. If it is deselected, the control object will be disabled in the Display Viewer. It will ignore mouse and keyboard input and will appear grayed-out. The enabledFlag property can be attached to data, such as a local variable, to change its value dynamically. Note that control objects are always disabled in the main window of the Display Builder, regardless of the enabledFlag setting.

E10869: editableFlag added to text entry control objects

A property named editableFlag has been added to the text entry control objects. By default, this property is selected. If it is deselected, the text in the text entry field cannot be edited in the Display Viewer. However, the mouse and the arrow keys can still be used to move the cursor. This can be useful for displaying read-only text strings that are too long for a label object. Note that text entry controls are always disabled in the main window of the Display Builder, regardless of the editableFlag setting.

Distribution

E10962: Sample HTML files added to Windows program group

Sample applets have been added to the SL-GMS Enterprise RTView program group in the Windows Start menu under Demos -> Sample Displays.

E10905: Enterprise RTView command prompt added to program group

Windows users may now open an initialized command prompt from the SL-GMS Enterprise RTView program group in the Start menu.

E10847: A Japense Windows installer is now available

A Japanese Enterprise RTView installer is now available for Windows.

Version 3.0a2 Release Notes

Enterprise RTView

Licensing

B10955: Licensing code added for Windows 2003 Server

In 3.0a1 the licensing scheme did not work with the Windows 2003 Server OS. This has been addressed.

Version 3.0a1 Release Notes

Enterprise RTView

General

E10829: The selection rectangle is no longer in the Display Viewer

The selection rectangle is no longer drawn in the Display Viewer.

B10838: Memory leak when java applet is refreshed fixed

In previous releases of Enterprise RTView, a memory leak occurred when the Display Viewer Applet was reloaded, either by refreshing the page in the browser or by leaving the page and returning to it. This has been fixed. In addition to this, Sun also reported a swing component leak in their plugin which was fixed in version 1.4.2_04.

E10731: Enterprise RTView is now built using Java 1.4.2

Enterprise RTView is now built using Java version 1.4.2. Users are now be required to use Java version 1.4.2_02+ to run Enterprise RTView.

E10486: Edit functionality has been removed from the Display Viewer jar

In previous releases, the Display Builder and Display Viewer were packed into gmsjrtview.jar. Now, the Display Builder has been moved to gmsjrtvbuild.jar. This has significantly reduced the size of gmsjrtview.jar which will speed up downloading the Display Viewer Applet.

Image Server

E10821: User can now control the compression of generated bitmaps

An imagequality flag has been added to the Image Server to control the compression of the generated bitmaps.

B10815: Mouseover text shows for all objects with mouseOverFlag on

In previous releases, objects with the mouseOverFlag turned on would only show mouseover text in the Image Server if they also had a drill down target. This has been fixed.

B10792: No delay for initial data on new displays

In previous releases, when a new display was loaded, initial data was delayed for data that was not in an already loaded display. This has been fixed.

B10796: Users can now select trace markers over bars for drill down

In the previous release of Enterprise RTView, users could not select a trace marker for drill down if it was drawn over a bar. This has been fixed.

Editing Functionality

E10819: Move to Front and Move to Back now available

Two new editing options have been added to Enterprise RTView, Move to Front and Move to Back. Right-click on an object and choose Move to Front or Move to Back to move the selected object in front of or behind other objects in the Working Area. Objects are always drawn in front of links and swing components are always drawn at the front.

Object Property Dialog

E10808: Color dialog now shows selected color

The color chooser dialog now highlights the selected color and stays open until the user double-clicks on a color. The selected color is applied immediately.

Substitution

B10193: Recursive substitutions no longer crash Enterprise RTView

In previous releases, recursive substitutions caused Enterprise RTView to crash. This has been fixed.

Drilldown

B10641: Drill down branch functions now use application substitutions

In previous versions, if a drilldown branching function contained an argument that was set to an application-level substitution, the function would not return the proper value. This has been fixed. PAL0: If a drilldown branching function contains an argument that is set to an application-level substitution, the function will not return the proper value. It works if the argument is set to a literal or a drill down substitution.

E10812: Add Remove Existing Substitutions to Drill Down Properties

Select the Remove Existing Substitutions checkbox to remove existing drill down substitutions on the drill down window.

B10753: Can now load Current Display from a subdirectory

In previous releases, if you drilled down to a display in another directory, then tried to drill down from that display using the Current Display option, it failed. This has been fixed.

Command Execution

E10798: Table substitutions are now applied to commands

When a command is executed by double-clicking on an object that displays tabular data, table substitutions are now applied to the command string before it is executed.

Functions

B10809: Join function now supports using row names

The Join function now supports using row names. If the column name is left blank for the tables being joined, the row name, up to the first : if it contains a :, will be used instead of a column value.

E10801: Two format functions have been added

Two new functions have been added that format numbers. The Format Number function takes a single value and a Java format specification and returns a formatted number. The Format Table function takes a table and a list of column names with corresponding Java format specifications and returns a table with formatted number columns.

Licensing

E10736: Support component and data source licensing

The Enterprise RTView licensing has been enhanced to support licensing for specific components and data sources. Users with existing Enterprise RTView keys will not need to change their keys and all previously licensed components will continue to be licensed.

XML Server

E10802: Option to redirect http XML sources has been added

In previous versions of Enterprise RTView, users were not able to redirect http XML sources through the XML Server. The product has been enhanced to allow this.

E10818: Option added to load initial data which will be cached

A new option, Preload Data for Configuration Files, is available in the XML Server when running in Socket Mode. If enabled, users can specify data configuration files (.rtv) file(s) to be preloaded by the XML Server. The data for these files will be immediately available to any clients that request it later, and will be updated during XML Server updates.

B10223: Enhance XML Server to use HTTPS and Secure Sockets

In this release, https can be used to read an XML data file from a webserver, or to connect to the XML Server (via the XML Servlet). When https is used, the transmitted xml data is encrypted. To use https, a webserver must be configured for https support. This may require the purchase and installation of a certificate from a Certification Authority (CA), such as Verisign. The following URL could be used in an XML data attachment to read XML data file from an https-enabled Tomcat webserver running on MyServer: https://MyServer:8443/rtvdata/update.xml The following HTML snippet configures an applet to use https to connect to the socket XML Server, via the XML servlet, on a host named MyServer: <PARAM NAME="xmlserver" VALUE="remote:https://MyServer:8443/xmlservlet/"> In addition, the XML Server now supports an SSL option which will encrypt the data transmitted on direct (non-http) socket connections to the server. No certificate or https support is required.

Transaction Message Monitor

B10791: Transaction Monitor now supports getting id from XML attribute

The Transaction Monitor now supports getting the id from an XML attribute in a TIBCO Rendezvous message. To specify that the id is in an attribute, append :$attrib=attribute_name to the end of the XML field containing the attribute.

DATASOURCES

XML Datasource

E10835: Spaces now supported in http XML source paths

An XML source can be accessed by a URL beginning with "http:". The end of the URL may contain pairs of parameters and values. In this release, spaces and other non-alphanumeric characters may be included in URL parameter names and values, for example: http://MyServer/getInfo.jsp?name=Dave O'Malley Spaces are still not permitted in the path portion of the URL (the portion between http: and ?).

SQL Datasource

E10431: Query interval added to Attach to SQL Data dialog

The Attach to SQL Data dialog has been enhanced to allow users to control the query interval for each SQL query. The query can be run one time, once every update period or once per user-defined query interval.

Local Datasource

E10827: Color chooser added to Local Variables dialog

If the Local Variable name ends with Color, the Initial Value field will contain a color chooser instead of a text entry field to make setting the initial value for a color variable easier.

OBJECT LIBRARY

E10810: Alarm thresholds added to obj_dualmeter and obj_percentchart

Alarm threshold properties have been added to obj_dualmeter and obj_percentchart.

E10799: Add currency shortcuts to valueFormat property

Many objects that display numeric values have a valueFormat property. This property has been enhanced to accept three shortcuts: $ for US Dollar money values, $$ for US Dollar money values with additional formatting, or () for non-money values that are formatted similar to money.

B10786: Background image of model in subdirectory if image is a URL

In previous releases of Enterprise RTView, background images set from URLs would not load if the display was not loaded from the directory where Enterprise RTView was started. This has been fixed.

B10574: First paste of properties between general objects copies alarms

In previous releases of Enterprise RTView, when pasting properties from an object on the General Palette to another object on the General Palette, you must select the Paste Static or the Paste All Properties option twice to paste all properties. This has been fixed.

Tables

B10795: Setting color and font of cells and headers now supported.

Eight new properties have been added to obj_table02 to support setting the color and font properties for the table cells and headers: cellHeaderBgColor - set the background color of the table cells cellHeaderTextColor - set the text color of the table cells cellHeaderTextFont - set the font of the table cells cellHeaderTextSize - set the text size of the table cells columnHeaderBgColor - set the background color of the table cells Font and background colors applied by the filterProperties take precedence over these properties. columnHeaderTextColor - set the text color of the table headers columnHeaderTextFont - set the font of the table headers columnHeaderTextSize - set the text size of the table headers

Graphs (General)

E10831: cursorColor property added to the trend graph

A new property, cursorColor, has been added to the trend graph. This property allows the user to set the color of the cursor.

E10445: An XY graph has been added

An XY graph, obj_xygraph, is included in this release, for displaying xy data. It is similar in appearance to the trend graph and has many of the same features. However, instead of plotting y data values vs. time, the XY graph plots y values vs. x values. All data values are specified in the data attachment for the tableStringValues property. The first numeric column in the table specifies the x values, and each additional numeric column specifies the y values for one trace. For example, for the following data table, two traces would be drawn and each trace would have 3 points, corresponding to the x values 1, 2, and 3. x 2x 5x ---------- 1 2 5 2 4 10 3 6 15

Trend Graphs

E10832: legendTimeFormat added to trend graph

A new property, legendTimeFormat, has been added to the trend graph that sets the format for the time displayed in the legend using syntax from the Java SimpleDateFormat class. For example, MMMM dd, yyyy hh:mm:ss a would result in the form August 30, 2003 05:32:12 PM. If no format is given, the format specified for timeFormat will be used.

E10813: obj_trendgraph01 has been removed from the Object Palette

The single trace graph, obj_trendgraph01, has been removed from the Object Palette. Users should use obj_trendgraph02 instead with the traceCount set to 1.

E10793: trace*VisFlag property has been added to the trend graph.

A new property, trace*VisFlag, has been added to the trend graph that allows users to set the visibility of each trace.

Radar Graphs

E10763: A radar graph has been added to the Object Palette

A radar graph, obj_radar, has been added to the Graphs tab of the Object Palette. This graph allows users to compare multiple columns and rows of data.

Control Objects

E10830: fgColor has been added to the checkbox

A new property, fgColor, has been added to obj_c1btn_chk. This property allows the user to set the color of the check mark.

B10828: The selected value in the combo box is now updated

The selected value is now updated in obj_c1combobox when the list values change.

E10811: Up to 255 characters can now be entered in text entry objects

The text entry controls have been updated to allow up to 255 characters to be entered.

Distribution

E10555: Installer now available for Windows platforms

An installer is now available for customers using Enterprise RTView on Windows platforms.

Version 2.0p1 Release Notes

Enterprise RTView

General

E10755: More color choices are now available

The colors in Enterprise RTView have been enhanced to include 220 new colors.

Functions

E10775: Sort Table function has been added

A new function, Sort Table, has been added. This function allows you to sort your data before it is displayed in an object.

E10454: Function results are now read by Historian

The Historian will store function results. This can be useful for displaying function results on a historical graph. A function result will be stored by the Historian if the function is defined in one of the display (.rtv) files listed in the Historian configuration and the function result is used as a data attachment for an object in the display file. A function result which is used only as an input to another function, or is not used at all, will not be stored. This is intentional, so that only function results which are displayed, and not intermediate function results, get stored. If a function with the same name is defined in more than one .rtv file listed in the Historian configuration, only the result of the first function will be stored. If a function has multiple arguments which are attached to data (for example, an ADD function where both arguments are attached to SQL queries), duplicate function results (same value and timestamp) may be stored by the Historian.

DME - Data Historian

E10784: Load from history never fails for multiple graph traces

In previous releases of Enterprise RTView, if several graph traces within a single graph loaded their initial data from the Historian, some of the traces occasionally did not get their data.

B10770: Historian and XML Server no longer have variable limit

In previous releases of Enterprise RTView, there was a limit to the number of data attachment on a single object that would be stored by the Historian or served by the XML Server. This has been fixed.

DME - XML Server

E10764: XML Server performance with SQL has been enhanced

The XML Server performance when serving SQL data has been improved.

DATASOURCES

SQL Datasource

E10687: Option to make general SQL query now available

The SQL data attachment has been enhanced to allow users to enter their own SQL queries.

E10738: SQL queries are now optimized

The SQL datasource has been enhanced to group multiple queries for different columns on the same table with the same filter into a single query. This results in fewer queries on the database.

OBJECT LIBRARY

E10778: labelTextHeight and labelTextColor properties added to labels

Two new properties, labelTextHeight and labelTextColor, have been added to obj_label05, obj_label05s, obj_label11, obj_label11s, obj_label06 and obj_label14.

B10776: Loading images from URL paths now supported

The objects which support images as well as the background have been enhanced to support loading images from a URL path.

E10773: New meter added

A new meter, obj_speed, has been added to the Meters palette.

Graphs (General)

B10723: valueDivisor property fixed to affect the mouseover data

In previous versions the value displayed in the mouseover popup on graphics was not affected by the valueDivisor property. This has been fixed.

E10774: Changing color/style of markers for thresholds now supported

The trend graphs and bar graph have been enhanced to allow you to change the color and style of the trace markers according to their values.

Bar Graphs

E10759: Specifying fill patterns for individual bars now supported

The bar graph has been enhanced to allow you to set the fill pattern of each bar.

E10741: Waterfall option now available for bar graph

A new property, drawWaterfallFlag, has been added to the bar graph. When this property is enabled, each bar group will draw as an offset stack.

E10742: Specifying colors for individual bars now supported

The bar graph has been enhanced to allow you to set the color of each bar.

E10743: Changing color/style of bars for thresholds now supported

The bar graph has been enhanced to allow you to change the color of the bars according to their values.

E10443: Option to show value on bars now supported

A new property, barValueVisFlag, has been added to the bar graph to allow you to show the values of each bar in a label on the bar.

E10754: Traces now supported on the bar graph

Two properties have been added to support traces on obj_bargraph: 1. traceValueTable: This table defines the trace points to be plotted on the bar graph. For a bar graph drawn vertically, the data values from traceValueTable define the Y values of the trace points, and the X positions of the bars define the X values. For a horizontal bar graph, these roles are reversed. A marker is drawn for each trace point. If there are fewer than two groups of bars, no trace lines are drawn, just a single set of trace markers. If rowSeriesFlag is on, then a trace is drawn for each row in traceValueTable. Each trace contains one point for each column in traceValueTable that contains numerical data. If rowSeriesFlag is off, then a trace is drawn for each column in traceValueTable that contains numerical data. Each trace contains one point for each row in traceValueTable. There are three possible configurations for traceValueTable: - traceValueTable is unattached: No traces are plotted. - traceValueTable and tableStringValues are attached to the same table: In this case, the number of traces will be the same as the number of bars in each group. Trace 1 will be drawn from the top of bar 1 in group 1, to the top of bar 1 in group 2, and so on. Trace 2 will be drawn from the top of bar 2 in group 1, to the top of bar 2 in the group 2, and so on. - traceValueTable and tableStringValues are attached to different tables. If both tables have the same number of rows, and the same number of columns of numeric data, then the behavior is similar to (2) above, except that the Y trace points (X if drawing horizontally) can be anywhere inside, above, or below the corresponding bar, according to the data value from traceValueTable. If the number of rows and or data (numeric) columns in the two tables differ, then the behavior depends on the setting of rowSeriesFlag. The next two paragraphs describe the behavior if rowSeriesFlag is on: If traceValueTable has N fewer data columns than tableStringValues, then no trace points will be plotted for the last N bar groups. If traceValueTable has M more data columns than tableStringValues, then the graph will be extended by M groups containing trace points but no bars. (In the extreme case, if tableStringValues has no data columns, or has no data attachment, each bar group will contain M traces and no bars). If traceValueTable has N fewer rows than tableStringValues, then the last N bars in each group will have no corresponding trace. If traceValueTable has M more rows than tableStringValues, then each bar group will have M more traces than bars. (The visible bars will be sized and spaced as though the M extra bars were visible, to allow room for the extra traces. In the extreme case, if tableStringValues has no rows, or has no data attachment, each bar group will contain M traces and no bars). If rowSeriesFlag is off, then the behavior is described by switching "rows" and "data columns" in the preceding two paragraphs. 2. traceProperties: This string property defines the colors and styles to use for the trace lines and markers. The format of the string is as follows. For each trace, the string contains 5 integer values separated by commas, with a semicolon after the last value. The order is as follows: line_color,line_style,line_width,mark_color,mark_style; Any of the values can be omitted, and the default will be used. So the following string is valid: 5,2,,,3; The entry for a trace can be left empty: 5,2,,12,3;;7 The above will assign non-default styles to trace 1 and 3, and will use the default styles for trace 2 (and any additional traces). The default styles are: line_color: barColor darkened line_style: 1 (solid) line_wdith: 1 mark_color: barColor 2x darkened mark_style: 2 (+) If -1 is specified for line_color, the trace is invisible. The following traceProperties string will make the third trace invisible: ;;-1 3. Other properties: If mouseOverFlag is on, a tooltip will be shown for each trace marker, similar to the tooltip shown for a bar. But mouseOverHighlightFlag has no affect on traces. A drill down can be done by double clicking on a trace marker. The values from the corresponding row and column in traceValueTable will be used for the table drill down string substitutions ($col1, $cellData, etc). If valueDivisor is nonzero, the data values from traceValueTable are divided by it before plotting. If drawStacked flag is on, the data values from traceValueTable are summed before plotting. If drawWaterfallFlag is on, no traces are drawn.

Trend Graphs

E10783: Value now shows in legend if trace attached to valueTable

In the trend graphs in previous releases of Enterprise RTView, no value was shown in the legend for traces driven by trace*ValueTable or valueTable. This has been corrected to display the value of the last point plotted.

E10765: Users can now change text height of axis tick labels

Two new properties, xAxisLabelTextHeight and yAxisLabelTextHeight, have been added to the trend graphs to allow users to set the height of the axis labels.

E10766: Spacing in trend graph legend now configurable

A new property, legendValueMinSpace, has been added to the trend graphs to allow users to set the space between the value and the label in the legend.

E10781: New properties timeRangeBegin, timeRangeEnd added to trend graph

Two new properties, timeRangeBegin and timeRangeEnd, have been added to the trend graphs to allow you to specify the time to plot in the graph. If only timeRangeBegin is specified, then the timeRange property is added to determine timeRangeEnd. If only timeRangeEnd is specified, then timeRange is subtracted to determine timeRangeBegin. If both are specified, then timeRange is set to the difference between the two and any value entered for timeRange will not be used until either the timeRangeBegin or timeRangeEnd is cleared.

Version 2.0n1 Release Notes

Enterprise RTView

Substitution

B10029: Substitutions on existing panels now always cleared

In previous versions of Enterprise RTView, substitutions set on an existing panel were not always cleared. This has been fixed.

DATASOURCES

E10749: Trend graph objects are now always freed

In previous versions of Enterprise RTView, trend graph objects were not always freed. This has been fixed.

XML Datasource

B10586: XML sources are now read immediately in applets

In previous versions of Enterprise RTView, when a new window was opened in an Applet, new XML sources are not read until the next update pass. XML sources are now read immediately unless the Applet parameter xmldelay is set to true.

SQL Datasource

B10758: 1.3 JVM no longer crashes when ODBC driver is used

In Enterprise RTView version 2.0m, if Java 1.3 was used to run the Display Builder or Display Viewer, and if the initial display had SQL data attachments which used the JDBC-ODBC driver, the Java Virtual Machine would occasionally crash shortly after startup. This has been fixed.

OBJECT LIBRARY

Tables

B10760: New property columnAlignment added for obj_table02

You may now set the column alignment for each column in obj_table02 using the columnAlignment property. To specify the alignment for a column, enter the column name followed by a : then the alignment index. The supported column alignment indexes are 1 = align left, 2 = align center and 3 = align right. If the column name contains a space, it must be enclosed in '. You may specify multiple column alignments separated by spaces. For example a table has the following for the columnAlignment property: 'Units Completed':1 Plant:2 'Units in Production':3 The Units Completed column will be left aligned, the Plant column will be center aligned and the Units in Production column will be right aligned. Columns that are not included in the columnAlignment property will use the default alignment, which is center aligned for columns containing checkboxes and left aligned for all other columns.

Object Grid

B10752: Object grid no longer crashes occasionally

In previous versions, if multiple objects were specified in the objectClassName property of the object grid, selecting an object would occasionally crash. This has been fixed.

Version 2.0m2 Release Notes

Enterprise RTView

Functions

B10750: Cannot edit existing functions

In Enterprise RTView version 2.0m1, the Edit Function Dialog did not allow you to apply changes to existing functions. This has been fixed.

Version 2.0m1 Release Notes

Enterprise RTView

Java Version Dependencies

B10593: Background Properties fix for JDK1.4.2

In previous versions of Enterprise RTView, the Background Properties Dialog fields would not always become enabled when they should when using JDK1.4. This has been fixed.

Image Server

B10696: Image Server servlet no longer bloats tomcat log file

In previous versions of Enterprise RTView, the Image Server servlet caused a stack trace to be printed to the Tomcat log file each time an image was requested. This did not prevent the servlet from functioning properly, but did cause the log file to grow quickly. This problem has been fixed.

Editing Functionality

B10701: File selectors modified to improve initialization speed

In previous releases, the file selectors in the Background Properties, Object Properties and Drill Down Properties dialogs have recursively searched all subdirectories to build the file list. This was causing the dialogs to be very slow to initialize when the current directory had several levels of directories under it. To speed up dialog initialization, file selectors have been modified to only show the files in the current directory and one subdirectory level beneath it.

Substitution

E10709: User-defined column substitutions now supported

Users may now specify any number of columns from an object's tabular data attachment to include in drill down substitutions using the drillDownColumnSubs property. This property is available on all table objects as well and the bar and pie graphs.

Drilldown

B10714: Scale no longer enabled in drill down windows

In previous version of Enterprise RTView, the Scale popup menu item was enabled in drill down windows, but set the scale mode on the main window. This has been fixed.

Functions

B10713: Multiple functions with the same name are no longer allowed

In previous versions of Enterprise RTView, users could define multiple functions by the same name. This caused data attachments to these functions to behave incorrectly. This is no longer allowed. If a previously built display contains more than one function by the same name, only the first one will be added to the display and an error message will print to the console.

DME - Data Historian

B10728: Historian no longer crashes with -daemon with certain objects

In previous versions of Enterprise RTView, bar and pie graphs caused the XML Server to crash when running in daemon mode. This has been fixed.

E10703: History table names are now configurable

The Historian has been enhanced to allow users to specify the names of the HISTORY and HISTORY_S tables.

DME - XML Server

B10717: XMLServer crashes with -daemon if config files have certain objs

In previous versions of Enterprise RTView, bar and pie graphs caused the XML Server to crash when running in daemon mode. This has been fixed.

B10695: Functions and local variables now work better with XML Server

In previous versions of Enterprise RTView, the value of the functions and local variables did not always update correctly when running with the XML Server. This has been fixed.

B10697: Enable Data and Update Rate now work with -xmlserver://

In previous versions of Enterprise RTView, the value of the Enable Data and Update Rate fields in the Options dialog had no effect when running with the XML Server in socket mode. This has been fixed.

E10707: XML Server now serves XML data, using the -xmlredirect option

When running in socket mode, the XML Server now serves XML data if the Redirect XML Data option is selected in the Options dialog of the Display Builder.

E10702: Servlet option has been added to the XML Server

A servlet option has been added to the XML Server, so that clients can get their data through HTTP requests. This allows the Display Viewer Applet to update displays using the XML Server in Socket mode without having to open additional ports in the firewall.

DATASOURCES

SQL Datasource

E10721: Error handling improved for SQL data source

Two new command line options have been added for the SQL data source. The dbretry option causes Enterprise RTView to retry connecting to a database after a failed connection attempt at the specified rate. The dbfailedlimit causes Enterprise RTView to disconnect and reconnect to a database after the specified number of consecutive errors.

E10712: SQL data source now reads a repository file

The SQL data source now reads a repository file to populate the Attach to SQL Data Dialog menu items. If the Get Tables and Columns from Database option in the SQL tab of the Options dialog is selected, the data from the repository will be merged with information queried from the database.

TIBCO Rendezvous Datasource (TibRvView)

E10705: Nested TIBCO Rendezvous messages and embedded XML data supported

Enterprise RTView has been enhanced to support nested TIBCO Rendezvous messages as well as XML data embedded in TIBCO Rendezvous messages.

TIBCO Hawk Datasource (HawkView)

B10710: getAlertData no longer returns ruleBaseState for all alerts

In previous version of Enterprise RTView, the getAlertData method returned the TIBCO Hawk ruleBaseState for all alerts rather than the alertState for each individual alert. This problem has been fixed.

OBJECT LIBRARY

E10258: User-defined colors are now supported

J/Developer users can now use background models and custom objects that have been generated with a custom colordef.dat in Enterprise RTView displays.

Tables

B10718: obj_table03 no longer crashes with invalid column name

In previous versions of Enterprise RTView, obj_table03 crashed if an invalid column name was specified in the data attachment. This has been fixed.

Version 2.0k Release Notes

Enterprise RTView

Builder/Viewer Application Body

E10658: New option for single click drill down and command execution

You may now use single click to drill down and execute commands in the Display Viewer. To enable single click, select Single Click for Drill Down and Commands in the Application Options dialog.

E10026: Background model properties made available

Properties of the background model are now available to set and attach to data. This allows J/Developer and J/Net customers to import their converted models into the background of their displays and set the values of renamed variables or attach them to data.

Drilldown

B10680: Drilldown crash fixed

In previous releases of Enterprise RTView, a crash occurred when drilling down to the same window if a text entry control had focus. This has been fixed.

Licensing

B10653: keys@sl.com now available for requesting license keys

You may now email SL for an Enterprise RTView license key at keys@sl.com.

DME - Data Historian

E10681: New command line argument to suppress loading history data

A new command line argument and applet parameter have been added to the Display Builder and Display Viewer to suppress loading history data into your displays. To suppress history data from the command line, use -nohistory. To suppress history data from the applet parameters, add a parameter named nohistory and set its value to true.

E10676: Periodic purge options added to Historian

An option to periodically delete records from your database has been added to the Enterprise RTView Historian.

E10671: Data retrieval from large RTVHISTORY database improved

In previous releases of Enterprise RTView, when history data was loaded into a graph trace, all data for that object in the history database was loaded. This has been improved to only load as much data as the graph will display.

DME - XML Server

B10552: XML Server enhanced to support socket communication

The XML Server has been enhanced to support socket communication. In previous versions of Enterprise RTView, the XML Server read configuration files to determine which data to serve. It then output an XML file to be used by the Display Builder and Display Viewer. This functionality is still supported. If running the XML Server in socket mode, data requests are sent from the Display Builder and Display Viewer via the socket and the appropriate data is returned. No configuration files are necessary. See the XML Server section of the documentation for more information on using the XML Server in socket mode.

DATASOURCES

XML Datasource

E10427: History data is now queried through the XML Server

When running the Display Builder, Display Viewer or Display Viewer Applet with the XML Server using the socket option, history data is now queried through the XML Server. In previous versions of Enterprise RTView, history data was queried directly from the database. When running with the XML Server without the socket option, the history data is loaded directly from the database as before.

SQL Datasource

B10668: Filter field bug in Attach to SQL Data dialog fixed

In previous releases, the Filter field in the Attach to SQL Data dialog and the Column field in the Attach to Function Data dialog did not always reset properly when the Reset button was pushed. This has been fixed.

TIBCO Hawk Datasource (HawkView)

E10679: New option to request existing Hawk Alerts

In previous released of Enterprise RTView, only alerts that were generated after a data attachment was made were shown in the display. An option has been added to the TIBCO Hawk Method and Alerts tab of the Option dialog to request existing alerts.

OBJECT LIBRARY

E10645: New property, borderPixels, added to Graphs ad Tables

The objects on the Tables and Graphs tabs of the Object Palette all have a new property, borderPixels. This property controls the amount of space between the edge of the object and its contents. The size of some of these objects in existing displays may adjust slightly due to this change.

Tables

E10663: The Standard Table, obj_table02, now supports editing

The Standard Table, obj_table02, now supports editing. Edited data is made available to a Java class which can be customized by the user to update their systems.

Object Grid

B10649: Object grid drilldown bug fixed

In previous releases of Enterprise RTView, the substitutions passed down from an object grid to a drill down window were incorrect if the object grid was sorted. This has been corrected.

Graphs (General)

B10669: valueDivisor property made consistent for all graphs

In previous releases, the valueDivisor property did not behave the same in all graphs. This has been corrected. The valueDivisor is now applied to the traces as well as yMinValue and yMaxValue.

Trend Graphs

E10662: Additional date/time formats supported in trend graphs

Two new date/time formats are now supported for the *valueTable properties for the trend graphs. The new supported formats are yyyy-mm-dd hh:mm:ss (2004-01-09 12:00:00) and mm/dd/yyyy hh:mm:ss (01/09/2004 12:00:00).

Version 2.0j Release Notes

Enterprise RTView

General

E10485: Implemented Image Server for non-applet thin client

The Enterprise RTView Image Server allows users to deploy displays using a browser without applet code being downloaded or executed on the client.

Application Framework

E10289: Support multiple display panels in main window

Multiple display panels are now available in the Display Viewer Application, Display Viewer Applet and Image Server. This allows users to deploy several displays arranged in separate panels within a single window.

Applet Functionality

B10644: SL Logo panel moved to bottom of Display Viewer

The SL logo panel has been moved below the display in the Enterprise RTView Display Viewer Application and Applet.

B10625: The default display size changed from 570x428 to 576x432

The default display size has been changed from 570x428 to 576x432.

Substitution

B10628: Table data cleared when substitutions change.

In previous versions of Enterprise RTView, table data was not cleared in an existing window before new drill down substitutions were applied. This has been fixed.

Drilldown

B10603: Close child windows invoked from a drill down window.

Child windows, invoked from within a drill down window, will now be closed when the originating window is closed. Since child windows depend on both path information and substitutions contained in the parent window, they must be closed when the parent is closed.

E10447: Support drill down branching based on a function result

The drill down functionality has been enhanced to include a drill down branch function. If a function is specified, the return value from this function will be appended to the drill down file name. This allows you to drill down to different displays from the same object, depending on the return from this function.

Functions

E10608: Enhanced the Count Unique Values function to use sample values

The Count Unique Values function has been enhanced to allow the user to provide a Value List column and a Restrict To Value List flag.

E10609: Added a Sum By Unique Value function.

A new function has been added, Sum By Unique Values. This function provides a way to subtotal the values in table column, organized in a table according to a corresponding unique values column.

B10611: The Filter By Row function works for any column in table

The previous version of the Filter By Row function only worked if the Filter Column was the first column in the referenced Table. This has been corrected.

E10605: Added Replace Value function

A new function has been added, Replace Value. This function looks up the specified value in the associated list of replacement values. If found, the replacement value is returned. A flag allows you to control whether the original value or no value is returned if no match is found.

E10599: Added Column(s) field to Attach to Function Data dialog

The Attach To Function Data dialog has been enhanced to include a Column(s) field. You may use this field to specify the column(s) from the selected function to use in your data attachment.

E10620: Function list in Edit Function dialog re-organized

The list of functions in the Edit Function dialog has been reordered. The functions are organized into 2 groups. The functions in the first group act on scalar data and the functions in the second group act on tabular data. Within each group, the function names are alphabetized.

TME - Transaction Message Monitor

E10623: Enhanced Transaction Monitor to get id from XML in message

The Transaction Monitor now supports using data nested in xml data within a TIBCO Rendezvous message as the tracking id.

DATASOURCES

XML Datasource

E10624: Performance of the XML parser improved

The performance of the XML parser has been significantly improved.

SQL Datasource

B10036: SQL data attachments interpret BIT SQL type as boolean

Data of type BIT returned from an SQL query is now displayed as a boolean.

E10601: Added Static Data check box to Attach to SQL Data dialog

A Static Data check box has been added to the Attach to SQL Data dialog. If selected, the data for the specified data attachment will only be queried once. This is useful for data that will not change in your database while you are running Enterprise RTView.

TIBCO Rendezvous Datasource (TibRvView)

E10621: Opaque message values supported

TIBCO Rendezvous message data of type TibrvMsg.OPAQUE can now be displayed.

TIBCO Hawk Datasource (HawkView)

E10606: Added Agent field to RTViewDs getPlatform return

The column Agent has been added to the RTViewDs getPlatform return. It returns a string containing the name of the TIBCO Hawk Agent.

E10607: Added Time to RTViewDs getAlertData return

The column Time has been added to the RTViewDs getAlertData return. It returns a string containing the time that the TIBCO Hawk alert was generated.

SAMPLES (DEMOS)

Hawk Sample Displays

E10392: Sample screens for Solaris Hawk Agents included

The hawkdisplays directory now contains sample displays that show data from Solaris microagents. To access this display for your agent, open sample_agent_tables.rtv and drill down on your Solaris agent.

E10272: Illustrate drill down branching using Agent operating system

The Hawk Displays examples have been enhanced so that drilldown to agent detail results in different displays based on the Agent OS information. A Replace Value function called branch_on_platform is specified as the Drill Down Branch Function. The value returned from the function is appended to the drilldown string. The specified drilldown target is sample_detail_agent.rtv. If the RTViewDS getPlatform returns Windows NT, _winnt is appended to the drilldown string and sample_detail_agent_winnt.rtv becomes the drilldown target. If the RTViewDS getPlatform returns SunOS, _sunos is appended to the drilldown string and sample_detail_agent_sunos.rtv becomes the drilldown target. If RTViewDS getPlatform returns a value not listed in the branch_on_platform function is not listed in the Replacement Values field of the function, the drill down target remains sample_agent_detail.rtv.

OBJECT LIBRARY

E10636: Legend size and borders consistent on pie, bar and trend graphs

The graphs have been enhanced to have consistent legend and border sizes.

E10637: Label visibility on tables and graphs independent of bgVisFlag

The visibility of the label on table and graph objects is no longer dependent on the bgVisFlag. To remove the label, you must now remove the label string in the object properties window. Displays created with previous releases are automatically converted.

Tables

E10402: Added columnDisplayNames to the standard table

The standard table has been enhanced to include the columnDisplayNames property which allows you to modify the name displayed in the column headers.

Graphs (General)

E10472: Enhanced yAxisAutoScaleFlag to provide way to anchor graph axis

In the bar and trend graphs, the yAxisAutoScaleFlag has been changed to yAxisAutoScaleMode, which has 3 possible values; Off, On, and On - Include Min/Max. On and Off behave as before. On - Include Min/Max is an enhancement which causes the scaled min/max range to include the yValueMin and yValueMax property values in the autoscale. This provides a way to anchor the axis in your graph.

Bar Graphs

B10561: Lag in mouseOverHighlight fixed

In previous versions, when dragging the mouse over the bars in a bar graph that has the mouseOverHightlightFlag selected, the next bar is highlighted before the previous bar is unhighlighted. This has been corrected.

Version 2.0i Release Notes

Enterprise RTView

General

E10560: Changes to RTV file format

The display files written by the Display Builder use XML format. Since XML uses " (the double quote character) to delimit data fields, special handling is required when " appears in a data field. In previous releases, if a " appeared in an object property (in an object's label string, for example), it would be saved in the display file as a two character sequence: \" . However, this does not conform to standard XML format. With this release, the standard XML escape for " will be used. An XML escape begins with an ampersand &, followed by a short sequence of alphabetic characters, and ends with a semicolon. The character sequence in the escape for " is quot. As of this release, display files written by the Display Builder will include a version number. When a display is loaded, the XML parser looks for this version number. If it is found, the parser will expect the XML escape for all " characters that appear in object properties. If the version is not found, the parser expects the old \" sequence. This provides support for displays created in previous releases. With this release, XML escapes will also be used if the &, <, or > characters appear in object properties.

Java Version Dependencies

B10452: Selection of table objects with JDK 1.4

In previous versions of Enterprise RTView, users running with JDK1.4 had to select the edge of table objects to select empty tables. This has been fixed.

Applet Functionality

E10505: Updated version of jdk plugin downloaded for swing applets

Swing applets require a Java plug-in version 1.3.1_02+. When run in Internet Explorer, the Swing applets included on the deliverable will prompt the user and download the plugin if a Java plugin-in version of 1.3.1_02 or greater is not found. When run in Netscape, they will prompt the user to download the plugin if a Java plugin-in version of 1.3 or greater is not found.

Builder/Viewer Application Body

E10234: Printing added to Enterprise RTView Display Builder and Viewer

Displays can now be printed from the Enterprise RTView Display Builder and Display Viewer. To print a display, select Print from the File menu.

Editing Functionality

B10317: List of images now available where appropriate

The Background Properties and Object Properties dialogs have been updated to allow you to select from a list of images, in addition to being able to type an image name in.

Substitution

B10527: Substitution handling now allows for : in substitutions

The substitution handling has been enhanced to allow : in substitution values.

B10528: Substitution handling now allows for spaces in substitutions

The Historian and XMLServer have been enhanced to allow spaces in substitution values.

Drilldown

B10479: Display names in Drill Down Properties dialog now alphabetical

The display names in the Drill Down Properties dialog are now listed in alphabetical order.

Command Execution

E10543: System Commands have been added to Enterprise RTView

System commands have been added to Enterprise RTView. These commands allow you to issue DOS or Shell commands, url commands and user defined commands as well as play sounds and open html files in a browser. You may execute these commands manually or configure the objects in your display to automatically execute these commands on a threshold.

E10481: System commands available for threshold and manual execution

You may now configure System commands for threshold and manual execution. If your version of Enterprise RTView supports TIBCO Hawk and TIBCO Rendezvous, these commands are also available for both threshold and manual execution.

Functions

E10589: New Join, Select, DateTime, and Duration functions

Several new functions have been added to RTView. Each function and its arguments are described in the Function Dialog that is used to select the function. The "Join" function is used to do standard Inner Join of two tables. The left and right tables and join column names are provided by the user as arguments. The "Select" function provides a convenient means of selecting a single column from a table. The "DateTime" function is used to convert a long integer date/time value into a formatted textual date/time string. The format argument allows the user to specify the format of the converted string. If not format is given, the default format results in a string of the form "08/30/03 06:35 AM". The "Duration" function takes a Duration argument in milliseconds and returns a text string representing that Duration. If no Duration Format is specified, the string is returned in the form "15:32" (hours:minutes). The Duration Format may contain any of the characters "ds.", indicating that days, seconds, or milliseconds are to be included in addition to hours and minutes in the returned string.

E10595: Get Substitution function added

A new function has been added, "Get Substitution", which will return the value currently assigned to a substitution parameter. The function takes one string argument, such as "$agent", and returns the value for that substitution. A label can be attached to this function to display the current substitution value.

E10562: Filter by Row function added

The "Filter By Row" function has been added. This function provides the same filter functionality that is available in most data source attachments. You specify the Filter Column Name and the Filter Value. If these match, then the corresponding row is copied from the source Table to the output Table.

B10563: The "Count" function has been modified to return INTEGER

The "Count" function was incorrectly returning a DOUBLE value in the previous version. It now correctly returns an INTEGER.

E10480: Percent and Combine Tables functions added

The following Function Types have been added and are now available in the Edit Function dialog: 1. Percent This Percent function will compute the percentage of the given Value, using the range defined by Min Value and Max Value. All three arguments must be numbers. The percentage is returned as a number between 0 and 100. The calculation performed is: (Value/(MaxValue-MinValue)) * 100. 2. Combine The Combine function combines Table 1 and Table 2 into a single table. Both input tables must have the same number of rows. The combined table will contain all the columns from Table 1 followed by all the columns from Table 2, and will contain the same number of rows as the input tables. The rows in the combined table will be in the same order as in the input tables. The row names from Table 1 are used as the row names in the combined table.

DME - XML Server

B10588: Fix for spaces in history configuration file names

In versions of Enterprise RTView prior to 2.0i1, the XML Server did not handle spaces correctly in the path for history configuration files. This problem has been fixed.

TME - Transaction Message Monitor

B10551: Id fields in TRANSACTIONS.ini are no longer overwritten

In previous releases, id fields specified in TRANSACTIONS.ini were sometimes overwritten. This has been fixed.

E10440: Permit RV messages coming from different service ports

Users can now specify transport information for each transaction definition and for each message defined in TRANSACTIONS.ini. Two new keywords have been added to TRANSACTIONS.ini to support this: transTransport service network daemon msgTransport service network daemon If no transports are specified for a transaction definition or a message in the TRANSACTIONS.ini file, all messages will be monitored using the service, network and daemon options specified in RVTMOPTIONS.ini or on the command line. If the service network and daemon are specified for a transaction definition, all messages in that definition will be monitored using those settings unless the service network and daemon have been specified for that message. A "-" must be specified for any options left blank. For the following transaction definition, the first and last messages will be monitored using service port 5555. The second message will be monitored using service port 7777. startBusTransaction 'New Service Order' Siebel RoadRunner nso transTransport 5555 - - msg SL.NEW_SERVICE_ORDER.BEGIN.SIEBEL.ORIG DATA msg SL.NEW_SERVICE_ORDER.BEGIN.SIEBEL.CANONICAL DATA msgTransport 7777 - - interface NSO_Siebel-Oracle-IM1 IM1 msg SL.NEW_SERVICE_ORDER.BEGIN.SIEBEL.ORACLE DATA interface NSO_Siebel-Oracle-IM2 IM2 endBusTransaction

DATASOURCES

B10524: Bug with selecting the only first column of data has been fixed

In version 2.0h1, when a data attachment specified the first column of data or specified a subset of the columns in the same order they were returned from the datasource, all columns of data were displayed. This has been fixed.

XML Datasource

B10544: Bug displaying data from static xml source with filter fixed

In previous version of Enterprise RTView, data attachments to static XML Sources using filters did not return any data. This has been fixed.

E10498: XML Source Definitions have been enhanced

The XML source definitions available on the XML tab in the Options dialog have been enhanced to allow the user to specify more options. An XML source is now defined by the specifying the following fields and options: 1. XML Source Name This field specifies the name of the XML source. The name is used to attach an object to this source in the Attach to XML Data dialog. The name can correspond to the name or URL of an XML file or, by specifying the XML Source Path (see below), it can be a symbolic name or 'alias'. 2. XML Source Path This field specifies the path to the XML file for this source. If this field is left empty, then the XML Source Name is used as the path. The path can be a relative or an absolute file path, or it can be a URL. The path can contain substitutions. 3. Use XML Source Prefix If this option is selected, then the XML Source Prefix (defined on the XML tab of the Options dialog) is prepended to the XML Source Path before reading the XML file. This option is selected by default. 4. Static If this option is selected, the XML source is read only once, at startup. Otherwise, the XML source is read on each update cycle. This option is deselected by default. 5. Contains Substitutions This option can be used to control whether or not an XML source is read. The Display Builder reads each XML source in order to populate the Attach To XML Data dialog menus, even if no objects are attached to it. If the source can't be read, its name is displayed in yellow in the XML tab and in the Attach to XML Data dialog, and an error message is printed on the console. Normally, the Display Builder will read all XML sources at startup, and after an XML source is added or edited. But, if this option is selected, the Display Builder will not read the XML source unless substitutions are defined which apply to the XML Source Path.

SQL Datasource

B10175: Multiple word substitutions now supported for SQL

Multiple word substitutions are now supported in the filter for SQL data attachments.

SAMPLES (DEMOS)

E10032: Tutorial Display have been moved to demos/tutorials

Tutorial displays that were previously included in the rtview/xmldisplays directory have been moved.

E10433: Features and Tutorial Displays have been added to demos

Displays that outline basic features of SL-GMS Enterprise RTView have been added to the demos/features directory. All features displays are accessible from demos/features/alldisplays_features.rtv. Tutorial displays that describe how to use specific objects and product features have been added to the demos/tutorials directory. All tutorials are accessible from demos/tutorials/alldisplays_tutorials.rtv

OBJECT LIBRARY

E10509: Antialiasing may now be toggled in the Options Dialog

An option to enable or disable antialiasing has been added to the General Tab of the Options Dialog. This option smoothes the graphics in the display. Antialiasing is enabled by default.

Links

E10211: Enhanced link drawing has been added

The Links tab features three link objects. The Direct link draws a straight line between the objects it connects. The Orthogonal link draws a line at right angles between the objects it connects. The Direct Offset link attaches to the object at a right angle, but draws a diagonal line for the remainder of the link. Once a link is in your display, you may switch between the different types of links by setting the linkPathType property. To connect objects, select a link from the Links tab. When you select an object from the Links tab, a green CONNECT tool tip will appear indicating that the application is in Connect mode. Click on two objects in your display to connect them. To cancel Connect mode, right-click.

Tables

B10570: Bug in combining a column filter with a Hide Rows filter fixed

In previous versions of Enterprise RTView, the table would crash if the filter properties contained a filter which applied to a column and a filter that uses Hide Rows.

Graphs (General)

B10550: Two new properties, timeShift and timeRange, in trendgraphs

The following improvements have been made to the graph objects obj_trendgraph01 and obj_trendgrap02: timeShift: This property defines the interval, in seconds, at which the time axis of the graph should be shifted to the left. A value of zero indicates that the graph should be shifted on every update cycle. With this release, a value of -1 for the timeShift property indicates that the trace should shift only when necessary to plot new points. That is, the trace will not shift until new data is received. The timestamp at the right edge of the trace will correspond to the timestamp of the most recently plotted data point. timeRange: This property indicates the time range of the graph, in seconds. Data with timestamps outside of this range is not plotted. With this release, a value of -1 for timeRange indicates that all available data should be plotted. This can be useful, for example, for plotting all the data stored in an SQL database table. (Note: The maxPointsPerTrace property limits the number of points that can be plotted on a trace. This property's default value is 1000).

E10416: New property drawHorizontalFlag added to bargraphs

The drawHorizontalFlag property has been added to the bar graph. By default the drawHorizontalFlag is not selected and the bars in the graph draw vertically. If the drawHorizontalFlag is selected, the bars in the graph draw horizontally.

Bar Graphs

E10430: New property mouseOverHighlightFlag added to bargraphs

The mouseOverHighlightFlag property has been added to the bar graph. When the mouseOverHighlightFlag is selected, each bar highlights when the mouse is over it.

Input Objects

E10239: Input objects added to palette

Control objects have been added to Enterprise RTView. These objects are available on the Controls tab in the Object Palette and include text fields, buttons, checkboxes, sliders, list boxes and combo boxes. To learn more about control objects, open the display file controls.rtv (located in the demos/tutorials directory) for an example of how control objects may be utilized in a display.

Distribution

E10531: ERTView directory structure has been reworked

The directory structure of the Enterprise RTView deliverable has been restructured. The deliverable consists of the following files and directories: MM* Master Media Number (used by SL Technical Support) R* Configuration Files (used by SL Technical Support) bin Directory contains scripts and executables demos Directory contains sample screens and examples docs Directory contains documentation lib Directory contains object libraries (*.jar) rtv_init* Initialization scripts shortcuts Directory contains shortcuts for Windows Platforms When upgrading from a previous version of SL-GMS Enterprise RTView it is recommended that install in a new directory rather than installing in the same directory as your previous installation.

E10522: Shortcuts (Available For Windows Platforms Only)

Shortcuts can be used to start Enterprise RTView component, open command windows and run data simulators. In order for shortcuts to work the environment variable RTV_HOME must be set globally on your system. If you did not define RTV_HOME globally, see the Setup section in the Enterprise RTView User Guide for instructions. The Enterprise RTView Documentation, DOC.html, is located in the docs subdirectory of your RTView installation directory.

Documentation

D10540: Search engine added to the Enterprise RTView documentation

A search engine has been added to the Enterprise RTView documentation. To search the documentation, click on the Search Documentation link in the navigation frame.

Version 2.0h Release Notes

Enterprise RTView

Applet Functionality

E10428: Javascript methods now available

Three methods have been added to Enterprise RTView for use with Javascript. These methods can be called on the Display Viewer Applet from Javascript. The method setRTViewName(String displayName) sets the display in the main window. The method addSubstitution(String subString, String subValue) adds a substitution definition to the main display. This will cause all of the substitutions in all windows to be reevaluated. If the substitution string is already defined, the corresponding value will be replaced with the new value. The method removeSubstitution(String subString) removes a substitution definition from the main display. This will cause all of the substitutions in all windows to be reevaluated.

Background Property Dialog

E10435: Gradient fill in background models enabled

A Gradient Fill check box has been added to the Background Properties Dialog. To apply a gradient to the background model check the check box and select OK or Apply.

Substitution

B10302: Substitutions no longer removed when another display opened

In previous versions of Enterprise RTView, some substitutions added during an editing session on a display would be removed when another display was opened. This problem has been fixed.

Drilldown

E10335: Drilling down into existing window now raises that window

If a drill down action re-uses a window that is already open, the window will be raised to the front so that it is visible. If the drill down window is a Frame, it will first be de-iconified if necessary.

E10336: Option to specify Frame or Dialog now available

By default, the windows used to display drill down targets are "Dialog" windows. These are always stacked in front of the main window, and cannot be iconified. There is now an option to instead use "Frame" windows for drill down. Frame windows can be stacked behind or in front of the main window, and can be iconified. The option is selected by any of the following: 1. From the Options Dialog available under the Tools menu: On the General tab, a checkbox has been added with the label "Drill Down Windows Always on Top"". When this box is checked (the default), Dialog windows are used to display drill down targets. When this box is unchecked, Frame windows are used. 2. From the command-line: To use Frame windows for drill down, specify the "-nodialog" option. Limitation: This option is ignored in the AWT version of the Display Viewer Applet, so Dialog windows are always used for drill down.

E10218: New drilldown options and dialog now available

Several new options have been added for drill down targets. You may now open drill down displays in the same window as the source for the drill down, or re-use a new window for all of your drill downs. The new functionality allows you to control the data shown in an object in your display by drilling down on another object in the same display. A dialog has been added to set these properties. To see an example of the new drill down functionality, go to your Enterprise RTView installation and open rtview\xmldisplays\tutorial_dd.rtv.

Functions

E10266: Ability to define functions of data variables now provided

The new Functions feature allows you to perform calculations on your data before displaying it in Enterprise RTView. For example, you can create a function that will calculate the average value of a table column and display the result of the function. The Functions dialog, available under the Tools menu, allows you to create functions. To attach an object in your display to a function you've created, select Function from the Attach To Data popup menu. To see the new Function feature used in a display, go to your Enterprise RTView installation, and open rtview\xmldisplays\tutorial_function.rtv.

DME - Data Historian

E10385: VAR_NAME field size for creation of tables increased to 100

The VAR_NAME field in the HISTORY and HISTORY_S tables is now created with an initial size of 100. In previous releases, it was created with an initial size of 80, which was causing long variable names to be clipped.

TME - Transaction Message Monitor

E10397: Transaction Monitor now supports multiple nesting levels

The Transaction Monitor now supports multiple levels of nesting for id fields. To specify a nested id field, include all parent fields and the id field separated by "::". For example, parent1::parent2::id.

E10327: Specification of time limit for transactions provided

A new options for expiring transactions has been added to the Transaction Monitor. You may now specify a time limit for transactions. Once a transaction has exceeded the specified limit, it will expire. See E10348 for more information.

E10328: Specification of active transactions now implemented

In previous versions of the Transaction Monitor, a single transaction limit was applied to all transactions. You may now specify the number of active transactions allowed and the time limit for active transactions per transaction definition.

E10322: Summary tables now display counts for various transactions

In previous versions of the Transaction Monitor, the summary tables only contained a count of completed transactions and interfaces. In the current version, the transaction summary table now contains counts for active, completed and expired transactions. The Count column in the transaction summary table has been renamed to Completed. The interface summary table now contains counts for started, processing, completed and expired interfaces. The count column in the interface summary table has been renamed to Completed.

E10323: Transaction output now split into three separate files

In previous versions, the Transaction Monitor output all transaction and interface information into a single file, transactions.xml. In the current version, the information has been split into 3 files. You may now configure which summary and detail tables will be output by the Transaction Monitor. The table names in the output files have been changed. The summary file, tm_summary.xml, contains summary information for transactions and interfaces. It contains 2 tables: TransSummary IntSummary The TransSummary table replaces transactions.xml BusinessTransactionSummary and the IntSummary table replaces transactions.xml TransactionInterfaceSummary. The active transaction detail file, tm_detailactive.xml, contains detail information for all active transactions and their interfaces. It contains 2 tables: TransDetailActive IntDetailActive The TransDetailActive table replaces transactions.xml BusinessTransactionDetail for all active transactions and IntDetailActive replaces transactions.xml TransactionInterfaceDetail for all active transactions. The finished transaction detail file, tm_detaildone.xml, contains detail information for all completed and expired transactions and their interfaces. It contains 2 tables: TransDetailDone IntDetailDone The TransDetailDone table replaces transactions.xml BusinessTransactionDetail for all completed and expired transactions and IntDetailDone replaces transactions.xml TransactionInterfaceDetail for all completed and expired transactions. In the summary tables, the Count column has been renamed to Completed. See E10322 for more information. In all tables the Business Transaction column has been renamed to Transaction Name.

E10324: All command line options now provided in file RVTMOPTIONS.ini

All the command line options, are now available as options in RVTMOPTIONS.ini.

E10326: Size/latency fields for incomplete transactions now update

Previously, the size and latency fields for incomplete transactions and interfaces were always 0. These have been changed to update with the latest values at the time the table is output.

DATASOURCES

XML Datasource

E10282: Requests to open files with HTTP connect using single session

All requests to open files using HTTP now connect using a single HTTP session. The session id is obtained from the first HTTP request made and used in all subsequent requests.

TIB/Hawk Datasource (HawkView)

E10333: Error in handling arguments for Hawk subscriptions corrected

An error in the handling of Hawk subscriptions containing boolean or float arguments has been corrected.

E10459: Add $agent to the agent drop down in Attach to Data Dialog

The substitution $agent is commonly defined as a substitution when attaching to TIB/Hawk data. $agent has been added to the agent list in the TIB/Hawk Attach to Data Dialog as a convenience.

E10332: Users can now set expiration time for cleared alerts

The user may now set an expiration time for cleared alerts. For example, if the expiration time is set to one minute, all cleared alerts will be removed from Enterprise RTView once a minute. This option may be set using the Options dialog available from the Tools menu. If no expiration time is set, cleared alerts will never be removed.

E10329: Multiple copies of RTViewDs data now stored only once

In previous versions, multiple copies of the same RTViewDs data were stored to the Historian. In the current version, each piece of RTViewDs data will be stored only once.

E10295: Adding Agent Groups through Tool Options Dialog now enabled

TIB/Hawk Agent Groups may be defined in the TIB/Hawk Agent Groups tab of the Tools Options Dialog.

E10277: Agent Groups automatically created for each TIB/Hawk cluster

Agent Groups are automatically created for each TIB/Hawk cluster.

SAMPLES (DEMOS)

E10476: Add sample screen that navigates to all sample displays

A sample screen, rtview/alldisplays/alldisplays.rtv, has been added to the distribution. This is the perfect starting point for first time users. From this displays you can navigate to most other sample displays included on the deliverable.

XML Java Server Pages Demo (JSP)

E10297: jspdisplays demo enhanced to preview limited input capability

The rtview/jspdisplays demo now includes a page containing input objects which can be used to set variables using a URL command. It is a preview of input functionality that will be documented and improved in a subsequent release.

OBJECT LIBRARY

E10276: Display of aggregate status/alert information now provided

An object that displays aggregate status or alert information has been added to the indicators palette. The object, obj_aggalertlava, consists of two rectangles. The top rectangle displays the highest alert color for the aggregate. The bottom rectangle displays the percent of objects in the aggregate at each alert level. This object may be attached to data that returns discreet statuses or alert levels.

E10199: Objects in gmsjmodels.jar have been significantly improved

The objects in gmsjmodels.jar have been significantly improved. There are some new rectangle objects added, which provide gradient fill capability, user-defined images and color dynamics. The objects allow you to specify images and background colors to be displayed on user specified thresholds. The objects are provided in the General Tab of the Object Palette. To see the new General objects used in a display, go to your Enterprise RTView installation, and open rtview\xmldisplays\tutorial_function.rtv.

Tables

B10316: autoResizeMode property renamed to autoResizeFlag

The autoResizeMode property in obj_table02 and obj_tabl03 has been renamed to autoResizeFlag. Property names in display files created with previous versions of Enterprise RTView will automatically be converted.

B10314: Two new filter options added to table filters

Two new filter options, top() and bottom(), have been added to the table filters. The top() filter applies the selected action to the top x rows in the table. For example, to apply the filter to the top 10 rows, enter top(10). The bottom() filter applies the selected action to the bottom x rows in the table. For example, to apply the filter to the bottom 15 rows, enter bottom(15). These options are available in the Filter Properties dialog.

B10315: filterProperties no longer applied to wrong column

In previous versions of Enterprise RTView, the filterProperties in obj_table02 would be applied to the wrong column if the columns were reordered by dragging the column header. This has been fixed.

E10292: Arrow added to obj_table02 to indicate sort location

An arrow has been added to obj_table02 to indicate which column is being sorted and whether it is being sorted ascending or descending. You may toggle the visibility of the indicator with the showSortIconFlag.

E10331: Filter Properties dialog added to configure filterProperties

A dialog has been added to configure the filterProperties for the obj_table02. The Filter Properties dialog allows you to select from the available filters and associated actions.

E10232: Copy and paste capability provided for table cells

You may now copy data from a table in your display to the system clipboard. Two new items have been added to the popup menu for the tables, Copy Table Values and Copy Cell Value. Copy Table Values will copy the entire table to the clipboard and Copy Cell Value will copy the contents of the selected cell.

Graphs (General)

E10449: New property added to set legend background color

A new property, legendBgColor, has been added to obj_pie, obj_trendgraph02 and obj_bargraph. Use this attribute to set the background color of the legend. The bgColor attribute no longer controls the background color of the legend. Displays created with previous versions of Enterprise RTView will automatically be updated to work with the new property.

E10450: Increasing draw3dDepth property no longer a problem

In previous versions of Enterprise RTView, increasing the draw3dDepth property could potentially cause the top of stack bars to be drawn incorrectly if the draw3dFlag was off. This has been fixed.

Trend Graphs

E10321: Improvements to obj_trendgraph01 and obj_trengraph02

The trendgraphs (obj_trendgraph01 and obj_trendgraph02) have been modified. The following improvements were made to obj_trendgraph01 (single-trace time trend graph); 1. The autoscale, legend, and cursor features were added. Previously, these were only available only in obj_trendgraph02. 2. The field valueDivisor was added for the trace value. The following improvements were made to obj_trendgraph02 (multi-trace time trend graph); 1. The maximum number of trace counts possible in a graph has been increased from 4 to 10. 2. The field valueDivisor was added for each trace value. 3. A new flag, yAxisMultiRangeFlag, was added. Checking this flag will cause the graph to draw separate y-axis range labels for each trace. In addition, if the yAxisAutoScaleFlag is also checked, a separate y-range is computed for each trace. 4. Pressing the left mouse button while positioned over a trace's legend string or color swatch makes all other traces on the graph temporarily invisible. This can be helpful in locating a trace when several traces overlap. The other traces become visible again when the mouse button is released.

Distribution

E10451: Scripts modified to search local dir for jars and then in lib

The run_builder, run_viewer, run_historian, run_xmlserver scripts have been modified to search first in the local directory for necessary jar files and then in the installation lib directory.


 
Enterprise RTView contains components licensed under the Apache License Version 2.0.

 

Treemap Algorithms v1.0  is used without modifications and licensed by MPL Version 1.1. Copyright © 2001 University of Maryland, College Park, MD

 

Datejs is licensed under MIT. Copyright © Coolite Inc.

 

JCalendar 1.3.2 is licensed under LGPL. Copyright © Kai Toedter.

 
JMS, JMX and Java are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. They are mentioned in this document for identification purposes only. 

 
SL, SL-GMS, GMS, Enterprise RTView, SL Corporation, and the SL logo are trademarks or registered trademarks of Sherrill-Lubinski Corporation in the United States and other countries. Copyright © 1998-2009 Sherrill-Lubinski Corporation. All Rights Reserved.