IBM Support

"Illegal operation attempted on a registry key that has been marked for deletion ... 0x800703FA" running standard reports or "...FrJavaProxyB" running Java functionality

Technote (troubleshooting)


Problem(Abstract)

Errors received when using Controller.
Example #1: Users receives an error message when trying to view standard reports (also known as "system reports") in Controller.
Example #2: Users receives an error message when using Java-related functionality (for example AFC / allocations).

Symptom

Example #1


    Standard Error
    Number: 5
    Source: FrangoDirect.AccountReportsD.CreateAnalyzeRsCRN#ControllerProxyClient.frmAccountRep.CreateAnalyzeRsCRN
    Description: System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.Runtime.InteropServices.COMException (0x800703FA): Illegal operation attempted on a registry key that has been marked for deletion. (Exception from HRESULT: 0x800703FA)
    at FrAccountB.AccountReportsBClass.CreateAnalyzeRsCRN(String sGuid, String sUser, Int32 lLLocale, Boolean bLokSprak, String sBnr, Recordset rsAccount, String sXmlDoc)
    at Cognos.Controller.Proxy.CCRWS.AccountReportsB_CreateAnalyzeRsCRN(String sGuid, String sUser, Int32 lLLocale, Boolean bLokSprak, String sBnr, DataSet rsAccount, String sXmlDoc)
    --- End of inner exception stack trace ---
    at Microsoft.VisualBasic.ErrObject.Raise(Int32 Number, Object Source, Object Description, Object HelpFile, Object HelpContext)
    at Cognos.Controller.Common.RaiseErrCli.RaiseError(Int32 lErrNo, String sErrSource, String sErrDesc, String sErrHelpFile, Int32 lErrHelpContext)
    at Cognos.Controller.Forms.Form.frmAccountRep.CreateAnalyzeRsCRN(XmlDocument& xmlDoc)
    at Cognos.Controller.Forms.Form.frmAccountRep.IFormStandardReport_CreateReportData(IStandardReport& cIStandardReport

Example #2
    Error
    Model not found in context: journalType
    Unable to find instance of model of type: <.....>
    <.....>
    <.....>
    FAIL: Message: Automation error
    Illegal operation attempted on a registry key that has been marked for deletion. Source: FrJavaProxyB
    [OK]


Cause

Someone (for example I.T. administrator) has recently logged onto the Controller application server, and then afterwards logged off again, using the Windows username/password that is running the Controller system in the background.

  • In other words, someone has recently logged off the Controller application server who was logged onto Windows using the Controller COM+ user account.

More information
By default, Microsoft Windows 2008 will forcefully unload the user registry at user logoff. Therefore, if someone logs onto Windows on the application server using the Controller COM+ user account (for example "DOMAIN\Controller_system") then logs off afterwards, then this will trigger the user registry to be forcibly unloaded. This can cause the COM+ application to fail.
  • For more information, see the Microsoft article linked below.

Environment

Controller application server based on Windows 2008.

Diagnosing the problem

If you enable COM tracing, you’ll see the error ERROR_KEY_DELETED in the ole32 trace log:

    [2] 0BA8.15D0::10/17/2009-13:07:54.390 [OLECOM](:CComRegCatalog::GetClassInfoW) CLSID:ecabafae-7f19-11d2-978e-0000f8757e2a 1018(ERROR_KEY_DELETED)
    [2] 0BA8.15D0::10/17/2009-13:07:54.390 [OLECOM](:CComCatalog::GetClassInfoInternal) CLSID:ecabafae-7f19-11d2-978e-0000f8757e2a Flags:0 IID:00000000-0000-0000-c000-000000000046 0x800703fa(ERROR_KEY_DELETED)

You will also see events like the following in the 'application' event log:
    Log Name: Application
    Source: Microsoft-Windows-User Profiles Service
    Date: 10/26/2009 8:22:13 AM
    Event ID: 1530
    Task Category: None
    Level: Warning
    Keywords: Classic
    User: SYSTEM
    Computer: DAVIDQIU2008
    Description:
    Windows detected your registry file is still in use by other applications or services. The file will be unloaded now. The applications or services that hold your registry file may not function properly afterwards.

    DETAIL -
    1 user registry handles leaked from \Registry\User\S-1-5-21-1049297961-3057247634-349289542-1004_Classes:
    Process 2428 (\Device\HarddiskVolume1\Windows\System32\dllhost.exe) has opened key \REGISTRY\USER\S-1-5-21-1049297961-3057247634-349289542-1004_CLASSES

Resolving the problem

Workaround:

Obtain a short period of downtime (no users on the system) and reboot the application server.

  • Afterwards, ensure that nobody logs onto the Controller application server using the COM+ Windows user account, except during periods of maintenance (for example upgrading Controller version)

Long Term Fix:
Follow the instructions inside the relevant Microsoft article (see link below for full article, or follow the steps inside the summary).

Summary of Microsoft Fix:
Disable the new "User Profile Service" feature by enabling the policy setting 'Do not forcefully unload the user registry at user logoff'.
  • When enabled, Windows 2008 does not forcefully unload the registry and waits until no other processes are using the user registry before it unloads it.

Steps:
  1. Logon to the application server as an administrator
  2. Launch the group policy editor (click "Start - Run" then type "gpedit.msc")
  3. Navigate "Computer Configuration -> Administrative Templates -> System-> UserProfiles"
  4. Double-click on "Do not forcefully unload the user registry at user logoff"
  5. Change the setting from “Not Configured” to “Enabled”. TIP: 'DisableForceUnload' is the value added to the registry
  6. Obtain a short period of downtime (no users on the system) and reboot the application server (to ensure that the change has been registered).

Related information

THIRD PARTY - A COM+ application may stop working on Wi

Document information

More support for: Cognos Controller
Controller

Software version: 8.4, 8.5, 8.5.1, 10.1, 10.1.1

Operating system(s): Windows

Reference #: 1497069

Modified date: 23 August 2012


Translate this page: