Table of Contents KBS eservice Center (http://www.kbsreporting.com/support)... 3 KBS.NET Download Agent... 4 KB_SQL ADO.NET Data Provider... 5 KB_SQL JDBC Driver... 6 2924 - Prepared Statement should not pass SQL on executequery() method... 6 2923 - JDBC using multiple statements fails... 6 2922 - Error in JDBC Driver when using prepared statements... 6 KB_SQL ODBC Driver... 7 2925 - Enh: Modify ODBC Setup to allow specification of Communication Buffer size:... 7 QREPro Desktop... 8 KB_SQL Server... 9 2930 - Bug: Correct variable scoping rule so that SITE variables are preserved... 9 2604 - Bug:Outer Join query corrected Index table usage... 9 2928 - Enh: Allow display/print of INDEX table definitions separately from the master table... 9 2929 - Enh: Allow customization of the QUERY TRANSACTION DETAIL report... 9 2927 - Enh: Generate Transaction Log entry for queries that RUN but abort with Error... 9 2926 - Enh: Allow FINAL event to process regardless of rows selected... 10 2921 - Bug-Transaction Log options confusion... 10 2920 - The COST_CEILING parameter allows only 1-12 digits while hard coded limit allows for 1E18.... 11 2919 - Bug: Allow Transaction Log Maintenance Days = 0... 11 2918 - Bug: CHKSTATS fails when Table Statistics agent is started without user information.... 11 2917 - Bug: With rapid connections using same/similar query errors can occur.... 11
2916 - Bug: Multiple SQL commands in one Query package are failing.... 11 2915 - Bug: Table Statistics Compiler exit without cleanup on error.... 11
KBS eservice Center (http://www.kbsreporting.com/support) The KBS eservice Center is the first place to go when looking for FAQs, Software Downloads, Product Documentation, and more. Anonymous accounts are allowed to search public answers. Client accounts are allowed more privileged access based on having an active maintenance agreement.
KBS.NET Download Agent The KBS.NET Download Agent automates the local save of File Image data from the Server to a local (or network) drive. There are no changes in this release.
KB_SQL ADO.NET Data Provider The KB_SQL ADO.NET Data Provider connects Microsoft.NET applications to KB_SQL Server. There are no changes in this release.
KB_SQL JDBC Driver The KB_SQL JDBC Driver connects Java applications to KB_SQL Server. 2924 - Prepared Statement should not pass SQL on executequery() method The prepared statement model was incorrectly allowing the use of the executequery() method to pass a SQL statement. This parameter usage was ambiguous since the SQL was already passed on the prepared statement methods. We have disabled the use of the executequery() method with a SQL text parameter in the context of prepared statements. 2923 - JDBC using multiple statements fails One of the benefits of using the prepared statement model is the ability to re-use a SQL statement, providing new sets of parameter values at runtime. A problem was introduced that caused a premature close of the active statement, effectively disabling support for the re-use of a prepared statement. This problem has been resolved. 2922 - Error in JDBC Driver when using prepared statements There was a change in the previous release of the JDBC Driver (2015.10.11) that allowed the communication buffer size to be specified as a parameter. The fetchsize() method was added as well as a connection string option to set the communication buffer size. There was a mistake that caused the statement-specific value to be ignored when creating a KBSRowsetFrame() message package to exchange data between the JDBC Driver and the KB_SQL Server. This could have caused errors related to a zero (0) sized communication buffer. The problem has been resolved.
KB_SQL ODBC Driver The KB_SQL ODBC Driver connects Windows applications to KB_SQL Server. The KB_SQL ODBC Driver is available in 32 and 64-bit versions. Both versions can support Unicode if enabled by the application and by the Server (available for InterSystems Cache only). 2925 - Enh: Modify ODBC Setup to allow specification of Communication Buffer size: The ODBC Setup will now allow the specification of the Communication Buffer size. The default value is 20, for 20K, or 20480 bytes to be used when exchanging data with the KB_SQL Server. In cases where there is a large result set being pulled from the server, a larger communication buffer size has shown some performance improvement. Note that acceptable sizes are between 20 and 60K. Note also that the value can be specified on the connection string using the communication buffer parameter setting as shown in the examples below: 32-bit Driver Example: Driver={KB_SQL ODBC 32-Bit Driver};server=KB_SQL;communicationbuffer=30;uid=<uid>;pwd=<pwd>;host=<host>;tcp_port=<port>; 64-bit Driver Example: Driver={KB_SQL ODBC 64-Bit Driver};server=KB_SQL;communicationbuffer=30;uid=<uid>;pwd=<pwd>;host=<host>;tcp_port=<port>;
QREPro Desktop QREPro Desktop provides a graphical user interface to all of the KB_SQL Reporting features. You can browse the data dictionary. You can create, edit, and deploy KB_SQL Queries and Reports. It provides a rich experience for query design and execution. There are no changes in this release.
KB_SQL Server The KB_SQL Server is the foundation of KB_SQL. It provides the SQL Engine and the Data Dictionary. Together, these provide access to all of your application data. Server utilities allow configuration of the major behaviors of the server including security, transaction management, and more. The SQL EDITOR is the legacy interface for query design using a character terminal interface. 2930 - Bug: Correct variable scoping rule so that SITE variables are preserved The query compiler wrapper for 3rd party client queries is corrected to preserve SITE variables. This will allow reference to SITE variables during the compilation step. 2604 - Bug:Outer Join query corrected Index table usage In a query where Table_1 is preserved via Outer Join, the query planner is corrected to ignore all index tables that could be used to optimize the query. This corrects the behavior so that all rows are included in the result. 2928 - Enh: Allow display/print of INDEX table definitions separately from the master table We have modified the TABLE PRINT procedure to allow for the printing of a single INDEX table definition. When the FROM/TO values match exactly, the query will ignore the MASTER_TABLE setting, allowing display of an index (or base) table. 2929 - Enh: Allow customization of the QUERY TRANSACTION DETAIL report We have modified the QUERY TRANSACTIONS DETAIL report to allow customization of the output. The user can specify whether built-in queries should be excluded (default=yes). The user can specify a custom LIKE pattern match for queries to be included (e.g., MY\_STUFF\_%). Note use of LIKE pattern match wildcard (_%) and escape (\) characters. Transaction Log Detail From date: 06/24/2017 time: 00:00:00 AM Thru date: 07/08/2017 time: 11:59:59 PM Show diagnostics? YES Show output detail? YES Show variables? YES Show SQL text? NO_ Hide 'Built-in' queries? YES Include name match: % 2927 - Enh: Generate Transaction Log entry for queries that RUN but abort with Error We have added a wrapper function to those places where we execute query routines. This allows us to process an error condition by adding an entry in the transaction log at run time. Note that this is in addition to any error logging that might already be configured.
When viewed using the \UTILITIES\TRANSACTION LOGS\QUERY TRANSACTIONS\QUERY TX DETAIL report, these transactions will include information about the Error that occurred. Note that they will also appear to have a TYPE=RUN *, where the asterisk is displayed based on the END_TYPE value of 99. This is a special end value for queries that abort. Consider the following query: --X_FORCED_ERROR SELECT * FROM SQL_TEST.EMPLOYEES WHERE NAME = :BOOGER On this environment, the host expression (variable) BOOGER is not defined, resulting in an error. The error is shown below in the QUERY TX DETAIL report. X_FORCED_ERROR RUN* DMIDDLETON X_FORCED_ERROR Start: 2017-07-08@19:27:22 Stop: 2017-07-08@19:27:22 ( 0:00:00 ) Searched: 0 Selected: 0 ( 0%) ========Diagnostics======== Error: Error: 440: <UNDEFINED>BEGIN+10^SQLX5 *BOOGER 717: Failed execute: Running query X_FORCED_ERROR: D ^SQLX5[<UNDEFINED>BEGIN+10^SQLX5 *BOOGER] =========Variables========= =======Output Options======= 2926 - Enh: Allow FINAL event to process regardless of rows selected A new SITE parameter is created to allow the FINAL event to process regardless of the number of rows selected. SITE.SITE_FINAL_ALWAYS (node=61,piece=21) --$P(^SQL(1,SQLSITE,61),"~",21) If TRUE (=1), the generated code will not lay in a skip condition based on the value of the SQLSEL variable. This will allow the FINAL event to be executed for a query regardless of rows selected. 2921 - Bug-Transaction Log options confusion We have updated the \CONFIGURATION\SITE EDIT\CUSTOM LOGIC\TRANSACTION LOGS module to make certain configurations more obvious. First, the 'Disable all transaction logs' setting will mark all other settings as disabled. Likewise, the 'Disable verbose transaction logs' setting will mark all of the lower level settings as disabled. The interface allows the use of the [undo] key to revert the changes in case of error. Transaction Log How many days to keep transaction logs: 14 Disable all transaction logs? NO_ Disable verbose transaction logs? YES Disable Server API query logs? YES Disable store of SQL Statements? YES
Disable store of Diagnostics? YES Disable store of Output data? YES Disable store of Variable data? YES 2920 - The COST_CEILING parameter allows only 1-12 digits while hard coded limit allows for 1E18. The COST_CEILING parameter is updated to allow specification of zero (0) to mean "no limit" on the cost of plans being considered. Note that you must also ensure that there is no MAX_COST parameter specified at the SITE or Query level. 2919 - Bug: Allow Transaction Log Maintenance Days = 0 The Transaction Log Maintenance will respect a value of zero (0) for the number of days to be retained. Previously, it treated zero (0) the same as null (empty) and used the default of 14 days. 2918 - Bug: CHKSTATS fails when Table Statistics agent is started without user information. The CHKSTATS function can be called with or without user information. If none is available, the agent will be started using the built-in user SYSTEM account. 2917 - Bug: With rapid connections using same/similar query errors can occur. When many simultaneous connections submit the same (or similar) query to the Server API, errors could occur. We changed the scope of the semaphore lock that ensured exclusive access to the Server Queue to include the QueryFind, optional QueryAdd, and optional QueryCompile phases. 2916 - Bug: Multiple SQL commands in one Query package are failing. A problem was introduced in v5.8 as a side-effect of support for select subqueries in the FROM clause. This error has been corrected. 2915 - Bug: Table Statistics Compiler exit without cleanup on error. When calling the CHKSTATS interface, certain error conditions could exit leaving records locked. This has been corrected.