SlideShare a Scribd company logo
1 of 12
12/9/2013 An Oracle White Paper -
Tuning and optimizing
Webcenter spaces applica-
tion
This white paper focuses on Oracle WebCenter Spaces performance
problem and analysis after post production deployment. We will tune
JVM ( JRocket). Webcenter Portal, Webcenter content and ADF task
flow.
Vinay kumar
Table of Contents
Introduction ....................................................................................................2
Application Architecture ................................................................................3
Analysis of Code base of Application.........................................................3
Result of Performance analysis is as below - .............................................4
Performance Optimization -........................................................................5
Tuning in Custom Task flow application in ADF side -.............................7
Preferred changes in web.xml – ............................................................8
Tuning JVM (JRockit) ................................................................................8
Tuning Webcenter Portal (Spaces)..............................................................9
Tuning Webcenter Content........................................................................10
Summary ...................................................................................................11
About the Author.......................................................................................11
Introduction
I have been given task of analysis and tuning of Webcenter Spaces application, which using custom
task flow build on Oracle ADF for our customer. This article is based on my analyzed data while
performance optimization but will be useful for any other Oracle Webcenter Portal (Spaces)
applications.
This application deployed on customer site. Issues persist with time, as data increase down the line
and loading of home page and other pages taking time around 20 to 30 Seconds. Goal is to reduce to
acceptable time frame.
The article covers the findings, research and recommendations and includes the best practices that
can be applied to generic WebCenter Spaces applications as well custom task flow application. The
following area are main effected for performance tuning.
1. Oracle Webcenter Spaces API
2. Oracle WebCenter Spaces1
Application Tuning
3. ADF Task Flow
The Oracle WebCenter Spaces application examined in this article is based on Oracle WebCenter
Patch Set 4 with Oracle Weblogic Server 11.1.1.5. Performance analysis done on various tool like
Jmeter,Oracle Enterprise Manager Control, and third party browser plugins including Firebug. I will
also list down the solution made for performance optimization and best practices.
Environment:
→ Oracle ADF
→ Oracle WebCenter 11.1.1.5
→ Oracle Webcenter Content
Application Architecture
Application consist of various spaces .It uses Webcenter content in behind. All user information and
application information stored in Webcenter Content , which is integrated through RIDC API.
Regarding Webcenter Spaces information, spaces user information and custom attributes of spaces
are stored in Webcenter spaces.
Analysis of Code base of Application
For performance analysis , I tried with Jmeter and result are not very good with a lot of data and
multiple request to RIDC api and Webcenter Spaces API classes i.e.
GroupSpaceWSClient
This class provides the utility methods to perform commonly used Group
Space operations.
GroupSpaceWSContext
This class provides all the client side configuration for connecting to the
group spaces web services.
GroupSpaceWSMembers
This class acts as place holder for storing details of members to be
added added to the Group Space and to be removed from teh Group
Space.
GroupSpaceWSMetadata This class is responsible for providing metadata for given WebCenter
Group Space.
Result of Performance analysis is as below -
And in average result graph -
Firebug -
After this testing main problem is request going to WS API. For example- In one scenario – One
spaces have custom attribute as moderationRequired -true for create new post. For checking that
current user is able to create post on that group, one request went for checking whether user is
member of that group or not, second request went to check the role of current user and third request
to check whether current group is require moderation or not. In above scenario, we send 3 request to
check wther user should able to create post or not. Lot of request to WS API, which cause the
problem.
Following method used to check WS spaces information -
getGroupSpaceMembersInfo(spaceName)
getGroupSpaceMetadata(spaceName)
getGroupSpaces()
getPublicGroupSpaces()
getGroupSpaceURL(groupSpace)
client.getDiscoverableGroupSpaces() and many more.
Performance Optimization -
There are two way, I had changed application code a bit.
1.) Using expression language from SpacesQueryParameters class - for getting spaces based on
various criteria .
2.) Querying the Webcenter Spaces DB tables -uerying the Webcenter Spaces DB tables
1. ) Implementation of Expression language (el) for getting information from WS
API -
→ #{spaceContext.spacesQuery.unionOf['DISCOVERABLE'].listSpaces - expression will
return the list of all discoverable group spaces
→
#{spaceContext.spacesQuery.unionOf['USER_JOINED'].shape['RECURSIVE_FLATTENED
'].listSpaces} - returns a list of all spaces the current user is a member of and returns all the sub-
spaces under each of these spaces the current user has access on
→ #{spaceContext.space['" + spaceName + "']} - Return instance of space.
These expression language is very useful compare to using WS API using GroupSpaceWSClient and
send request.for example Using below code you can get metadata of space
Space mySpace = (Space)OCCViewUtil.evaluateEL("#{spaceContext.space['"
+ spaceName + "']}");
GSMetadata spaceMetadata = spaceMetadata = mySpace.getGSMetadata();
2.) Querying the Webcenter Spaces DB tables – Instead of sending request to Webcenter Spaces
API , its easy and better to fetch information for database . We have webcenter schema for getting
information for Webcenter Spaces database tables. Similary we have schema for discussion, portlet
producer and activity & graphs as well.
See below-
Component Schema Owner Dependencies
WebCenter Spaces prefix_WEBCENTER prefix_MDS (Metadata Services)
Portlet Producers prefix_PORTLET None.
Discussions prefix_DISCUSSIONS None.
Activity Graph and Analytics prefix_ACTIVITIES None.
Alright, now our custom task flow application will have a model structure as well, which is not there
before. We will be creating read only view object on the tables .Getting information from these db
tables is very fast compare to use Webcenter Spaces API.
WC_SPACE_HEADER - This table stores all the spaces in the system, their status, last updated, and
other attributes like parent space and member count.
WC_SPACE_USR_DETAIL - This table stores all the users in the spaces, their status, roles, and other
attributes like space.
WC_PEOPLE_CONN_LIST - This table stores all the connection for particular users.
There are multiples tables .You can use according to your requirement. See below -
After creating view objects, We can get the information using executing view criteria. This will be a
quick way to get information for Webcenter spaces.
Tuning in Custom Task flow application in ADF side -
1. While using tree or table, use appropriate content delivery mode
Possible values for this attribute are:
 immediate
 lazy
 whenAvailable
