Java Object Cache in a clustered WebCenter Portal (Spaces) environment

When working with WebCenter Spaces it is recommended to configure the Java Object Cache (JOC) to increase performance as described in following section of the Enterprise Deployment Guide.In a clustered environment the JOC is responsible for synchronizi…

Managing Oracle Documents Cloud Service files via curl commands

  Oracle Documents Cloud Service allows users to keep their files in the cloud. It allows organizations to centralize their data. This blog post covers how to manage your files from a terminal. It could be a terminal running on your MacBook laptop, Windows desktop, or Linux server. Command-line tools are a simple applications to upload […]

Best Practice: WebCenter Sites Workflow Start Step

One of the key features of WebCenter Sites is its built-in workflow capabilities. While some see workflow as “onerous”, for auditing purposes it can’t be beat. For the majority of projects, we recommend clients adopt workflow for managing their web content as it will clearly identify who/what/when when it comes to who made the edit, […]

Fusion Applications WebCenter Content Integration – Automating File Import/Export

Introduction Oracle WebCenter Content, a component of Fusion Middleware, is a strategic solution for the management, security, and distribution of unstructured content such as documents, spreadsheets, presentations, and video. Oracle Fusion Applications leverages Oracle WebCenter Content to store all marketing collateral as well as all attachments. Import flow also uses it to stage the CSV files […]

Double Buffered Caching with inCache in WebCenter Sites 11gR1

  To download this paper click on: Double Buffered Page Caching with inCache   Double Buffered Page Caching with inCache in WebCenter Sites 11gR1   Introduction   Page Caching is a very important in WebCenter Sites for achieving high performance. WebCenter Sites delivers dynamic pages. When a visitor requests a web page WebCenter Sites executes […]

Tips for Installing WCSites11gR1on Exalogic

This paper can be downloaded by clicking: Installing WebCenter Sites on Exalogic Ver1.0   Tips for Installing WebCenter Sites 11gR1 on Exalogic   Background: Recently I had the opportunity to install WebCenter Sites on Exalogic. Everything, including the database, was to be installed on the same Exalogic box. In this aspect the installation was different […]

How to Get Mobile Access to WebCenter Portal Activity Stream

Introduction Oracle WebCenter Portal (WCP) provides the activity stream for a portal via a Representational State Transfer (REST) interface. This article describes accessing this activity stream from a mobile device, making use of the Oracle Service Bus (SB), and the Oracle Mobile Application Framework (MAF). The WCP activities are persisted on the mobile device using […]

Summary of Mobile Access to WebCenter Portal Activity Stream

Introduction Oracle WebCenter Portal (WCP) provides a list of activities that have recently occurred in a portal, called an activity stream, via a Representational State Transfer (REST) interface. This article summarizes accessing this activity stream from a mobile device, making use of the Oracle Service Bus (OSB), and the Oracle Mobile Application Framework (MAF). The […]

WebCenter Sites and WebCenter Content Integration

WebCenter Sites and WebCenter Content Integration   Overview WebCenter Sites is a great tool for business users and marketers to easily manage their Web Experience. WebCenter Content allows consolidation of all enterprise documents and digital assets in a single repository. Its transformation engine easily creates different renditions of the documents and images. As enterprise standard, […]

Development Lifecycle for Task Flows in Oracle WebCenter Portal Builder

Introduction This articles promotes the paper published by A-Team which steps you through the development lifecycle of a sample task flow in WebCenter Portal Builder. The document shows how to develop and test a task flow in JDeveloper, then describes how to deploy, redeploy, and use the task flow in WebCenter Portal, as well as […]

Unable to See Coherence MBean in Enterprise Manager Configured for WebCenter Portal Content Presenter

Introduction After configuring Coherence Cache for WebCenter Portal Content Presenter customer was not able to see the Coherence MBeans in the Enterprise Manager. Futher investigation revealed that the issue was due to configuration in WebLogic Server. Main Article After configuring Coherence Cache for WebCenter Portal Content Presenter customer was not able to see the Coherence […]

Working with Multiple Versions of an Asset Concurrently in WebCenter Sites

Working with Multiple Versions of an Asset Concurrently   Introduction Many times there is a requirement to work on the multiple versions of an asset concurrently. For example, you may be working on one version of Home Page. But, before the version of Home Page goes live, you may have to start work on the […]

Localization Patterns Using WebCenter Sites

Introduction Translating and managing localized web content is a complex undertaking for most enterprises. The number of use-cases WebCenter Sites (WCS) clients have come up with that we have seen in the real-world is enormously varied. One might think that with regard to translations that “all clients have the same requirements” but that is simply […]

