1 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
2 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Real World ADF Design & Architecture Principles MDS Infrastructure Decisions
ORACLE PRODUCT
LOGO
15th Feb 2013 v1.0
3 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Learning Objectives
• At the end of this module you should be able to:
– Identify the server infrastructure for your application MDS requirements
– Understand the MDS runtime architecture – Identify the number of MDS repositories to create
Image: imagerymajestic/ FreeDigitalPhotos.net
4 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Program Agenda
• MDS Repository • MDS Runtime Architecture • Deployment & Performance • How Many MDS Repositories Do You Need?
5 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Oracle Metadata Service Repository
• File based or database based • Contains metadata (data about data) for Oracle Fusion Middleware
components, like – Oracle BPEL Process Manager – Oracle WebCenter – Oracle Business Activity Monitoring – Oracle Event Processing etc.
• Contains information about your ADF application metadata
6 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Oracle Metadata Service Repository
• Use Oracle Fusion Middleware Metadata Repository Creation Utility (RCU) to create the metadata repository in an existing database
• A database can have multiple repositories installed • A WLS domain can use multiple MDS installations • For better performance, install metadata repositories on same site
as customizable components – Keep network latency small
Database Repository
7 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
MDS Database Repository Benefits
• Better query performance • A database-based MDS Repository uses the database transaction
semantics, to roll back any failed import or deployment • Maintains versions of the documents in a database-based repository
– Changes to metadata objects can be stored as separate version Provides version history and label
8 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
MDS Structure
• Independent logical repository within MDS repository • MDS repository can have multiple partitions • Can be associated with more than one application
– Recommendation though is to use 1 partition for 1 application for ease of administration and maintenance
• Can be deleted, cloned, imported and exported to move metadata from one environment to another
Partition
9 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Program Agenda
• MDS Repository • MDS Runtime Architecture • Deployment & Performance • How Many MDS Repositories Do You Need?
10 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
MDS Runtime Architecture
• Consists of MDS runtime engine and a set of Mbeans – Applied to domain as part of the Java Runtime Files (JRF) template
• Runtime engine – Manages MDS Repository access and the import of Metadata Archive
(MAR) files contained in an EAR file – Provides in-built runtime cache for application specific metadata objects
11 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
MDS Runtime Architecture
• MBeans are provided for WebLogic Sever Scripting Tool (WLST) and Enterprise Manager to – Clear cache – Import and export application specific customizations – Manages
• The built-in meta object cache – Cache size, purge interval, external change detection
• Repository connection retry
• WLS MBeans are not the same as JSF Managed Beans
12 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
MDS Runtime Architecture
WLS Admin Server
Managed WLS Server
Custom ADF Application
MDS Runtime
MDS Repository (RDBMS)
Enterprise Manager Fusion Middleware Control
MDS Administration MBean
WLST
MDS App MBean
Import/ Export
De- / Register Repositories
Repository Access MAR Import
13 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Program Agenda
• MDS Repository • MDS Runtime Architecture • Deployment & Performance • How Many MDS Repositories Do You Need?
14 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
ADF Application Deployment Considerations
• MDS personalization and customization for ADF applications is enabled at development time – Configuration in adf-config.xml
• MDS enabled ADF applications must be explicitly associated with a specific MDS repository and partition – JDeveloper – MDS WLST commands – Enterprise Manager Deployment Wizard
• Seeded customization require application EAR file to contain special MAR file
15 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Metadata Cache
• MDS uses a cache to store metadata objects in memory • Shared cache is accessible to all users of the application that are on
the same JVM • Metadata object that are requested repeatedly, with the same
customizations, are retrieved more quickly from the cache • Initial cache size can be configured in adf-config.xml prior
deployment
16 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
MDS Performance Tuning Hints
• Tuning Database Repository – For MDS database indexes to work best RDBMS schema statistics are
needed – Generally, larger redo log files provide better performance – Have database administrators manually rebuild indexes and shrink MDS
tables to increase performance and to reclaim disk space – See: Oracle Database Performance Tuning Guide
• Purging Document Version History – Choose a sensible auto purge frequency – Setting in adf-config.xml that can be changed at runtime
17 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
MDS Performance Tuning Hints
• Using Database Polling Interval for Change Detection – MDS poll the database to gauge if the data in the MDS cache is out of
sync with data in the database – If it is out of sync, MDS clears any invalid data from the cache for
subsequent operations – Default poll interval is 30 seconds. Try to find the best setting for your
deployment – Polling interval can be configured or changed post deployment through
Mbeans or, before deployment, in the adf-config.xml file
18 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Program Agenda
• MDS Repository • MDS Runtime Architecture • Deployment & Performance • How Many MDS Repositories Do You Need?
19 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 19 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
How many MDS repositories and partitions do we need and what should they contain?
Image: imagerymajestic/ FreeDigitalPhotos.net
20 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 20 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
There is no hard rule, but there is a strategy to share
Image: Ambro/ FreeDigitalPhotos.net
21 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
MDS Repository Infrastructure Consideration
• Define a MDS repository infrastructure that guarantees ease of administration, ease of configuration and best performance – Many small repositories vs. one monolithic repository – Infrastructure cost vs. cost of administration for large repository
• Plan for application versioning – You may have the requirement to run two versions of an application in
parallel – ISVs may sell and maintain different versions of your product
22 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
MDS Repository Infrastructure Consideration
• Consider different Fusion Middleware releases and patch sets – Application may not be able to migrate to a new FMW patch set or
release with all FMW components at once
• Consider repository version de-commission – You should be able to easily get rid of metadata of application and FMW
versions that are no longer in use
• Ensure the production environment is secure
23 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
MDS Repository Recommendation
• Use database repositories – Exception: When developing seeded customization in JDeveloper,
development uses a file based repository
• Use different repositories for Dev, QA and Prod • Use partitions for application versions
– fod-v1-dev, fod-v1-test, fod-v1-prod – fod-v2-dev, fod-v2-test, fod-v2-prod
• Create distinct repositories for FMW components
24 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
MDS Repository Strategy and Blueprint
• "APPLICATION MDS REPOSITORIES" - SOA - WebCenter - Application - etc.
• "APPLICATION MDS INFRASTRUCTURE" – Instances of " APPLICATION MDS REPOSITORIES " for Dev, Test,
Production
• Duplicate APPLICATION MDS INFRASTRUCTURE for each FMW version or patch set
25 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Conclusion
• Customization and Personalization should be considered as part of the application design to avoid unnecessary coding
• Consider performance aspects when applying customizations and personalization features
• Customization may be used to enforce security. If you do so – Ensure application is save when MDS repository content is missing – Implement defense in depth in that you backup MDS security
definitions in the application
• Consider a deployment strategy that allows you to upgrade applications and FMW components
26 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Further Reading
• Oracle Fusion Middleware WebLogic Scripting Tool Command Reference – http://docs.oracle.com/cd/E12839_01/web.1111/e13813/custom_mds.htm
• Oracle Fusion Middleware Administrator's Guide – http://docs.oracle.com/cd/E17904_01/core.1111/e10105/repos.htm
27 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.