- Invensys

InTouch 2012 & Advanced
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.
Invensys proprietary &
• 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
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:
Microsoft Cryptographic services will be leveraged to read certificates that are
stored in the smart card. Refer to following link for details:
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
Allowable Range
32 –bit
0x00010000 to
32-bit with the /3GB 0x40000000
switch enabled
0x00010000 to
0x00010000 to
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
Slide 25
Issue 1 - Mind Map for View 100% CPU
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:
System Integrator
• OR use for training a new Engineer
Slide 29
Issue 1: Tools/Techniques used in this
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
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
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
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
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
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
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
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 ?
Slide 46