"Portlet Unavailable" / Object Named "Registration" Could Not Be Found In The Persistent Store after Deploying a WebCenter Application with WSRP Portlets to a new WebCenter instance (Doc ID 1225803.1)

Last updated on MARCH 08, 2017

Applies to:

Oracle WebCenter Portal - Version 11.1.1.2.0 and later
Information in this document applies to any platform.
***Checked for relevance on 11-FEB-2016***

Symptoms


When attempting to run a WebCenter Application which consumes WSRP Portlets,
the following error is seen in the Portlets:

Portlet Unavailable



The WC_Portlet-diagnostic.log shows the following error:

[WC_Portlet] [WARNING] [] [oracle.portlet.server.containerimpl.PortletApplicationImpl] [tid: [ACTIVE].ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: anonymous] [ecid: 0000IfvZPxuApIPaydBh6G1CX_1o0001SZ,0:1] [WEBSERVICE_PORT.name: WSRP_v2_Markup_Service] [APP: AppPortlets] [J2EE_MODULE.name: AppPortlets] [dcid: e0e531dd54bb5a7e:-5a335c99:12aecbb5f03:-8000-0000000000004670] [WEBSERVICE.name: WSRP_v2_Service] [J2EE_APP.name: AppPortlets] Invalid handle "C:127.0.0.1:-8d4fa0c:12a56eb1eae:-7ffd".[[
oracle.portlet.server.containerimpl.ContainerObjectNotFoundException: Object named "registration" could not be found in the persistent store.
at oracle.portlet.server.containerimpl.persistence.SimplePersistentStorage.get(SimplePersistentStorage.java:47)
at oracle.portlet.server.containerimpl.ConsumerRegistration.<init>(ConsumerRegistration.java:69)
at oracle.portlet.server.containerimpl.ConsumerRegistration.<init>(ConsumerRegistration.java:47)
at oracle.portlet.server.containerimpl.ServerImpl.doRuntimeCall(ServerImpl.java:1276)
at oracle.portlet.server.containerimpl.ServerImpl.getMarkup(ServerImpl.java:143)
at oracle.portlet.server.containerimpl.ServerPerfLogger.getMarkup(ServerPerfLogger.java:584)
...



There are 2 scenarios that can cause this issue:

Scenario 1

The application was first deployed to a test instance or to the IntegratedWebLogicServer in JDeveloper where the Portlets work fine.

After deploying the Producer and WebCenter application to another WebCenter instance (e.g. Production) and modifying the Producer URL to the new instance the above error is displayed in the Portlets are when running the application.


STEPS


The issue can be reproduced at will with the following steps:

  1. Create a Portlet Producer Application in JDeveloper.

  2. Deploy the Producer to a Test WebCenter Instance or to the IntegratedWebLogicServer.

  3. Create a Custom WebCenter Application in JDeveloper.

  4. Register the Producer in the Custom WebCenter Application.

  5. Add a few Portlets to a page in the Custom WebCenter Application.

  6. Deploy the Custom WebCenter Application to a Test WebCenter Instance or to the IntegratedWebLogicServer.

  7. Run the application and confirm the Portlets look fine.

  8. Now deploy the Portlet producer and the Custom WebCenter Application to a production WebCenter instance.

  9. Edit the Provider registration to use the Producer URL from the Production instance.

    Here you should see the portlets display "Portlet Unavailable" error.

    The WC_Portlet-diagnostic.log displays the "Object named "registration" could not be found in the persistent store" error.



Scenario 2

In High Availability scenarios the issue can happen if the producer is registered with WebCenter using the URL of one of the managed servers and later modifying the Producer URL to use a Load Balancer URL to balance requests between 2 or more manged servers servicing the producer application. In this scenario the Producer preference store is set to File (the default).


  1. Create a Portlet Producer Application in JDeveloper.

  2. Deploy the Producer to a managed server in a WebCenter domain (e.g. WC_Portlet1).

  3. Register the Producer with WebCenter Spaces or a custom WebCenter Application.

  4. Confirm the portlet works fine with WebCenter Spaces or the custom WebCenter Application.

  5. Deploy the Producer to a second managed server in a WebCenter domain (e.g. WC_Portlet2).

  6. Configure a Load Balancer in front of the 2 managed servers hosting the Producer application.

  7. Edit the Provider registration with WebCenter Spaces or the custom WebCenter Application to use the Producer URL from the Load Balancer.

    Here you should see the portlets display "Portlet Unavailable" error.

    The WC_Portlet2-diagnostic.log displays the "Object named "registration" could not be found in the persistent store" error.

 

 

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms