Ticket Q99935
Visible to All Users

GDI resource allocation problem on Windows Terminal Servers

created 17 years ago

Hi.
We upgraded inhouse ERP software from Delphi 7 to Delphi 2007. As the Quantum Grid 3 is no longer supported in Delphi 2007 we updated all grids in our application to Quantum Grid 6. The application is a single binary application with about 2 million lines of code (including source code of 3rd party components like the dxVCL components. The application has over 300 TcxGrid components. All forms that show grids are created on demand and are destroyed right after the form is closed. This way only a small part of the software is loaded into memory and the memory footprint is quite small.
But since the deployment of the latest release we are encountering severe GDI resource problems. Our users are working in Citrix Metaframe hosted on Windows Server 2003 and usually start two to four instances of our application. That was possible with our former version with Quantum Grid 3 but with Quantum Grid 6 the users can't launch a third instance of our application because of an Windows error message "Out of resources". Our global exception handler (ExceptionalMagic) records the call stack for these exception (s. text file in attachment) and it looks like a GDI allocation problem.
I wrote two sample applications in Delphi 7 with QGrid 3 and Delphi 2007 with QGrid 6 to prove the increased resource requirements (s. attachment). The new grid seems to reserve about 60 percent more gdi resources than QGrid 3 without any skins or any data displayed in the grid. Is there a way to reduce GDI resource requirements or increase the limits for the GDI resources in Windows?
Kind regards
Kay Zumbusch

Show previous comments (6)
DevExpress Support Team 17 years ago

    Hi Kay,
    Any results on the subject?
    Thanks,
    Alex

    ?
    Unknown 17 years ago

      Hi.
      Microsoft was able to provide a solution. User session on a terminal server are very limited in memory footprint by resticted default settings. The memory for handles allocated to users sessions on Windows terminal servers is quite small and Microsoft told us to increase the registry values for SessionPoolSize to 60 MB and SessionViewSize to 120 MB. After a restart of the terminal servers the users were able to start a lot more instances of our application.
      Kind regards
      Kay Zumbusch

      DevExpress Support Team 17 years ago

        Hi Kay,
        Thank you for informing us that the problem is resolved and providing details on this issue, it is appreciated. We are sure that this information will be useful for other customers.
        Thanks,
        Alex

        Disclaimer: The information provided on DevExpress.com and affiliated web properties (including the DevExpress Support Center) is provided "as is" without warranty of any kind. Developer Express Inc disclaims all warranties, either express or implied, including the warranties of merchantability and fitness for a particular purpose. Please refer to the DevExpress.com Website Terms of Use for more information in this regard.

        Confidential Information: Developer Express Inc does not wish to receive, will not act to procure, nor will it solicit, confidential or proprietary materials and information from you through the DevExpress Support Center or its web properties. Any and all materials or information divulged during chats, email communications, online discussions, Support Center tickets, or made available to Developer Express Inc in any manner will be deemed NOT to be confidential by Developer Express Inc. Please refer to the DevExpress.com Website Terms of Use for more information in this regard.