How to Manage Single-use Accounts and Multiple Scripts When Testing WebCenter with OATS

Introduction A previous blog post discussed how to generate and consume user accounts when testing WebCenter with OATS.  In this scenario, the generated user accounts can only be used once. This blog post addresses the additional complexity of multiple scripts that each do a part of the overall test case, with each script using the […]

ADF-WebCenter Responsive-Adaptive Design Beyond

Introduction A topic that comes up frequently in many ATEAM customer engagements is what are the best practices for producing a responsive design for a WebCenter application. There are many informative blogs and presentations on how to achieve this through-out the web. The methodology and strategies used by the authors will often depend on the […]

Why use Groovy with WebCenter Sites?

Besides the “cool” factor, one of the main use-cases for Groovy with WebCenter Sites is to invoke it from an XML wrapper or small utility pages like SystemEvents. The wrapper can just be a caller to a java class without the need to wrap it in a Seed and use CALLJAVA. For instance the open-source […]

High availability considerations for WebCenter Portal and ADF

Introduction High availability is very important in large WebCenter installations. It allows users to gracefuly switch from one node to another node in the cluster. This allows user to keep their session in case a node goes down. In order for this to work, some conciderations need to be made when implementing a WebCenter Portal […]

Optimizing content cache performance in WebCenter Portal

Introduction When integrating content with WebCenter Portal it is important to deliver the content in a performant way. WebCenter Portal can do this by leveraging Coherence cache for content integration. This will allow a faster delivery of the content and by tweaking the cache setting it will also improve performance in WebCenter Content. In this artice […]

Customizing specific instances of a WebCenter task flow

Introduction Customizing the framework task flows in WebCenter is a common requirement for customers.  With MDS, customization rules are layered but often customers will need to customize specific instances of their task flows, or have different levels of customization on different instances or pages which are all under the same MDS layer. This post walks […]

Configure Coherence for Oracle WebCenter Portal Framework Content Presenter Task Flow

This guide aims to give you complete configuration overview for how to configure Coherence Cache for Oracle WebCenter Portal Framework Application using the Content Presenter Task Flow.

This document is intended for WebCenter Portal Application administrators who have to improve performance by configuring Coherence cache for Content Presenter.

For more information about the Coherence Cache for Content Presenter have a look at the following link:

http://docs.oracle.com/cd/E21764_01/webcenter.1111/e12405/wcadm_documents.htm#BABHFCJH

Details

 

 

The Content Presenter and the Content Management Interoperability Service (CMIS) are delivered out of the box with in-memory Coherence cache. This cache is NOT enabled by default. You can enable it by adding the file content-coherence-cache-config.xml to the application class path of the WebCenter Portal Application. This guide describes how to configure the cache when you deploy applications based on WebCenter Portal Framework.

The Content Coherence Configuration file below uses the distributed cache mode in combination with local cache mode depending on the type of objects to be cached. Here the example Coherence cache file to use for the configuration:

