2016 02 24 patch-4729-003-DLLs-Properties This patch is for installed copies of Foxhound 4 build 4729. Scroll down to see a description of the fixes. ----------------------------------------------------------------------- ******************************* ***** QUICK START ***** ******************************* 1. Shut down Foxhound 4, if it's running. 2. If desired, make a backup copy the Foxhound 4 folder: C:\ProgramData\RisingRoad\Foxhound4 3. Unzip this file: zipped-patch-4729-003-DLLs-Properties.zip into this folder: C:\ProgramData\RisingRoad\Foxhound4 4. Start Foxhound 4; it will apply the patch and then stop. 5. Start Foxhound 4 again, to continue work. 6. Use notepad to chaeck that the patch was applied OK. C:\ProgramData\RisingRoad\Foxhound3\foxhound4_debug.txt ----------------------------------------------------------------------- ***************************************** ***** DETAILED INSTRUCTIONS ***** **************************************** 1. Shut down Foxhound, if it's running. Start - All Programs - Foxhound4 - Tools - Stop Foxhound Engine 2. If desired, make a backup copy the Foxhound 4 folder: C:\ProgramData\RisingRoad\Foxhound4 This patch will overwrite 10 *.bat files in that folder, as well as making changes to code inside foxhound4.db. 3. Deploy the zip file. Copy this file: zipped-patch-4729-003-DLLs-Properties.zip to this folder: C:\ProgramData\RisingRoad\Foxhound4 4. Unzip the patch files. Unzip this file: zipped-patch-4729-003-DLLs-Properties.zip to write these files in C:\ProgramData\RisingRoad\Foxhound4: $readme-for-patch-4729-003-DLLs-Properties.txt - this file patch-4729-003-DLLs-Properties.bin - used in Step 5 $backup_foxhound4.bat - overwritten $start_foxhound4_chrome.bat - overwritten $start_foxhound4_chrome_debug.bat - overwritten $start_foxhound4_default_browser.bat - overwritten $start_foxhound4_default_browser_debug.bat - overwritten $start_foxhound4_engine.bat - overwritten $start_foxhound4_firefox.bat - overwritten $start_foxhound4_firefox_debug.bat - overwritten $start_foxhound4_ie.bat - overwritten $start_foxhound4_ie_debug.bat - overwritten rroad4_sa16_bin32.dll - new rroad4_sa16_bin64.dll - new rroad4_sa17_bin32.dll - new rroad4_sa17_bin64.dll - new The patch file will be installed in Step 5: patch-4729-003-DLLs-Properties.bin The other files are implicitly installed by this step; i.e., by unzipping them. 5. Start Foxhound 4; it will apply the patch and then stop. Start - All Programs - Foxhound3 - Tools - Start Foxhound Engine Foxhound will automatically apply patch-4729-003-DLLs-Properties.bin when it starts. Foxhound will automatically stop after the patch is applied. 6. Start Foxhound 4 again, to continue work. 7. Check that the patch was applied OK. Use notepad to examine this file: C:\ProgramData\RisingRoad\Foxhound3\foxhound4_debug.txt Scroll to the bottom to see messages like this... ===== I. 02/24 13:52:59. Now accepting requests I. 02/24 13:52:59. --------------------------------------- I. 02/24 13:52:59. Foxhound Version 4.0 by RisingRoad - Extended Edition 4.0.4729a built at 2016 10 04 07:08 in a SQL Anywhere 16.0.0.2127 database created at 2016 10 04 06:07 I. 02/24 13:52:59. --------------------------------------- I. 02/24 13:52:59. The patch file is being applied to the Foxhound database: "patch-4729-003-DLLs-Properties.bin" I. 02/24 13:52:59. DIAG 2017-02-24 13:52:59.790 Starting patch-4729-003-DLLs-Properties.txt I. 02/24 13:52:59. DIAG 2017-02-24 13:52:59.792 DROP EVENT fire_once I. 02/24 13:52:59. DIAG 2017-02-24 13:52:59.794 CREATE EVENT fire_once I. 02/24 13:52:59. DIAG 2017-02-24 13:52:59.798 @sql = ALTER EVENT fire_once ADD SCHEDULE START TIME '2017-02-24 13:53:09.798' I. 02/24 13:52:59. DIAG 2017-02-24 13:52:59.800 ALTER EVENT fire_once ENABLE I. 02/24 13:52:59. The patch file was executed: "patch-4729-003-DLLs-Properties.bin" I. 02/24 13:53:09. DIAG 2017-02-24 13:53:09.029 STOP ENGINE UNCONDITIONALLY I. 02/24 13:53:10. Database server shutdown requested by STOP ENGINE statement W. 02/24 13:53:12. TCPIP listener on IP address (::):49156 is exiting W. 02/24 13:53:12. TCPIP listener on IP address 0.0.0.0:49156 is exiting W. 02/24 13:53:12. HTTP listener on IP address (::):80 is exiting W. 02/24 13:53:12. HTTP listener on IP address 0.0.0.0:80 is exiting I. 02/24 13:53:12. Starting checkpoint of "f" (foxhound4.db) at Fri Feb 24 2017 13:53 I. 02/24 13:53:12. Finished checkpoint of "f" (foxhound4.db) at Fri Feb 24 2017 13:53 I. 02/24 13:53:12. Database server stopped at Fri Feb 24 2017 13:53 ===== ----------------------------------------------------------------------- ******************************************** ***** DESCRIPTION OF THE FIXES ***** ******************************************** This patch delivers code to fix two problems... (1) This patch delivers 4 new *.dll files and replaces 10 *.bat files in the Foxhound 4 folder. These files fix a problem where Foxhound does not start when it is installed on a computer with SQL Anywhere 17 installed but not SQL Anywhere 16. Symptoms include the following error messages: The program can't start because dblib16.dll is missing Unable to load either rroad4.dll or rroad464.dll The fix requires that all *.bat files which start the Foxhound 4 database using dbsrv16.exe or dbsrv17.exe must include code that replaces the rroad4.dll and rroad464.dll with files that support whichever version of SQL Anywhere is going to be used: 16 or 17. The fix consists of these lines added to the *.bat files: REM Code from patch-4729-003-DLLs-Properties... IF /I "%SPGM%z%BIN%z"=="dbsrv16.exezBin32z" (COPY rroad4_sa16_bin32.dll rroad4.dll) IF /I "%SPGM%z%BIN%z"=="dbsrv16.exezBin64z" (COPY rroad4_sa16_bin64.dll rroad464.dll) IF /I "%SPGM%z%BIN%z"=="dbsrv17.exezBin32z" (COPY rroad4_sa17_bin32.dll rroad4.dll) IF /I "%SPGM%z%BIN%z"=="dbsrv17.exezBin64z" (COPY rroad4_sa17_bin64.dll rroad464.dll) Those lines are added to the following *.bat files: $backup_foxhound4.bat $start_foxhound4_chrome.bat $start_foxhound4_chrome_debug.bat $start_foxhound4_default_browser.bat $start_foxhound4_default_browser_debug.bat $start_foxhound4_engine.bat $start_foxhound4_firefox.bat $start_foxhound4_firefox_debug.bat $start_foxhound4_ie.bat $start_foxhound4_ie_debug.bat (2) This patch also delivers replacement code for three stored procedures inside the Foxhound database. This code fixes a problem where the following connection-level properties are set to zero when Foxhound cannot create or call the rroad_connection_properties procedure on the target database; i.e. when SPs: ..N is displayed on the Foxhound Monitor page: CacheReadIndInt - displayed in the connection-level CacheReadIndLeaf Disk/Cache: Internal Index, CacheReadTable Leaf, Table columns ClientStmtCacheHits - visible only through ClientStmtCacheMisses adhoc reporting CurrentLineNumber DiskReadIndInt - displayed in the connection-level DiskReadIndLeaf Disk/Cache: Internal Index, DiskReadTable Leaf, Table columns LockObjectOID - used to analyze blocks caused by LockObjectType semaphores in SQL Anywhere 17 max_client_statements_cached - visible only through Max_plans_cached adhoc reporting max_query_tasks QueryHeapPages CurrentProcedure Dedicated_task priority This problem does **NOT** affect target databases where Foxhound **IS** able to call the rroad_connection_properties procedure; i.e. when SPs: ..N is displayed on the Foxhound Monitor page. Here is an adhoc query to determine if any of these properties are being recorded in the most recent connection-level samples: SELECT TOP 5 sampling_id, sample_set_number, connection_number, CacheReadIndInt, -- - displayed in the connection-level CacheReadIndLeaf, -- Disk/Cache: Internal Index, CacheReadTable, -- Leaf, Table columns ClientStmtCacheHits, -- - visible only through ClientStmtCacheMisses, -- adhoc reporting CurrentLineNumber, DiskReadIndInt, -- - displayed in the connection-level DiskReadIndLeaf, -- Disk/Cache: Internal Index, DiskReadTable, -- Leaf, Table columns LockObjectOID, -- - used to analyze blocks caused by LockObjectType, -- semaphores in SQL Anywhere 17 max_client_statements_cached, -- - visible only through Max_plans_cached, -- adhoc reporting max_query_tasks, QueryHeapPages, CurrentProcedure, Dedicated_task, priority FROM sample_connection ORDER BY sample_set_number DESC; -- Not OK... 6,936077,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,, 6,936077,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,, 6,936060,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,, 6,936060,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,, 6,936051,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,, -- OK... 6,935727,32,21,31,36,0,0,0,0,2,4,0,0,10,20,0,0,,Off,normal 6,935727,31,138,1558,8199,1039,0,219,0,3,1,0,0,10,20,0,0,rroad_connection_properties,Off,normal 6,935710,32,21,31,36,0,0,0,0,2,4,0,0,10,20,0,0,,Off,normal 6,935710,31,137,1538,8092,1025,0,219,0,3,1,0,0,10,20,0,0,rroad_connection_properties,Off,normal 6,935693,31,136,1519,7986,1011,0,219,0,3,1,0,0,10,20,0,0,rroad_connection_properties,Off,normal -- end --