2. Avoid inline usage of JavaScript/Cascading Style Sheets (CSS) whenever possible.
3. While using tree or table, always consider set correct fetch size (fetch size -defines the number of
rows to be sent to the client in one round-trip).
4. Avoid binding UI components in backing beans, if used make them as transient
5. While using tree or table use column stretching, if really required.
6. Use "blocking=true" for and to avoid multiple clicks on submit buttons.
7. Remove unused items from page bindings.
8. Set Immediate Property to True when Appropriate.
9. Remove unused VOIterators on JSFF Page definitions.
10. Use AJAX (PPR) as much you can.
11. Ensure none of Page definitions should have more than one data control if not needed. This may
result in increasing number of database connections.
12. Avoid using a af:panelStretchLayout where topHeight, bottomHeight, startWidth, or endWidth is set
to “auto”.
13. Don’t use JSF/ADF Faces and JavaServer Pages Standard Tag Library (JSTL) tags together.
14. Use the "visible" and "rendered" attributes wisely.
 The visible property specifies simply whether the component is to be displayed on the page, or
is to be hidden.
 The rendered property specifies whether the component shall exist in the client page at all.
15. Keep the managed beans in the lowest possible scope in task flow.
16. While using tree or table, always consider set correct fetch size( fetch size -defines the number of
rows to be sent to the client in one round-trip).
17. Ensure each backing bean/Manage bean should implement java.io.Serializble interface.
Preferred changes in web.xml –
org.apache.myfaces.trinidad.resource.DEBUG -False
oracle.adf.view.rich.CHECK_FILE_MODIFICATION -False
oracle.adf.view.rich.CLIENT_STATE_METHOD -token
oracle.adf.view.rich.LOGGER_LEVEL -False or remove this
entry
oracle.adf.view.rich.ASSERT_ENABLED -False or remove this
entry
Tuning JVM (JRockit)
The Oracle JRockit JVM is the industry's leading performing Java Virtual Machine now built into
Oracle Fusion Middleware. It brings industry leading real time infrastructure capabilities with JRockit
Real Time and unparallelled JVM diagnostics with JRockit Mission Control.
As all the java processes are run and maintained by the JVM, it should be tuned properly in order to
get the desired performance. The tuning can be done in terms of heap size allocated to different JVM
processes, Garbage collection and other run-time parameters.
1. Tuning the Garbage Collection: Set dynamic Garbage Collection mode to Throughput Mode. And
we can reduce the memory fragmentation by selecting this GC mode. Throughput mode is default
when the JVM runs in -server mode (which is default), or can be enabled with the command line
option -XgcPrio:throughput. For example:
java -XgcPrio:throughput
2. Setting the Nursery Size: Nursery size refers to the storage for the short-lived objects , which are
collected faster than old objects . This reduces the chances of very frequent Garbage collections and
long pause times. It is set to optimal value by default when the GC mode is selected as throughput. It
should at least 2GB.
Set -Xns=4096m to increase the nursery size.
3. Setting the Heap Size on 64-bit Systems: The heap size has an impact on allocation speed,
garbage collection frequency and garbage collection times. A small heap will become full quickly and
must be garbage collected more often .The heap allocation is a vital area which needs to be carefully
tuned to increase the performance. By default 2Gb is the allocated heap for Webcenter Spaces
application, which is very low. At least it should be 4GB.
java -Xms:4g -Xmx:4g
4.: Add the argument –XxnoSystemGC prevents System.gc() application calls from forcing garbage
collection.
Tuning Webcenter Portal (Spaces)
1. Configure Portlet cache size -
Change the following parameter in adf-config.xml manually
<adf-portlet-config>
<supportedLocales>
<cacheSettings enabled="true">
<maxSize>10000000</maxSize> {default value}
</cacheSettings>
<adf-portlet-config>
2. Configure portlet timeout-
Modify the portlet timeout value in the adf-portlet-config element of the adf-config.xml file.
Default: 10 seconds, minimum: 0.1 seconds, maximum: 60 seconds. If you must modify these
properties, post deployment, you must edit adf- config.xml manually.
The following is a sample snippet of adf-config.xml:
<adf-portlet-config>
....
<defaultTimeout>5</defaultTimeout>
<minimumTimeout>2</minimumTimeout>
<maximumTimeout>100</maximumTimeout>
</adf-portlet-config>
Tuning Webcenter Content
1. Setting JRockit Virtual Machine (JVM) Arguments.JVM arguments are set in the
setDSSCustomDomainEnv.sh file.
Heap size: If the system is overloaded, that is, garbage is collected or “out of memory error” occurs
frequently, then increase the heap size as appropriate to your system's available physical memory.
The parameter is:
-Xms2096M -Xmx2096M -Xns2096M
Security: The following JVM arguments improve performance of Webcenter application’s security
layer.
-DUSE_JAAS=false
-Djps.policystore.hybrid.mode=false
-Djps.combiner.optimize.lazyeval=true
-Djps.combiner.optimize=true
-Djps.auth=ACC
2. Setting System Limit -To run a WebCenter application at moderate load, set the open-files-limit to
2048.If you encounter errors, such as running out of file descriptors, then increase the system limit.
For example, on Linux, you can use this command: ulimit -n 4096 (default is 1024)
3. Setting HTTP Session Timeout
To manage over resource usage, adjust the session timeout value, in minutes, in the
web.xml file manually. The following is a sample snippet of web.xml:
<session-config>
<session-timeout>
45
</session-timeout>
</session-config>
Summary
This article stepped you through the performance tuning of webcenter spaces application.
Performance tuning is vast topic. It can be done timely with different environment. Real testing can be
done of Webcenter Spaces application using maximum load. So designing an application architecture
should be done with keeping in mind the co-current users. Still there is lot of space of tuning such as
Weblogic server.
To summarize, reducing the request to Webcenter Spaces API will increase the performance of
Webcenter Spaces application. Tuning practice of Webcenter Spaces helps a lot to reduce the page
loading time. By means of observations and preliminary testing data to 2 to 3 seconds from 20 to 30
seconds. It recommend to have model layer for fetching information from spaces.
About the Author
Vinay Kumar is a Senior Consultant and certified Oracle ADF/WebCenter Portal implementation spe-
cialist with Silbury IT Solutions gmbH. An Oracle Fusion Middleware evangelist. Vinay has seven
years of experience consulting in Oracle ADF, Oracle WebCenter Portal/Content.

