IBM Support

Intermittently 'Reports - Run' hangs near completion (e.g. 84%) of report

Troubleshooting


Problem

Inside the main Controller client (CCR.EXE), user clicks 'Report - Run'. User chooses a report, and selects the parameters, and clicks 'run'. - Sometimes the report works OK (completes as expected). - Other times, the report hangs at some point. The percentage of completion (of the report) is shown in the lower-right corner of Excel.

Symptom

Customer using the 'Report Generator' interface to run reports.

  • In other words, they are launching the reports from a screen similar to:


During the running of the report, the Excel report shows a percentage of how much is completed:
                  Calculating: (4 Processor(s)): 84%

Intermittently the report hangs part-way (for example 84%) during the report creation (does not finish or get to 100%.

Cause

Defect (reference APAR PI54521) in Controller

This is only triggered if both of the following are true:

    1. The report has been designed in a specific way (rare)
    2. The client device has more than one CPU core (likely).

More Information

There is a limitation in Controller, relating to the way that account names are retrieved.

  • Specifically, the problem is triggered when using an fAccName with the result from an fAcc.

In one real-life customer example:
  • In cell O284 there is the formula: =cc.fAccName(N284)
  • In cell N284 there is the formula: =D74
  • In cell D74 there is the formula: =cc.fAcc()

In theory, this should work. [However, it is not the recommended way of achieving this goal].
  • In Controller 10.2.1, there is a limitation where doing this can cause a problem (when using a multi-threaded client).

Environment

The problem only occurs when the client device is running on a device that has multiple CPUs.

Resolving The Problem

Fix:
Upgrade to Controller 10.2.1 FP3 (10.2.5130.56) or later.

Workarounds:
There are several different methods that you can use to workaround the problem.

  • Choose the one that is easiest for you.

====================================================================================
Method #1

Modify the spreadsheet so that it does not use an fAccName with the result from an fAcc.



Example:
In one real-life customer example, the way to fix their report was to:
  • Add a formula =cc.fAccName() in cell H31 to H197 (which during the report run will be filled out with the account name in the same way as =cc.fAcc() will be filled out with the account code)
  • Replace all =cc.fAccName formulae (further down in the report) with direct references to the cc.fAccName formulas (added in H column).

=> Therefore, the formula in O284 will simply be: =H74

TIP: For more information, please contact IBM Support.
====================================================================================

Alternatively you can modify Excel so that it does not use multi-threading (before running Controller reports).
  • NOTE: Unfortunately, in general terms this is done on a per-spreadsheet basis (not per-client device)
  • Therefore, there are two different methods (#2 or #3) to achieve this (see below). Choose the method that is best for your environment.

Method #2
Disable multi-thread for all Excel spreadsheets (run on that client device).
    Steps:
    NOTE: The following steps are based on guidance from a third-party (non-IBM) source. Customers should read the steps carefully, and understand the processes involved, before performing the actions. IBM is not responsible for any inadvertent problems caused by following the advice of these third-party (non-IBM) website(s).

    The following instructions are based on Excel 2013.
    They may need to be modified slightly if you are using a different version of Excel.
    1. Download the file "DisableMultiThreading.XLAM" from here: http://www.remkoweijnen.nl/blog/2012/06/08/excel-2010-multi-threaded-calculation/
    2. Logon to the client device, using the 'bad' end user's Windows account
    3. Copy the file "DisableMultiThreading.XLAM" to a sensible folder location
    • For example C:\UTILS\DisableMultiThreading.XLAM
    4. Click "Excel Start button - Excel Options"
    5. Click "Add-Ins"
    6. Ensure that 'Manage' is set to "Excel Add-ins" and then click 'Go':


    7. Click "Browse"
    8. Browse to the file (for example C:\UTILS\DisableMultiThreading.XLAM) and add it to Excel

    TIP: To check that this has worked:
    • Launch Excel
    • Click "Excel Start button - Excel Options"
    • Click "Add-Ins"
    • Check that it looks similar to:

Method #3
Disable multi-thread for each individual report.
    Steps:
    1. Click "Reports - Create"
    2. Open an existing report inside Excel
    3. Click "Excel Start button - Excel Options"
    4. Click "Advanced"
    5. UNTICK the box 'Enable multi-threaded calculation':


    6. Save the report
    7. Repeat for all reports.

[{"Product":{"code":"SS9S6B","label":"IBM Cognos Controller"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Component":"Controller","Platform":[{"code":"PF033","label":"Windows"}],"Version":"10.2.1","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Document Information

Modified date:
15 June 2018

UID

swg21967752