Consultor Eletrônico



Kbase P135782: Application making heavy use of PUBLISH/SUBSCRIBE to manage windows in UI hangs
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   08/10/2008
Status: Unverified

SYMPTOM(s):

Application makes heavy use of PUBLISH/SUBSCRIBE to manage windows

Main window loads child window persistently

Child window subscribes to several events

User clicks button on main window to bring up non-persistent child window

Non-persistent child window subscribes to several events related to shutting down the window

Non-persistent child window publishes event which is processed by the persistent child window

After a period of time, the persistent child window publishes close events that the non-persistent child window processes

The non-persistent child window is closed but can never be displayed again by clicking the button in the main window (application is logically hung)

FACT(s) (Environment):

OpenEdge 10.1x
Windows

CAUSE:

The CHOOSE event for the click of the button in the main window causes the non-persistent child window to run and in the main block of the child window before the WAIT-FOR statement a PUBLISH was being done which caused the CLOSE event to be applied to the procedure. This had the effect of running disable_UI which caused the window to be deleted but then the WAIT-FOR statement was executed and that is what caused the UI to be logically "hung".

FIX:

Run the windows persistently as is recommended