More Related Content

What's hot

Distributed Caching Using the JCACHE API and ehcache, Including a Case Study ...
Distributed Caching Using the JCACHE API and ehcache, Including a Case Study ...Distributed Caching Using the JCACHE API and ehcache, Including a Case Study ...
Distributed Caching Using the JCACHE API and ehcache, Including a Case Study ...elliando dias
 
Sql server backup internals
Sql server backup internalsSql server backup internals
Sql server backup internalsHamid J. Fard
 
SQL Server Wait Types Everyone Should Know
SQL Server Wait Types Everyone Should KnowSQL Server Wait Types Everyone Should Know
SQL Server Wait Types Everyone Should KnowDean Richards
 
Memory management in oracle
Memory management in oracleMemory management in oracle
Memory management in oracleDavin Abraham
 
PostgreSQL Hangout Replication Features v9.4
PostgreSQL Hangout Replication Features v9.4PostgreSQL Hangout Replication Features v9.4
PostgreSQL Hangout Replication Features v9.4Ashnikbiz
 
SSAS Reference Architecture
SSAS Reference ArchitectureSSAS Reference Architecture
SSAS Reference ArchitectureMarcel Franke
 
Percona Cluster with Master_Slave for Disaster Recovery
Percona Cluster with Master_Slave for Disaster RecoveryPercona Cluster with Master_Slave for Disaster Recovery
Percona Cluster with Master_Slave for Disaster RecoveryRam Gautam
 
What is new in PostgreSQL 14?
What is new in PostgreSQL 14?What is new in PostgreSQL 14?
What is new in PostgreSQL 14?Mydbops
 
ORACLE 12C DATA GUARD: FAR SYNC, REAL-TIME CASCADE STANDBY AND OTHER GOODIES
ORACLE 12C DATA GUARD: FAR SYNC, REAL-TIME CASCADE STANDBY AND OTHER GOODIESORACLE 12C DATA GUARD: FAR SYNC, REAL-TIME CASCADE STANDBY AND OTHER GOODIES
ORACLE 12C DATA GUARD: FAR SYNC, REAL-TIME CASCADE STANDBY AND OTHER GOODIESLudovico Caldara
 
Investigate SQL Server Memory Like Sherlock Holmes
Investigate SQL Server Memory Like Sherlock HolmesInvestigate SQL Server Memory Like Sherlock Holmes
Investigate SQL Server Memory Like Sherlock HolmesRichard Douglas
 
Distributed Caching Essential Lessons (Ts 1402)
Distributed Caching   Essential Lessons (Ts 1402)Distributed Caching   Essential Lessons (Ts 1402)
Distributed Caching Essential Lessons (Ts 1402)Yury Kaliaha
 

What's hot (13)

Distributed Caching Using the JCACHE API and ehcache, Including a Case Study ...
Distributed Caching Using the JCACHE API and ehcache, Including a Case Study ...Distributed Caching Using the JCACHE API and ehcache, Including a Case Study ...
Distributed Caching Using the JCACHE API and ehcache, Including a Case Study ...
 
Sql server backup internals
Sql server backup internalsSql server backup internals
Sql server backup internals
 
SQL Server Wait Types Everyone Should Know
SQL Server Wait Types Everyone Should KnowSQL Server Wait Types Everyone Should Know
SQL Server Wait Types Everyone Should Know
 
Memory management in oracle
Memory management in oracleMemory management in oracle
Memory management in oracle
 
Weblogic security
Weblogic securityWeblogic security
Weblogic security
 
PostgreSQL Hangout Replication Features v9.4
PostgreSQL Hangout Replication Features v9.4PostgreSQL Hangout Replication Features v9.4
PostgreSQL Hangout Replication Features v9.4
 
11g R2
11g R211g R2
11g R2
 
SSAS Reference Architecture
SSAS Reference ArchitectureSSAS Reference Architecture
SSAS Reference Architecture
 
Percona Cluster with Master_Slave for Disaster Recovery
Percona Cluster with Master_Slave for Disaster RecoveryPercona Cluster with Master_Slave for Disaster Recovery
Percona Cluster with Master_Slave for Disaster Recovery
 
What is new in PostgreSQL 14?
What is new in PostgreSQL 14?What is new in PostgreSQL 14?
What is new in PostgreSQL 14?
 
ORACLE 12C DATA GUARD: FAR SYNC, REAL-TIME CASCADE STANDBY AND OTHER GOODIES
ORACLE 12C DATA GUARD: FAR SYNC, REAL-TIME CASCADE STANDBY AND OTHER GOODIESORACLE 12C DATA GUARD: FAR SYNC, REAL-TIME CASCADE STANDBY AND OTHER GOODIES
ORACLE 12C DATA GUARD: FAR SYNC, REAL-TIME CASCADE STANDBY AND OTHER GOODIES
 
Investigate SQL Server Memory Like Sherlock Holmes
Investigate SQL Server Memory Like Sherlock HolmesInvestigate SQL Server Memory Like Sherlock Holmes
Investigate SQL Server Memory Like Sherlock Holmes
 
Distributed Caching Essential Lessons (Ts 1402)
Distributed Caching   Essential Lessons (Ts 1402)Distributed Caching   Essential Lessons (Ts 1402)
Distributed Caching Essential Lessons (Ts 1402)
 

Viewers also liked

award-3b07c32b-b116-3a75-8974-d814d37026ca
award-3b07c32b-b116-3a75-8974-d814d37026caaward-3b07c32b-b116-3a75-8974-d814d37026ca
award-3b07c32b-b116-3a75-8974-d814d37026caVinay Kumar
 
