IBM Support

'User XYZ already logged in to this database', triggered by closing Excel at the 'wrong' time earlier, solved by using EXCEL_EAGERLOAD

Troubleshooting


Problem

User intermittently receives 'User XYZ already logged in to this database' when using either 'Reports - Run' or 'Company - Data Entry Reported Values'.

This only occurs when the user has recently closed an Excel session at the 'wrong' time.

Symptom

User tries to either open a Data Entry form or run a report (via 'Reports - Run'). User receives a message similar to this:

image-20180823085717-1

     User XYZ already logged in to this database.

However, the problem will appear intermittent because it only occurs when certain tasks are performed (in a specific order!) prior to performing this task.

Example:

Below is one example of how to reproduce the problem. Naturally there are other potential methods to trigger the problem:

1. Close any open sessions/processes related to Excel/Controller (Excel.exe and ccr.exe)

2. Launch Excel, and create a brand-new (blank/empty) spreadsheet

[Alternatively, you may have an Excel spreadsheet open for a different reason - for example, you may have been running a Controller report recently]

If you look in 'Task Manager' now, inside 'Details' there is a process 'EXCEL.EXE' running
- Also, a copy of Excel is visibly running in Windows:

image-20180823090433-3
- This is as expected :-)

3. Minimise Excel (do not close it)

4. Now click "Company > Data entry Reported Values"

5. Now Close Excel (choose not to save your spreadsheet)

image-20180823090757-5

If you look in 'Task Manager' now, inside 'Details' there is still a process 'EXCEL.EXE' running
- HOWEVER, there is *no* copy of Excel is visibly running in Windows!

image-20180823090857-6

6. Now click "Reports - Run"

image-20180823091209-7

If you look in 'Task Manager' now, inside 'Details' there are *TWO* processes for 'EXCEL.EXE' running:

image-20180823091251-8

7. Choose some parameters, and click 'Send to application':

image-20180823091334-9

=> An error appears (as part of Excel): 

image-20180823091415-10

User XYZ already logged in

=========================================

Depending on the environment, if you click OK to that error, you may get a new error:

image-20180823091620-12

An error occurred when setting status to logged off.
Please save your work and restart excel.

image-20180823091611-11

Details:
System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.Exception: Security Error 1
   at Cognos.Controller.Proxy.SoapExtension.ServerExtension.ValidateNativeUser(SoapMessage& message)
   at Cognos.Controller.Proxy.SoapExtension.ServerExtension.ProcessMessage(SoapMessage message)
   at System.Web.Services.Protocols.SoapMessage.RunExtensions(SoapExtension[] extensions, Boolean throwOnException)
   at System.Web.Services.Protocols.SoapServerProtocol.CreateServerInstance()
   at System.Web.Services.Protocols.WebServiceHandler.Invoke()
   at System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()
   --- End of inner exception stack trace ---

=========================================

Cause

There are many different causes of similar "Security Error 1 ... ValidateNativeUser" errors
  • TIP: For more examples, see separate IBM Technote #6204010.
There are many different potential causes for this 'User XYZ already logged in to this database' message.
  • TIP: See separate IBM Technote #1347869 for more examples.
This Technote specifically relates to the scenario where the cause is a limitation of Controller 10.3.1, triggered when both of the following are true:
1. The user has recently closed an Excel session have been closed in a certain order (see above for an example).
2. Controller is using the default settings (where EXCEL_EAGERLOAD is enabled).
 
More Information:
EXCEL_EAGERLOAD is a feature of modern versions (since 10.2.1 onwards) of Controller. It is designed to speed up the user's overall experience of Controller, by predicting in advance when they will need Excel.
  • For example, if the user clicks 'Company - Data Entry Reported Values' then it will assume that the user will (soon afterwards) open a data entry form. Therefore it opens a session of Excel (typically in the background) so that Excel is ready-and-waiting to be used when the user clicks the 'Open' button (to open the Data Entry form).
Unfortunately, EXCEL_EAGERLOAD makes assumptions on how users will operate the Controller program. Specifically it assumes that Excel sessions and Controller menu items will be opened/closed in a certain order.
  • If the user changes this order (for example closing Excel at an unexpected time) then the EXCEL_EAGERLOAD functionality logic gets 'out of sequence' and therefore causes unexpected behaviour.
 
Specifically in this case, when the user clicks 'Company - Data Entry - Reported Values', if EXCEL_EAGERLOAD is enabled (default) then Controller will search for existing Excel processes. If one does not exist, then it will create one
  • Controller then 'holds on' to that Excel process (in expectancy for the user to either open a form or close the DE parameter choice window).
  • By directly closing the Excel process (without closing the DE parameter choice window) it does not remove the reference (to the DE window) which therefore causes the Excel process to become 'leftover' (orphaned).

Environment

The problem has been seen when using Controller 10.3.1 with Excel 2010 and 2013.

Resolving The Problem

Fix

Disable 'EXCEL_EAGERLOAD' by implementing the local and/or server preference ''EXCEL_EAGERLOAD" (with a value of FALSE)

  • This will stop Controller from creating a new EXCEL.EXE session (as soon as the parameter choice screen is opened).

Steps:

For full instructions, see separate IBM Technote 2002613.

However, for most customers, the easiest method is if the superuser performs the following task on every one of the Controller databases:

1. Click 'Maintain - Configuration - General'

2. Click 'Server Preferences'

3. Create a new variable name: EXCEL_EAGERLOAD

  • value: FALSE

4. Save changes

5. Exit Controller, and re-logon. Test.

Instant Cure

Close all the 'hidden' EXCEL.EXE processes that are running in the background, and then re-try.

Steps:

1. Close all visible Excel sessions

2. Launch Task Manager, and click on 'Details'

image-20180828132836-1

3. Select any 'EXCEL.EXE' processes, and click 'End Task'.

Extra information for Citrix users
If working inside a Citrix environment, then the method to launch Task Manager is:
1. Press the 'CTRL' and 'F1' keyboard keys simultaneously. A menu will appear:

image-20180823101257-1

2. Click "Task Manager"
3. Now you can close 'EXCEL.EXE' as shown above.

Alternatively, it may be easiest to simply logoff from Citrix by clicking 'Sign Out' (which will kill *all* processes that you have running on Citrix) and re-launch Controller (via Citrix) again afterwards.

Workarounds (to prevent the problem from occurring)

Method #1

Do not close Excel reports and/or in the specific order (for example as described above) which triggers the extra 'ghost' EXCEL.EXE process to occur.

Method #2

If you do close Excel spreadsheets/reports in the 'bad' order (for example after clicking 'Company - Data Entry Reported Values') then make sure that you also close the 'Data Entry Reported Values' parameter choice screen too (before using any other/different Controller functionality).

[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SS9S6B","label":"Cognos Controller"},"Component":"","Platform":[{"code":"PF033","label":"Windows"}],"Version":"10.3.1","Edition":""}]

Document Information

Modified date:
30 April 2020

UID

ibm10728985