Performance Tuning for Oracle WebCenter Content 11g - Fishbowl ...
Performance Tuning for Oracle WebCenter Content 11g - Fishbowl ...
Performance Tuning for Oracle WebCenter Content 11g - Fishbowl ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Per<strong>for</strong>mance</strong> <strong>Tuning</strong> <strong>for</strong> <strong>Oracle</strong><strong>WebCenter</strong> <strong>Content</strong> <strong>11g</strong>:Strategies and TacticsChris Rothwell and Paul Heupel
Overview• <strong>Content</strong> Server history.• JVM tuning.• Disk Systems.• Virtualization.• Services and Components.• Enterprise integrations.• Reverse Proxy.
A bit of History…
A bit of History…
A bit of History…
Fusion Middleware• Java EE container required.• Container handles DB connections• Common security implementation– Provider implications
Memory and JVM <strong>Tuning</strong>• More like tuning a Java EE application• Profile your actual usage• More smaller instances vs. fewer largerinstances• JRockit on x86/64
Memory and JVM <strong>Tuning</strong>• 32-bit vs. 64-bit
Disk Usage
Disk Usage
Disk Usage
Disk Usage - vault/~temp• One of the busiest directories whenuploading• Virus scanning
Disk Usage – ucm/cs/data/alerts• New in <strong>11g</strong>• Needs PatchSet 13502977 <strong>for</strong> PS1-4• Patched in core of PS5
Logging• WebLogic logging– TRACE, DEBUG, INFO, NOTICE, WARNING,ERROR, CRITICAL, ALERT, EMERGENCY• Logging impacts per<strong>for</strong>mance• Avoid virus scanning the log directories
File Store Providers• Default• Database File Store Provider– SecureFiles
Virtualization• Easy to revert to a know good state.• Portability.• Sizing.
Virtualization• Change to CPU based licensing
Virtualization
Virtualization
Virtualization
Virtualization• Always have enough physical resources <strong>for</strong>each virtual machine.• Optimize licenses, not hardware.• Use virtualization to split larger machinesinto smaller instances.
Services and Components• Optimize taxonomy when you can.• Clean up content when you can.
Services and Components• Optimize taxonomy when you can.• Clean up content when you can.• Customize services when you can’t.
GET_SEARCH_RESULTS
DOC_INFO
DOC_INFO
Services and Components• IDOC include caching– Application or Session scoped– Time in seconds
Services and Components&IsPageDebug=1
Services and Components
Services and Components
Services and Components
Services and Components/u01/oracle/fmw/<strong>Oracle</strong>_ECM1/ucm/idc/resources/core/tables/std_services.htm1 READ 4 DELETE 16 GLOBAL2 WRITE 8 ADMIN 32 SCRIPTABLE
Services and Components
Services and Components
Enterprise Integrations
Enterprise Integrations
Enterprise Integrations[oracle@ps5 config]$ pwd/u01/oracle/fmw/user_projects/domains/fmw_base_domain/ucm/cs/config[oracle@ps5 config]$ more config.cfg#Server System PropertiesIDC_Name=ps5fishbowlsolutionscom16200IdcProductName=idccsInstanceMenuLabel=ps5fishbowlsolutionscom16200InstanceDescription=Instance ps5fishbowlsolutionscom16200SocketHostAddressSecurityFilter=127.0.0.1|0:0:0:0:0:0:0:1|192.168.*.*#Additional VariablesSearchIndexerEngineName=<strong>Oracle</strong>TextSearchIntradocServerPort=4444
Enterprise Integrationshttp://your-ip-address-here:7001/em
Enterprise Integrations
Enterprise Integrations
Enterprise Integrations
Enterprise Integrations*** REQUEST HDA ***REQUEST_METHOD=POSTREMOTE_USER=weblogicCONTENT_TYPE=text/htmlCONTENT_LENGTH=178IdcVersion=<strong>11g</strong>SERVER_SOFTWARE=CONTENTSERVERHTTP_HOST=CONTENTSERVERBEAN$$$$NoHttpHeaders=1&IsJava=1&IdcService=PING_SERVER@Properties LocalDataIdcService=PING_SERVERIsJava=1@end$$
Enterprise IntegrationsString principal = "weblogic";// build the HDA strucure - nothing clever here...StringBuilder hdaCommand = new StringBuilder();hdaCommand.append("NoHttpHeaders=1&IsJava=1&IdcService=");hdaCommand.append("PING_SERVER"); // the servicehdaCommand.append("\r\n");// LocalData sectionhdaCommand.append("\n");hdaCommand.append("@Properties LocalData\n");hdaCommand.append("IdcService=PING_SERVER\n");hdaCommand.append("IsJava=1\n"); // and the param to make sure we get a value object backhdaCommand.append("@end\n");hdaCommand.append("$$\n");// and build the http header...StringBuffer header = new StringBuffer();header.append("REQUEST_METHOD=POST\n");header.append("REMOTE_USER=" + principal + "\n");header.append("CONTENT_TYPE=text/html\n");header.append("CONTENT_LENGTH=" + hdaCommand.toString().getBytes().length + "\n");header.append("IdcVersion=<strong>11g</strong>\n");header.append("SERVER_SOFTWARE=CONTENTSERVER\n");header.append("HTTP_HOST=CONTENTSERVERBEAN\n");header.append("$$$$\n");
Enterprise IntegrationsSocket socketConnection = new Socket("localhost", 4444);BufferedOutputStream bos = new BufferedOutputStream(socketConnection.getOutputStream());BufferedInputStream bis = new BufferedInputStream(socketConnection.getInputStream());// the 'full' HDA requestString hda = header.toString() + hdaCommand.toString();System.out.println("*** REQUEST HDA ***\n");System.out.println(hda);// send the requestBufferedWriter bufWriter = new BufferedWriter(new OutputStreamWriter(bos));bufWriter.write(hda);bufWriter.flush();// take response stream and dump out the response hda out line by line..System.out.println("*** RESPONSE HDA ***\n");BufferedReader br = new BufferedReader(new InputStreamReader(bis));String hdaResponse;while ((hdaResponse = br.readLine()) != null) {System.out.println(hdaResponse);}
Enterprise Integrations*** RESPONSE HDA ***@Properties LocalDataClientEncoding=UTF8IdcService=PING_SERVERIsJava=1NoHttpHeaders=1StatusMessage=You are logged in as 'weblogic'.blDateFormat=M/d{/yy}{ h:mm[:ss]{ a}}!mAM,PM!tPacific/MidwayblFieldTypes=StatusMessage messagechangedMonikers=changedSubjects=dUser=weblogicidcToken=localizedForResponse=1refreshMonikers=refreshSubMonikers=refreshSubjects=@end@ResultSet UserAttribInfo2dUserNameAttributeInfoweblogicaccount,#all,15,account,#none,15,role,Administrators,15,role,admin,15,role,refineryadmin,15,role,rmaadmin,15,role,pcmadmin,15,role,ermadmin,15,role,sysmanager,15,role,guest,15,role,authenticated,15@end$$
Enterprise Integrations
Enterprise Integrations
Enterprise Integrations
Enterprise Integrations
Enterprise Integrations• Connection pools vs. Simple– Defaults to simple in PS3– MaxRequestThreadCount
Enterprise Integrations
Reverse Proxy
Reverse Proxy Server• Definition• Advantages and Disadvantages• Squid Demo with Site Studio• Architecture with <strong>WebCenter</strong> <strong>Content</strong>.
What is a Reverse Proxy?• Proxy requests to web servers.• Opposite of <strong>for</strong>ward proxy.• Typically lives in DMZ.– Squid– Apache (mod_proxy)– Varnish
Reverse Proxy Advantages• Caching• Security• Single Point of Access
Reverse Proxy Disadvantages• Single Point of Failure• Contains Internal Server Info• Additional Layer <strong>for</strong> Translation
Reverse Proxy With WCC• Weblogic Proxy Plugin• Access without ports• No cache• External access
Reverse Proxy - Website• Squid demo – Site Studio• MaxAge - Cache-Control header• Hierarchical Cache Systems• Memory and Disk
High <strong>Per<strong>for</strong>mance</strong> Architecture
Additional Resources• Booth: #1178• Web: www.fishbowlsolutions.com• Email: info@fishbowlsolutions.com• Twitter: @fishbowlE20• Facebook: facebook.com/fishbowlsolutionsEnter to winan iPad!Learn more about <strong>WebCenter</strong> <strong>Content</strong>Mobile, SharePoint Integration, GoogleSearch, Intranet-in-a-Box and more.
More from <strong>Fishbowl</strong>at Collaborate1214 Team & Customer PresentationsDownload ourFree CollaborateApp!To view the schedule on your iPad oriPhone download out app or visitfishbowlsolutions.com/collaborateApp Includes:• Session Schedule• Booth Info• Presentations Downloads• Whitepapers Downloads• Expo MapSearch:<strong>Fishbowl</strong> Solutions