Matthew Melton Resume - Current
Matthew Melton Resume - CurrentMatthew Melton Resume - Current
Matthew Melton Resume - CurrentMatthew Melton
 
Film noir genre breakdown
Film noir genre breakdownFilm noir genre breakdown
Film noir genre breakdownMorgan Andrews
 
Student Resume (Updated Spring 2016)
Student Resume (Updated Spring 2016)Student Resume (Updated Spring 2016)
Student Resume (Updated Spring 2016)Tyler Renn
 
BUILD UPON (H2020) - Evento di lancio dialogo nazionale - 060516 - Analisi de...
BUILD UPON (H2020) - Evento di lancio dialogo nazionale - 060516 - Analisi de...BUILD UPON (H2020) - Evento di lancio dialogo nazionale - 060516 - Analisi de...
BUILD UPON (H2020) - Evento di lancio dialogo nazionale - 060516 - Analisi de...BUshare
 
DIY Mobile VR with Unity 3d & Cardboard SDK
DIY Mobile VR with Unity 3d & Cardboard SDKDIY Mobile VR with Unity 3d & Cardboard SDK
DIY Mobile VR with Unity 3d & Cardboard SDKBond University
 
Genre case study
Genre case studyGenre case study
Genre case studyAbi Baxter
 
Treatment for Opening Sequence - note form
Treatment for Opening Sequence - note formTreatment for Opening Sequence - note form
Treatment for Opening Sequence - note formErika Andrejuskinaite
 
Year 10 cover work 22.11.16
Year 10 cover work 22.11.16Year 10 cover work 22.11.16
Year 10 cover work 22.11.16CoombeMedia1
 
OCR Media Section A Age
OCR Media Section A AgeOCR Media Section A Age
OCR Media Section A AgeCoombeMedia1
 

Viewers also liked (14)

award-3b07c32b-b116-3a75-8974-d814d37026ca
award-3b07c32b-b116-3a75-8974-d814d37026caaward-3b07c32b-b116-3a75-8974-d814d37026ca
award-3b07c32b-b116-3a75-8974-d814d37026ca
 
Matthew Melton Resume - Current
Matthew Melton Resume - CurrentMatthew Melton Resume - Current
Matthew Melton Resume - Current
 
Resumé
ResuméResumé
Resumé
 
Film Noir Pitch
Film Noir PitchFilm Noir Pitch
Film Noir Pitch
 
Film noir genre breakdown
Film noir genre breakdownFilm noir genre breakdown
Film noir genre breakdown
 
Student Resume (Updated Spring 2016)
Student Resume (Updated Spring 2016)Student Resume (Updated Spring 2016)
Student Resume (Updated Spring 2016)
 
BUILD UPON (H2020) - Evento di lancio dialogo nazionale - 060516 - Analisi de...
BUILD UPON (H2020) - Evento di lancio dialogo nazionale - 060516 - Analisi de...BUILD UPON (H2020) - Evento di lancio dialogo nazionale - 060516 - Analisi de...
BUILD UPON (H2020) - Evento di lancio dialogo nazionale - 060516 - Analisi de...
 
DIY Mobile VR with Unity 3d & Cardboard SDK
DIY Mobile VR with Unity 3d & Cardboard SDKDIY Mobile VR with Unity 3d & Cardboard SDK
DIY Mobile VR with Unity 3d & Cardboard SDK
 
Genre case study
Genre case studyGenre case study
Genre case study
 
Blue velvet
Blue velvetBlue velvet
Blue velvet
 
Treatment for Opening Sequence - note form
Treatment for Opening Sequence - note formTreatment for Opening Sequence - note form
Treatment for Opening Sequence - note form
 
Story board
Story boardStory board
Story board
 
Year 10 cover work 22.11.16
Year 10 cover work 22.11.16Year 10 cover work 22.11.16
Year 10 cover work 22.11.16
 
OCR Media Section A Age
OCR Media Section A AgeOCR Media Section A Age
OCR Media Section A Age
 

Similar to Tuning and optimizing webcenter spaces application white paper

SCWCD : Servlet web applications : CHAP 3
SCWCD : Servlet web applications : CHAP 3SCWCD : Servlet web applications : CHAP 3
SCWCD : Servlet web applications : CHAP 3Ben Abdallah Helmi
 
SCWCD : Servlet web applications : CHAP : 3
SCWCD : Servlet web applications : CHAP : 3SCWCD : Servlet web applications : CHAP : 3
SCWCD : Servlet web applications : CHAP : 3Ben Abdallah Helmi
 
Schema-based multi-tenant architecture using Quarkus &amp; Hibernate-ORM.pdf
Schema-based multi-tenant architecture using Quarkus &amp; Hibernate-ORM.pdfSchema-based multi-tenant architecture using Quarkus &amp; Hibernate-ORM.pdf
Schema-based multi-tenant architecture using Quarkus &amp; Hibernate-ORM.pdfseo18
 
C sharp and asp.net interview questions
C sharp and asp.net interview questionsC sharp and asp.net interview questions
C sharp and asp.net interview questionsAkhil Mittal
 
Spring review_for Semester II of Year 4
Spring review_for Semester II of Year 4Spring review_for Semester II of Year 4
Spring review_for Semester II of Year 4than sare
 
Introduction to ejb and struts framework
Introduction to ejb and struts frameworkIntroduction to ejb and struts framework
Introduction to ejb and struts frameworks4al_com
 
Why use .net by naveen kumar veligeti
Why use .net by naveen kumar veligetiWhy use .net by naveen kumar veligeti
Why use .net by naveen kumar veligetiNaveen Kumar Veligeti
 
Asp Net Advance Topics
Asp Net Advance TopicsAsp Net Advance Topics
Asp Net Advance TopicsAli Taki
 
Step-by-Step: APEX Installation on Tomcat (Windows Server 2016)
Step-by-Step: APEX Installation on Tomcat (Windows Server 2016)Step-by-Step: APEX Installation on Tomcat (Windows Server 2016)
Step-by-Step: APEX Installation on Tomcat (Windows Server 2016)sheriframadan18
 
