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.
User tries to either open a Data Entry form or run a report (via 'Reports - Run'). User receives a message similar to this:
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.
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:
- 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)
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!
6. Now click "Reports - Run"
If you look in 'Task Manager' now, inside 'Details' there are *TWO* processes for 'EXCEL.EXE' running:
7. Choose some parameters, and click 'Send to application':
=> An error appears (as part of Excel):
User XYZ already logged in
Depending on the environment, if you click OK to that error, you may get a new error:
An error occurred when setting status to logged off.
Please save your work and restart excel.
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)
--- End of inner exception stack trace ---
- TIP: For more examples, see separate IBM Technote #6204010.
- TIP: See separate IBM Technote #1347869 for more examples.
- 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).
- 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.
- 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).
The problem has been seen when using Controller 10.3.1 with Excel 2010 and 2013.
Resolving The Problem
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).
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.
Close all the 'hidden' EXCEL.EXE processes that are running in the background, and then re-try.
1. Close all visible Excel sessions
2. Launch Task Manager, and click on 'Details'
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:
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)
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.
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).
30 April 2020