WW TSS-14 InTouch 2012 & Advanced Troubleshooting Bindya Shah October, 2012 © 2012 Invensys. All Rights Reserved. The names, logos, and taglines identifying the products and services of Invensys are proprietary marks of Invensys or its subsidiaries. All third party trademarks and service marks are the proprietary marks of their respective owners. Slid © Invensys proprietary & Overview • New Features in InTouch 2012 • Mind Map View 100% CPU Issue • Process Explorer • View Crash Causes and Solutions Slide 4 New Features in InTouch 2012 • Smart Card • Show/ Hide Graphics • Tag Viewer • WWHeap Setting • Windows Memory Caching • CPU Affinity • Lock Window Size – Scale For Resolution • GetWindowName Script Function Slide 5 Smart Card InTouch utilizes the following smart card related APIs exposed by Microsoft. Note: The AppServer xxSecurity also utilizes these APIs to support smart card authentication for the Galaxy OS authentication using smart card. Windows Smart Card APIs will be used to detect the presence of the smart card in the system. Refer to the following link for details: http://go.microsoft.com/fwlink/?LinkId=93347 Microsoft Cryptographic services will be leveraged to read certificates that are stored in the smart card. Refer to following link for details: http://msdn.microsoft.com/en-us/library/ms925963.aspx Slide 6 Smart Card Hardware • C2-40 Mini Driver Smart Card • OK 3021 USB Smart Card Readers Slide 7 Show/Hide Graphics • The Show/Hide Graphic script functions allow you to write ArchestrA Graphics scripts to display a symbol as a pop-up window and close the pop-up window. • The HideGraphic script function allows you to close any ArchestrA symbol, displayed through the ShowGraphic script function. • The HideSelf script function allows you to close the symbol, displayed by either the ShowGraphic script function or the ShowSymbol animation. Slide 8 Show Graphic Function Structure Dim graphicInfo as aaGraphic.GraphicInfo; graphicInfo.Identity = "<Identity>"; graphicInfo.GraphicName = "<SymbolName>"; ShowGraphic( graphicInfo ); Slide 9 Show/Hide Graphic Script Tips and Examples The Show/Hide Graphic script functions allow for a wide range of scripted uses: • Using Predefined and Named Scripts • Working with Modal Windows • Using Hierarchical References and Containment Relationships • Scripting the Owning Object • Scripting Multiple Symbols Slide 10 Important Note on ShowGraphic Function • The ShowGraphic function can be used in a symbol’s action script, named script and pre-defined script. Although the system allows you to include it in a server script, such as Start Up, On Scan, OffScan, Shut Down and Execute, you will not be able to execute the function at run time. • Detailed Examples are on Tech Note 815 Slide 11 Tag Viewer • You can start Tag Viewer only if WindowViewer is running, and Tag Viewer has been enabled at design time. • You can launch Tag Viewer from the WindowViewer menu or from a script calling the LaunchTagViewer() function. • The above function can be executed from any script type, except application scripts: OnStartup and OnShutdown. • If Tag Viewer is not enabled, calling the function will not start Tag Viewer and a warning message will be logged in the logger. • You must have adequate security privileges to run Tag Viewer Slide 12 Tag Viewer Slide 13 WWHEAP Memory Settings • You can configure the wwHeap Memory settings by specifying the wwHeap size and start location. The default size, default start location, and allowable location range vary by operating system. • The default sizes are described in the following table: Slide 14 Operating System Default Size 32 – bit 1519 MB 32 – bit with /3GB switch enabled 2048 MB 64 – bit 2048 MB WWHEAP Memory Settings • Slide 15 The default locations and allowable location ranges are described in the following table: Operating System Default Start Location Allowable Range 32 –bit 0x21000000 0x00010000 to 0x7FFEFFFF 32-bit with the /3GB 0x40000000 switch enabled 0x00010000 to 0xBFFEFFFF 64-bit 0x00010000 to 0xFFFEFFFF 0x80000000 WWHEAP Memory Settings Example Slide 16 Memory Caching for WindowViewer Windows • You can configure how WindowViewer uses memory for Windows to improve performance at run time. • Windows can be kept in memory at run time in certain conditions to allow for fast retrieval. • You can also specify the interval for a periodic memory health check and settings for the heap memory segment. Slide 17 Viewer Memory Caching • In-Memory Window Caching • Memory Limit for In-Memory Windows • The default memory limit is 70% of process memory. • In-Memory Window Expiration Time • The default value is 0 hours, which designates no time limit. • You can enter a value between 0 and 8760 hours (365 days) • High Priority Window Caching • Enable High Priority Window Caching This allows some windows to be marked as high priority. • Memory Limit for High Priority Windows • The default memory limit is 90%. Slide 18 Viewer Memory Screen Shot Slide 19 Core Processor Affinity for WindowViewer Slide 20 Lock Window Size Slide 21 Expose Window Name Property • GetWindowName script function enables the user to retrieve the name of the window under which the function has been called. • The syntax of the script function is as follows: Resultcode = GetWindowName(tagname); • Resultcode indicates the success or failure of the script function. The resultcode can be a Discrete/Integer/Real data type. • Resultcode will be 1 or 0, based on the success or failure of the script function: • Resultcode is 1 when the script function is called from window context. • Resultcode is 0 when the script function is called from non-window context. Slide 22 Advanced Troubleshooting Techniques Slide 23 Issue 1: View %100 CPU Does WindowViewer seem like it is running in an infinite loop? Slide 24 Issue 1: View 100% CPU SR 44210117 – Happens several times a day on all InTouch Deployed Apps. Slide 25 Issue 1 - Mind Map for View 100% CPU issue Slide 26 Issue 1 - Mind Map a way to share the history of a complicated issue Let’s compare Call Tracking Database Text Summary Mind Map Slide 27 Issue 1 - Mind Map a way to share the history of a complicated issue 28 Pages long! Slide 28 Issue 1 - Mind Map a way to share the history of a complicated issue Can use this to share the history of a case with: • Colleagues • Development • System Integrator • Distributor • Customer • Management • OR use for training a new Engineer Slide 29 Issue 1: Tools/Techniques used in this SR • Increase WWHeap – Must use GUI for InTouch 10.5 not the old Registry settings • Process Explorer • Log Viewer • ArchestrA Symbol Analysis and Repair Tool for SP 2012 – not posted on WDN; has not helped any customers as far as we know; use older version of tool before migration to SP 2012 • Performance Monitor - Tech Note 868 • Event Viewer • Galaxy Backup to view InTouch app • Rebuild App with Tech Note 570 • Qslice • Dump Slide 30 Issue 1: Options to Create Dump • Tech Note 726 Capturing a Memory Dump File Using the Microsoft® Debug Diagnostic Tool (32bit) • Tech Note 793 Capturing a Memory Dump File Using the Microsoft® Debug Diagnostic Tool (64bit) • Process Explorer version 15.13 or later. Right click on the process and select Dump. Slide 31 Issue 1: Which View Thread is consuming the most CPU? Option 1 – Use Qslice Option 2 – Use Process Explorer Slide 32 Issue 1: QSlice CPU Stress – an internal utility Qslice – free download from Microsoft Double click the process to show the threads Slide 33 Issue 1: Process Explorer • Right click on the Process • Select Properties • Click on the Threads tab Slide 34 Issue 1: Process Explorer Demo • Free download from Microsoft • Show how to identify AppEngine name Slide 35 Issue 2: View freezes Is View frozen? Slide 36 Issue 2: View freezes when Alarm occurs Use WindowMaker File/Print to print all scripts to file Caused by Application While Running Script PlaySound( "C:\Windows\Media\Afternoon\Windows Notify.wav", 0 ); Slide 37 Issue 2: Print Scripts to File Slide 38 Issue 3: Suitelink Suspends and Resumes Usually caused by high CPU One customer – due to PlaySound playing a wave file One customer - caused by the aaflexlic dll for a hardware key Slide 39 Issue 4: View crashes Slide 40 Issue 4: Event Viewer for View Crash and Hang Slide 41 Issue 4: View Crash Causes / Solutions Cause #1: WWHeap conflict or Out of Memory. Look for WWHeap messages in Log Viewer or Event Viewer Solution #1: Increase WWHeap Memory (Tech Note 768) or in Node Properties for InTouch 10.5 Cause #2: Not having the latest InTouch Service Pack and patch installed. Cause #3: Running View on a non-supported OS / Service Pack. Solution #3: Check the InTouch Readme for supported OS Cause #4: View out of memory Solution #4: Verify with Performance Monitor. Isolate to individual windows or window combinations Slide 42 Issue 4: View Crash Causes / Solutions Cause #5: Scripting. Application While Running script causing resource issue or an individual script causing a crash. Solution #5: Isolate down to individual script. Print scripts to file for analysis. Cause #6: View caused an invalid page fault in module CBTREENT.dll. Solution #6: Corrupt InTouch History Files. Isolate to individual day causing the problem. Cause #7: Corrupt window or InTouch App Solution #7: Recompile the app OR rebuild the app (Tech Note 570 for Managed Apps, Tech Note 774 for Standalone apps) Use Crash Dump if still unresolved Slide 43 Issue 5: Handle Leaks What can happen when there is a handle leak? Slide 44 Issue 5: aaGR Handle Leak causes View Crash • Various SP 2012 customers reporting View crash due to aaGR Handle Leak (34657 handles in one case) • The scenario is that the ArchestrA Galaxy Repository is installed, but the node is just being used as an InTouch Runtime. • Hotfix CR L00121244 • Number of Handles used by process. Seen with Task Manager, Process Explorer or Wonderware Tech Support Info Tool • Demo of Wonderware Tech Support Info Tool and Performance Monitor in session “TSS 10 – WAS Advanced Troubleshooting” Slide 45 Questions ? THANK Y OU Slide 46