Java Spring MVC Framework with AngularJS by Google and HTML5
Java Spring MVC Framework with AngularJS by Google and HTML5Java Spring MVC Framework with AngularJS by Google and HTML5
Java Spring MVC Framework with AngularJS by Google and HTML5Tuna Tore
 
springmvc-150923124312-lva1-app6892
springmvc-150923124312-lva1-app6892springmvc-150923124312-lva1-app6892
springmvc-150923124312-lva1-app6892Tuna Tore
 
Java servlet technology
Java servlet technologyJava servlet technology
Java servlet technologyMinal Maniar
 
SharePoint Object Model, Web Services and Events
SharePoint Object Model, Web Services and EventsSharePoint Object Model, Web Services and Events
SharePoint Object Model, Web Services and EventsMohan Arumugam
 
Ch 04 asp.net application
Ch 04 asp.net application Ch 04 asp.net application
Ch 04 asp.net application Madhuri Kavade
 
Engineering Wunderlist for Android - Ceasr Valiente, 6Wunderkinder
Engineering Wunderlist for Android - Ceasr Valiente, 6WunderkinderEngineering Wunderlist for Android - Ceasr Valiente, 6Wunderkinder
Engineering Wunderlist for Android - Ceasr Valiente, 6WunderkinderDroidConTLV
 

Similar to Tuning and optimizing webcenter spaces application white paper (20)

SCWCD : Servlet web applications : CHAP 3
SCWCD : Servlet web applications : CHAP 3SCWCD : Servlet web applications : CHAP 3
SCWCD : Servlet web applications : CHAP 3
 
SCWCD : Servlet web applications : CHAP : 3
SCWCD : Servlet web applications : CHAP : 3SCWCD : Servlet web applications : CHAP : 3
SCWCD : Servlet web applications : CHAP : 3
 
Schema-based multi-tenant architecture using Quarkus &amp; Hibernate-ORM.pdf
Schema-based multi-tenant architecture using Quarkus &amp; Hibernate-ORM.pdfSchema-based multi-tenant architecture using Quarkus &amp; Hibernate-ORM.pdf
Schema-based multi-tenant architecture using Quarkus &amp; Hibernate-ORM.pdf
 
C sharp and asp.net interview questions
C sharp and asp.net interview questionsC sharp and asp.net interview questions
C sharp and asp.net interview questions
 
Spring tutorial
Spring tutorialSpring tutorial
Spring tutorial
 
Chapter 5
Chapter 5Chapter 5
Chapter 5
 
Spring review_for Semester II of Year 4
Spring review_for Semester II of Year 4Spring review_for Semester II of Year 4
Spring review_for Semester II of Year 4
 
Introduction to ejb and struts framework
Introduction to ejb and struts frameworkIntroduction to ejb and struts framework
Introduction to ejb and struts framework
 
Why use .net by naveen kumar veligeti
Why use .net by naveen kumar veligetiWhy use .net by naveen kumar veligeti
Why use .net by naveen kumar veligeti
 
User Interface
User InterfaceUser Interface
User Interface
 
Asp Net Advance Topics
Asp Net Advance TopicsAsp Net Advance Topics
Asp Net Advance Topics
 
Step-by-Step: APEX Installation on Tomcat (Windows Server 2016)
Step-by-Step: APEX Installation on Tomcat (Windows Server 2016)Step-by-Step: APEX Installation on Tomcat (Windows Server 2016)
Step-by-Step: APEX Installation on Tomcat (Windows Server 2016)
 
Java Spring MVC Framework with AngularJS by Google and HTML5
Java Spring MVC Framework with AngularJS by Google and HTML5Java Spring MVC Framework with AngularJS by Google and HTML5
Java Spring MVC Framework with AngularJS by Google and HTML5
 
springmvc-150923124312-lva1-app6892
springmvc-150923124312-lva1-app6892springmvc-150923124312-lva1-app6892
springmvc-150923124312-lva1-app6892
 
Java servlet technology
Java servlet technologyJava servlet technology
Java servlet technology
 
Express node js
Express node jsExpress node js
Express node js
 
SharePoint Object Model, Web Services and Events
SharePoint Object Model, Web Services and EventsSharePoint Object Model, Web Services and Events
SharePoint Object Model, Web Services and Events
 
Struts N E W
Struts N E WStruts N E W
Struts N E W
 
Ch 04 asp.net application
Ch 04 asp.net application Ch 04 asp.net application
Ch 04 asp.net application
 
Engineering Wunderlist for Android - Ceasr Valiente, 6Wunderkinder
Engineering Wunderlist for Android - Ceasr Valiente, 6WunderkinderEngineering Wunderlist for Android - Ceasr Valiente, 6Wunderkinder
Engineering Wunderlist for Android - Ceasr Valiente, 6Wunderkinder
 

More from Vinay Kumar

Modernizing the monolithic architecture to container based architecture apaco...
Modernizing the monolithic architecture to container based architecture apaco...Modernizing the monolithic architecture to container based architecture apaco...
Modernizing the monolithic architecture to container based architecture apaco...Vinay Kumar
 
Kafka and event driven architecture -apacoug20
Kafka and event driven architecture -apacoug20Kafka and event driven architecture -apacoug20
Kafka and event driven architecture -apacoug20Vinay Kumar
 
Kafka and event driven architecture -og yatra20
Kafka and event driven architecture -og yatra20Kafka and event driven architecture -og yatra20
Kafka and event driven architecture -og yatra20Vinay Kumar
 
Extend soa with api management Sangam18
Extend soa with api management Sangam18Extend soa with api management Sangam18
Extend soa with api management Sangam18Vinay Kumar
 
Extend soa with api management Doag18
Extend soa with api management Doag18Extend soa with api management Doag18
Extend soa with api management Doag18Vinay Kumar
 
Roaring with elastic search sangam2018
Roaring with elastic search sangam2018Roaring with elastic search sangam2018
Roaring with elastic search sangam2018Vinay Kumar
 