<!DOCTYPE cache-config SYSTEM “cache-config.dtd”>
<cache-config>
  <caching-scheme-mapping>
    <cache-mapping>
      <cache-name>repo.ucm.nodeUidCache.*</cache-name>
      <scheme-name>ContentNodeCaches</scheme-name>
    </cache-mapping>
    <cache-mapping>
      <cache-name>repo.ucm.nodePathToUidCache.*</cache-name>
      <scheme-name>ContentNodeCaches</scheme-name>
    </cache-mapping>
    <cache-mapping>
      <cache-name>repo.ucm.securityInfoCache.*</cache-name>
      <scheme-name>ContentNodeCaches</scheme-name>
    </cache-mapping>
    <cache-mapping>
      <cache-name>repo.ucm.typeNameCache.*</cache-name>
      <scheme-name>ContentTypeCaches</scheme-name>
    </cache-mapping>
   <cache-mapping>
      <cache-name>repo.ucm.typeNamesCache.*</cache-name>
      <scheme-name>ContentTypeCaches</scheme-name>
    </cache-mapping>
    <cache-mapping>
      <cache-name>binaryCache.*</cache-name>
      <scheme-name>ContentBinaryCaches</scheme-name>
    </cache-mapping>
    <cache-mapping>
      <cache-name>repo.ucm.searchCriteriaCache.*</cache-name>
      <scheme-name>ContentSearchCaches</scheme-name>
    </cache-mapping>
    <cache-mapping>
      <cache-name> repo.ucm.indexedFieldsCache.*</cache-name>
      <scheme-name>ContentSearchCaches</scheme-name>
    </cache-mapping>
    <cache-mapping>
      <cache-name>repo.ucm.securityUserCache.*</cache-name>
      <scheme-name>ContentSecurityCaches</scheme-name>
    </cache-mapping>
    <cache-mapping>
      <cache-name>repo.ucm.profileTriggerValueCache.*</cache-name>
      <scheme-name>ContentProfileCaches</scheme-name>
    </cache-mapping>
  </caching-scheme-mapping>

  <caching-schemes>
    <distributed-scheme>
      <scheme-name>ContentNodeCaches</scheme-name>
      <backing-map-scheme>
        <local-scheme>
          <scheme-ref>BM_ContentNodeCaches</scheme-ref>
        </local-scheme>
      </backing-map-scheme>
      <backup-count>0</backup-count>
      <autostart>true</autostart>
    </distributed-scheme>

    <distributed-scheme>
      <scheme-name>ContentTypeCaches</scheme-name>
      <backing-map-scheme>
        <local-scheme>
          <scheme-ref>BM_ContentTypeCaches</scheme-ref>
        </local-scheme>
      </backing-map-scheme>
      <backup-count>0</backup-count>
      <autostart>true</autostart>
    </distributed-scheme>

    <distributed-scheme>
      <scheme-name>ContentBinaryCaches</scheme-name>
      <backing-map-scheme>
        <local-scheme>
          <scheme-ref>BM_ContentBinaryCaches</scheme-ref>
        </local-scheme>
      </backing-map-scheme>
      <backup-count>0</backup-count>
      <autostart>true</autostart>
    </distributed-scheme>

    <distributed-scheme>
      <scheme-name>ContentSearchCaches</scheme-name>
      <backing-map-scheme>
        <local-scheme>
          <scheme-ref>BM_ContentSearchCaches</scheme-ref>
        </local-scheme>
      </backing-map-scheme>
      <backup-count>0</backup-count>
      <autostart>true</autostart>
    </distributed-scheme>

    <distributed-scheme>
      <scheme-name>ContentSecurityCaches</scheme-name>
      <backing-map-scheme>
        <local-scheme>
          <scheme-ref>BM_ContentSecurityCaches</scheme-ref>
        </local-scheme>
      </backing-map-scheme>
      <backup-count>0</backup-count>
      <autostart>true</autostart>
    </distributed-scheme>

    <distributed-scheme>
      <scheme-name>ContentProfileCaches</scheme-name>
      <backing-map-scheme>
        <local-scheme>
          <scheme-ref>BM_ContentProfileCaches</scheme-ref>
        </local-scheme>
      </backing-map-scheme>
      <backup-count>0</backup-count>
      <autostart>true</autostart>
    </distributed-scheme>

    <local-scheme>
      <scheme-name>BM_ContentNodeCaches</scheme-name>
      <expiry-delay>5m</expiry-delay>
      <high-units>100</high-units>
    </local-scheme>

    <local-scheme>
      <scheme-name>BM_ContentTypeCaches</scheme-name>
      <expiry-delay>30m</expiry-delay>
      <high-units>50</high-units>
    </local-scheme>

    <local-scheme>
      <scheme-name>BM_ContentBinaryCaches</scheme-name>
      <expiry-delay>5m</expiry-delay>
      <high-units>1000000</high-units>
      <unit-calculator>
        <class-scheme>
          <class-name>com.tangosol.net.cache.SimpleMemoryCalculator</class-name>
        </class-scheme>
      </unit-calculator>
    </local-scheme>

    <local-scheme>
      <scheme-name>BM_ContentSearchCaches</scheme-name>
      <expiry-delay>5m</expiry-delay>
      <high-units>50</high-units>
    </local-scheme>

   <local-scheme>
      <scheme-name>BM_ContentSecurityCaches</scheme-name>
      <expiry-delay>10m</expiry-delay>
      <high-units>50</high-units>
    </local-scheme>

   <local-scheme>
      <scheme-name>BM_ContentProfileCaches</scheme-name>
      <expiry-delay>1h</expiry-delay>
      <high-units>100</high-units>
    </local-scheme>
  </caching-schemes>
</cache-config>

 

The cache entries are described in the following documentation:

http://docs.oracle.com/cd/E21764_01/webcenter.1111/e12405/wcadm_documents.htm#BABEDDBI

NOTE: You have to put this file into the application classpath. If you use the file in the managed server class path or node manager class path it will NOT work.

 

Step by Step Installation Process

 

 

