Skip to content

SQL LogScout v6.24.10.10

Compare
Choose a tag to compare
@PiJoCoder PiJoCoder released this 18 Oct 19:55
· 5 commits to main since this release
b8a7dee

Download

To download this release package, go to release v6.24.11.02 which is a slightly updated version of this release.

Known Issue(s)

Issue 1: Connection failure

Symptoms:

On some machines you may get a connection failure with the following error message:

2024-10-23 10:16:54.202	WARN	Could not Connect to SQL Server  
2024-10-23 10:16:54.219	ERROR	Function 'GetPerformanceDataAndLogs' failed with error:  Cannot index into a null array. (line: 7005, offset: 21, file: C:\SQL LogScout\Bin\SQLLogScoutPs.psm1) 
2024-10-23 10:16:54.235	ERROR	Function '' :   
2024-10-23 10:16:54.235	INFO	Ending data collection

If you look at the \output*\internal\##SQLLOGSCOUT_DEBUG.LOG you may see the following more detailed error indicating an SSL security error.

2024-10-23 10:16:54.202	WARN	Could not Connect to SQL Server  
2024-10-23 10:16:54.202	DEBUG1	Exception calling "Open" with "0" argument(s): "ERROR [08001] [Microsoft][ODBC SQL Server Driver][Shared Memory]SSL Security error
ERROR [01000] [Microsoft][ODBC SQL Server Driver][Shared Memory]ConnectionOpen (SECCreateCredentials()).
ERROR [01S00] [Microsoft][ODBC SQL Server Driver]Invalid connection string attribute" 
2024-10-23 10:16:54.202	DEBUG3	Failed to get a connection object, check previous messages 
2024-10-23 10:16:54.219	ERROR	Function 'GetPerformanceDataAndLogs' failed with error:  Cannot index into a null array. (line: 7005, offset: 21, file: C:\SQL LogScout\Bin\SQLLogScoutPs.psm1) 
2024-10-23 10:16:54.235	ERROR	Function '' :

Cause:

This is likely caused by SQL ODBC driver incompatibility with strict TLS requirements and connection fails on older OS versions - WIndows 2012 R2, Windows 2016.

Solution:

This issue has been resolved in release v6.24.11.02

Issue 2: Failure on case-sensitive systems

Symptoms:

On some systems certain scripts may fail with invalid object or invalid column errors

Cause:

A few T-SQL commands were not written in the proper letter case and on case-insensitive systems, tables or columns would be reported as not found or invalid.

Solution:

Resolved in release v6.24.11.02

Enhancements

  • For memory dump scenario, users can trigger a dump on-demand after the collection has started
  • Enable dynamic (relative) start and end times as duration for DiagStartTime and DiagStopTime parameters (e.g. +2:00:00 - two hours from now)
  • Move Cluster logs collection back in the Basic scenario and collect them if on a FCI or AG system
  • Include Full-Text Search metadata and logs collector in Basic scenario
  • Added the ability to discover missing MSIs in Setup scenario (FindMissingMSI)
  • Added the ability to perform a continuous capture where SQL LogScout shuts down and restarts with another collection immediately (similar to the registering as a service functionality in SQLDiag/PSSDiag)
  • With parameter -DeleteExistingOrCreateNew, allow the user to preserve a specified number of output folders when repeat collections (continuous mode) is used and delete the rest
  • Improve CTRL+C experience and performance. You can cancel a SQL LogScout collection without delay
  • Query Store data collection updated to help determine causes for plan forcing failures
  • Switched to using MSOLEDBSQL or ODBC driver instead of System.Data.SqlClient
  • Add SQL Agent job history to replication collector for replication agent jobs
  • AGTopology no longer uses BCP for better error handling
  • Programmatically block Powershell ISE as a host and update the Readme documenting Powershell ISE is unsupported
  • Add net_transport and other fields from dm_exec_connections to PerfStats collection
  • Update SQL_LogScout to use a PowerShell file (SQL_LogScout.ps1) instead of SQL_LogScout.cmd to allow parameter flexibility and file signing. SQL_LogScout.cmd is deprecated but still works for backwards compatibility
  • In Perfstats collector, remove sys.dm_os_ring_buffers references as DMV is not supported and can cause issues
  • Re-write the Perfstats script to not use sysprocesses to prevent performance issues
  • Refactor: Improve isScenarioEnabled function simplify logic
  • Reduce the execution time in the Test Pipeline by adding a parameter to control individual test duration
  • Added logging to CleanupIncompleteShutdown
  • Addition of instance parameter to CleanupIncompleteShutdown to run silently
  • Enabled SQL_LogScout as a scheduled task to use "continuous" capture functionality
  • Added -EndActiveConsoles parameter to CleanupIncompleteShutdown to force the closure of open Powershell sessions invoked by SQL_LogScout
  • ScheduleSQLLogscoutAsTask cleanup task updated to invoke CleanupIncompleteShutdown and use new parameter -EndActiveConsoles
  • ScheduleSQLLogscoutAsTask accepts relative start time and no longer makes start time a required parameter
  • ScheduleSQLLogscoutAsTask ReadMe updated to including examples
  • Testing suite enhancement: Add a SQL Nexus test validation for sys.dm_db_tuning_recommendations
  • Update the Readme to include the fact that Cluster logs and other AlwaysOn collections are part of Basic now
  • Documentation update for rollover and file size for Perf and AlwaysOn Xevents in the Readme
  • Update Pipeline to download latest SQL Nexus (aka link), latest RML Utils and remove SQL CLR Types and ReportViewer installations

Fixes

  • Ensure that unexpected shutdown (CTRL+C) returns SQL LogScout location back to root folder instead of \Bin
  • If go-sqlcmd and sqlcmd are installed on the system, pick sqlcmd and discover the highest version
  • Remove $global:gDisableCtrlCasInput and [console]::TreatControlCAsInput as they are not needed
  • Performance improvement to NetTCPandUDPConnections by using process ID to prevent long collector execution
  • Fixed null pointer issue with WindowsDiskInfo collector by re-writing the collector and deprecated WMI calls
  • Fix to capture SQL specific perfmon counters properly when instance name is the same as hostname
  • PerfStatsSnapshot fix to capture Database Scoped Configurations properly
  • Ensure filtered and full dump warning show up only when one of those to options are selected in the memory dump scenario
  • Fix the text of some information messages in Scheduled tasks
  • Migrate Pipeline to One Engineering System (1ES template)
  • Ensure Event logs in other languages (Japanese, Chinese, etc) are exported with proper characters instead of "?"
  • Fix issue where NeverEnding test fails with "Cannot bind argument to parameter 'ArrayToEdit' because it is an empty collection" when run on a SQL version that doesn't support lightweight profiling
  • Fix testing infrastructure suite failure when run against SQL 2014-2017 instance due to SQLFT file(s) not existing
  • Fix issue where Xevents are missing in UI for AlwaysOn and ServiceBroker Scenarios
  • Fix the issue where RepeatCollections only runs one time, not multiple, if you invoke SQL LogScout using Powershell.exe -File
  • Fix issue where using -DeleteExistingOrCreateNew "NewCustomFolder" would result in \output folder instead of \output_datetime if \output folder doesn't exist on disk
  • ScheduleSQLLogscoutAsTask -Daily execution issue fixed from previous release
  • Fix an incorrect prompt to delete and recreate the \output folder when it's not there