Extend soa with api management spoug- Madrid
Extend soa with api management   spoug- MadridExtend soa with api management   spoug- Madrid
Extend soa with api management spoug- MadridVinay Kumar
 
Expose your data as an api is with oracle rest data services -spoug Madrid
Expose your data as an api is with oracle rest data services -spoug MadridExpose your data as an api is with oracle rest data services -spoug Madrid
Expose your data as an api is with oracle rest data services -spoug MadridVinay Kumar
 
Modern application development with oracle cloud sangam17
Modern application development with oracle cloud sangam17Modern application development with oracle cloud sangam17
Modern application development with oracle cloud sangam17Vinay Kumar
 
award-3b07c32b-b116-3a75-8974-d814d37026ca
award-3b07c32b-b116-3a75-8974-d814d37026caaward-3b07c32b-b116-3a75-8974-d814d37026ca
award-3b07c32b-b116-3a75-8974-d814d37026caVinay Kumar
 
Adf spotlight-webcenter task flow-customzation
Adf spotlight-webcenter task flow-customzationAdf spotlight-webcenter task flow-customzation
Adf spotlight-webcenter task flow-customzationVinay Kumar
 
Personalization in webcenter portal
Personalization in webcenter portalPersonalization in webcenter portal
Personalization in webcenter portalVinay Kumar
 
Custom audit rules in Jdeveloper extension
Custom audit rules in Jdeveloper extensionCustom audit rules in Jdeveloper extension
Custom audit rules in Jdeveloper extensionVinay Kumar
 
File upload in oracle adf mobile
File upload in oracle adf mobileFile upload in oracle adf mobile
File upload in oracle adf mobileVinay Kumar
 
Oracle adf performance tips
Oracle adf performance tipsOracle adf performance tips
Oracle adf performance tipsVinay Kumar
 
JSR 168 Portal - Overview
JSR 168 Portal - OverviewJSR 168 Portal - Overview
JSR 168 Portal - OverviewVinay Kumar
 
Spring framework in depth
Spring framework in depthSpring framework in depth
Spring framework in depthVinay Kumar
 
Oracle Fusion Architecture
Oracle Fusion ArchitectureOracle Fusion Architecture
Oracle Fusion ArchitectureVinay Kumar
 
Incentive compensation in fusion CRM
Incentive compensation in fusion CRMIncentive compensation in fusion CRM
Incentive compensation in fusion CRMVinay Kumar
 
Idoc script beginner guide
Idoc script beginner guide Idoc script beginner guide
Idoc script beginner guide Vinay Kumar
 

More from Vinay Kumar (20)

Modernizing the monolithic architecture to container based architecture apaco...
Modernizing the monolithic architecture to container based architecture apaco...Modernizing the monolithic architecture to container based architecture apaco...
Modernizing the monolithic architecture to container based architecture apaco...
 
Kafka and event driven architecture -apacoug20
Kafka and event driven architecture -apacoug20Kafka and event driven architecture -apacoug20
Kafka and event driven architecture -apacoug20
 
Kafka and event driven architecture -og yatra20
Kafka and event driven architecture -og yatra20Kafka and event driven architecture -og yatra20
Kafka and event driven architecture -og yatra20
 
Extend soa with api management Sangam18
Extend soa with api management Sangam18Extend soa with api management Sangam18
Extend soa with api management Sangam18
 
Extend soa with api management Doag18
Extend soa with api management Doag18Extend soa with api management Doag18
Extend soa with api management Doag18
 
Roaring with elastic search sangam2018
Roaring with elastic search sangam2018Roaring with elastic search sangam2018
Roaring with elastic search sangam2018
 
Extend soa with api management spoug- Madrid
Extend soa with api management   spoug- MadridExtend soa with api management   spoug- Madrid
Extend soa with api management spoug- Madrid
 
Expose your data as an api is with oracle rest data services -spoug Madrid
Expose your data as an api is with oracle rest data services -spoug MadridExpose your data as an api is with oracle rest data services -spoug Madrid
Expose your data as an api is with oracle rest data services -spoug Madrid
 
Modern application development with oracle cloud sangam17
Modern application development with oracle cloud sangam17Modern application development with oracle cloud sangam17
Modern application development with oracle cloud sangam17
 
award-3b07c32b-b116-3a75-8974-d814d37026ca
award-3b07c32b-b116-3a75-8974-d814d37026caaward-3b07c32b-b116-3a75-8974-d814d37026ca
award-3b07c32b-b116-3a75-8974-d814d37026ca
 
Adf spotlight-webcenter task flow-customzation
Adf spotlight-webcenter task flow-customzationAdf spotlight-webcenter task flow-customzation
Adf spotlight-webcenter task flow-customzation
 
Personalization in webcenter portal
Personalization in webcenter portalPersonalization in webcenter portal
Personalization in webcenter portal
 
Custom audit rules in Jdeveloper extension
Custom audit rules in Jdeveloper extensionCustom audit rules in Jdeveloper extension
Custom audit rules in Jdeveloper extension
 
File upload in oracle adf mobile
File upload in oracle adf mobileFile upload in oracle adf mobile
File upload in oracle adf mobile
 
Oracle adf performance tips
Oracle adf performance tipsOracle adf performance tips
Oracle adf performance tips
 
JSR 168 Portal - Overview
JSR 168 Portal - OverviewJSR 168 Portal - Overview
JSR 168 Portal - Overview
 
Spring framework in depth
Spring framework in depthSpring framework in depth
Spring framework in depth
 
Oracle Fusion Architecture
Oracle Fusion ArchitectureOracle Fusion Architecture
Oracle Fusion Architecture
 
Incentive compensation in fusion CRM
Incentive compensation in fusion CRMIncentive compensation in fusion CRM
Incentive compensation in fusion CRM
 
Idoc script beginner guide
Idoc script beginner guide Idoc script beginner guide
Idoc script beginner guide
 

Recently uploaded

TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 

Recently uploaded (20)

TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 

