So you’ve installed IBM Cognos Controller, you’ve upgraded the database and you have deployed the client. That in itself is no mean feat but the next question is how to do I make it go faster.
Below are a series of enhancements that you can make to your Controller environment that could make a 20% to 30% improvement in general performance.
1… Split out the consolidation activities from the main application by creating a second COM+ application.
2… Increase the web server document sizing capabilities in IIS 7.5
3… Use the 64 bit Java Proxy service to improve AFC performance
4… Use LAA (Large Address Aware) to make more memory available for the Controller Client on 64bit Operating Systems.
5… Reduce the amount of time that each Controller system waits for batch jobs.
1.. Splitting the Consolidation Activities
IBM Cognos Controller is a single threaded application. Often I hear complaints that users are waiting patiently behind a Consolidation to finish before their reporting jobs running in batch can be delivered. Below are some simple steps to create a second COM+ application called COGNOSVFP which will perform the Consolidation allowing other process to use the existing IBMCOGNOSCONTROLLER COM+ application. It only takes around 15 minutes to complete this work but you MUST get all users out of Controller before you start.
1. Ensure that no users are using Controller (downtime)
2. Logon to the application server as an administrator
3. Click on ‘Start – Settings – Control Panel – Administrative Tools’
4. Launch ‘Component Services’
5. Expand the ‘top row’ (by clicking on the ‘+’ symbols) until you reach the COM+ application called "IBMCOGNOSCONTROLLER"
6. Expand this, and expand “Roles”
7. Make a note of the name of the group under “Roles” (for example called “ControllerUsers”)
8. Make a note of the users listed underneath (typically they will be “Everyone” and “NT AUTHORITY\system”)
9. Right-click on “IBMCOGNOSCONTROLLER” and choose “properties”
10. Click on tab “Identity”
11. Make a note of the username (for example “mydomain\myserviceaccount”)
12. Ensure that you know the correct password for this user before continuing
13. Close the screen, and right-click on “COM+ Applications” and choose “’New Application”
14. In the wizard, choose ‘Next’ then click ‘Create an Empty Application’
15. By convention, we shall name the application ‘COGNOSVFP’ and ensure ‘server application’ is selected.
16. Choose ‘This user’, and use the same Windows user (also known as the “COM+ user” or "service account") that we located earlier.
17. Click “Next”
18. At the next screen, highlight ‘CreatorOwner’ and choose ‘remove’
19. Then click ‘add role’ and type in the SAME name as the role that we saw earlier (for example ‘ControllerUsers’) then click OK.
20. Click ‘Next’
21. At the next screen, remove any user listed, and then add the entries that we saw earlier in the IBMCOGNOSCONTROLLER role.
22. Click “Next”, “Finish”
23. Expand the IBMCOGNOSCONTROLLER application, and open “Components”. Several hundred individual icons will appear on the right-hand side:
24. Highlight the 2 icons called “frangovfp.cglobvar” and “frangovfp.main”
25. Right-click and choose “move”
26. In the “Move components” screen, ensure that “COGNOSVFP” is selected, and click “OK”:
27. Expand “COGNOSVFP” – “Components”
28. Select both components, and right-click and choose “properties”
29. Click on ‘Security’ tab, and then tick both boxes ‘Enforce’ and ‘ControllerUsers’
30. Click OK
31. Reboot the application server. You are now ready to test.
The COM+ application is shown as the process DLLHOST.EXE within Task Manager. A consolidation would usually take up one entire CPU so on a quad core server I would expect the process to utilise 25% of the total capacity.
2.. Increase the Web Server document sizing capabilities
Some protection has been put in place in the versions of IIS shipped with Windows 2008 R2. This means that some large spreadsheets will fail with ‘Out of Memory’ issues or HTTP 404 errors. To overcome this you simply need to edit the file below and larger spreadsheets will run successfully.
1. Ensure no users are using Controller (short period of downtime)
2. Logon to the Controller application server as a Windows administrator
3. Launch Windows Explorer
4. Locate your "ControllerProxyServer" folder. TIP: By default, for 64-bit servers this is: "C:\Program Files (x86)\IBM\cognos\c10\ControllerProxyServer"
5. As a precaution, take a copy of the file "Web.config" and place it somewhere safe (as a backup)
6. Click "Start – All Programs – Accessories"
7. Right-click on "Notepad" and choose "Run as Administrator"
8. Click "File – Open"
9. Browse to the location of your "ControllerProxyServer" folder.
10. Change the file format from "Text" files to "All Files (*.*)"
11. Open the file "Web.config" file
12. Scroll all the way to the bottom.
13. Just before the final line ("</configuration>") add a few lines of extra text (see below for details).
Additional lines in Italics and Bold
3.. Using 64bit Java Proxy Service
This change involves using the 64bit version of Java through the CCR_JAVA_Home variable and changing the executable that the service runs under. This is a new feature that has been released in IBM Cognos Controller 10.1.1 Fix Pack 2 only.
1. Ensure no users are using any functionality related to JAVA (or, ideally, ensure no users are in the Controller system at all)
2. Logon to the Controller application server as a Windows administrator
3. Stop the Windows service "IBM Cognos Controller Java Proxy"
4. Launch Windows explorer, and navigate to the …c10\server folder. TIP: by default this is here: D:\Program Files (x86)\IBM\cognos\c10\server
5. Rename the file "ccrproxy.exe" to "ccrproxy.exe.x86"
6. Rename the file "ccrproxy_x64.exe" to "ccrproxy.exe"
7. Right-click on "Computer" and choose "Properties"
8. Click "Advanced system settings"
9. Click "Environment Variables"
10. Highlight the "CCR_JAVA_Home" system environment variable and click "Edit"
11. Modify it to point to the directory of a 64 bit JRE. TIP: By default this is: D:\Program Files (x86)\IBM\cognos\c10\bin64\jre\6.0
12. Start the Windows service "IBM Cognos Controller Java Proxy"
IMPORTANT: It is more than likely that this file will be replaced everytime you patch the Controller software therefore you should ensure that you document this change as part of an update in the future.
4.. Use Large Address Aware to allow Controller Clients to use more than 2GB memory
The change below is NOT officially supported by IBM but the people on the ground tell me if works well and I have seen big performance improvements on larger processes with less Out of Memory issues. It is recommended to be implemented on larger PC’s with over 4GB RAM and all Citrix / Terminal Server implementations.
This process uses a third party application that is not supported directly by IBM but it is recommended to use it for the performance improvement.
The steps to implement this on each client device are as follows:
1. Open Windows Explorer
2. Navigate to C:\Program Files (x86)\IBM\IBM Cognos Controller.
3. Make a copy of the file ccr.exe
4. Download the third party tool 4GB Patch from http://www.ntcore.com/4gb_patch.php
5. Open the 4GB Patch application.
6. Open the file ccr.exe from the open icon in.
7. The application is changed to allow the Large Addressing and a backup copy it also made.
8. Test the core functionality.
Ensure you do this configuration change on every Citrix / Terminal Server as you will experience slower performance on those servers not patched.
5.. Reduce the Controller Job wait time
Whenever you send a job to the batch server, it can take some time to pickup the request. This can cause frustration as the default is set to 20 seconds per application database. So if you have LIVE, TEST, DEV, and TRAINING databases a consolidation might not start for 80 seconds (4 databases x 20 seconds). My editing the registry you can reduce this time to something more sensible. You could also reduce the number of databases too!!
To alter the registry you simply need to perform the following steps on your Controller application server:
1… Open regedit32.exe
2… Navigate to HKEY_CURRENT_USER\Software\VB and VBA Program Settings\FrangoController\Settings
3… Change the BTC_TIMER_INTERVAL from 20000 (20 seconds) to a lower value (minimum 2000). Do not change it to zero.
4… Close the registry editor and restart the IBM Cognos Controller Batch Server service.
Please note that the location of the registry key for 64bit Servers is HKEY_CURRENT_USER\Software\Wow6432Node\VB and VBA Program Settings\FrangoController\
Also, it is good practice to check your c10\data directory out and remove any redundant .UDL files in there as they will be scanned by the Batch Service.