1. Rahul Kumar Shaw
  2. PowerBuilder
  3. Monday, 15 January 2018 10:12 AM UTC

Hi, 

 

With PB2017, it shows black screen when it comes processing large number of database records or when its about more time to fetch the datwindow rows. In earlier version it used to show hour glass or 'Not Responding' which was a better user experience compared to black screen.

 

Any sugegstion why this is happening or how it can be resolved?

 

Regards,

Rahul

Heiko Betzler Accepted Answer Pending Moderation
  1. Tuesday, 3 May 2022 13:20 PM UTC
  2. PowerBuilder
  3. # 1

Hello together,

unfortunately we have the same problem (black screen during opening of windows) on most of the Windows 10 machines since we use Themes (PB2021 1506).

the good news: DisableProcessWindowsGhosting fixes the problem.

But than we have other problems.

Can anyone confirm the following facts?
The problem with the black screen does not occur on windows 11! We can't reproduce the problem on any Windows 11 device so far (though we have very few Windows 11 devices in use).

Thanks and best regards

Heiko

 

 

 

 

Comment
There are no comments made yet.
Chris Pollach @Appeon Accepted Answer Pending Moderation
  1. Tuesday, 19 January 2021 17:19 PM UTC
  2. PowerBuilder
  3. # 2

Hi Ben;

   Just an FYI to those who use my STD Framework. This is already all built-in. Just set the INI file for the App/Framework as follows ....

The framework will then take care of executing the "DisableProcessWindowsGhosting" SDK API.

Regards ... Chris

Comment
There are no comments made yet.
Benjamin Gaesslein Accepted Answer Pending Moderation
  1. Friday, 15 January 2021 08:37 AM UTC
  2. PowerBuilder
  3. # 3

The black screen issue during long-running processes happens to me when using PB themes. Even when running the app locally. (PB2019 R2) You could try disabling the window ghosting feature by invoking DisableProcessWindowsGhosting() from user32.dll as a workaround.

AFAIK Windows marks a window as unresponsive if the UI thread doesn't receive messages for more than 5 seconds. A way to avoid unresponsive windows altogether would be using shared objects to run long-running loops or database retrieves in a seperate thread. This might require larger architectural changes to your code, though.

Comment
There are no comments made yet.
Chris Pollach @Appeon Accepted Answer Pending Moderation
  1. Thursday, 14 January 2021 17:02 PM UTC
  2. PowerBuilder
  3. # 4

Hi Rahul et Al;

  I have now seen a few reports about this happening. It is not happening very often. However, no rationale yet as to pin-point the cause of the blank screens as the noted PB App's execution criteria are as diverse as their environments that they run under. 

 If you can, please open a Support Case for this blank screen issue and provide as much information as possible about the PB App design, compilation settings, O/S environment, PB version & build, etc so that Appeon can start to narrow down the cause (environment vs PB App).

Regards .. Chris

Comment
There are no comments made yet.
Monica Petersen Accepted Answer Pending Moderation
  1. Thursday, 14 January 2021 02:48 AM UTC
  2. PowerBuilder
  3. # 5

Here's a picture of the phenomenon.

Attachments (1)
Comment
There are no comments made yet.
Govinda Lopez @Appeon Accepted Answer Pending Moderation
  1. Wednesday, 6 January 2021 16:05 PM UTC
  2. PowerBuilder
  3. # 6

Hi Rahul,

 

I think that you might need to make sure, first of all, that all RDP settings are correct. Then, as Chris said, you might want to make sure that no Retrieve is placed on the Open() or Constructor() events. 

 

Here you may find a Code Sample from CodeXchange the shows some techniques for what you are looking for: User Interfaces for Long Running Processes

 

I hope this helps.

 

 

Regards,

Comment
There are no comments made yet.
Monica Petersen Accepted Answer Pending Moderation
  1. Tuesday, 5 January 2021 23:10 PM UTC
  2. PowerBuilder
  3. # 7

We're seeing this with PowerBuilder 2019 R2, connecting with RDP.  The window's title bar is displayed, but the MDI area goes completely black until the retrieval completes.  Has anyone else seen this, and if so, what was the solution.

Comment
  1. Mark Lee @Appeon
  2. Monday, 18 January 2021 03:03 AM UTC
Hi Monica,



Thanks for the update.

Please let us know which OS version you are using (for example, 64-bit Windows 10 English).

As Benjamin said, do you use PB themes? If you disable the PB themes, does the issue still occur?

Currently, can you work around it by trying to disable the Windows ghosting feature by invoking DisableProcessWindowsGhosting() from user32.dll and see if it is OK?
  1. Helpful
  1. Monica Petersen
  2. Monday, 18 January 2021 20:36 PM UTC
Hi Mark,



We're using Windows Server 2019 Standard Version 1809 OS build 17763.1697, 64 bit OS.



And yes, we're using themes, and if I disable themes, the issue goes away. Issuing DisableProcessWindowsGhosting() also fixed the problem, and I'm able to run themes without the black screen occurring if I issue that command on startup.



Thanks for your help!



Monica.
  1. Helpful
  1. Mark Lee @Appeon
  2. Tuesday, 19 January 2021 06:39 AM UTC
Hi Monica,



Glad to hear that.

Thanks for your feedback.



Regards,
  1. Helpful
There are no comments made yet.
Chris Pollach @Appeon Accepted Answer Pending Moderation
  1. Monday, 15 January 2018 15:34 PM UTC
  2. PowerBuilder
  3. # 8

Hi Rahul;

   This sounds like it might be a Citrix / RDP configuration issue. I would like to suggest that you talk with a Citrix/RDP support person on this aspect and see if they have any suggestions as to what is causing this issue. Sounds to me like maybe a resource related issue.

Regards ... Chris

Comment
  1. Brandon Roberts
  2. Monday, 7 May 2018 22:51 PM UTC
Chris,



 



We've seen this as well when waiting on long retrieves. Is there a way we can tell Windows that we're waiting on the database? Usually the application main thread says 'waiting on user input' which may be why Windows flags it as 'not responding' after 5 seconds.



 



Thanks,



Brandon

  1. Helpful
  1. Chris Pollach @Appeon
  2. Wednesday, 6 January 2021 15:04 PM UTC
Hi Brandon;

I would suggest then that you move any Retrieve(s) from either the Window OPEN or a Control on the Window's Constructor events to either a POST Open or POST Constructor event. That would then let the window draw itself properly before performing any long processing that could hamper the initial rendering.

Food for thought.

Regards ... Chris
  1. Helpful
There are no comments made yet.
  • Page :
  • 1


There are no replies made for this question yet.
However, you are not allowed to reply to this question.