HOW TO: Improve AB Suite Debugger Startup Time
Transcription
HOW TO: Improve AB Suite Debugger Startup Time
Improving AB Suite Debugger Startup Time HOW TO: Improve AB Suite Debugger Startup Time Article ID Last Reviewed 2911112000 December 2011 Submitter Gary Taylor and Paul Bourke References None Keywords Developer, Debugger Applies to DEV – 1.2 & 2.0 SUMMARY: Below are the instructions for improving AB Suite Debugger startup times. Steps to improve Debugger startup time: Starting debugger: Before the AB Suite Debugger starts, it must build wrappers for the Segment level Classes or Report Classes that are to be debugged or are located in the deployable folders. These wrappers are small routines that intercept the calls between the presentation layer and the AB Suite Debugger environment. For an object, creation of these wrappers does not take long, but for large systems, this can be an extended period. However, there are some simple steps that can be taken to reduce the number of wrappers built and/or even stop the recreation of pre-existing wrappers. Restricting the numbers of wrappers built: Like the build process for a runtime system, the solution configuration options at the deployment folder level and sub-folders dictate what is built when you start debugger. So, on starting the debugger, it builds wrappers for the system (assuming you are debugging the system) and any Reports that are in deployable folders or all Reports, if the Deployment Folder configuration option Deploy Reports is set to true. Copyright © 2011 Unisys Corporation. All Rights Reserved. Improving AB Suite Debugger Startup Time So, the first tip is to ensure that only the Reports that you are currently working with, have wrappers built for them. Set the Deployment level Configuration properties for Deploy Reports to False. Where Reports are to be used in testing ensure they are placed in a separate folder so as to limit the wrappers that are built. For all folders where you do not want Report wrappers built then, ensure that the configuration properties are either marked as Deployable False or Deploy Reports False. From AB Suite IC 2.0.1500 onwards, the single Report build feature is added in Debugger. This means that the Report wrapper builds can be limited even further. The configuration of the folders remains the same as described above, but the individual Reports can be built rather than building the entire Reports Folder. To do this, right-click the Report you want to debug in the Class View and select Build from the context menu. Stop re-creation of pre-existing wrappers The Debugger wrappers do not need to be created every time the Debugger is started. They are created only when a major change has occurred. From IC 2.0.1700 onwards, the changes made to the Model are analyzed so that the wrapper is built only if a change is made to an element that is used in building the wrapper. Prior to IC 2.0.1700 the default action is to create the wrappers every time debugger is started. Changing this default behaviour is straight forward but the wrappers must be manually built as and when required. Following is a list of the main reasons why a new Debugger wrapper is required. Note: This covers the major reason, but there may be others reasons also. So, if you do encounter errors during Debugger startup, try a manual re-build first. Solution configurations store details about how a particular system should be deployed, or debugged. If a different Solution configuration was used previously for Debugging (for a user/Developer), then new wrappers will be required. If use of a local SQL Server Debugger database and persistent database changes are required i.e. a Reorg, then you will need to rebuild the wrappers. If you do not require the changes to be persistent i.e. logical Reorg, then existing wrappers can be used. Adding New Report classes or accessing Report classes that do not have previously created wrappers available. However, in this case, only the wrapper for the affected reports is required. Changing or adding Public Segment Methods require new wrappers. For Windows Runtime only – not applicable to MCP Runtime, Changes to IsExternal Classes requires new wrappers. Installation of new IC always requires that new wrappers are built. Adding new Ispec Classes or Methods does not require the creation of new wrappers. While there are several reasons for needing new wrappers being built, very few will Copyright © 2011 Unisys Corporation. All Rights Reserved. Improving AB Suite Debugger Startup Time be common in day to day development requirements. So, in most situations, the requirement to rebuild the debugger wrappers can be avoided. Procedure to stop automatic build of Debugger wrappers The procedure to change the default behaviour and stop the debugger wrappers from being built automatically is as follows: 1. Open up the configuration Manager window (through Solution Configuration drop-down just under the Visual Studio menu bar). 2. Select the Configuration you are using for debugging and uncheck the Build check box. The following example shows a configuration called Debug where this has been done: Note: The use of separate configurations for Debugger is discussed later. You can now build the Debugger wrappers when required. Ensure that Debug mode is set at the Model/Project Solution Configuration level before starting a Build. A build of the Debugger wrappers is performed in the similar way as for a normal system build: A build of the Deployment folder will build the system wrappers. Reports are built if the “Deploy reports” Build Target Filter is true at the Deployment Folder Solution Configuration level. To reduce the time to build report wrappers, place only the reports that are currently being worked on, or are required for testing in a separate folder and then build the folder as required (ensure folder Copyright © 2011 Unisys Corporation. All Rights Reserved. Improving AB Suite Debugger Startup Time marked as deployable). This also allows you to explicitly build reports, as required. Separate Debugger Configuration To enable the AB Suite Debugger, you need to set the Debug options at the Model Solution Configuration Level. So, the simplest option is to just modify the current configuration, and enable or disable debugging as required. For developers working on a standalone workstation and who do not have Windows Runtime on their workstation (i.e. targeting MCP), this may be acceptable. If you want to have both Windows Runtime and Debugger running against the same system on the same workstation, then there are additional considerations that need to be taken into account. The same is true if you are running AB Suite Development on a shared server, for example through Remote Desktop/Terminal Services or CITRIX. In both these situations, not only you need to change the Solution Configuration Debugger options, but you also need to specify unique values for several other configuration settings prior to starting debugger. For example: COM Prog Id - at the Segment Configuration level Alternate Name - at the Segment Configuration level So, rather than having to set the Configuration options in several places every time you want to start a debugger session, it may be more convenient to create separate configurations for Debugger or each Developer who will run debugger. This has the added advantage of allowing you to disable the build for the Debug Configurations, as described earlier. Caution! If you utilise multiple configurations, be careful that the debugger and deployment configurations do not become out of step and cause you problems. For example GLB.Work, GLB.Param sizes and the Fireup Ispec are all properties of a configuration. For this reason, it is recommended that you refresh your Debug configuration periodically if you experience problems. The simplest way to do this is to delete and then recreate the Debug configuration using the procedure below. Duplicating a configuration New Solution configuration properties can be cloned from existing Solution configuration properties through Configuration Manager. 1. Open the Configuration Manager window (through the Solution Configuration drop-down list available just under the Visual Studio menu bar). 2. In the Configuration Manager dialog box, expand the Solution Configuration list and select <New...> as shown: Copyright © 2011 Unisys Corporation. All Rights Reserved. Improving AB Suite Debugger Startup Time 3. This will present you with the New Solution Configuration dialog box. In the Name field, specify the name of your new configuration and then use the Copy setting from combo box to select the solution configuration you wish to copy. Leave the Create new project configurations option checked, as this is required to enable you to access the newly created configuration. Note: It is recommended that for Solution Configuration that are going to be used for debugging, you use a name that identifies them as debugging configurations. Additionally, for use in terminal Server configurations, it is suggested that a developer name or some other unique identifier is used as well, for example: Debug_Gary, Debug_Andy etc. 4. Once the configuration is created, you need to set the appropriate configuration options. For example; to enable debugging, specify the Debug database name and registration name etc. To switch to the newly created configuration, just select it in the solutions configuration drop-down combo box. Copyright © 2011 Unisys Corporation. All Rights Reserved.