12.07.2015 Views

Performance Tuning for Oracle WebCenter Content 11g - Fishbowl ...

Performance Tuning for Oracle WebCenter Content 11g - Fishbowl ...

Performance Tuning for Oracle WebCenter Content 11g - Fishbowl ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!