SAP Business client "Menu" freezes the published application.

SAP Business client "Menu" freezes the published application.

book

Article ID: CTX312474

calendar_today

Updated On:

Description

In SAP NWBC, SAP GUI shows a menu button. Upon pressing that button, the menu appears, but stays visible all the time and the published application hangs. Issue wasn't happening in XenApp 6.5 and started after migrating to CVAD 7.x.

Environment

Citrix is not responsible for and does not endorse or accept any responsibility for the contents or your use of these third party Web sites. Citrix is providing these links to you only as a convenience, and the inclusion of any link does not imply endorsement by Citrix of the linked Web site. It is your responsibility to take precautions to ensure that whatever Web site you use is free of viruses or other harmful items.

Resolution

Disable the below Citrix policies explicitly to resolve the issue,
  1. Remote the combo box
  2. Automatic Keyboard Display

Problem Cause

Below is the RCA which was shared by SAP while debugging one of the reported support cases,

The message WM_GETOBJECT is called several times from external process(es) (it is not called by SAP code) and results in one of the call stacks above. 

The COM object needs to return the return-value of the COM-Method “LresultFromObject” which gets the “IAccessible” interface of the COM object as a parameter. 

The “LresultFromObject” method-call internally does an increase of the COM object reference counter and the sender/caller needs to decrease this reference counter if he is done with the object.

The result of SAP RCA:

 

  • An external process is triggering an WM_GETOBJECT message to the popup menu COM object
  • The COM-Method “LresultFromObject” increases internally the reference counter
  • The sender/caller of the WM_GETOBJECT SendMessage() is responsible to decrease the reference count à this seems not to happen
  • COM Framework does not delete the popup menu COM object, because the reference counter is not “0” after we in SAP Coding call our own Release()
  • In an RDP session, no WM_GETOBJECT messages were triggered on the popup menu COM object (during SAP internal debugging) and the issue does not exist (also at the customer side)
  • Only occurs on special client PC CPUs with special Citrix Versions and special client PC OS

Based on the above RCA, we determined that Citrix doesn’t call the WM_GETOBJECT directly but we utilize Microsoft Active Accessibility and Microsoft UI Automation to do the same. Please refer to the below MSDN page on WM_GETOBJECT: https://docs.microsoft.com/en-us/windows/win32/winauto/wm-getobject 

Sent by both Microsoft Active Accessibility and Microsoft UI Automation to obtain information about an accessible object contained in a server application.

Applications never send this message directly. Microsoft Active Accessibility sends this message in response to calls to AccessibleObjectFromPoint, AccessibleObjectFromEvent, or AccessibleObjectFromWindow. 

We make use of Microsoft Active Accessibility in different components. One of which is CtxUIMon.dll, which makes use of it when one of the following 2 Citrix policies is enabled (They are disabled by default) 

  1. Remote the combo box
  2. Automatic Keyboard Display

Additional Information

For more details on the above policies, please refer to https://docs.citrix.com/en-us/xenapp-and-xendesktop/7-15-ltsr/policies/reference/ica-policy-settings/mobile-experience-policy-settings.html