IBM Support

Users trying to logon got "The hostname could not be parsed" due to IIS app pool problem (worker process reached its allowed processing time limit)

Technote (troubleshooting)


Problem(Abstract)

User1 launches the Controller client. This works OK.

Several minutes later, User2 launches Controller client. User2 receives error message.
* All new users (from now onwards) affected. No new users can logon to the Controller system.
* However, existing (currently logged-on) users are unaffected. In other words, those already in Controller (for example User1) can carry on using the system as normal.

I.T. administrator looks at the Application Log (on the Controller application server). There is an entry in there which is recorded at exactly the same time as the problem started.

Symptom

Screen error:


Invalid URI: The hostname could not be parsed

Application log (on the Controller application server):

WAS
A worker process with process id of 'xxxx' serving application pool 'ibmcognos' has requested a recycle because the worker process reached its allowed processing time limit


Cause

The Controller application server's IIS (web server) application pool has tried to recycle, but it has failed.

More Information:
IBM R&D have investigated the problem, and have concluded that the likely root cause (for why the IIS application pool has failed to recycle successfully) is linked to the fact that the only versions of Controller which (so far) have seen this error/problem are 10.2.1 (or earlier).

  • Specifically, Controller 10.2.1 uses .NET (ASP.NET) version 2.0
  • Controller 10.3.0 (and later) uses .NET (ASP.NET) 4.x

IBM R&D believe that the problem is triggered by a limitation of the old Microsoft .NET 2.0 architecture.

Diagnosing the problem

To check the current application pool limit settings:

1. Logon to your Controller application server (as a Windows administrator)
2. Click "Start - Control Panel - Administrative Tools"
3. Launch "Internet Information Services (IIS) Manager"
4. In the "Connections" pane (on the left), expand the computer, then select the "Application Pools" folder (underneath the computer name).

TIP: The only relevant application pools are the ones which have 1 (or more) applications associated with them.

  • For example, in the picture below these are '.NET v2.0' and 'DefaultAppPool':


5. In "Features View", select the relevant application pool.

TIP:
  • By default, this will be called "DefaultAppPool"
  • Some customers create a dedicated application pool (called whatever the want it to be, for example 'ibmcognos')

6. In the Actions pane, select 'Advanced Settings':


7. Inside the 'Recycling' section, expand ' Generate Recycle Event Log Entry'

By default, this is set to:

To give yourself more diagnostic information (to understand what is going wrong) you can change those all of those settings to TRUE:

8. Repeat step 7 for *all* of the Application Pools which have 1 (or more) applications associated with them.

Resolving the problem

Fix:

Upgrade to the latest version of Controller, which uses a later version of Microsoft .NET.

  • For example, Controller 10.3.1 uses .NET 4.0/4.5 (not 2.0).


Workarounds:
There are several workarounds:
  • Method #1 (instant fix)
Obtain a short period of downtime, and manually restart the application pool.
    Steps:
    1. Open IIS 'Application Pools' section
    2. Right-click on the relevant application pool (any that has 1 or more application associated with it)
    3. Click 'Recycle':
    4. Repeat steps 2 and 3 for all application pools that are currently in use (those that have the number inside column ' Applications' larger than zero)
    5. Test.
  • Method #2 (long-term workaround)
Modify the application pool(s) to only recycle at known times (ideally downtime, but at least during times with lowest user load), not during random parts of the day (for example during peak load).
    Steps:
    1. Open IIS 'Application Pools' section
    2. Right-click on the relevant application pool (any that has 1 or more application associated with it)
    3. Click 'Recycling':


    4. The default setting is to recycle every 29 hours (which means it changes each day):


    The solution is to change this to " Specific time(s)" as follows:


    The above example changes it to only recycle at 3am.

    5. Repeat steps 2-4 for all application pools (that have 1 or more applications associated with them).

Document information

More support for: Cognos Controller
Controller

Software version: 10.2.1

Operating system(s): Windows

Reference #: 1969315

Modified date: 11 June 2018