Step 1: Create JAR file with the Coherence Cache Config file

 

 

Create JAR file which contains the example content-coherence-cache-config.xml shown above. For how to create JAR files follow the tutorial from the Java documentation here:

http://docs.oracle.com/javase/tutorial/deployment/jar/build.html

You will use this JAR file to put it inside your WebCenter Portal Framework Application. As mention above this works only if this JAR file is part of the WebCenter Portal Framework Application class path.

 

Step 2: Create WebCenter Application EAR Lib folder

To put the created JAR file into the APP-INF/lib you have to update your project settings:

·From the JDeveloper WebCenter Portal Application Project click on Application->Application Properties.

 

·From the new window select Deployment. From the deployment profile select the EAR profile you want to use and then click on Edit button.

 

· From the new window select File Groups and then click on New button. From the new opened window select Packaging and type a name for the file group as shown bellow. Then click OK to add your new packaging file group. Click then OK again the save the changes.

 

·Create the APP-INF/lib folder into your project. Go to the file system where you create the WebCenter Portal Application Project as shown bellow

 

·<!–[endif]–>You have to create the APP-INF/lib folder under the src/ folder:

 

·<!–[endif]–>Inside the newly created APP-INF/lib folder you can place your JAR file with the Coherence Cache configurations.

 

·<!–[endif]–>To make sure that the file will be picked go back to JDeveloper and open the Application Properties again by clicking on Application->Application Properties and then click on Deployment. Select the EAR Profile which you used to add the Packaging File Group and click on Edit button. Inside the new window you should see that your APP-INF/lib folder is selected and inside there, there is also the JAR file you copied.

 

·<!–[endif]–>WebCenter Portal Framework Application is ready for deployment now. Redeploy your application and bounce(load your application one in an browser) to make sure that the configurations are loaded.

Step 3: Check your configuration

NOTE: You have to open your application once to make sure that the Coherence Configuration is loaded.

Make sure that you open the application once in the browser then open your <managed_server>_diagnosting.log file and search for coherence inside. If you see message like this:

[APP: AviTrustSamplePortal#V2.0] Unable to load Coherence configuration file content-coherence-cache-config.xml. Using in-memory (local) caches.

 

… then it means that your application did not find the configuration file. The reason for that is that the JAR file was not inside the application classpath. In this case you may used the Managed Server Classpath which is not working. You have to place the JAR file inside the application classpath as described above.

 

If you don’t see the message above you can go for the next step and look for the Coherence configuration inside the MBean.

To do so open your Enterprise Manager and go to the application configuration like shown bellow:

 

 

Then from the Application Deployment click on the System MBean Browser to have a look in the MBeans. Inside the MBean Tree search for the word <coherence>:

 

You should be able to see the configurations as shown above.

 

Another very good why to check if the cache works is to have a look inside the WCC request audit. It shows if queries were fired against the Content Server.

To do so login as Administrator to WCC.

 

After you login in as administrator select System Audit Information and from the Active Sections select only system and requestaudit as well as Full Verbose Tracing checkbox.

 

Click on Update button to update the configuration.

 

 

After that click from the upper right menu on View Server Output to trace the Content Presenter queries to the Content Server.

If you open a example page where the content presenter is used, like this:

 

You can see after that in the audit log the queries used by the content presenter to get the information:

 

Refresh the page by click on F5 or just the browser refresh button. There’re should be no new queries visible in the audit log anymore, since the content presenter should use the coherence cache now:

 

 

 

Step 4: Configuration for Cluster Environment

 

 

If you run your application in cluster environment you have to make sure that the coherence configuration works inside the cluster. If you have two managed servers in one cluster you can configure following parameters in the startup arguments. If Node Manager is used to start the Managed Servers, you can put the argument in the Server Start argument option.

First server:

-Dtangosol.coherence.wka1=server1.mycompany.com

-Dtangosol.coherence.wka1.port=8088

-Dtangosol.coherence.wka2= server2.mycompany.com

-Dtangosol.coherence.wka2.port=8088

-Dtangosol.coherence.localhost= server1.mycompany.com

-Dtangosol.coherence.localport=8088

 

Second server:

-Dtangosol.coherence.wka1= server1.mycompany.com

-Dtangosol.coherence.wka1.port=8088

-Dtangosol.coherence.wka2= server2.mycompany.com

-Dtangosol.coherence.wka2.port=8088

-Dtangosol.coherence.localhost= server2.mycompany.com

-Dtangosol.coherence.localport=8088

 

NOTE: If the two server are running on the same physical machine, you have to make sure that they use different ports.