Tuning and optimizing webcenter spaces application white paper

  • 1. 12/9/2013 An Oracle White Paper - Tuning and optimizing Webcenter spaces applica- tion This white paper focuses on Oracle WebCenter Spaces performance problem and analysis after post production deployment. We will tune JVM ( JRocket). Webcenter Portal, Webcenter content and ADF task flow. Vinay kumar
  • 2. Table of Contents Introduction ....................................................................................................2 Application Architecture ................................................................................3 Analysis of Code base of Application.........................................................3 Result of Performance analysis is as below - .............................................4 Performance Optimization -........................................................................5 Tuning in Custom Task flow application in ADF side -.............................7 Preferred changes in web.xml – ............................................................8 Tuning JVM (JRockit) ................................................................................8 Tuning Webcenter Portal (Spaces)..............................................................9 Tuning Webcenter Content........................................................................10 Summary ...................................................................................................11 About the Author.......................................................................................11
  • 3. Introduction I have been given task of analysis and tuning of Webcenter Spaces application, which using custom task flow build on Oracle ADF for our customer. This article is based on my analyzed data while performance optimization but will be useful for any other Oracle Webcenter Portal (Spaces) applications. This application deployed on customer site. Issues persist with time, as data increase down the line and loading of home page and other pages taking time around 20 to 30 Seconds. Goal is to reduce to acceptable time frame. The article covers the findings, research and recommendations and includes the best practices that can be applied to generic WebCenter Spaces applications as well custom task flow application. The following area are main effected for performance tuning. 1. Oracle Webcenter Spaces API 2. Oracle WebCenter Spaces1 Application Tuning 3. ADF Task Flow The Oracle WebCenter Spaces application examined in this article is based on Oracle WebCenter Patch Set 4 with Oracle Weblogic Server 11.1.1.5. Performance analysis done on various tool like Jmeter,Oracle Enterprise Manager Control, and third party browser plugins including Firebug. I will also list down the solution made for performance optimization and best practices. Environment: → Oracle ADF → Oracle WebCenter 11.1.1.5 → Oracle Webcenter Content
  • 4. Application Architecture Application consist of various spaces .It uses Webcenter content in behind. All user information and application information stored in Webcenter Content , which is integrated through RIDC API. Regarding Webcenter Spaces information, spaces user information and custom attributes of spaces are stored in Webcenter spaces. Analysis of Code base of Application For performance analysis , I tried with Jmeter and result are not very good with a lot of data and multiple request to RIDC api and Webcenter Spaces API classes i.e. GroupSpaceWSClient This class provides the utility methods to perform commonly used Group Space operations. GroupSpaceWSContext This class provides all the client side configuration for connecting to the group spaces web services. GroupSpaceWSMembers This class acts as place holder for storing details of members to be added added to the Group Space and to be removed from teh Group Space. GroupSpaceWSMetadata This class is responsible for providing metadata for given WebCenter
  • 5. Group Space. Result of Performance analysis is as below - And in average result graph - Firebug - After this testing main problem is request going to WS API. For example- In one scenario – One spaces have custom attribute as moderationRequired -true for create new post. For checking that current user is able to create post on that group, one request went for checking whether user is member of that group or not, second request went to check the role of current user and third request
  • 6. to check whether current group is require moderation or not. In above scenario, we send 3 request to check wther user should able to create post or not. Lot of request to WS API, which cause the problem. Following method used to check WS spaces information - getGroupSpaceMembersInfo(spaceName) getGroupSpaceMetadata(spaceName) getGroupSpaces() getPublicGroupSpaces() getGroupSpaceURL(groupSpace) client.getDiscoverableGroupSpaces() and many more. Performance Optimization - There are two way, I had changed application code a bit. 1.) Using expression language from SpacesQueryParameters class - for getting spaces based on various criteria . 2.) Querying the Webcenter Spaces DB tables -uerying the Webcenter Spaces DB tables 1. ) Implementation of Expression language (el) for getting information from WS API - → #{spaceContext.spacesQuery.unionOf['DISCOVERABLE'].listSpaces - expression will return the list of all discoverable group spaces → #{spaceContext.spacesQuery.unionOf['USER_JOINED'].shape['RECURSIVE_FLATTENED '].listSpaces} - returns a list of all spaces the current user is a member of and returns all the sub- spaces under each of these spaces the current user has access on → #{spaceContext.space['" + spaceName + "']} - Return instance of space. These expression language is very useful compare to using WS API using GroupSpaceWSClient and send request.for example Using below code you can get metadata of space Space mySpace = (Space)OCCViewUtil.evaluateEL("#{spaceContext.space['" + spaceName + "']}"); GSMetadata spaceMetadata = spaceMetadata = mySpace.getGSMetadata();
  • 7. 2.) Querying the Webcenter Spaces DB tables – Instead of sending request to Webcenter Spaces API , its easy and better to fetch information for database . We have webcenter schema for getting information for Webcenter Spaces database tables. Similary we have schema for discussion, portlet producer and activity & graphs as well. See below- Component Schema Owner Dependencies WebCenter Spaces prefix_WEBCENTER prefix_MDS (Metadata Services) Portlet Producers prefix_PORTLET None. Discussions prefix_DISCUSSIONS None. Activity Graph and Analytics prefix_ACTIVITIES None. Alright, now our custom task flow application will have a model structure as well, which is not there before. We will be creating read only view object on the tables .Getting information from these db tables is very fast compare to use Webcenter Spaces API. WC_SPACE_HEADER - This table stores all the spaces in the system, their status, last updated, and other attributes like parent space and member count. WC_SPACE_USR_DETAIL - This table stores all the users in the spaces, their status, roles, and other attributes like space. WC_PEOPLE_CONN_LIST - This table stores all the connection for particular users. There are multiples tables .You can use according to your requirement. See below -
  • 8. After creating view objects, We can get the information using executing view criteria. This will be a quick way to get information for Webcenter spaces. Tuning in Custom Task flow application in ADF side - 1. While using tree or table, use appropriate content delivery mode Possible values for this attribute are:  immediate  lazy  whenAvailable 2. Avoid inline usage of JavaScript/Cascading Style Sheets (CSS) whenever possible. 3. While using tree or table, always consider set correct fetch size (fetch size -defines the number of rows to be sent to the client in one round-trip). 4. Avoid binding UI components in backing beans, if used make them as transient 5. While using tree or table use column stretching, if really required. 6. Use "blocking=true" for and to avoid multiple clicks on submit buttons. 7. Remove unused items from page bindings. 8. Set Immediate Property to True when Appropriate. 9. Remove unused VOIterators on JSFF Page definitions. 10. Use AJAX (PPR) as much you can. 11. Ensure none of Page definitions should have more than one data control if not needed. This may result in increasing number of database connections. 12. Avoid using a af:panelStretchLayout where topHeight, bottomHeight, startWidth, or endWidth is set to “auto”.
  • 9. 13. Don’t use JSF/ADF Faces and JavaServer Pages Standard Tag Library (JSTL) tags together. 14. Use the "visible" and "rendered" attributes wisely.  The visible property specifies simply whether the component is to be displayed on the page, or is to be hidden.  The rendered property specifies whether the component shall exist in the client page at all. 15. Keep the managed beans in the lowest possible scope in task flow. 16. While using tree or table, always consider set correct fetch size( fetch size -defines the number of rows to be sent to the client in one round-trip). 17. Ensure each backing bean/Manage bean should implement java.io.Serializble interface. Preferred changes in web.xml – org.apache.myfaces.trinidad.resource.DEBUG -False oracle.adf.view.rich.CHECK_FILE_MODIFICATION -False oracle.adf.view.rich.CLIENT_STATE_METHOD -token oracle.adf.view.rich.LOGGER_LEVEL -False or remove this entry oracle.adf.view.rich.ASSERT_ENABLED -False or remove this entry Tuning JVM (JRockit) The Oracle JRockit JVM is the industry's leading performing Java Virtual Machine now built into Oracle Fusion Middleware. It brings industry leading real time infrastructure capabilities with JRockit Real Time and unparallelled JVM diagnostics with JRockit Mission Control. As all the java processes are run and maintained by the JVM, it should be tuned properly in order to get the desired performance. The tuning can be done in terms of heap size allocated to different JVM processes, Garbage collection and other run-time parameters. 1. Tuning the Garbage Collection: Set dynamic Garbage Collection mode to Throughput Mode. And we can reduce the memory fragmentation by selecting this GC mode. Throughput mode is default when the JVM runs in -server mode (which is default), or can be enabled with the command line option -XgcPrio:throughput. For example: java -XgcPrio:throughput 2. Setting the Nursery Size: Nursery size refers to the storage for the short-lived objects , which are collected faster than old objects . This reduces the chances of very frequent Garbage collections and long pause times. It is set to optimal value by default when the GC mode is selected as throughput. It should at least 2GB. Set -Xns=4096m to increase the nursery size. 3. Setting the Heap Size on 64-bit Systems: The heap size has an impact on allocation speed,
  • 10. garbage collection frequency and garbage collection times. A small heap will become full quickly and must be garbage collected more often .The heap allocation is a vital area which needs to be carefully tuned to increase the performance. By default 2Gb is the allocated heap for Webcenter Spaces application, which is very low. At least it should be 4GB. java -Xms:4g -Xmx:4g 4.: Add the argument –XxnoSystemGC prevents System.gc() application calls from forcing garbage collection. Tuning Webcenter Portal (Spaces) 1. Configure Portlet cache size - Change the following parameter in adf-config.xml manually <adf-portlet-config> <supportedLocales> <cacheSettings enabled="true"> <maxSize>10000000</maxSize> {default value} </cacheSettings> <adf-portlet-config> 2. Configure portlet timeout- Modify the portlet timeout value in the adf-portlet-config element of the adf-config.xml file. Default: 10 seconds, minimum: 0.1 seconds, maximum: 60 seconds. If you must modify these properties, post deployment, you must edit adf- config.xml manually. The following is a sample snippet of adf-config.xml: <adf-portlet-config> .... <defaultTimeout>5</defaultTimeout> <minimumTimeout>2</minimumTimeout> <maximumTimeout>100</maximumTimeout> </adf-portlet-config>
  • 11. Tuning Webcenter Content 1. Setting JRockit Virtual Machine (JVM) Arguments.JVM arguments are set in the setDSSCustomDomainEnv.sh file. Heap size: If the system is overloaded, that is, garbage is collected or “out of memory error” occurs frequently, then increase the heap size as appropriate to your system's available physical memory. The parameter is: -Xms2096M -Xmx2096M -Xns2096M Security: The following JVM arguments improve performance of Webcenter application’s security layer. -DUSE_JAAS=false -Djps.policystore.hybrid.mode=false -Djps.combiner.optimize.lazyeval=true -Djps.combiner.optimize=true -Djps.auth=ACC 2. Setting System Limit -To run a WebCenter application at moderate load, set the open-files-limit to 2048.If you encounter errors, such as running out of file descriptors, then increase the system limit. For example, on Linux, you can use this command: ulimit -n 4096 (default is 1024) 3. Setting HTTP Session Timeout To manage over resource usage, adjust the session timeout value, in minutes, in the web.xml file manually. The following is a sample snippet of web.xml: <session-config> <session-timeout> 45 </session-timeout> </session-config>
  • 12. Summary This article stepped you through the performance tuning of webcenter spaces application. Performance tuning is vast topic. It can be done timely with different environment. Real testing can be done of Webcenter Spaces application using maximum load. So designing an application architecture should be done with keeping in mind the co-current users. Still there is lot of space of tuning such as Weblogic server. To summarize, reducing the request to Webcenter Spaces API will increase the performance of Webcenter Spaces application. Tuning practice of Webcenter Spaces helps a lot to reduce the page loading time. By means of observations and preliminary testing data to 2 to 3 seconds from 20 to 30 seconds. It recommend to have model layer for fetching information from spaces. About the Author Vinay Kumar is a Senior Consultant and certified Oracle ADF/WebCenter Portal implementation spe- cialist with Silbury IT Solutions gmbH. An Oracle Fusion Middleware evangelist. Vinay has seven years of experience consulting in Oracle ADF, Oracle WebCenter Portal/Content.