<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-16458652</id><updated>2012-03-01T08:38:00.654Z</updated><category term='UNIX'/><category term='logging'/><category term='Tuning'/><category term='OEM'/><category term='installation'/><category term='Tables'/><category term='Performance'/><category term='Grid Control'/><category term='sizing'/><category term='Space'/><category term='Patching'/><category term='bug'/><category term='production'/><category term='SQL Server'/><category term='Micro Focus Cobol'/><category term='MQ'/><category term='PGA'/><category term='Kernel'/><category term='Management'/><category term='Oracle'/><category term='tracing'/><category term='authorisations'/><category term='ASH'/><category term='Netweaver'/><category term='XI'/><category term='Testing'/><category term='Administration'/><category term='Gateway'/><category term='SAP'/><category term='Advisor'/><category term='Backup'/><category term='configuration'/><category term='Projects'/><category term='PI'/><category term='Networking'/><category term='Macro'/><category term='realtime'/><category term='email'/><category term='Indexes'/><category term='Error'/><category term='HWM'/><category term='Documentation'/><category term='AWR'/><category term='R/3'/><category term='Android'/><category term='IBM'/><category term='transports'/><category term='user groups'/><category term='RFC'/><category term='Reports'/><category term='VMWare'/><category term='BW'/><category term='NetApp'/><category term='Troubleshooting'/><category term='pl/sql'/><category term='parameters'/><category term='language'/><category term='High Water Mark'/><category term='audit'/><category term='Java'/><category term='EHP'/><category term='Transactions'/><category term='Windows Server'/><category term='Upgrade'/><category term='Tablespace'/><category term='Guide'/><category term='sql'/><category term='Database'/><category term='Linux'/><category term='Musing'/><category term='BI'/><category term='SLD'/><category term='Memory'/><category term='HP-UX'/><category term='statistics'/><category term='HyperThreading'/><category term='Disaster Recovery'/><category term='DBUA'/><category term='Segment'/><category term='Channel'/><category term='Books'/><category term='Code Standards'/><title type='text'>Musings of an IT Implementor</title><subtitle type='html'>This blog contains experience gained over the years of implementing (and de-implementing) large scale IT applications/software.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>71</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-16458652.post-2038727026552607493</id><published>2012-03-01T08:38:00.000Z</published><updated>2012-03-01T08:38:00.752Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='SAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='Indexes'/><category scheme='http://www.blogger.com/atom/ns#' term='transports'/><title type='text'>Proving new Oracle Index in SAP Without a Transport</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Let’s suppose you have created a new Oracle level index on a SAP table using SE11.&lt;br /&gt;You’ve created it in DEV and proven that it changes the EXPLAIN PLAN using SQL Trace or Oracle level tools.&lt;br /&gt;&lt;br /&gt;Unfortunately you don’t have a significant amount of data in your DEV instance, but you do have data in your UAT or integration test system.&lt;br /&gt;You could release your workbench request that you will have created to create the new index in SE11, but this means a flurry of potential additional transports to remove it again if it doesn’t work.&lt;br /&gt;You just want a proof of concept that can be removed again.&lt;br /&gt;&lt;br /&gt;Since it’s entirely possible for you to create an index at the Oracle level below SAP, you just need to ensure that you create the index the same as SAP would.&lt;br /&gt;You can choose a couple of methods to ensure this, but we will discuss the SAP biased method.&lt;br /&gt;&lt;br /&gt;Using SE11, find the table on which the new index exists in DEV.&lt;br /&gt;&lt;br /&gt;NOTE: We’re showing R/3 Enterprise, but it should be similar for Netweaver based systems.&lt;br /&gt;&lt;br /&gt;Click the “Indexes...” button to list the indexes:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-pi5NZU3yVgQ/TzjOAEpZsQI/AAAAAAAAAVA/uF4z5GpvSsw/s1600/image001-715257.png"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-pi5NZU3yVgQ/TzjOAEpZsQI/AAAAAAAAAVA/uF4z5GpvSsw/s320/image001-715257.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Double click the new index you created earlier.&lt;br /&gt;Now on the menu, select “Utilities -&amp;gt; Activation Log”:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-syBPyIen_Lw/TzjOADtx0MI/AAAAAAAAAVQ/lzmTTkKPGKc/s1600/image002-716784.png"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-syBPyIen_Lw/TzjOADtx0MI/AAAAAAAAAVQ/lzmTTkKPGKc/s320/image002-716784.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Click the magnifying glass icon next to the “Technical log for mass activation” option on the main screen.&lt;br /&gt;&lt;br /&gt;Expand all the possible expansion icons:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-C92eBQUkOQI/TzjOAiuEsFI/AAAAAAAAAVY/v7jBTRVRBcs/s1600/image004-718718.png"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-C92eBQUkOQI/TzjOAiuEsFI/AAAAAAAAAVY/v7jBTRVRBcs/s320/image004-718718.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Look for the text “CREATE” to find the create statement:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-kbhxX07F5tU/TzjOA9hUQMI/AAAAAAAAAVg/y2-3WLpwATs/s1600/image005-719620.png"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-kbhxX07F5tU/TzjOA9hUQMI/AAAAAAAAAVg/y2-3WLpwATs/s320/image005-719620.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Copy the text and paste into SQL*Plus in any other SAP systems Oracle database to create the index.&lt;br /&gt;You’re done.&lt;br /&gt;&lt;br /&gt;Just remember that this index does not exist in the SAP data dictionary, so you must remove it once you have proven the EXPLAIN PLAN is working for the larger amount of data.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-2038727026552607493?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/2038727026552607493/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=2038727026552607493&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/2038727026552607493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/2038727026552607493'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2012/03/proving-new-oracle-index-in-sap-without.html' title='Proving new Oracle Index in SAP Without a Transport'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-pi5NZU3yVgQ/TzjOAEpZsQI/AAAAAAAAAVA/uF4z5GpvSsw/s72-c/image001-715257.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-8799019576609002954</id><published>2012-02-27T08:36:00.000Z</published><updated>2012-02-27T08:36:00.263Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='production'/><category scheme='http://www.blogger.com/atom/ns#' term='VMWare'/><category scheme='http://www.blogger.com/atom/ns#' term='Musing'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Running Oracle Production Database on VMware</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Are you considering running Oracle production databases on VMware?&lt;br /&gt;Obviously you've considered the Oracle support policy on this.&lt;br /&gt;How likely is it that you will get asked to "make it physical"? &amp;nbsp;or How will Oracle support deal with your call if you tell them you're on VMware?&lt;br /&gt;&lt;div&gt;&lt;br /&gt;Well, there are some harsh responses from Oracle towards VMware customers if you have access to Metalink (sorry, My Oracle Support).&lt;br /&gt;&lt;br /&gt;First you should read this doc: 1071005.1 (HOTSPOT ERROR DURING 32-BIT 11GR2 CLIENT INSTALL ON 64-BIT (X86_64) SUSE (VMWARE)).&lt;br /&gt;&lt;br /&gt;Then read this document: 1075717.1 (Installing 32-bit RDBMS Client software on x86_64 Linux.)&lt;br /&gt;&lt;br /&gt;I don’t think the first problem’s resolution is justified. &amp;nbsp;Do you?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I have found Oracle notes that state the following:&lt;br /&gt;&lt;br /&gt;"&lt;i&gt;(1) Make sure you are logged into the Server Console directly, and that you are NOT trying to install the patch over a remote connection (such as Terminal Services, Remote Desktop, Timbuk2, PCAnywhere, VNC, VMWare, etc.)&lt;/i&gt;&amp;nbsp;"&lt;br /&gt;&lt;br /&gt;"&lt;i&gt;As for installing over a remote connection, we do not support this, because Oracle cannot control the way the permissions are setup, over the remote connection.&lt;/i&gt;"&lt;br /&gt;&lt;br /&gt;So VMware console is a remote connection...&lt;br /&gt;&lt;br /&gt;Then there is this document:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.oracle.com/us/solutions/sap/wp-o10g-rac-config-win-303805.pdf"&gt;http://www.oracle.com/us/solutions/sap/wp-o10g-rac-config-win-303805.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This doc is an Oracle whitepaper which details SAP Netweaver / Oracle Databse 10gR2 RAC on Windows 2003.&lt;br /&gt;In the doc it shows an example hosts file which is clearly from a VMware hosted server. &amp;nbsp;Double standards I feel!&lt;br /&gt;&lt;br /&gt;This is just not a nice place to be if you're trying to convince a company that VMware is a solid, supported tool to run production databases, and that Oracle even support RAC on it now. &amp;nbsp;Maybe some of the notes are old, before the acceptance by Oracle that VMware is becoming big in many companies. &amp;nbsp;Or maybe Oracle's RAC support is an illusion of good will, whilst they quietly (or not so) improve the Oracle VM product.&lt;br /&gt;The best way to tell, would be the acceptance of Oracle that VMware's vCPU allocation is acceptable as a form of hard partitioning, so that you can bring the Oracle DB license cost down by runnining on VMware, in the same way you can on Oracle VM.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-8799019576609002954?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/8799019576609002954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=8799019576609002954&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/8799019576609002954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/8799019576609002954'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2012/02/running-oracle-production-database-on.html' title='Running Oracle Production Database on VMware'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-4284916686240059891</id><published>2012-02-26T08:19:00.000Z</published><updated>2012-02-26T08:19:57.095Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='parameters'/><category scheme='http://www.blogger.com/atom/ns#' term='bug'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>_fix_control bug</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;It turns out that the issue with the Oracle init param: "_FIX_CONTROL" preventing the database from starting (&lt;a href="http://darrylgriffiths.blogspot.com/2012/01/fix-control-and-ora-00940-invalid-alter.html" target="_blank"&gt;I blogged about this before&lt;/a&gt;), is bug 7509689: "_FIX_CONTROL" IS CAUSING TROUBLE DURING STARTUP.&lt;br /&gt;&lt;br /&gt;It's fixed in 10.2.0.5.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-4284916686240059891?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/4284916686240059891/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=4284916686240059891&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/4284916686240059891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/4284916686240059891'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2012/02/fixcontrol-bug.html' title='_fix_control bug'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-8307587212153243641</id><published>2012-02-17T11:38:00.000Z</published><updated>2012-02-17T11:38:00.670Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Advisor'/><category scheme='http://www.blogger.com/atom/ns#' term='Segment'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='Performance'/><title type='text'>Use Oracle 10g Segment Advisor Usage</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Generally, the Oracle 10g Segment Advisor collection job runs automatically out-of-the-box in an Oracle 10g install.&lt;br /&gt;It's useful to run the advisor sometimes on large indexes as it should be able to report whether the index is efficiently storing index records, or if it could be re-built.&lt;br /&gt;Oracle Enterprise Manager is already capable of pulling Space Advisor information from Oracle database.&lt;br /&gt;&lt;br /&gt;Here are some links to the Oracle docs:&lt;br /&gt;&lt;br /&gt;Oracle Doc: &lt;a href="http://docs.oracle.com/cd/B19306_01/server.102/b14196/montune003.htm" target="_blank"&gt;10g Advisors&lt;/a&gt;&lt;br /&gt;Oracle Doc:&amp;nbsp;&lt;a href="http://www.google.co.uk/url?sa=t&amp;amp;rct=j&amp;amp;q=site%3Aoracle.com%2010g%20space%20advisor&amp;amp;source=web&amp;amp;cd=2&amp;amp;ved=0CCkQFjAB&amp;amp;url=http%3A%2F%2Fdocs.oracle.com%2Fcd%2FB19306_01%2Fserver.102%2Fb14231%2Fschema.htm&amp;amp;ei=YGQuT9m8MIWk0QWOtcytCA&amp;amp;usg=AFQjCNEYtp-8yTUDsWch_-y_ZjFuugCnnQ&amp;amp;sig2=FhaA9jfzAlHLHYVeyJol4Q" target="_blank"&gt;10g Segment Advisor&lt;/a&gt;&lt;br /&gt;&lt;div&gt;Oracle Doc: &lt;a href="http://docs.oracle.com/cd/B19306_01/server.102/b14231/schema.htm#ADMIN01401" target="_blank"&gt;Manually Running the Segment Advisor to Reclaim Wasted Space&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://www.oracle.com/technetwork/database/focus-areas/manageability/twp-manage-proactive-space-manageme.pdf" target="_blank"&gt;An excellent whitepaper on pro-actively managing space in the Oracle 10g database.&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;The collector job (Automatic Segment Advisor) analyses segments in the database and compares to AWR reports to produce recommendations which can be reported on.&lt;br /&gt;You can check the last run of the job using the SQL below:&lt;br /&gt;&lt;br /&gt;-- Check the DBA SEGMENT ADVISOR job is collecting data.&lt;br /&gt;COL actual_start_date FORMAT A20&lt;br /&gt;COL run_duration FORMAT A15&lt;br /&gt;COL job_name FORMAT A30&lt;br /&gt;SELECT TO_CHAR(actual_start_date,'DD-MM-YY HH24:MI:SS') start_date,&lt;br /&gt;run_duration,&lt;br /&gt;job_name&lt;br /&gt;FROM dba_scheduler_job_run_details&lt;br /&gt;WHERE owner='SYS'&lt;br /&gt;AND job_name = 'AUTO_SPACE_ADVISOR_JOB'&lt;br /&gt;ORDER BY actual_start_date;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Once the collector is running, you can query the database using the DBMS_ADVISOR package to create analysis tasks that will query the recommendations and produce a recommendation report.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;NOTE:&lt;/b&gt; The collector job does not analyse every object.&lt;br /&gt;&lt;br /&gt;Below is the process I used to create a simple task to analyse a specific table and an index:&lt;br /&gt;&lt;br /&gt;&lt;div&gt;-- Create some variables to hold our task details.&lt;br /&gt;VARIABLE TASK_ID NUMBER;&lt;br /&gt;VARIABLE TASK_NAME VARCHAR2(100);&lt;br /&gt;VARIABLE OBJECT_ID NUMBER;&lt;br /&gt;&lt;br /&gt;-- Create a new empty task, which will populate the variables just defined.&lt;br /&gt;EXEC DBMS_ADVISOR.CREATE_TASK('Segment Advisor', :TASK_ID, :TASK_NAME);&lt;br /&gt;&lt;br /&gt;-- Assign a table and index check to the new task (replace &amp;lt;TABLE NAME&amp;gt; and &amp;lt;INDEX NAME&amp;gt;).&lt;br /&gt;EXEC DBMS_ADVISOR.CREATE_OBJECT(:TASK_NAME, 'TABLE', '&amp;lt;SCHEMA&amp;gt;', '&amp;lt;TABLE NAME&amp;gt;', NULL, NULL, :OBJECT_ID);&lt;br /&gt;EXEC DBMS_ADVISOR.CREATE_OBJECT(:TASK_NAME, 'INDEX', '&amp;lt;SCHEMA&amp;gt;', '&amp;lt;INDEX NAME&amp;gt;', NULL, NULL, :OBJECT_ID);&lt;br /&gt;&lt;br /&gt;-- Execute the task.&lt;br /&gt;EXEC DBMS_ADVISOR.EXECUTE_TASK(:TASK_NAME);&lt;br /&gt;&lt;br /&gt;&lt;b&gt;NOTE:&lt;/b&gt; On a 40GB table this took approximately 10 minutes.&lt;br /&gt;&lt;br /&gt;-- Check the results in two ways:&lt;br /&gt;-- Query the tables DBA_ADVISOR_FINDINGS, DBA_ADVISOR_RECOMMENDATIONS, DBA_ADVISOR_ACTIONS.&lt;br /&gt;&lt;br /&gt;-- or use DBMS_SPACE package (recommended).&lt;br /&gt;&lt;br /&gt;SELECT&lt;br /&gt;&amp;nbsp; RECOMMENDATIONS RECOMMENDATION,&lt;br /&gt;&amp;nbsp; C1 ACTION1,&lt;br /&gt;&amp;nbsp; C2 ACTION2,&lt;br /&gt;&amp;nbsp; C3 ACTION3&lt;br /&gt;FROM&lt;br /&gt;&amp;nbsp; TABLE(DBMS_SPACE.ASA_RECOMMENDATIONS)&lt;br /&gt;WHERE&lt;br /&gt;&amp;nbsp; TASK_ID = :TASK_ID;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-- Delete the task at the end.&lt;br /&gt;EXEC DBMS_ADVISOR.DELETE_TASK(:TASK_NAME);&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-8307587212153243641?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/8307587212153243641/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=8307587212153243641&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/8307587212153243641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/8307587212153243641'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2012/02/use-oracle-10g-segment-advisor-usage.html' title='Use Oracle 10g Segment Advisor Usage'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-4072621762773745909</id><published>2012-02-14T18:31:00.000Z</published><updated>2012-02-14T18:31:00.120Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='authorisations'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP'/><category scheme='http://www.blogger.com/atom/ns#' term='audit'/><title type='text'>Disabling Change or Deactivation of SAP Audit Logging SM19 - SAL</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;To disable changing or deactivation of the SAP Audit Logging (SAL) settings via transaction SM19, you can remove the authorisation object S_ADMI_FCD activity AUDA.&lt;br /&gt;(see  &lt;a href="http://wiki.sdn.sap.com/wiki/display/SMAUTH/S_ADMI_FCD"&gt;http://wiki.sdn.sap.com/wiki/display/SMAUTH/S_ADMI_FCD&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;This would prevent “normal” BASIS administrators from being capable of changing or disabling audit logging, but permit you to provide an emergency user with this capability (you will need to change SAL settings in SM19 at some point!).&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-4072621762773745909?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/4072621762773745909/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=4072621762773745909&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/4072621762773745909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/4072621762773745909'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2012/02/disabling-change-or-deactivation-of-sap.html' title='Disabling Change or Deactivation of SAP Audit Logging SM19 - SAL'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-8008122695384392603</id><published>2012-02-12T11:10:00.000Z</published><updated>2012-02-12T11:10:00.624Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tablespace'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><category scheme='http://www.blogger.com/atom/ns#' term='Troubleshooting'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>ORA-01114 IO Error But What Is The Oracle File</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Whilst creating a new 10GB index on a large 40GB table I was experiencing the &lt;br /&gt;"ORA-01114: IO error writing block to file &amp;lt;file#&amp;gt; (block # &amp;lt;block#&amp;gt;)" error.&lt;br /&gt;&lt;br /&gt;The main vital piece of information is the file number (&amp;lt;file#&amp;gt;). This can be found in the DBA_DATA_FILES or DBA_TEMP_FILES views as the FILE_ID column.&lt;br /&gt;&lt;br /&gt;So, you construct a query to go find the file name:&lt;br /&gt;&lt;br /&gt;SELECT file_id, file_name&lt;br /&gt;FROM dba_data_files&lt;br /&gt;WHERE file_id = &amp;lt;the number&amp;gt;&lt;br /&gt;UNION ALL&lt;br /&gt;SELECT file_id, file_name&lt;br /&gt;FROM dba_temp_files&lt;br /&gt;WHERE file_id = &amp;lt;the number&amp;gt;;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;NOTE:&lt;/b&gt; I query both just in case. I’ve worked on systems where the TEMP tablespace has not been created as “TEMPORARY”!&lt;br /&gt;&lt;br /&gt;After running the query, you get “0 rows returned”.&lt;br /&gt;What!&lt;br /&gt;&lt;br /&gt;Well, in this case, the TEMP tablespace was a proper TEMPORARY tablespace as the file_id was returned from the DBA_TEMP_FILES view.&lt;br /&gt;&lt;br /&gt;I knew that the file numbers were somehow linked to the number of permitted files in the database. &amp;nbsp;This is controlled by the DB_FILES database parameter.&lt;br /&gt;Looking at the Oracle documentation (for 10g) here: &lt;a href="http://docs.oracle.com/cd/B19306_01/server.102/b14231/dfiles.htm#i1206149"&gt;http://docs.oracle.com/cd/B19306_01/server.102/b14231/dfiles.htm#i1206149&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You will see that Oracle states that: &lt;br /&gt;“&lt;i&gt;...the DB_FILES initialization parameter indicates the amount of SGA space to reserve for datafile information and thus, the maximum number of datafiles that can be created for the instance.&lt;/i&gt;”&lt;br /&gt;&lt;br /&gt;In short this means that the DB_FILES parameter only applies to &lt;u&gt;datafiles&lt;/u&gt; and not tempfiles.&lt;br /&gt;Therefore, all other files will be outside this parameter range.&lt;br /&gt;&lt;br /&gt;My parameter DB_FILES was set to 1024.&lt;br /&gt;My reported file# in the ORA-01114 error was greater than 1024.&lt;br /&gt;If you look at the file_id values for the DBA_TEMP_FILES view, you'll notice that the file_id numbers conflict with the file_id values in DBA_DATA_FILES.&lt;br /&gt;Since the tempfiles exist outside the range of DB_FILES, I subtracted the value of parameter “DB_FILES” from the reported file#, to achieve the file_id for tempfiles belonging to temporary tablespaces.&lt;br /&gt;Voila!&lt;br /&gt;&lt;br /&gt;Sure enough, when I subtracted 1024 (my DB_FILES value) from my reported file id in the ORA-01114, I got 2, which equated to the second tempfile in the TEMP tablespace.&lt;br /&gt;The partition that the tempfile was sitting in was 95% full, but the tempfile couldn't expand by the requested next extent size as it would be more than the partition free space. &amp;nbsp;Increasing the partition size fixed my problem.&lt;br /&gt;&lt;br /&gt;Is there another way of viewing the online file# vs the DBA_x_FILES file_id field? &amp;nbsp;I don't know, but if I find one, I'll post it here.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-8008122695384392603?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/8008122695384392603/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=8008122695384392603&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/8008122695384392603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/8008122695384392603'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2012/02/ora-01114-io-error-but-what-is-oracle.html' title='ORA-01114 IO Error But What Is The Oracle File'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-4910986874098618993</id><published>2012-02-08T18:30:00.001Z</published><updated>2012-02-08T18:30:07.830Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Error'/><category scheme='http://www.blogger.com/atom/ns#' term='Memory'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Troubleshooting'/><title type='text'>SAP Short Dump SYSTEM_NO_TASK_STORAGE</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;A background job has produced a short dump with SYSTEM_NO_TASK_STORAGE.&lt;br /&gt;The “Heap Memory” section in ST02 showed a maximum use of 1.5GB, but we had allocated nearly 1.9GB according to the "abap/heap_area_nondia" and "abap/heap_area_dia" instance profile parameters.&lt;br /&gt;&lt;br /&gt;The ST02 short dump analysis shows the source code line where the problem occurred.  The line of code doesn't look specifically interesting, it is, however, requiring a slight increase in memory allocation.&lt;br /&gt;If the program is running in DIALOG then it will allocated Extended Memory first, followed by HEAP (local process) memory.&lt;br /&gt;If the program is running in BACKGROUND then it will be allocated HEAP memory first, followed by Extended Memory.&lt;br /&gt;&lt;br /&gt;Extended Memory is pre-allocated at system startup according to the EM initial setting in the SAP instance profile. &amp;nbsp;Extended Memory is then increased up to the maximum specified (in instance profile) per user and per application server.&lt;br /&gt;HEAP memory is only allocated as it is needed within each of the SAP dw.* OS processes, up to the maximum specified (in instance profile) per user or per application server.&lt;br /&gt;&lt;br /&gt;Since this was a background job, we can assume that we exhausted HEAP memory and should have automatically switched to Extended Memory.&lt;br /&gt;However, the Kernel section of the short dump showed that we may have experienced an issue obtaining more virtual memory from the OS:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;*** Error in libunwind: Out of memory. Try with a higher value &amp;gt;       &lt;br /&gt;&amp;nbsp;&amp;gt; for UNWIND_RESERVE_MEM (current value = 16).                         &lt;br /&gt;&amp;nbsp;(0)  0x40000000017ae480 [dw.sapXXX_DVEBMGS01]                          &lt;br /&gt;&amp;nbsp;(1)  0x40000000017ae2b0 [dw.sapXXX_DVEBMGS01]                          &lt;br /&gt;&amp;nbsp;(2)  0x40000000021de880 [dw.sapXXX_DVEBMGS01]                          &lt;br /&gt;&amp;nbsp;(3)  0x40000000021e45d0 [dw.sapXXX_DVEBMGS01]                          &lt;br /&gt;&amp;nbsp;(4)  0x400000000115e860 [dw.sapXXX_DVEBMGS01]                          &lt;br /&gt;&amp;nbsp;(5)  0x400000000120b3a0 [dw.sapXXX_DVEBMGS01]                          &lt;br /&gt;&amp;nbsp;(6)  0x40000000010542f0 [dw.sapXXX_DVEBMGS01]                          &lt;br /&gt;&amp;nbsp;(7)  0x4000000001111940 [dw.sapXXX_DVEBMGS01]                          &lt;br /&gt;&amp;nbsp;(8)  0x40000000011ae790 [dw.sapXXX_DVEBMGS01]                          &lt;br /&gt;&amp;nbsp;(9)  0x40000000012fb090 [dw.sapXXX_DVEBMGS01]                          &lt;br /&gt;&amp;nbsp;(10) 0x40000000012fd7d0 [dw.sapXXX_DVEBMGS01]                          &lt;br /&gt;&amp;nbsp;(11) 0x400000000188cae0 [dw.sapXXX_DVEBMGS01]                          &lt;br /&gt;&amp;nbsp;(12) 0x4000000001896e70 [dw.sapXXX_DVEBMGS01]                          &lt;br /&gt;&amp;nbsp;(13) 0x4000000001891670 [dw.sapXXX_DVEBMGS01]                          &lt;br /&gt;&amp;nbsp;(14) 0x40000000018949a0 [dw.sapXXX_DVEBMGS01]                          &lt;br /&gt;&amp;nbsp;(15) 0x400000000187f1e0 [dw.sapXXX_DVEBMGS01]                          &lt;br /&gt;&amp;nbsp;(16) 0x40000000014d1ce0 [dw.sapXXX_DVEBMGS01]                          &lt;br /&gt;&amp;nbsp;(17) 0x400000000149e8d0 [dw.sapXXX_DVEBMGS01]                          &lt;br /&gt;&amp;nbsp;(18) 0x4000000001496fc0 [dw.sapXXX_DVEBMGS01]                          &lt;br /&gt;&amp;nbsp;(19) 0x4000000001364c30 [dw.sapXXX_DVEBMGS01]                          &lt;br /&gt;&amp;nbsp;(20) 0x4000000000ed4af0 [dw.sapXXX_DVEBMGS01]                          &lt;br /&gt;&amp;nbsp;(21) 0x4000000000ed4a90 [dw.sapXXX_DVEBMGS01]                          &lt;br /&gt;&amp;nbsp;(22) 0xc000000000045880  main_opd_entry + 0x50 [/usr/lib/hpux64/dld.so]&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Is this case, you could either add more OS memory (essentially you have over allocated memory somewhere), or you could resize the abap/heap_area_nondia parameter to a smaller amount, so that it will switch to EM sooner.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-4910986874098618993?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/4910986874098618993/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=4910986874098618993&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/4910986874098618993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/4910986874098618993'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2012/02/sap-short-dump-systemnotaskstorage.html' title='SAP Short Dump SYSTEM_NO_TASK_STORAGE'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-8547949558290401771</id><published>2012-02-01T18:04:00.000Z</published><updated>2012-02-05T10:51:20.382Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='configuration'/><category scheme='http://www.blogger.com/atom/ns#' term='Musing'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Netweaver'/><category scheme='http://www.blogger.com/atom/ns#' term='Documentation'/><title type='text'>Documenting an SAP ABAP System Technical Configuration</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;The following are my thoughts for documenting the technical&amp;nbsp;configuration of an existing SAP ABAP stack:&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ENVIRONMENTS &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ARCHITECTURE OVERVIEW &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; OPERATING SYSTEM DETAILS &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PATCHES &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PARAMETERS &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; USERS &amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DATABASE SYSTEM DETAILS &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PATCHES &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PARAMETERS &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SAP SCHEMAS &amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DB LINK INTERFACES &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SAP KERNEL DETAILS &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PARAMETERS &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SAP COMPONENT DETAILS &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ABAP STACK DETAILS &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; LICENSES &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; OPERATION MODES &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CLIENTS &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; TMS &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; STANDARD SAP JOBS &amp;amp; SCHEDULES &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; NON-STANDARD JOBS &amp;amp; SCHEDULES &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SPOOL SERVERS &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; OUTPUT DEVICES &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SYSTEM USERS&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DATABASE CHECKS AND JOBS &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CCMS MONITORING &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CUSTOM DEVELOPMENTS &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; TRANSACTIONS &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PROGRAMS AND REPORTS &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FUNCTION MODULES &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; BAPIS &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; INTERFACES &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System Landscape Directory&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Central User Administration&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Solution Manager Data Collection&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Integration Server&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RFCs&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Web Services&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; JDBC Connectors&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SNOTES AND REPAIRS &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-8547949558290401771?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/8547949558290401771/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=8547949558290401771&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/8547949558290401771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/8547949558290401771'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2012/02/documenting-sap-abap-system-technical.html' title='Documenting an SAP ABAP System Technical Configuration'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-394193121400021939</id><published>2012-01-26T18:38:00.000Z</published><updated>2012-01-26T18:38:00.908Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='AWR'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='sizing'/><title type='text'>What's the Current Size of AWR in the Oracle Database?</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;If you have to size a new Oracle 10g database, or you just want to increase the AWR snapshot interval, you may want to know how much database space is being used by the current AWR setup.&lt;br /&gt;&lt;br /&gt;This is where V$SYSAUX_OCCUPANTS comes in.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;SQL&amp;gt; set linesize 300&lt;br /&gt;SQL&amp;gt; col OCCUPANT_NAME format A7&lt;br /&gt;SQL&amp;gt; SELECT OCCUPANT_NAME,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;OCCUPANT_DESC,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SPACE_USAGE_KBYTES&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;FROM v$sysaux_occupants where OCCUPANT_NAME ='SM/AWR';&lt;br /&gt;&lt;br /&gt;OCCUPAN OCCUPANT_DESC &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SPACE_USAGE_KBYTES&lt;br /&gt;------- ----------------------------------------------------- ------------------&lt;br /&gt;SM/AWR &amp;nbsp;Server Manageability - Automatic Workload Repository &amp;nbsp;107008&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;The above was taken from a system with a default AWR setup (retention of 7 days, snapping every hour).&lt;br /&gt;This is approximately 14MB per day.&lt;br /&gt;&lt;br /&gt;If you were thinking you were going to keep 60 days, you would expect about 900MB of data in SYSAUX.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-394193121400021939?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/394193121400021939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=394193121400021939&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/394193121400021939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/394193121400021939'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2012/01/whats-current-size-of-awr-in-oracle.html' title='What&apos;s the Current Size of AWR in the Oracle Database?'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-4097592106950522681</id><published>2012-01-17T13:00:00.000Z</published><updated>2012-01-17T13:00:11.186Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Segment'/><category scheme='http://www.blogger.com/atom/ns#' term='HWM'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='High Water Mark'/><title type='text'>Checking Segment High Water Mark (HWM) in Oracle 10g</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;The High Water Mark is equal to “Total Blocks” - “Unused Blocks”.&lt;br /&gt;&lt;br /&gt;Substitute “&amp;lt;&amp;lt;&amp;lt;A USER&amp;gt;&amp;gt;&amp;gt;” and “&amp;lt;&amp;lt;&amp;lt;A TABLE&amp;gt;&amp;gt;&amp;gt;” with the real values.&lt;br /&gt;Thanks to this post &lt;a href="http://myorastuff.blogspot.com/2008/07/hwm-high-water-mark.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;set serveroutput on size 100000;&lt;br /&gt;DECLARE&lt;br /&gt;alc_bks NUMBER;&lt;br /&gt;alc_bts NUMBER;&lt;br /&gt;unsd_bks NUMBER;&lt;br /&gt;unsd_bts NUMBER;&lt;br /&gt;luefi NUMBER;&lt;br /&gt;luebi NUMBER;&lt;br /&gt;lub NUMBER;&lt;br /&gt;BEGIN&lt;br /&gt;FOR c1_row IN (SELECT table_name&lt;br /&gt;FROM dba_tables where table_name = '&amp;lt;&amp;lt;&amp;lt;A TABLE&amp;gt;&amp;gt;&amp;gt;') LOOP&lt;br /&gt;DBMS_SPACE.UNUSED_SPACE (&lt;br /&gt;segment_owner =&amp;gt; '&amp;lt;&amp;lt;&amp;lt;A USER&amp;gt;&amp;gt;&amp;gt;' ,&lt;br /&gt;segment_name =&amp;gt; c1_row.table_name ,&lt;br /&gt;segment_type =&amp;gt; 'TABLE' ,&lt;br /&gt;total_blocks =&amp;gt; alc_bks ,&lt;br /&gt;total_bytes =&amp;gt; alc_bts ,&lt;br /&gt;unused_blocks =&amp;gt; unsd_bks ,&lt;br /&gt;unused_bytes =&amp;gt; unsd_bts ,&lt;br /&gt;last_used_extent_file_id =&amp;gt; luefi ,&lt;br /&gt;last_used_extent_block_id =&amp;gt; luebi ,&lt;br /&gt;last_used_block =&amp;gt; lub);&lt;br /&gt;DBMS_OUTPUT.PUT_LINE( 'Data for '|| c1_row.table_name);&lt;br /&gt;DBMS_OUTPUT.PUT_LINE( RPAD('*',LENGTH(c1_row.table_name) + 10,'*'));&lt;br /&gt;DBMS_OUTPUT.PUT_LINE( 'Total Blocks.................'|| alc_bks );&lt;br /&gt;DBMS_OUTPUT.PUT_LINE( 'Total Bytes..................'|| alc_bts );&lt;br /&gt;DBMS_OUTPUT.PUT_LINE( 'Unused Blocks................'|| unsd_bks );&lt;br /&gt;DBMS_OUTPUT.PUT_LINE( 'Unused Bytes.................'|| unsd_bts );&lt;br /&gt;DBMS_OUTPUT.PUT_LINE( 'Last Used Ext File Id........'|| luefi );&lt;br /&gt;DBMS_OUTPUT.PUT_LINE( 'Last Used Ext Block Id.......'|| luebi );&lt;br /&gt;DBMS_OUTPUT.PUT_LINE( 'Last Used Block..............'|| lub );&lt;br /&gt;DBMS_OUTPUT.NEW_LINE;&lt;br /&gt;END LOOP;&lt;br /&gt;EXCEPTION&lt;br /&gt;WHEN OTHERS THEN&lt;br /&gt;DBMS_OUTPUT.PUT_LINE(SUBSTR(SQLERRM,1,250));&lt;br /&gt;END;&lt;br /&gt;/&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-4097592106950522681?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/4097592106950522681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=4097592106950522681&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/4097592106950522681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/4097592106950522681'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2012/01/checking-segment-high-water-mark-hwm-in.html' title='Checking Segment High Water Mark (HWM) in Oracle 10g'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-4108693534540942791</id><published>2012-01-13T13:00:00.000Z</published><updated>2012-01-13T13:00:04.563Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='user groups'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP'/><title type='text'>Populate User Groups into SU01 Authorization Group</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;If you have followed my previous post on &lt;a href="http://darrylgriffiths.blogspot.com/2011/09/sap-user-groups.html%22%3Ehttp://darrylgriffiths.blogspot.com/2011/09/sap-user-groups.html" target="_blank"&gt;how to create SAP user groups&lt;/a&gt; en-mass, then you may wish to know how you can assign one of these groups as the security group (as per the security group box in SU01).&lt;br /&gt;&lt;br /&gt;Simply setup your groups as per my previous post, then use the following SQL at the database level to perform the assignment to the user account in SU01.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;NOTE:&lt;/b&gt; The script will apply each group it finds to the user accounts.  If more than one group is assigned to a user, then only one of those groups will be used.  The order will depend on the order of records returned in the inline cursor.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;set serveroutput on size 1000;&lt;br /&gt;&lt;br /&gt;DECLARE&lt;br /&gt;&amp;nbsp; &amp;nbsp;CURSOR c_ug IS SELECT BNAME,USERGROUP,MANDT FROM USGRP_USER;&lt;br /&gt;BEGIN&lt;br /&gt;&lt;br /&gt;FOR ug IN c_ug LOOP&lt;br /&gt;&lt;br /&gt;UPDATE USR02 SET CLASS=ug.USERGROUP WHERE BNAME=ug.BNAME and MANDT=ug.MANDT;&lt;br /&gt;&lt;br /&gt;DBMS_OUTPUT.PUT_LINE ('User: '||ug.BNAME || ' Group: '||ug.USERGROUP);&lt;br /&gt;&lt;br /&gt;END LOOP;&lt;br /&gt;&lt;br /&gt;END;&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-4108693534540942791?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/4108693534540942791/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=4108693534540942791&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/4108693534540942791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/4108693534540942791'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2012/01/populate-user-groups-into-su01.html' title='Populate User Groups into SU01 Authorization Group'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-201536978248949791</id><published>2012-01-09T09:18:00.000Z</published><updated>2012-02-26T08:20:52.265Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Error'/><category scheme='http://www.blogger.com/atom/ns#' term='parameters'/><category scheme='http://www.blogger.com/atom/ns#' term='bug'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>"Fix" Control and ORA-00940: invalid ALTER command</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Upon startup of an Oracle 10.2.0.4.0 database I received Oracle error:&lt;br /&gt;ORA-00940: invalid ALTER command&lt;br /&gt;&lt;br /&gt;I eventually managed to narrow this down to a “_fix_control” setting.&lt;br /&gt;&lt;br /&gt;The database is for an SAP system and the init.ora was updated after following SAP note 830576 (Parameter recommendations for Oracle 10g).&lt;br /&gt;I noticed that I had misread the note and applied a “_fix_control” parameter setting for a slightly (only by a patchset update) higher version of Oracle.&lt;br /&gt;&lt;br /&gt;Take care when reading this note and make sure you test the startup and shutdown of the database before going home!&lt;br /&gt;&lt;br /&gt;UPDATE: This is a bug. &amp;nbsp;&lt;a href="http://darrylgriffiths.blogspot.com/2012/02/fixcontrol-bug.html" target="_blank"&gt;See here&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-201536978248949791?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/201536978248949791/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=201536978248949791&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/201536978248949791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/201536978248949791'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2012/01/fix-control-and-ora-00940-invalid-alter.html' title='&quot;Fix&quot; Control and ORA-00940: invalid ALTER command'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-1076748440887033224</id><published>2012-01-05T19:10:00.000Z</published><updated>2012-01-10T22:07:10.729Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='XI'/><category scheme='http://www.blogger.com/atom/ns#' term='PI'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Channel'/><category scheme='http://www.blogger.com/atom/ns#' term='RFC'/><title type='text'>SAP PI Channel Stopped by Administrative Task</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;During a routine message mapping using the Java stack with a custom Java class lookup that accessed an RFC communication channel (configured in the Integration Directory), the mapping was failing with multiple errors.&lt;br /&gt;&lt;br /&gt;One of the errors stated:  “com.sap.aii.af.service.administration.api.cpa.CPAChannelStoppedException: Channel stopped by administrative task”.&lt;br /&gt;&lt;br /&gt;Whilst not completely obvious what the exact problem was, I check the CPA cache in transaction SXI_CACHE and ensured there were no errors during a full cache refresh.&lt;br /&gt;No problems there.&lt;br /&gt;&lt;br /&gt;So I moved on to check the communication channel itself.  All seemed fine.  Using the “check” option from the pull down menu, showed all was well.&lt;br /&gt;No other errors.&lt;br /&gt;&lt;br /&gt;Restarting the message from SXMB_MONI resulted in the same error over and over.&lt;br /&gt;&lt;br /&gt;The resolution:&lt;br /&gt;Simply editing the RFC communication channel in the Integration Directory and changing it to “Inactive”, saving and applying, then changing it back to “Active” (on the Advanced tab), saving and activating.&lt;br /&gt;This seemed to fix the problem.&lt;br /&gt;&lt;br /&gt;Looks like the RFC channel destination hostname was modified and this caused the adapter to throw a slight wobbler, making it think it was inactive.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-1076748440887033224?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/1076748440887033224/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=1076748440887033224&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/1076748440887033224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/1076748440887033224'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2012/01/sap-pi-channel-stopped-by.html' title='SAP PI Channel Stopped by Administrative Task'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-3550384609736076005</id><published>2011-12-20T17:17:00.000Z</published><updated>2011-12-20T17:17:01.513Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Administration'/><category scheme='http://www.blogger.com/atom/ns#' term='Memory'/><category scheme='http://www.blogger.com/atom/ns#' term='PGA'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='Tuning'/><title type='text'>SAP note 830576 - PGA_AGGREGATE_TARGET on Oracle 10gR2</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;SAP note &lt;a href="https://service.sap.com/sap/support/notes/830576"&gt;830576&lt;/a&gt; "&lt;i&gt;Parameter Recommendations for Oracle 10g&lt;/i&gt;" is quite a popular one for me.&lt;br /&gt;It lists all the SAP recommended Oracle 10g parameter settings for Oracle 10.2.0.4 and 10.2.0.5.&lt;br /&gt;It's a good point of reference and I'd recommend you implement it as a baseline before tuning the system further.&lt;br /&gt;It has a buddy note, &lt;a href="https://service.sap.com/sap/support/notes/1289199"&gt;1289199&lt;/a&gt; "&lt;i&gt;Information About Oracle Parameters&lt;/i&gt;" which describes some of the parameters in more detail.&lt;br /&gt;&lt;br /&gt;Unfortunately, there is a major flaw on note 830576. &amp;nbsp;When setting PGA_AGGREGATE_TARGET the SAP note says 20% of available memory. &amp;nbsp;It fails to mention that this should be 20% of the SGA size, not O/S memory.&lt;br /&gt;The &lt;a href="http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/initparams157.htm#sthref495"&gt;Oracle docs&lt;/a&gt; (see MYOS note 153367.1) say that the value should be:&lt;br /&gt;&lt;br /&gt;Syntax &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;PGA_AGGREGATE_TARGET = integer [K | M | G]&lt;br /&gt;Default value &amp;nbsp; &amp;nbsp; &amp;nbsp;10 MB or &lt;b&gt;20% of the size of the SGA&lt;/b&gt;, whichever is greater&lt;br /&gt;Modifiable &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ALTER SYSTEM&lt;br /&gt;Range of values Minimum: 10 MB&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Maximum: 4096 GB - 1&lt;br /&gt;&lt;br /&gt;The Oracle note goes on to say that when sizing the Oracle database memory areas, you should consider the SGA size first, then assign any spare memory to PGA.&lt;br /&gt;Now in an SAP landscape with a single Central Instance + Dialog Instance on the same server as the database, you may wish to use the SAP 70/30 rule (70% to SAP, 30% to Oracle).&lt;br /&gt;&lt;br /&gt;My order of sizing would look something like this:&lt;br /&gt;1, Determine number of users of SAP system.&lt;br /&gt;2, Determine number of DIALOG work processes + Background work processes + Update processes (~= Oracle "processes").&lt;br /&gt;3, Determine leftover memory for Oracle SGA (split between pools, SAP doesn't support automatic memory management).&lt;br /&gt;4, Determine leftover memory for PGA + overheads.&lt;br /&gt;&lt;br /&gt;If you get to step 4 and you have diddly squat RAM left (hardly any), then consider adding more RAM to your server. &amp;nbsp;Remember, we don't like pageing.&lt;br /&gt;&lt;br /&gt;SAP note &lt;a href="https://service.sap.com/sap/support/notes/789011"&gt;789011&lt;/a&gt; "FAQ: Oracle Memory Areas", provides a range of SQL statements for checking the actual size of the PGA. &amp;nbsp;Since&amp;nbsp;PGA_AGGREGATE_TARGET is only telling Oracle what you would like the maximum PGA allocation to be.&lt;br /&gt;&lt;br /&gt;When you set PGA_AGGREGATE_TARGET, you also allow Oracle to release PGA memory back to the O/S. &amp;nbsp;Using the *_AREA_SIZE parameters and setting PGA_AGGREGATE_TARGET to 0, forces a specific size of PGA which does not release the memory to the O/S.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;/* Actual PGA consumption */&lt;br /&gt;SELECT VALUE FROM V$PGASTAT WHERE NAME = 'total PGA allocated';&lt;br /&gt;&lt;br /&gt;/* Chronological PGA allocation (needs AWR license) */&lt;br /&gt;SELECT SUBSTR(S.END_INTERVAL_TIME, 1, 40) TIME,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;P.VALUE PGA_ALLOCATION&lt;br /&gt;&amp;nbsp; FROM DBA_HIST_SNAPSHOT S, DBA_HIST_PGASTAT P&lt;br /&gt;WHERE P.NAME = 'total PGA allocated'&lt;br /&gt;&amp;nbsp; &amp;nbsp; AND&amp;nbsp;S.SNAP_ID = P.SNAP_ID&lt;br /&gt;ORDER BY P.SNAP_ID;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Oracle states:&lt;br /&gt;&lt;i&gt;Memory Area &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Dedicated Server &amp;nbsp; &amp;nbsp; Shared Server&lt;/i&gt;&lt;br /&gt;Nature of session memory &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Private &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;Shared&lt;br /&gt;Location of the persistent area &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;PGA &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SGA&lt;br /&gt;Location of part of the runtime area for SELECT statements &amp;nbsp;PGA &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;PGA&lt;br /&gt;Location of the runtime area for DML/DDL statements &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;PGA &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;PGA&lt;br /&gt;&lt;br /&gt;When installing Oracle for SAP, by default it uses DEDICATED server mode (see note&amp;nbsp;&lt;span class="Apple-style-span" style="background-color: #fefefe; font-family: Arial, Helvetica, sans-serif; font-size: 13px;"&gt;&lt;a href="https://service.sap.com/sap/support/notes/70197" target="_blank"&gt;70197&lt;/a&gt;)&lt;/span&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-3550384609736076005?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/3550384609736076005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=3550384609736076005&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/3550384609736076005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/3550384609736076005'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/12/sap-note-830576-pgaaggregatetarget-on.html' title='SAP note 830576 - PGA_AGGREGATE_TARGET on Oracle 10gR2'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-5821878346852112578</id><published>2011-12-15T11:28:00.000Z</published><updated>2012-01-18T18:04:46.049Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='configuration'/><category scheme='http://www.blogger.com/atom/ns#' term='email'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP'/><title type='text'>SAP Sender Address for Communication Method</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Whilst configuring SAP to send email oubound via SMTP you have to configure the node in SCOT to point to an SMTP server.&lt;br /&gt;Once this is done, you would expect it to just work.&lt;br /&gt;Unfortunatly, you may get the following issue.&lt;br /&gt;&lt;br /&gt;When you create a new email message in SO01, you enter the recpient and the message text, then click send, and you are prompted with an error:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-G9zMCLZWKPU/Ts971xmuE0I/AAAAAAAAAUY/ygnVoRlZfkw/s1600/image001-702864.png"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-G9zMCLZWKPU/Ts971xmuE0I/AAAAAAAAAUY/ygnVoRlZfkw/s320/image001-702864.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The error in the log book says:&lt;br /&gt;&lt;br /&gt;"&lt;i&gt;You do not have a sender address in the chosen communication method.&lt;/i&gt;"&lt;br /&gt;&lt;br /&gt;This was an odd error, but a quick search on SAP notes revealed note 552616.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://service.sap.com/sap/support/notes/552616"&gt;https://service.sap.com/sap/support/notes/552616&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The note mentioned either setting my user's external email address in SU3 (or SU01), or alternatively, instead of doing this for all users that wish to send external mail, you can set the "default domain" in SCOT.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-c6Juvsz2i3o/Ts97148oFHI/AAAAAAAAAUk/uUKlHE0D4z4/s1600/image002-703579.png"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-c6Juvsz2i3o/Ts97148oFHI/AAAAAAAAAUk/uUKlHE0D4z4/s320/image002-703579.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Set the default domain to something like "mydomain.com".&lt;br /&gt;This means SAP will create an outbound sender address comprised of the SAP username plus the default domain (&lt;a href="mailto:sapuser@mydomain.com"&gt;sapuser@mydomain.com&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;I was then able to send mail externally.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-5821878346852112578?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/5821878346852112578/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=5821878346852112578&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/5821878346852112578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/5821878346852112578'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/12/sap-sender-address-for-communication.html' title='SAP Sender Address for Communication Method'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-G9zMCLZWKPU/Ts971xmuE0I/AAAAAAAAAUY/ygnVoRlZfkw/s72-c/image001-702864.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-7094388234626338535</id><published>2011-12-13T20:06:00.000Z</published><updated>2011-12-13T20:06:16.143Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='NetApp'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='HP-UX'/><category scheme='http://www.blogger.com/atom/ns#' term='Tuning'/><category scheme='http://www.blogger.com/atom/ns#' term='Performance'/><title type='text'>Oracle on NetApp via NFS (yes, really, NFS!)</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I've blogged about &lt;a href="http://darrylgriffiths.blogspot.com/2011/09/sap-on-hp-ux.html" target="_blank"&gt;SAP on HP-UX&lt;/a&gt; before, which includes a load of notes and whitepapers about Oracle on HP-UX.&lt;br /&gt;This blog post is about Oracle storage on NetApp.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://media.netapp.com/documents/tr-3557.pdf" target="_blank"&gt;Here's a NetApp whitepaper&lt;/a&gt;&amp;nbsp;specifically for Oracle on HP-UX, when using NFS mounted partitions from a NetApp device.&lt;br /&gt;You should pay particular attention to ensuring that you have the correct OS patches applied, plus the kernel settings related to NFS should be set. &amp;nbsp;You should also note the section on direct I/O.&lt;br /&gt;&lt;br /&gt;This is the&amp;nbsp;&lt;a href="http://docs.hp.com/en/13579/NFSTunablesWP_11iv3.pdf" target="_blank"&gt;HP whitepaper for NFS tuneables&lt;/a&gt;&amp;nbsp;but it's been moved into the new HP site. &amp;nbsp;It looks like it's possible to get a slightly older version for HP-UX 11iv2 from ManualShark.org&amp;nbsp;&lt;a href="http://www.manualshark.org/p/hewlett-packard-28/hewlett-packard-nfs-services-26846/" target="_blank"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I'm currently seeing average Oracle sequential read times of about 5-8ms running over a single gigabit ethernet card.&lt;br /&gt;&lt;br /&gt;If at all possible ensure that you test the new architecture before hand (TEST should be representative of PRD!).&lt;br /&gt;Make sure you identify and reduce Oracle full tablescans if possible. &amp;nbsp;Basically reduce I/O as much as possible.&lt;br /&gt;Be prepared to bump up the buffer cache a little if you have the RAM (or the slots for the RAM).&lt;br /&gt;&lt;br /&gt;Ensure that your Oracle partitions are seperate partitions and not shared with any other apps, so that you can change the mount point options specifically for Oracle.&lt;br /&gt;Set the Oracle partitions file system block sizes according to Oracle/HP-UX best practice (again, see my other SAP on HP-UX post for more on this).&lt;br /&gt;&lt;br /&gt;Most importantly, have your DB tuning team on standby, get those AWR snapshots running more frequently and make use of the ASH reports specifically for tuning SQL statements.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-7094388234626338535?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/7094388234626338535/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=7094388234626338535&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/7094388234626338535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/7094388234626338535'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/12/oracle-on-netapp-via-nfs-yes-really-nfs.html' title='Oracle on NetApp via NFS (yes, really, NFS!)'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-2309396476429056290</id><published>2011-12-06T19:49:00.000Z</published><updated>2011-12-06T19:49:49.061Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Oracle X$ Tables</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-family: Tahoma, sans-serif; font-size: x-small;"&gt; &lt;/span&gt;&lt;br /&gt;I recently found this site that lists all known Oracle X$ tables and describes them:&lt;br /&gt;&lt;a href="http://yong321.freeshell.org/computer/x$table.html"&gt;http://yong321.freeshell.org/computer/x$table.html&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-2309396476429056290?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/2309396476429056290/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=2309396476429056290&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/2309396476429056290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/2309396476429056290'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/12/oracle-x-tables.html' title='Oracle X$ Tables'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-5758101541371629230</id><published>2011-12-05T19:00:00.000Z</published><updated>2011-12-05T19:00:06.544Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='configuration'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP'/><category scheme='http://www.blogger.com/atom/ns#' term='transports'/><title type='text'>Transporting SAP User Groups</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I've blogged about SAP user groups before: &lt;a href="http://darrylgriffiths.blogspot.com/2011/09/sap-user-groups.html"&gt;http://darrylgriffiths.blogspot.com/2011/09/sap-user-groups.html&lt;/a&gt;&lt;br /&gt;Let's say you've set them up in your DEV system and now you're expecing to just transport them.&amp;nbsp; Well, as with all things SAP, it's never quite that easy.&lt;br /&gt;&lt;br /&gt;Create a new workbench transport request in SE01, SE09 or SE10 (doesn’t matter which).&lt;br /&gt;Then open the request at the request level by double clicking it.&lt;br /&gt;Switch to change mode by clicking the pencil button:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-JsU_s0T4qH0/Tsy9_FF_I5I/AAAAAAAAATc/rat16afQQXM/s1600/image001-728216.png"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-JsU_s0T4qH0/Tsy9_FF_I5I/AAAAAAAAATc/rat16afQQXM/s320/image001-728216.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now manually type in the program Id, object type and object names as follows:&lt;br /&gt;&lt;br /&gt;R3TR TABU USGRP&lt;br /&gt;R3TR TABU USGRPT&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-6BqXCiDfnLM/Tsy9_V61zOI/AAAAAAAAATk/JSJrLVuFJKI/s1600/image002-728942.png"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-6BqXCiDfnLM/Tsy9_V61zOI/AAAAAAAAATk/JSJrLVuFJKI/s320/image002-728942.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Click &lt;em&gt;Yes&lt;/em&gt; at the prompt:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-00f9RAUyQHo/Tsy9_Q9obMI/AAAAAAAAATw/x-l7bFg2gVw/s1600/image003-729587.png"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-00f9RAUyQHo/Tsy9_Q9obMI/AAAAAAAAATw/x-l7bFg2gVw/s320/image003-729587.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;On each item, click the &lt;em&gt;Function&lt;/em&gt; button (key symbol):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-t-uZqkAJZPI/Tsy9_sHdf3I/AAAAAAAAAT8/JeOslDO1LJU/s1600/image004-730167.png"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-t-uZqkAJZPI/Tsy9_sHdf3I/AAAAAAAAAT8/JeOslDO1LJU/s320/image004-730167.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Enter * in the Table Keys field:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-OQ9RPlTSI5E/Tsy9_1pjfKI/AAAAAAAAAUI/ZfmartAWVrE/s1600/image007-730966.png"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-OQ9RPlTSI5E/Tsy9_1pjfKI/AAAAAAAAAUI/ZfmartAWVrE/s320/image007-730966.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Save the request again.&lt;br /&gt;&lt;br /&gt;That's it!&lt;br /&gt;&lt;br /&gt;Release the transport and import into the next system.&lt;br /&gt;This is a farily generic process that can b used to transport any table values.&lt;br /&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; You should be aware that the "*" in the table key, means all items specific to the current client.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-5758101541371629230?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/5758101541371629230/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=5758101541371629230&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/5758101541371629230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/5758101541371629230'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/12/transporting-sap-user-groups.html' title='Transporting SAP User Groups'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-JsU_s0T4qH0/Tsy9_FF_I5I/AAAAAAAAATc/rat16afQQXM/s72-c/image001-728216.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-3675105569166381488</id><published>2011-12-03T17:36:00.001Z</published><updated>2011-12-03T17:50:03.215Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Musing'/><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><title type='text'>Android 2.1 Calendar Sync Force Close</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;I have an Android 2.1 phone (an Acer Liquid A1) which recently started throwing an error during the calendar sync. &amp;nbsp;It kept showing a "force close" error.&lt;br /&gt;&lt;br /&gt;I got my laptop setup to connect to the phone using the Acer Liquid Tool (USB drivers) and the&amp;nbsp;&lt;a href="http://android.modaco.com/topic/303405-malezrecovery-image-062-easy-installer/" target="_blank"&gt;Malez recovery software&lt;/a&gt;, which includes the ADB debugging software.&lt;br /&gt;After connecting the phone via USB and running ADB logcat, I was able to get the following error from the phone when I sync'd the calendar:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;W/dalvikvm( &amp;nbsp;823): threadid=15: thread exiting with uncaught exception (group=0x2aac6160)&lt;br /&gt;E/AndroidRuntime( &amp;nbsp;823): Uncaught handler: thread SyncThread exiting due to uncaught exception&lt;br /&gt;E/AndroidRuntime( &amp;nbsp;823): java.lang.NullPointerException&lt;br /&gt;E/AndroidRuntime( &amp;nbsp;823): &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at com.android.providers.calendar.CalendarSyncAdapter.fetchCalendarsFromServer(CalendarSyncAdapter.java:1622)&lt;br /&gt;E/AndroidRuntime( &amp;nbsp;823): &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at com.android.providers.calendar.CalendarSyncAdapter.getServerDiffs(CalendarSyncAdapter.java:1223)&lt;br /&gt;E/AndroidRuntime( &amp;nbsp;823): &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at android.content.TempProviderSyncAdapter$SyncThread.runSyncLoop(TempProviderSyncAdapter.java:367)&lt;br /&gt;E/AndroidRuntime( &amp;nbsp;823): &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at android.content.TempProviderSyncAdapter$SyncThread.sync(TempProviderSyncAdapter.java:287)&lt;br /&gt;E/AndroidRuntime( &amp;nbsp;823): &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at android.content.TempProviderSyncAdapter$SyncThread.run(TempProviderSyncAdapter.java:218)&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;After an awful lot of Googling, I still had no answer.&lt;br /&gt;It looks like the 2.1 version of Android supplied by Acer, has a flaw that prevents it working properly with some new Google calendar feature.&lt;br /&gt;I don't know what the problem is.&lt;br /&gt;Instead, to solve the problem, I flashed the ROM back to stock Acer Android 1.6.&lt;br /&gt;The calendar then worked again properly, however, I had lost an awful lot of good functionality (Facebook integration, better Gmail &amp;amp; Android Market app versions etc etc).&lt;br /&gt;&lt;br /&gt;So I tried another option. &amp;nbsp;I used a link on the &lt;a href="http://android.modaco.com/topic/317068-acer-liquid-and-liquid-e-all-roms-bin-extract-collection/" target="_blank"&gt;Modaco forums&lt;/a&gt; for a hacked version of the Android 2.2 OS which was for the new Acer LiquidE (same phone hardware, but with 512MB of RAM instead of 256MB).&lt;br /&gt;Someone has posted a version which had been enabled to run on my 256MB Acer Liquid (genius).&lt;br /&gt;&lt;br /&gt;I flashed the 2.2 ROM onto the phone and the calendar now works again.&lt;br /&gt;&lt;br /&gt;Despite the problem, this highlighted an area of short sightedness. &amp;nbsp;When/if the online Google apps are no longer supported or work on older Android versions, this will make the phones that use the older Android versions effectively worthless. &amp;nbsp;Who wants an Android phone with no cloud capability?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-3675105569166381488?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/3675105569166381488/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=3675105569166381488&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/3675105569166381488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/3675105569166381488'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/12/android-21-calendar-sync-force-close.html' title='Android 2.1 Calendar Sync Force Close'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-3984234931629958683</id><published>2011-12-03T14:22:00.001Z</published><updated>2011-12-03T14:51:03.354Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='EHP'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Upgrade'/><title type='text'>What's in a SAP EHP Anyway...</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;For some time I've often wondered how you can determine what functionality exists in an Enhancement Package (EHP).&lt;br /&gt;I've supported SAP ERP 6.00 systems for a while, but I've never been involved in the business functionality decisions (I'm a technical guy and this is a Solution Architect's job).&lt;br /&gt;So it made me wonder, if you were implementing a brand new SAP ERP 6.00 system, how would you determine what level of EHP was right for you.&lt;br /&gt;Well the answer is simple, once I'd &lt;a href="http://service.sap.com/~form/sapnet?_SHORTKEY=01100035870000698415&amp;amp;" target="_blank"&gt;done a little reading&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;All SAP EHPs are cumulative. &amp;nbsp;i.e. SAP ERP 6.00 EHP 5 includes all the new features included in EHPs 1 to 4, plus some shiny new ones.&lt;br /&gt;So you see, you just need to implement the latest and greatest to get "everything", then switch it on if you want it. &amp;nbsp;You can use the new &lt;a href="http://service.sap.com/bfp" target="_blank"&gt;SAP BFP&lt;/a&gt; (Business Function Prediction) to see what's in each EHP.&lt;br /&gt;&lt;br /&gt;So, why do SAP continue to dish out the older EHPs? &amp;nbsp;or even the base ERP 6.0 release?&lt;br /&gt;Well that is down to software release management and the way that SAP develop the code.&lt;br /&gt;Each EHP is effectively a branch off the main code-set. &amp;nbsp;Each of these branches will need patches, so SAP can't just kill off EHP 4 when EHP 5 is out. &amp;nbsp;They must maintain the support.&lt;br /&gt;For this reason, you will see why the Support Package Stack&amp;nbsp;(SP-Stack)&amp;nbsp;schedule always has the latest sp-stack for the base release out before the first EHP, before the second and so on.&lt;br /&gt;&lt;br /&gt;Like this:&lt;br /&gt;ERP 6.0&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \-&amp;gt; ERP 6.0 EHP 1&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \-&amp;gt; ERP 6.0 EHP 2&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \-&amp;gt; ERP 6.0 EHP 3 ....&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://service.sap.com/~form/sapnet?_SHORTKEY=01100035870000722640&amp;amp;_SCENARIO=01100035870000000202&amp;amp;" target="_blank"&gt;release schedule&lt;/a&gt; simply follows the way the support packages are tested and released up through the code-set branches.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-RrBlBy10Xfk/Tto0izVF-LI/AAAAAAAAAUs/R1l6gtbYeE8/s1600/MWSnap001+2011-12-03%252C+14_37_56.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-RrBlBy10Xfk/Tto0izVF-LI/AAAAAAAAAUs/R1l6gtbYeE8/s1600/MWSnap001+2011-12-03%252C+14_37_56.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The time difference between the base release sp-stack and an EHP sp-stack could be a good indication of the amount of change between the base release and an EHP.&lt;br /&gt;&lt;br /&gt;So is there a technical reason why you wouldn't implement the latest and greatest EHP (as recommended by SAP)?&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-adZlrapg6Pg/Tto2VpwYp9I/AAAAAAAAAU0/6v_rquHWZmM/s1600/MWSnap002+2011-12-03%252C+14_46_24.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-adZlrapg6Pg/Tto2VpwYp9I/AAAAAAAAAU0/6v_rquHWZmM/s1600/MWSnap002+2011-12-03%252C+14_46_24.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;My answer is YES. &amp;nbsp;I don't buy a car with everything included, because I know that I can get a SATNAV cheaper elsewhere. &amp;nbsp;Now I guess this depends on your software strategy.&lt;br /&gt;Plus, the more tech you have, the more that could go wrong during application of support patches and upgrades. &amp;nbsp;Lastly, even if you're not using the EHP functionality, you still have to apply the code during the patch process, increasing upgrade time.&lt;br /&gt;&lt;br /&gt;I maintain, if you don't need it or want it, why apply it.&lt;br /&gt;This is obviously my view, and the counter argument would be that you have the option of "just in time" enabling of new business functionality. &amp;nbsp;In my experience, even the decisions take longer than the actual implementation time, even without "just in time".&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-3984234931629958683?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/3984234931629958683/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=3984234931629958683&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/3984234931629958683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/3984234931629958683'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/12/whats-in-sap-ehp-anyway.html' title='What&apos;s in a SAP EHP Anyway...'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-RrBlBy10Xfk/Tto0izVF-LI/AAAAAAAAAUs/R1l6gtbYeE8/s72-c/MWSnap001+2011-12-03%252C+14_37_56.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-4781431426714724052</id><published>2011-11-29T10:00:00.000Z</published><updated>2011-11-29T10:04:02.266Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='logging'/><category scheme='http://www.blogger.com/atom/ns#' term='pl/sql'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='realtime'/><title type='text'>Logging in PL/SQL</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="WordSection1"&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB"&gt;Whilst tracking a PL/SQL problem with some code utilising excessive TEMP tablespace, I came upon this article for logging real-time in PL/SQL using DBMS_PIPES.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB"&gt;This looks perfect for real time interface monitoring:&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB"&gt;&lt;a href="http://dioncho.wordpress.com/2009/11/10/logging-in-plsql/"&gt;http://dioncho.wordpress.com/2009/11/10/logging-in-plsql/&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-4781431426714724052?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/4781431426714724052/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=4781431426714724052&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/4781431426714724052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/4781431426714724052'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/11/logging-in-plsql.html' title='Logging in PL/SQL'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-5114379329255505292</id><published>2011-11-26T08:40:00.000Z</published><updated>2011-11-26T09:18:33.489Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='HyperThreading'/><category scheme='http://www.blogger.com/atom/ns#' term='HP-UX'/><title type='text'>Check if Hyperthreading is enabled in HP-UX 11iv3</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;There is a nice couple of documents from HP on the benefits of Hyperthreading with HP-UX, providing your CPU supports it.&lt;br /&gt;&lt;a href="http://h20338.www2.hp.com/hpux11i/downloads/MontecitohyperThre.pdf"&gt;http://h20338.www2.hp.com/hpux11i/downloads/MontecitohyperThre.pdf&lt;/a&gt;&lt;br /&gt;This article tells you how to check: &lt;a href="http://www.filibeto.org/unix/hp-ux/lib/kernel/hp-ux-11.31-logical-processors-HT-4AA0-7695ENW.pdf"&gt;http://www.filibeto.org/unix/hp-ux/lib/kernel/hp-ux-11.31-logical-processors-HT-4AA0-7695ENW.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You should note that HP-UX 11iv3 enables the default PSET setting for HT by default, but you may still need to enable the firmware setting.&lt;br /&gt;You should also note that HP-UX 11iv2 does not support HT.&lt;br /&gt;&lt;br /&gt;All the checks below should return 1 (for enabled).&lt;br /&gt;&lt;br /&gt;Check HT is supported in your chipset:&lt;br /&gt;&lt;code&gt;$ getconf _SC_HT_CAPABLE&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Check the firmware setting is enabled:&lt;br /&gt;&lt;code&gt;$ getconf _SC_HT_ENABLED&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Check the default PSET has HT enabled:&lt;br /&gt;&lt;code&gt;$ kctune -v -q lcpu_attr&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Enjoy some HT goodness.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-5114379329255505292?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/5114379329255505292/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=5114379329255505292&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/5114379329255505292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/5114379329255505292'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/11/check-if-hyperthreading-is-enabled-in.html' title='Check if Hyperthreading is enabled in HP-UX 11iv3'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-4516714165158469754</id><published>2011-11-20T17:59:00.000Z</published><updated>2012-01-08T17:08:48.307Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='tracing'/><category scheme='http://www.blogger.com/atom/ns#' term='Troubleshooting'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='Performance'/><title type='text'>Oracle Tracing &amp; Interpreting Traces - Notes</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Oracle Trace Details; abstracted from MYOS Note ID 376442.1 and added flair.&lt;br /&gt;&lt;br /&gt;This section details various ways of actually getting an Oracle session level trace file, interpreting the trace file and useful links to MYOS notes about the trace data:&lt;br /&gt;&lt;br /&gt;/* Oracle 10g+ trace session using DBMS_MONITOR includes BINDS and WAITS */&lt;br /&gt;/* However, this is limited to one session only */&lt;br /&gt;&lt;code&gt;EXEC DBMS_MONITOR.SESSION_TRACE_ENABLE(session_id =&amp;gt;1181,&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;serial_num =&amp;gt;7218,&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;waits &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; TRUE,&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;binds &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; TRUE);&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;EXEC DBMS_MONITOR.SESSION_TRACE_DISABLE(session_id =&amp;gt; 1181,&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; serial_num =&amp;gt; 7218);&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;/* Oracle 9i Trace excludes BINDS and WAITS */&lt;br /&gt;/* Again, limited to one session only */&lt;br /&gt;&lt;code&gt;EXEC DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(16,38779,TRUE);&lt;br /&gt;EXEC&amp;nbsp;DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(16,38779,FALSE);&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;/ * Trace your own session with BINDS and WAITS */&lt;br /&gt;&lt;code&gt;ALTER SESSION SET SQL_TRACE=TRUE;&lt;/code&gt;&lt;br /&gt;or&lt;br /&gt;&lt;code&gt;ALTER SESSION SET EVENTS ''10046 trace name context forever, level 12'';&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;/* Trace using OraDebug with BINDS and WAITS */&lt;br /&gt;&lt;code&gt;connect / as sysdba&lt;br /&gt;oradebug setorapid 9834 &amp;nbsp;&amp;lt;&amp;lt; Insert your Oracle PID here.&lt;br /&gt;oradebug unlimit&lt;br /&gt;oradebug event 10046 trace name context forever,level 12&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;/* And switch it off again */&lt;code&gt;&lt;br /&gt;oradebug event 10046 trace name context off &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/* Logon trigger trace for Oracle 9i+ */&lt;br /&gt;/* This is the best way to trace when using Oracle Forms because it allows for multiple spontaneous sessions.&lt;br /&gt;I can also confirm that this traces sessions executed on a database link */&lt;br /&gt;/* First you must grant ALTER SESSION to the user */&lt;br /&gt;&lt;code&gt;GRANT ALTER SESSION TO &amp;lt;USERNAME&amp;gt; ;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;/ * Now create the trigger */&lt;code&gt;&lt;br /&gt;CREATE OR REPLACE TRIGGER SYS.set_trace&lt;br /&gt;AFTER LOGON ON DATABASE&lt;br /&gt;WHEN (USER like '&amp;amp;USERNAME')&lt;br /&gt;DECLARE&lt;br /&gt;lcommand varchar(200);&lt;br /&gt;BEGIN&lt;br /&gt;EXECUTE IMMEDIATE 'alter session set statistics_level=ALL';&lt;br /&gt;EXECUTE IMMEDIATE 'alter session set max_dump_file_size=UNLIMITED';&lt;br /&gt;EXECUTE IMMEDIATE 'alter session set events ''10046 trace name context forever, level 12''';&lt;br /&gt;END set_trace;&lt;br /&gt;/&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;/* Simply disable the trigger when done */&lt;br /&gt;&lt;code&gt;ALTER TRIGGER SYS.SET_TRACE DISABLE;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/* List non-system users, very useful when attempting to trace a session */&lt;br /&gt;&lt;code&gt;SELECT username,sid,serial#,status,module&lt;br /&gt;&amp;nbsp; &amp;nbsp;FROM v$session &lt;br /&gt;&amp;nbsp;WHERE username is not null&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; AND username &amp;lt;&amp;gt; 'SYS'&lt;br /&gt;&amp;nbsp;ORDER BY username;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;/* Enable the trace on ALL current sessions of a specific user in the system. */&lt;code&gt;&lt;br /&gt;set serveroutput on size 10000;&lt;br /&gt;DECLARE&lt;br /&gt;BEGIN&lt;br /&gt;FOR c1_row IN (SELECT sid,serial#&lt;br /&gt;FROM v$session where username = '&amp;lt;&amp;lt;A USER&amp;gt;&amp;gt;') LOOP&lt;br /&gt;DBMS_OUTPUT.PUT_LINE('Enabling trace for session: '||c1_row.sid||' serial#: '||c1_row.serial#);&lt;br /&gt;DBMS_MONITOR.SESSION_TRACE_ENABLE(session_id =&amp;gt; c1_row.sid, serial_num =&amp;gt; c1_row.serial# ,waits =&amp;gt; TRUE, binds =&amp;gt; TRUE);&lt;br /&gt;DBMS_OUTPUT.PUT_LINE('Tracing for session: '||c1_row.sid||' serial#: '||c1_row.serial#);&lt;br /&gt;END LOOP;&lt;br /&gt;EXCEPTION&lt;br /&gt;WHEN OTHERS THEN&lt;br /&gt;DBMS_OUTPUT.PUT_LINE(SUBSTR(SQLERRM,1,250));&lt;br /&gt;END;&lt;br /&gt;/&lt;br /&gt;select username,sql_trace from v$session order by username;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;/* Disable the trace on ALL current sessions of a specific user in the system. */&lt;code&gt;&lt;br /&gt;set serveroutput on size 10000;&lt;br /&gt;DECLARE&lt;br /&gt;BEGIN&lt;br /&gt;FOR c1_row IN (SELECT sid,serial#&lt;br /&gt;FROM v$session where username = '&amp;lt;&amp;lt;A USER&amp;gt;&amp;gt;') LOOP&lt;br /&gt;DBMS_OUTPUT.PUT_LINE('Disabling trace for session: '||c1_row.sid||' serial#: '||c1_row.serial#);&lt;br /&gt;DBMS_MONITOR.SESSION_TRACE_DISABLE(session_id =&amp;gt; c1_row.sid, serial_num =&amp;gt; c1_row.serial#);&lt;br /&gt;DBMS_OUTPUT.PUT_LINE('Tracing disabled for session: '||c1_row.sid||' serial#: '||c1_row.serial#);&lt;br /&gt;END LOOP;&lt;br /&gt;EXCEPTION&lt;br /&gt;WHEN OTHERS THEN&lt;br /&gt;DBMS_OUTPUT.PUT_LINE(SUBSTR(SQLERRM,1,250));&lt;br /&gt;END;&lt;br /&gt;/&lt;br /&gt;select username,sql_trace from v$session order by username;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;/* Run TKProf as sysdba with EXPLAIN plan included */&lt;br /&gt;/* See TKProf Interpretation (9i and above) [ID 760786.1] */&lt;br /&gt;&lt;code&gt;tkprof &amp;lt;tracefile&amp;gt;.trc /tmp/&amp;lt;tracefile&amp;gt;.trc.tk explain=\" / as sysdba\"&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;/* TKProf sorting by highest elapsed time */&lt;br /&gt;&lt;code&gt;tkprof &amp;lt;tracefile&amp;gt;.trc&amp;nbsp;/tmp/&amp;lt;tracefile&amp;gt;.trc.tk&amp;nbsp;sort=fchela,exeela,prsela&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Once you have your trace file and you have run it through TKProf and are still struggling, you may need to read it raw.&lt;br /&gt;Check out the following MYOS articles:&lt;br /&gt;"Interpreting Raw SQL_TRACE and DBMS_SUPPORT.START_TRACE output [ID 39817.1]".&lt;br /&gt;&lt;br /&gt;The excellent but slightly unheard of&amp;nbsp;"Oracle Performance Diagnostic Guide (OPDG) [ID 390374.1]".&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-4516714165158469754?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/4516714165158469754/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=4516714165158469754&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/4516714165158469754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/4516714165158469754'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/11/oracle-tracing-interpreting-traces.html' title='Oracle Tracing &amp; Interpreting Traces - Notes'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-2507322837975189899</id><published>2011-11-11T08:46:00.001Z</published><updated>2012-01-18T18:04:57.754Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='configuration'/><category scheme='http://www.blogger.com/atom/ns#' term='installation'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP'/><category scheme='http://www.blogger.com/atom/ns#' term='language'/><title type='text'>SAP Language Pack Enabling for Login in R/3 Enterprise 4.7</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;In an SAP system you can see what language packs are installed using transaction SMLT.&lt;br /&gt;Sometimes however, you may find that you are unable to log into the system using one of the languages that are installed.&amp;nbsp; You get prompted to select a valid language.&lt;br /&gt;This is usually due to a miss-configuration of the zcsa/installed_languages profile parameter.&lt;br /&gt;&lt;br /&gt;You can check the system language configuration using the report RSCPINST.&lt;br /&gt;You should note that the zcsa/installed_languages parameter should be set in the DEFAULT profile *only*.&lt;br /&gt;&lt;br /&gt;Some useful SAP notes on language packs:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://service.sap.com/notes/73606" target="_blank"&gt;73606&lt;/a&gt; “Supported Languages and Code Pages”&lt;br /&gt;&lt;a href="http://service.sap.com/notes/352941" target="_blank"&gt;352941&lt;/a&gt; “Languages and Support Packages”&lt;br /&gt;&lt;a href="http://service.sap.com/notes/533888" target="_blank"&gt;533888&lt;/a&gt; “Example for Language Import and Errors”&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-2507322837975189899?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/2507322837975189899/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=2507322837975189899&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/2507322837975189899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/2507322837975189899'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/11/sap-language-pack-enabling-for-login-in.html' title='SAP Language Pack Enabling for Login in R/3 Enterprise 4.7'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-6126354643933463930</id><published>2011-11-05T07:55:00.000Z</published><updated>2011-11-05T07:55:14.241Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='MQ'/><category scheme='http://www.blogger.com/atom/ns#' term='IBM'/><category scheme='http://www.blogger.com/atom/ns#' term='Troubleshooting'/><title type='text'>IBM MQ Error - AMQ6118: An internal WebSphere MQ error has occurred (20806013)</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="WordSection1"&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB"&gt;In the /var/mqm/errors/AMQERR*.LOG file the following error was visible:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;i&gt;&lt;span lang="EN-GB"&gt;11/01/11 16:20:23 - Process(1408.3) User(mqm) Program(amqrmppa_nd)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;i&gt;&lt;span lang="EN-GB"&gt;AMQ6118: An internal WebSphere MQ error has occurred (20806013)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;i&gt;&lt;span lang="EN-GB"&gt;EXPLANATION:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;i&gt;&lt;span lang="EN-GB"&gt;An error has been detected, and the MQ error recording routine has been called.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;i&gt;&lt;span lang="EN-GB"&gt;ACTION:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;i&gt;&lt;span lang="EN-GB"&gt;Use the standard facilities supplied with your system to record the problem&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;i&gt;&lt;span lang="EN-GB"&gt;identifier, and to save the generated output files. Contact your IBM support&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;i&gt;&lt;span lang="EN-GB"&gt;center.&amp;nbsp; Do not discard these files until the problem has been resolved.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB"&gt;There was an FDC file present also in the same directory.&lt;br /&gt;It contained the following information header:&lt;br /&gt;&lt;/span&gt;&lt;span lang="EN-GB" style="font-family: 'Courier New'; font-size: 10pt;"&gt;+-----------------------------------------------------------------------------+&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-family: 'Courier New'; font-size: 10pt;"&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-family: 'Courier New'; font-size: 10pt;"&gt;| WebSphere MQ First Failure Symptom Report&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-family: 'Courier New'; font-size: 10pt;"&gt;| =========================================&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-family: 'Courier New'; font-size: 10pt;"&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-family: 'Courier New'; font-size: 10pt;"&gt;| Date/Time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :- Tuesday November 01 14:52:07 GMT 2011&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-family: 'Courier New'; font-size: 10pt;"&gt;| Host Name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :- xxxxxxxx (HP-UX B.11.23)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-family: 'Courier New'; font-size: 10pt;"&gt;| PIDS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :- 5724H7208&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-family: 'Courier New'; font-size: 10pt;"&gt;| LVLS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :- 6.0.1.0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-family: 'Courier New'; font-size: 10pt;"&gt;| Product Long Name :- WebSphere MQ for HP-UX (Itanium platform)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-family: 'Courier New'; font-size: 10pt;"&gt;| Vendor&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :- IBM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-family: 'Courier New'; font-size: 10pt;"&gt;| Probe Id&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :- XC028018&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-family: 'Courier New'; font-size: 10pt;"&gt;| Application Name&amp;nbsp; :- MQM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-family: 'Courier New'; font-size: 10pt;"&gt;| &lt;b&gt;Component&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :- xcsReleaseMutexSem&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-family: 'Courier New'; font-size: 10pt;"&gt;| SCCS Info&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :- lib/cs/unix/generic/amqxlfmx.c, 1.147.1.1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-family: 'Courier New'; font-size: 10pt;"&gt;| Line Number&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :- 3229&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-family: 'Courier New'; font-size: 10pt;"&gt;| Build Date&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :- Oct 21 2005&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-family: 'Courier New'; font-size: 10pt;"&gt;| CMVC level&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :- p600-100-051021&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-family: 'Courier New'; font-size: 10pt;"&gt;| Build Type&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :- IKAP - (Production)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-family: 'Courier New'; font-size: 10pt;"&gt;| UserID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :- 00002440 (mqm)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-family: 'Courier New'; font-size: 10pt;"&gt;| Program Name&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:- amqrmppa_nd&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-family: 'Courier New'; font-size: 10pt;"&gt;| Addressing mode&amp;nbsp;&amp;nbsp; :- 64-bit&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-family: 'Courier New'; font-size: 10pt;"&gt;| Process&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :- 25271&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-family: 'Courier New'; font-size: 10pt;"&gt;| Thread&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :- 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-family: 'Courier New'; font-size: 10pt;"&gt;| QueueManager&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :- MQINTUX&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-family: 'Courier New'; font-size: 10pt;"&gt;| ConnId(1) IPCC&amp;nbsp;&amp;nbsp;&amp;nbsp; :- 26&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-family: 'Courier New'; font-size: 10pt;"&gt;| &lt;b&gt;Major Errorcode&amp;nbsp;&amp;nbsp; :- xecL_E_NOT_OWNER&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-family: 'Courier New'; font-size: 10pt;"&gt;| Minor Errorcode&amp;nbsp;&amp;nbsp; :- OK&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-family: 'Courier New'; font-size: 10pt;"&gt;| Probe Type&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :- INCORROUT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-family: 'Courier New'; font-size: 10pt;"&gt;| Probe Severity&amp;nbsp;&amp;nbsp;&amp;nbsp; :- 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-family: 'Courier New'; font-size: 10pt;"&gt;| Probe Description :- AMQ6125: An internal WebSphere MQ error has occurred.&amp;nbsp; |&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-family: 'Courier New'; font-size: 10pt;"&gt;| FDCSequenceNumber :- 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-family: 'Courier New'; font-size: 10pt;"&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-family: 'Courier New'; font-size: 10pt;"&gt;+-----------------------------------------------------------------------------+&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;br /&gt;&lt;br /&gt;Check the “Component” and “Major Errorcode” sections of the header.&lt;br /&gt;I was seeing “xecL_E_NOT_OWNER” for the “xcsReleaseMutexSem” component.&lt;br /&gt;&lt;br /&gt;This prompted me to check the semaphores (HP-UX) using command "ipcs -sa".&lt;br /&gt;I could see that there were some semaphores hanging around as the “mqm” user (shown in the header of the FDC file also).&lt;br /&gt;So, clearing them as root and using “ipcrm -s” and the ID from the “ipcs -sa” command output, fixed the issue and prevented the need for a reboot.&lt;br /&gt;&lt;br /&gt;The issue was caused by running MQ as the wrong UNIX user (it wasn't supposed to be running as the mqm user in our environment).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-6126354643933463930?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/6126354643933463930/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=6126354643933463930&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/6126354643933463930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/6126354643933463930'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/11/ibm-mq-error-amq6118-internal-websphere.html' title='IBM MQ Error - AMQ6118: An internal WebSphere MQ error has occurred (20806013)'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-8924757157000711753</id><published>2011-11-05T07:52:00.001Z</published><updated>2011-11-05T07:52:47.608Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Micro Focus Cobol'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Linking Micro Focus Cobol (Server) 5.0 to Oracle</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="WordSection1"&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB"&gt;After implementing an Oracle upgrade, you will need to re-link the Micro Focus Cobol runtime environment.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB"&gt;However, after the relink you may need to ensure that the link to the new shared library exists:&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB"&gt;After seeing this dump in /var/mfcobol/es/&amp;lt;SERVER&amp;gt;/casdumpa.rec&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB"&gt;&lt;br /&gt;“&lt;i&gt;Load error : file 'librtsora.sl'&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;i&gt;&lt;span lang="EN-GB"&gt;error code: 173, pc=0, call=1, seg=0&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;i&gt;&lt;span lang="EN-GB"&gt;173&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Called program file not found in drive/directory&lt;/span&gt;&lt;/i&gt;&lt;span lang="EN-GB"&gt;“&lt;/span&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;cd $ORACLE_HOME/lib32 &lt;br /&gt;ln -s rtsora_t.sl librtsora.sl&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;If you're using Itanium, you will be using rtsora_t.so.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-8924757157000711753?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/8924757157000711753/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=8924757157000711753&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/8924757157000711753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/8924757157000711753'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/11/linking-micro-focus-cobol-server-50-to.html' title='Linking Micro Focus Cobol (Server) 5.0 to Oracle'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-2574954353057106580</id><published>2011-11-01T18:07:00.003Z</published><updated>2011-11-01T18:07:24.597Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='Indexes'/><category scheme='http://www.blogger.com/atom/ns#' term='Tuning'/><category scheme='http://www.blogger.com/atom/ns#' term='Performance'/><title type='text'>Oracle Index Rows Per Leaf Block</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;The query below can be used to obtain the number of rows per index leaf block.&lt;br /&gt;You will need to know the index name, the table name that the index references, the pk column in the index and the object id for the index:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;SELECT object_id&lt;br /&gt;from user_objects&lt;br /&gt;WHERE object_name = 'MGMT_VERSIONS_PK';&lt;br /&gt;&lt;br /&gt;SELECT rows_per_block, count(*) blocks&lt;br /&gt;FROM (&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; SELECT /*+ cursor_sharing_exact&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dynamic_sampling(0)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;no_monitoring&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;no_expand&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;index_ffs(serv_inst,ix_serv_inst)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;noparallel_index(serv_inst,ix_serv_inst)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sys_op_lbid(349440, &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;-- &amp;lt;&amp;lt; INDEX OBJECT ID HERE&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;'L',rowid) block_id,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;count(*) rows_per_block&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FROM MGMT_VERSIONS &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;-- &amp;lt;&amp;lt; TABLE NAME HERE&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;WHERE COMPONENT_NAME IS NOT NULL &amp;nbsp; &amp;nbsp; &amp;nbsp; -- &amp;lt;&amp;lt; INDEX COL NAME HERE&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; GROUP BY sys_op_lbid(349440, &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;-- &amp;lt;&amp;lt; INDEX OBJECT ID HERE&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;'L',rowid)&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;)&lt;br /&gt;GROUP BY rows_per_block;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This is useful for determining sparse index blocks:&lt;br /&gt;&lt;a href="http://www.dba-oracle.com/t_sys_op_lbid_index_node_density.htm"&gt;http://www.dba-oracle.com/t_sys_op_lbid_index_node_density.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It could be combined with this script (&lt;a href="http://jonathanlewis.wordpress.com/segment-scans/"&gt;http://jonathanlewis.wordpress.com/segment-scans/&lt;/a&gt;) which helps to detect full table scans and index fast full scans:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;select&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;owner,&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;object_type,&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;object_name,&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;obj#,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;subobject_name,&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tablespace_name,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;value scans&lt;br /&gt;from&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;V$segment_statistics&lt;br /&gt;where&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;statistic_name = 'segment scans'&lt;br /&gt;&amp;nbsp; and &amp;nbsp;value != 0&lt;br /&gt;order by&amp;nbsp;owner, value;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;(When I get time, I'll combine it and post it here).&lt;br /&gt;&lt;br /&gt;Running the first SQL statement, then checking if the table has "high" segment scans would then give a good indication if the index is used frequently for large multi-block operations and is very sparse (block wise) and potentially up for a re-build.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-2574954353057106580?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/2574954353057106580/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=2574954353057106580&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/2574954353057106580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/2574954353057106580'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/11/oracle-index-rows-per-leaf-block.html' title='Oracle Index Rows Per Leaf Block'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-3478477893555820827</id><published>2011-10-29T17:15:00.002+01:00</published><updated>2011-10-29T17:20:49.009+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DBUA'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><category scheme='http://www.blogger.com/atom/ns#' term='Troubleshooting'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='Upgrade'/><title type='text'>DBUA "You do not have OS authentication" - Fat Fingers</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;The other day, I was upgrading an Oracle 10.2.0.2 database to 10.2.0.5 using DBUA (it has it's benefits and provides a nice consistent approach when under pressure, providing it's used with care).&lt;br /&gt;&lt;br /&gt;I constantly got the request to enter the password for a DB user with SYSDBA privileges.&lt;br /&gt;I didn’t have the SYS or SYSTEM user passwords (really!), but the OS user I was using definitely was a member of the group that is compiled into the config.o library (see MYOS note “SYSDBA and SYSOPER Privileges in Oracle [ID 50507.1]”):&lt;br /&gt;&lt;br /&gt;For reference, you check on UNIX by:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;cd $ORACLE_HOME/rdbms/lib&lt;br /&gt;cat config.[c|s]&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Checking the values for SYS_DBA and SYS_OPER against the UNIX groups your user is a member of (use the "groups" command).&lt;br /&gt;&lt;br /&gt;The solution: this was simple, the Oracle home had been manually added into the /etc/oratab file and had been misspelled. &amp;nbsp;If only it didn't take 45 minutes to find it!&lt;br /&gt;Correcting /etc/oratab and restarting DBUA fixed the problem.&lt;br /&gt;&lt;br /&gt;I guess DBUA was just plain lying and it didn't have the heart to tell me that I was about to upgrade a database when it couldn't find the Oracle home. &amp;nbsp;Shame on you.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-3478477893555820827?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/3478477893555820827/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=3478477893555820827&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/3478477893555820827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/3478477893555820827'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/10/dbua-your-do-not-have-os-authentication.html' title='DBUA &quot;You do not have OS authentication&quot; - Fat Fingers'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-7521052006541051762</id><published>2011-10-23T17:04:00.000+01:00</published><updated>2011-10-24T18:36:29.984+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='statistics'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='Netweaver'/><category scheme='http://www.blogger.com/atom/ns#' term='Performance'/><title type='text'>Gathering Oracle Statistics - the SAP way</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Gathering stats on a table in an Oracle database, can significantly change the SQL excution plan.&lt;br /&gt;In some cases this can&amp;nbsp;be detrimental to the system performance.&lt;br /&gt;I have seen this in a real production system, where the indexed column was 38 characters long. &amp;nbsp;The system had just been upgraded from 9i, the original table stats carried over and left up to Oracle.&lt;br /&gt;Performance was dreadful, the 9i stats had been refreshed but not re-created.&lt;br /&gt;&lt;br /&gt;See SAP note &lt;a href="https://service.sap.com/sap/support/notes/365480"&gt;365480&lt;/a&gt;&amp;nbsp;("CBO: Field filled with leading "0" aligned to left").&lt;br /&gt;It suffered from an Oracle "bug" (773462)&amp;nbsp;where only the first 32 characters are used to measure the distinct number of values for the column.&amp;nbsp; In a 38 character field,&amp;nbsp;left padded with zeros,&amp;nbsp;using the index can cause a problem.&lt;br /&gt;If we had removed all stats and re-created them, no problem, as Oracle 10g would have probably generated histograms.&lt;br /&gt;However, the real issue was that the stats shouldn't have been there according to DBSTATC.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; SAP notes say to specifically disable the default Oracle 10g/11g GATHER_STATS_JOB.&lt;br /&gt;&lt;br /&gt;As noted, if you let Oracle gather statistics it overrides the settings in the SAP DBSTATC table.&lt;br /&gt;The DBSTATC&amp;nbsp;table (see transaction DB20) controls where stats are gathered and how stats are gathered.&lt;br /&gt;In actual fact, this is why you sometimes see "Harmful statistics" in the BR*Connect DBcheck results.&lt;br /&gt;&lt;br /&gt;The stats are gathered using the Oracle DBMS_STATS package with Netweaver 7.0's version of BR*Tools (more specifically, BR*Connect).&lt;br /&gt;&lt;br /&gt;Below are some SQL and PL/SQL commands useful for analysing statistics problems in a SAP Oracle 10g environment.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;/* Check if gather stats auto-job is enabled */&lt;br /&gt;SELECT JOB_NAME,&lt;br /&gt;OWNER,&lt;br /&gt;ENABLED,&lt;br /&gt;PROGRAM_NAME,&lt;br /&gt;TO_CHAR(last_start_date,'DD-MM-YYYY HH24:MI:SS') last_start_date&lt;br /&gt;FROM DBA_SCHEDULER_JOBS&lt;br /&gt;WHERE JOB_NAME='GATHER_STATS_JOB';&lt;br /&gt;&lt;br /&gt;/* Get GATHER_STATS_JOB program details */&lt;br /&gt;SELECT PROGRAM_TYPE,&lt;br /&gt;PROGRAM_NAME,&lt;br /&gt;PROGRAM_ACTION&lt;br /&gt;FROM dba_scheduler_programs&lt;br /&gt;WHERE PROGRAM_NAME='GATHER_STATS_PROG';&lt;br /&gt;&lt;br /&gt;/* Get the last time the GATHER_STATS_JOB ran and log info */&lt;br /&gt;SELECT log_id,&lt;br /&gt;actual_start_date,&lt;br /&gt;run_duration,&lt;br /&gt;job_name,&lt;br /&gt;status,&lt;br /&gt;additional_info,&lt;br /&gt;log_date&lt;br /&gt;FROM dba_scheduler_job_run_details&lt;br /&gt;WHERE owner='SYS'&lt;br /&gt;AND job_name='GATHER_STATS_JOB';&lt;br /&gt;&lt;br /&gt;/* VERIFY STATS ON A COLUMN */&lt;br /&gt;SELECT num_distinct,&lt;br /&gt;density,&lt;br /&gt;num_buckets,&lt;br /&gt;sample_size,&lt;br /&gt;avg_col_len,&lt;br /&gt;histogram&lt;br /&gt;FROM dba_tab_col_statistics&lt;br /&gt;WHERE table_name = &amp;amp;TABNAME&lt;br /&gt;AND column_name=&amp;amp;COLNAME;&lt;br /&gt;&lt;br /&gt;/* VERIFY STATS ON A TABLE */&lt;br /&gt;SELECT sample_size,&lt;br /&gt;TO_CHAR(last_analyzed,'DD-MM-YYYY HH24:MI:SS') last_analzed,&lt;br /&gt;global_stats,&lt;br /&gt;user_stats,&lt;br /&gt;stattype_locked,&lt;br /&gt;stale_stats&lt;br /&gt;FROM dba_tab_statistics&lt;br /&gt;WHERE table_name = &amp;amp;TABNAME;&lt;br /&gt;&lt;br /&gt;/*&amp;nbsp;VERIFY HISTOGRAMS ON A TABLE&amp;nbsp;*/&lt;br /&gt;SELECT *&lt;br /&gt;FROM dba_tab_histograms&lt;br /&gt;WHERE table_name=&amp;amp;TABNAME;&lt;br /&gt;&lt;br /&gt;/* GATHER COLUMN STATS FOR A COLUMN ONLY */&lt;br /&gt;BEGIN&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DBMS_STATS.GATHER_TABLE_STATS (&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; OWNNAME =&amp;gt; 'SAPR3',&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; TABNAME =&amp;gt; '&amp;lt; A TABLE&amp;gt;',&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; METHOD_OPT =&amp;gt; 'FOR COLUMNS &amp;lt; A COLUMN&amp;gt; SIZE AUTO');&lt;br /&gt;END;&lt;br /&gt;&lt;br /&gt;/* GATHER TABLE STATS USING ESTIMATE 10% */&lt;br /&gt;BEGIN&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DBMS_STATS.GATHER_TABLE_STATS (&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;OWNNAME =&amp;gt; 'SAPR3',&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;TABNAME =&amp;gt; '&amp;lt; A TABLE&amp;gt;',&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;METHOD_OPT =&amp;gt; 'FOR ALL COLUMNS SIZE AUTO',&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ESTIMATE_PERCENT =&amp;gt; 10);&lt;br /&gt;END;&lt;br /&gt;&lt;br /&gt;/*&amp;nbsp;ORACLE'S DEFAULT JOB TO GATHER STATS&amp;nbsp;*/&lt;br /&gt;dbms_stats.gather_database_stats_job_proc;&lt;br /&gt;&lt;br /&gt;/* DELETE ALL THE TABLE STATS CASCADE TO INDEXES and COLUMNS */&lt;br /&gt;BEGIN&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DBMS_STATS.DELETE_TABLE_STATS (&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;OWNNAME =&amp;gt; 'SAPR3',&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;TABNAME =&amp;gt; '&amp;lt; A TABLE&amp;gt;',&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cascade_parts =&amp;gt; TRUE,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cascade_columns =&amp;gt; TRUE,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cascade_indexes =&amp;gt; TRUE);&lt;br /&gt;END;&lt;br /&gt;&lt;br /&gt;/* DELETE COLUMN STATS ONLY */&lt;br /&gt;BEGIN&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DBMS_STATS.DELETE_COLUMN_STATS (&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;OWNNAME =&amp;gt; 'SAPR3',&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;TABNAME =&amp;gt; '&amp;lt; A TABLE&amp;gt;',&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;COLNAME =&amp;gt; '&amp;lt; A COLUMN&amp;gt;',&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;FORCE =&amp;gt; TRUE);&lt;br /&gt;END;&lt;/code&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-7521052006541051762?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/7521052006541051762/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=7521052006541051762&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/7521052006541051762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/7521052006541051762'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/10/gathering-oracle-statistics-sap-way.html' title='Gathering Oracle Statistics - the SAP way'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-3119655749843159594</id><published>2011-10-22T12:26:00.000+01:00</published><updated>2011-10-22T12:26:04.993+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Books'/><category scheme='http://www.blogger.com/atom/ns#' term='Musing'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='Performance'/><title type='text'>Oracle Core: Essential Internals for Troubleshooting</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Whilst shopping on Amazon this morning I noticed that Jonathan's book is up for pre-order.&lt;br /&gt;The price gurantee from Amazon is very reasonable, so I've pre-ordered.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ecx.images-amazon.com/images/I/51cD4n2zjuL._SL500_SL130_.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" rda="true" src="http://ecx.images-amazon.com/images/I/51cD4n2zjuL._SL500_SL130_.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Should be a good read and more importantly a good weapon in any DBAs problem analysis methodology (is "weapon" the best way to describe it? Wouldn't that make Jonathan an arms dealer?).&lt;br /&gt;Of course it doesn't mean I can possibly absorb everything from the book, but most of the time I find that it's not that you know how to do it, it's that you know it can be done.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.amazon.co.uk/gp/product/1430239549"&gt;http://www.amazon.co.uk/gp/product/1430239549&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-3119655749843159594?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/3119655749843159594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=3119655749843159594&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/3119655749843159594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/3119655749843159594'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/10/oracle-core-essential-internals-for.html' title='Oracle Core: Essential Internals for Troubleshooting'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-5827289956690792415</id><published>2011-10-20T20:32:00.000+01:00</published><updated>2011-10-20T20:32:23.637+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SLD'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><category scheme='http://www.blogger.com/atom/ns#' term='Netweaver'/><title type='text'>Connecting SAP Netweaver ABAP Stack To SAP SLD</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;If you've ever quickly needed to know the points to check for customising settings connecting your SAP Netweaver *ABAP* system to an SLD (System Landscape Directory), then here they are:&lt;br /&gt;&lt;br /&gt;Transaction: SLDAPICUST&lt;br /&gt;Transaction: SM59 - TCP/IP connections: SAPSLDAPI (Use by ABAP API)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LCRSAPRFC &amp;nbsp;(Use to read the exchange profile)&lt;br /&gt;&lt;br /&gt;Here's the SAP Help article:&amp;nbsp;&lt;a href="http://help.sap.com/saphelp_nw04s/helpdata/en/be/6e0f41218ff023e10000000a155106/content.htm"&gt;http://help.sap.com/saphelp_nw04s/helpdata/en/be/6e0f41218ff023e10000000a155106/content.htm&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-5827289956690792415?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/5827289956690792415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=5827289956690792415&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/5827289956690792415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/5827289956690792415'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/10/connecting-sap-netweaver-abap-stack-to.html' title='Connecting SAP Netweaver ABAP Stack To SAP SLD'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-4700852605102188193</id><published>2011-10-15T18:35:00.001+01:00</published><updated>2011-10-15T18:35:57.510+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Administration'/><category scheme='http://www.blogger.com/atom/ns#' term='Musing'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP'/><title type='text'>To Delete or Not To Delete (an SAP user account)</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Having read around the SDN forum recently, I was surprised that no one had done any particular research into the consequences of deleting SAP user accounts.&lt;br /&gt;This is probably quite a common question when you first get your shiny new SAP system implemented.&lt;br /&gt;Generally, auditors prefer that you delete IT accounts.  It's a nice catch-all and means that they can tick the box that says "done", knowing that what happened was the most secure option.  But it might not be the best option.&lt;br /&gt;Most procedures require locking the account for 1-2 months before eventually deleting it, therefore catching rogue background jobs etc.&lt;br /&gt;&lt;br /&gt;After some heavy procrastination I have come up with the following reasons why it might always be better (safer) and actually more audit-friendly to just lock the account and not actually delete it:&lt;br /&gt;&lt;br /&gt;- Adding a new user of the same user id as the one just deleted, will attempt to re-use the old address details.&lt;br /&gt;This is really bad and could cause awful confusion.  It could also cause a problem with regards to auditing.&lt;br /&gt;&lt;br /&gt;- Customer modifications/code in programs and workflows that utilise the user id.&lt;br /&gt;If the user is deleted, then re-created later on for a new employee of the same name, that new user may inherit authority, receive SAP Office emails or any other actions that were previously meant for the old owner of the user id.&lt;br /&gt;&lt;br /&gt;- When a user creates a transport, this is recorded in the code version history for the objects transported and the transport co-file and a file in one of the the /usr/sap/trans sub-directories (off-hand I think it's called sapnames...).&lt;br /&gt;Deleting the user removes the tie between the user id that created the code version, and their real name/details.  In a large organisation it can be difficult to find the right "Smith" that made that change.&lt;br /&gt;&lt;br /&gt;- When a user is deleted, you can not see what authorisations the account used to have.&lt;br /&gt;Once again, how can you prove that some malicious action happened if the account has been deleted, removing the evidence that the user had access to perform the crime.&lt;br /&gt;Alternatively, someone may have legitamately left the company, but recruiting didn't find a replacement for 6months.  Guess who will need to create a new user id where the request form says "&lt;i&gt;same roles as Joe who left 6 months ago&lt;/i&gt;".&lt;br /&gt;&lt;br /&gt;- If you delete a user account after they leave, then re-create a new one for a new employee, what if you've missed an account on a system somewhere. &amp;nbsp;Nobody will know if it should be for the user who currently exists. &amp;nbsp;This is a major security risk.&lt;br /&gt;&lt;br /&gt;This may lead you to thinking about a better user id naming scheme that could provide a unique name for every account created.&lt;br /&gt;That really would be a worthwhile exercise.&lt;br /&gt;&lt;br /&gt;Don't forget, locking the account does not mean that you need to pay a license cost for it, it's not usable.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-4700852605102188193?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/4700852605102188193/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=4700852605102188193&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/4700852605102188193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/4700852605102188193'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/10/to-delete-or-not-to-delete-sap-user.html' title='To Delete or Not To Delete (an SAP user account)'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-3154973006449261240</id><published>2011-10-15T18:32:00.001+01:00</published><updated>2011-10-15T18:32:23.570+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HP-UX'/><category scheme='http://www.blogger.com/atom/ns#' term='Backup'/><title type='text'>HP OmniBack / DataProtector Version Check</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;How to tell the version of HP OmniBack / DataProtector client installed on your HP-UX server:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$ &lt;b&gt;/opt/omni/bin/omnicc -ver&lt;/b&gt;&lt;br /&gt;HP Data Protector A.06.11: OMNICC, internal build PHSS_41954/PHSS_41955/DPSOL_00442/DPLNX_00148, built on Thu Mar 24 07:14:15 2011&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It's possible to tell if a backup is running by using PS:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$ &lt;b&gt;ps -ef | grep omni&lt;/b&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Should show any agents running.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-3154973006449261240?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/3154973006449261240/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=3154973006449261240&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/3154973006449261240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/3154973006449261240'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/10/hp-omniback-dataprotector-version-check.html' title='HP OmniBack / DataProtector Version Check'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-281999927569778147</id><published>2011-10-07T20:55:00.000+01:00</published><updated>2011-10-15T18:22:31.745+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP'/><category scheme='http://www.blogger.com/atom/ns#' term='R/3'/><category scheme='http://www.blogger.com/atom/ns#' term='Gateway'/><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><title type='text'>SAP CPI-C Error Service Unknown and /etc/services</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I've found that generally the Netweaver 7.0 installations seem to create all required mappings in the /etc/services (or C:\Windows\System32\Drivers\etc\services) file, plus any not specifically required.&lt;br /&gt;&lt;br /&gt;However, on older R/3 systems, it's still possible to fall foul of this problem when the service port mappings are not present in the /etc/services file.&lt;br /&gt;&lt;br /&gt;When using RFC connections or testing a connection in SM59, you're seeing CPI-C (CPIC) errors with "Service sapgw00 Unknown" and CM_RESOURCE_FAILURE_NO_RETRY.&lt;br /&gt;&lt;br /&gt;It's normally visible as a connectivity error when testing connections in SM59:&lt;br /&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;a href="http://3.bp.blogspot.com/-HwEwTSTT17w/To9NnK8ZAZI/AAAAAAAAATQ/pGuncMxcqy8/s1600/image002-764914.png"&gt;&lt;img alt="" border="0" height="76" id="BLOGGER_PHOTO_ID_5660828591975891346" src="http://3.bp.blogspot.com/-HwEwTSTT17w/To9NnK8ZAZI/AAAAAAAAATQ/pGuncMxcqy8/s640/image002-764914.png" width="640" /&gt;&lt;/a&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;You should ensure that the connection test fails when you put the exact numerical port number into the SM59 "Gateway service" connection details, as well as failing when you have the service port name e.g. sapgw00:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-bcQdcMobV_Q/To9NnEollPI/AAAAAAAAATI/ms6l4LyOv4U/s1600/image001-764231.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5660828590282216690" src="http://3.bp.blogspot.com/-bcQdcMobV_Q/To9NnEollPI/AAAAAAAAATI/ms6l4LyOv4U/s1600/image001-764231.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-281999927569778147?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/281999927569778147/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=281999927569778147&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/281999927569778147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/281999927569778147'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/10/sap-cpi-c-error-service-unknown-and.html' title='SAP CPI-C Error Service Unknown and /etc/services'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-HwEwTSTT17w/To9NnK8ZAZI/AAAAAAAAATQ/pGuncMxcqy8/s72-c/image002-764914.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-2448591637518102212</id><published>2011-10-07T19:08:00.000+01:00</published><updated>2011-10-07T19:08:43.643+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Musing'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='Documentation'/><title type='text'>Oracle Documentation Is a Moving Target</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I appreciate that internet content is better when it's dynamic, but sometimes there's a need for static content; or should I say more accurately, static links to content.&lt;br /&gt;&lt;br /&gt;I'm right in the middle of compiling a new tutorial on installing Oracle 11gR2 on Oracle Enterprise Linux 6.1.&lt;br /&gt;The Oracle docs in HTML format have been on-line for years now, but I've never really referenced them over a period of time with such specific requirements.&lt;br /&gt;I've been using the software pre-requisites section of the Oracle 11gR2 docs and have bookmarked them in my browser of choice. &amp;nbsp;At least I thought I had. &amp;nbsp;Until today, when I click the link I get an Oracle web page stating "404 not found".&lt;br /&gt;What happened? &amp;nbsp;What caused the move of the actual URL?&lt;br /&gt;Here's what I was using before:&lt;br /&gt;&lt;a href="http://download.oracle.com/docs/cd/E11882_01/install.112/e16763/pre_install.htm#CIHIDJAH"&gt;http://download.oracle.com/docs/cd/E11882_01/install.112/e16763/pre_install.htm#CIHIDJAH&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here's the same content today:&lt;br /&gt;&lt;a href="http://download.oracle.com/docs/cd/E11882_01/install.112/e24321/pre_install.htm#CIHFICFD"&gt;http://download.oracle.com/docs/cd/E11882_01/install.112/e24321/pre_install.htm#CIHFICFD&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Looks like the e16763 has been replaced with e24321 and the internal bookmark (anchor) in the page (CIHIDJAH) has been changed to (CIHFICFD).&lt;br /&gt;&lt;br /&gt;All links internally on the page are &lt;a href="http://www.w3.org/TR/html4/struct/links.html#h-12.1"&gt;relative&lt;/a&gt;&amp;nbsp;links and not absolute, and when you try and navigate up the path, you get a 404. &amp;nbsp;So I guess that Oracle themselves don't want you to bookmark the links.&lt;br /&gt;&lt;br /&gt;Lesson learned, always capture what you need elsewhere and duplicate everything in case you can't find it or it gets removed...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-2448591637518102212?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/2448591637518102212/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=2448591637518102212&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/2448591637518102212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/2448591637518102212'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/10/oracle-documentation-is-moving-target.html' title='Oracle Documentation Is a Moving Target'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-2110618561552843746</id><published>2011-10-05T19:13:00.000+01:00</published><updated>2011-10-05T19:14:00.700+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Patching'/><category scheme='http://www.blogger.com/atom/ns#' term='Kernel'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP'/><category scheme='http://www.blogger.com/atom/ns#' term='R/3'/><title type='text'>How to Check If You're Using the 6.40 Extension Set 2.0 SAP Kernel</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="WordSection1"&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB"&gt;With SAP R/3 Enterprise 4.7 came the 6.40 Kernel.&lt;br /&gt;There are two releases of this kernel, 6.40 Extension Set 1.10 and 6.40 Extension Set 2.0.&lt;br /&gt;&lt;br /&gt;When you need to patch the Kernel, you need to know which one to download.&lt;br /&gt;You can tell by executing the "disp+work" binary on UNIX or Windows:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$ &lt;b&gt;id&lt;/b&gt;&lt;br /&gt;&amp;lt;sid&amp;gt;adm&lt;br /&gt;&lt;br /&gt;$ &lt;b&gt;disp+work&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;--------------------&lt;o:p&gt;&lt;/o:p&gt;&lt;/code&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;code&gt;&lt;span lang="EN-GB"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;code&gt;&lt;span lang="EN-GB"&gt;&amp;nbsp;&amp;nbsp;disp+work information&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;code&gt;&lt;span lang="EN-GB"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;code&gt;&lt;span lang="EN-GB"&gt;&amp;nbsp;&amp;nbsp;--------------------&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;code&gt;&lt;span lang="EN-GB"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;code&gt;&lt;span lang="EN-GB"&gt;&amp;nbsp;&amp;nbsp;kernel release&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 640&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;code&gt;&lt;span lang="EN-GB"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;code&gt;&lt;span lang="EN-GB"&gt;&amp;nbsp;&amp;nbsp;kernel make variant&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 640_EX2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;b&gt;&amp;lt;&amp;lt;&amp;lt; EXT 2.0&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;code&gt;&lt;span lang="EN-GB"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;code&gt;&lt;span lang="EN-GB"&gt;&amp;nbsp;&amp;nbsp;DBMS client library&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;code&gt;&lt;span lang="EN-GB"&gt;&lt;br /&gt;&lt;br /&gt;$ &lt;b&gt;disp+work&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;--------------------&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;code&gt;&lt;span lang="EN-GB"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;code&gt;&lt;span lang="EN-GB"&gt;&amp;nbsp;&amp;nbsp;disp+work information&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;code&gt;&lt;span lang="EN-GB"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;code&gt;&lt;span lang="EN-GB"&gt;&amp;nbsp;&amp;nbsp;--------------------&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;code&gt;&lt;span lang="EN-GB"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;code&gt;&lt;span lang="EN-GB"&gt;&amp;nbsp;&amp;nbsp;kernel release&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 640&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;code&gt;&lt;span lang="EN-GB"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;code&gt;&lt;span lang="EN-GB"&gt;&amp;nbsp;&amp;nbsp;kernel make variant&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 640_REL &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;&amp;lt;&amp;lt; Not EXT 2.0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;code&gt;&lt;span lang="EN-GB"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;code&gt;&lt;span lang="EN-GB"&gt;&amp;nbsp;&amp;nbsp;DBMS client library&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-2110618561552843746?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/2110618561552843746/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=2110618561552843746&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/2110618561552843746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/2110618561552843746'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/10/how-to-check-if-your-using-640.html' title='How to Check If You&apos;re Using the 6.40 Extension Set 2.0 SAP Kernel'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-5399024857027829818</id><published>2011-10-03T20:13:00.000+01:00</published><updated>2011-10-03T20:13:04.107+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='HP-UX'/><category scheme='http://www.blogger.com/atom/ns#' term='Tuning'/><category scheme='http://www.blogger.com/atom/ns#' term='Performance'/><title type='text'>Oracle Storage Sub-system Load Stress Testing</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Whilst looking around for an Oracle equivalent stress testing freebie (like SQLIO for SQL Server), I found out about &lt;a href="http://www.oracle.com/technetwork/topics/index-089595.html"&gt;ORION &lt;/a&gt;(ORacle I/O Numbers).&lt;br /&gt;It's been about for a while and can be used to stress test storage systems.&lt;br /&gt;It's a simple single binary file that generates I/O load on a storage system using Oracle's I/O call stack.&lt;br /&gt;No need to install Oracle at all!&lt;br /&gt;&lt;br /&gt;Unfortunately for me, it only works with file systems that have Async I/O enabled.&lt;br /&gt;I did not, and therefore could not use ORION.&lt;br /&gt;When I finally get time to install Oracle on my new Oracle Enterprise Linux 6.1 environment, I'll give it a go.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-5399024857027829818?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/5399024857027829818/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=5399024857027829818&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/5399024857027829818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/5399024857027829818'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/10/oracle-storage-sub-system-load-stress.html' title='Oracle Storage Sub-system Load Stress Testing'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-1518633908284330458</id><published>2011-09-26T18:58:00.005+01:00</published><updated>2011-09-26T18:58:50.860+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='Tuning'/><title type='text'>Flushing Cursor SQL Plan Out of Library Cache</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="WordSection1"&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB"&gt;I can never remember how to do this.&lt;br /&gt;&lt;br /&gt;I wanted to flush a specific SQL execution plan out of the Oracle 11g SQL Library Cache so that I could try and compare a before and after SQL execution scenario using SQL trace and then tkprof'ing it.&lt;br /&gt;Here's the link to the blog that helped me remember again:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://prutser.wordpress.com/2009/04/19/flushing-a-cursor-out-of-the-library-cache/"&gt;http://prutser.wordpress.com/2009/04/19/flushing-a-cursor-out-of-the-library-cache/&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;br /&gt;Thanks.&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-1518633908284330458?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/1518633908284330458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=1518633908284330458&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/1518633908284330458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/1518633908284330458'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/09/flushing-cursor-sql-plan-out-of-library.html' title='Flushing Cursor SQL Plan Out of Library Cache'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-3872573513503772122</id><published>2011-09-23T18:18:00.000+01:00</published><updated>2011-09-23T18:18:03.027+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Administration'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Netweaver'/><title type='text'>Enable SAP* in Netweaver 7.0</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="WordSection1"&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-GB"&gt;If you've lost the Administrator password or you want to log in as SAP* in your pure Java stack environment, this can be a little tricky as the way to set the password for the SAP* user in configtool is not as user friendly as you might think.&lt;br /&gt;&lt;br /&gt;Log into configtool by opening an X-Windows session (on UNIX), and then execute: /usr/sap/&amp;lt;SID&amp;gt;/JC&amp;lt;SYS#&amp;gt;/j2ee/configtool/configtool.sh (.bat on Windows).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;NOTE: &lt;/b&gt;Once you enable the SAP* user, you will not be able to log into the system as any other users e.g. Administrator or J2EE_ADMIN.&lt;br /&gt;&lt;br /&gt;In the configtool screen, expand the “Global server configuration -&amp;gt; services” branches: &lt;br /&gt;&lt;/span&gt;&lt;a href="http://4.bp.blogspot.com/-WLwGEgk_nnM/TnxN4oOz5HI/AAAAAAAAASA/juYAxY13TeQ/s1600/image001-749757.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5655480867338052722" src="http://4.bp.blogspot.com/-WLwGEgk_nnM/TnxN4oOz5HI/AAAAAAAAASA/juYAxY13TeQ/s320/image001-749757.png" /&gt;&lt;/a&gt;&lt;span lang="EN-GB"&gt;&lt;br /&gt;&lt;br /&gt;Click the “com.sap.security.core.ume.service” item:&lt;br /&gt;&lt;/span&gt;&lt;a href="http://2.bp.blogspot.com/-7hU_bBu3-Qo/TnxN4ns1UoI/AAAAAAAAASI/AGXZPgffw80/s1600/image002-750760.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5655480867195540098" src="http://2.bp.blogspot.com/-7hU_bBu3-Qo/TnxN4ns1UoI/AAAAAAAAASI/AGXZPgffw80/s320/image002-750760.png" /&gt;&lt;/a&gt;&lt;span lang="EN-GB"&gt;&lt;br /&gt;&lt;br /&gt;On the right hand side, scroll down to the ume.superadmin.activated option:&lt;br /&gt;&lt;/span&gt;&lt;a href="http://1.bp.blogspot.com/-RQ5UYb-Yqvc/TnxN5Bhqh5I/AAAAAAAAASQ/yTLoEr1vPj0/s1600/image003-751899.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5655480874128017298" src="http://1.bp.blogspot.com/-RQ5UYb-Yqvc/TnxN5Bhqh5I/AAAAAAAAASQ/yTLoEr1vPj0/s320/image003-751899.png" /&gt;&lt;/a&gt;&lt;span lang="EN-GB"&gt;&lt;br /&gt;&lt;br /&gt;Set the “Value:” field to “TRUE”:&lt;br /&gt;&lt;/span&gt;&lt;a href="http://4.bp.blogspot.com/-A01p0YSTqxU/TnxN5dysE5I/AAAAAAAAASY/SWxjFuhjwjY/s1600/image004-753066.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5655480881715614610" src="http://4.bp.blogspot.com/-A01p0YSTqxU/TnxN5dysE5I/AAAAAAAAASY/SWxjFuhjwjY/s320/image004-753066.png" /&gt;&lt;/a&gt;&lt;span lang="EN-GB"&gt;&lt;br /&gt;&lt;br /&gt;Now single click the “ume.superadmin.password” item:&lt;br /&gt;&lt;/span&gt;&lt;a href="http://1.bp.blogspot.com/-OGgLdZavi9U/TnxN56krCcI/AAAAAAAAASg/snTs2GgFJ90/s1600/image005-754082.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5655480889441454530" src="http://1.bp.blogspot.com/-OGgLdZavi9U/TnxN56krCcI/AAAAAAAAASg/snTs2GgFJ90/s320/image005-754082.png" /&gt;&lt;/a&gt;&lt;span lang="EN-GB"&gt;&lt;br /&gt;&lt;br /&gt;You can’t see the password and the “Value:” field looks like it doesn’t accept input, but it does.&lt;br /&gt;Type the new password in to the “Value:” field at the bottom (even though the cursor doesn’t move):&lt;br /&gt;&lt;/span&gt;&lt;a href="http://2.bp.blogspot.com/-p6uhqSzB0es/TnxN6Oon20I/AAAAAAAAASo/FwBK5jpMGUI/s1600/image006-756180.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5655480894826732354" src="http://2.bp.blogspot.com/-p6uhqSzB0es/TnxN6Oon20I/AAAAAAAAASo/FwBK5jpMGUI/s320/image006-756180.png" /&gt;&lt;/a&gt;&lt;span lang="EN-GB"&gt;&lt;br /&gt;&lt;br /&gt;Now click “Set” on the right:&lt;br /&gt;&lt;/span&gt;&lt;a href="http://3.bp.blogspot.com/-kJ7S1NQLu3E/TnxN6UsX3SI/AAAAAAAAASw/l9KoinIl6_U/s1600/image007-756954.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5655480896453074210" src="http://3.bp.blogspot.com/-kJ7S1NQLu3E/TnxN6UsX3SI/AAAAAAAAASw/l9KoinIl6_U/s320/image007-756954.png" /&gt;&lt;/a&gt;&lt;span lang="EN-GB"&gt;&lt;br /&gt;&lt;br /&gt;You will be prompted to re-enter the password:&lt;br /&gt;&lt;/span&gt;&lt;a href="http://1.bp.blogspot.com/-SThI1mrhoiI/TnxN6W4xTUI/AAAAAAAAAS4/P4Rlmcu1M8U/s1600/image008-757850.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5655480897041943874" src="http://1.bp.blogspot.com/-SThI1mrhoiI/TnxN6W4xTUI/AAAAAAAAAS4/P4Rlmcu1M8U/s320/image008-757850.png" /&gt;&lt;/a&gt;&lt;span lang="EN-GB"&gt;&lt;br /&gt;&lt;br /&gt;Click Save:&lt;br /&gt;&lt;/span&gt;&lt;a href="http://2.bp.blogspot.com/-W-g3xjIFDG4/TnxN6pRx06I/AAAAAAAAATA/ln39mGPIklU/s1600/image009-758570.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5655480901978674082" src="http://2.bp.blogspot.com/-W-g3xjIFDG4/TnxN6pRx06I/AAAAAAAAATA/ln39mGPIklU/s320/image009-758570.png" /&gt;&lt;/a&gt;&lt;span lang="EN-GB"&gt;&lt;br /&gt;&lt;br /&gt;You should restart the J2EE stack before trying to log in as SAP*.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-3872573513503772122?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/3872573513503772122/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=3872573513503772122&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/3872573513503772122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/3872573513503772122'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/09/enable-sap-in-netweaver-70.html' title='Enable SAP* in Netweaver 7.0'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-WLwGEgk_nnM/TnxN4oOz5HI/AAAAAAAAASA/juYAxY13TeQ/s72-c/image001-749757.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-8668434280288500483</id><published>2011-09-19T07:01:00.003+01:00</published><updated>2012-01-10T22:04:11.900Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='UNIX'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='HP-UX'/><category scheme='http://www.blogger.com/atom/ns#' term='Netweaver'/><title type='text'>SAP on HP-UX</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;There are various methods of tuning an SAP system, but sometimes the operating system vendor will permit specific tuning so that the SAP system can take better advantage of the available resources.&lt;br /&gt;Usually, you can find whitpapers on the O/S or hardware vendor's web site, but also SAP will themselves develop a range of SAP notes that will offer avice and guidance when running on certain approved hardware partners.&lt;br /&gt;If you're using HP-UX 11iv3 (11.31) and you are running SAP, then here are some gems direct from SAP themselves:&lt;br /&gt;&lt;br /&gt;Note:&lt;br /&gt;&lt;a href="http://service.sap.com/notes/172747"&gt;172747&lt;/a&gt; HP-UX OS Parameter Recommendations&lt;br /&gt;&lt;a href="http://service.sap.com/notes/798194"&gt;798194&lt;/a&gt; HP-UX async IO trace files&lt;br /&gt;&lt;a href="http://service.sap.com/notes/837670"&gt;837670&lt;/a&gt; HP-UX OS Patch Requirements&lt;br /&gt;&lt;a href="http://service.sap.com/notes/918279"&gt;918279&lt;/a&gt; HP-UX SAPOSCOL Versions&lt;br /&gt;&lt;a href="http://service.sap.com/notes/1077887"&gt;1077887&lt;/a&gt; HP-UX filesystem options&lt;br /&gt;&lt;a href="http://service.sap.com/notes/1329878"&gt;1329878&lt;/a&gt; Using non-default pagesize on HP-UX&lt;br /&gt;&lt;a href="http://service.sap.com/notes/1351051"&gt;1351051&lt;/a&gt; Support of Oracle on HPVM&lt;br /&gt;&lt;a href="http://service.sap.com/notes/1457063"&gt;1457063&lt;/a&gt;&amp;nbsp;HP-UX Consolidating SAP Systems&lt;br /&gt;&lt;a href="http://service.sap.com/notes/1575609"&gt;1575609&lt;/a&gt; Future HP-UX support for SAP on Oracle&lt;br /&gt;&lt;br /&gt;I would highly recommend the OS Parameters note.&lt;br /&gt;If you're suffering I/O performance issues, make sure that you have set the correct block size as per 1077887.&lt;br /&gt;A huge (&amp;gt;10%)&amp;nbsp;reduction in memory usage can be obtained following 1329878, but only if you are using Oracle 11g.&lt;br /&gt;&lt;br /&gt;Using the direct I/O option alone on a VxFS 5.0 environment decreased Data Protector backup times by over 1 quarter e.g. a 1.5 hour backup reduced to ~1 hour.&lt;br /&gt;&lt;br /&gt;I haven't investigated the HPUX_SCHED_NOAGE O/S parameter option yet (I need the audacity to recommend it to the server team!), but according to this excellent blog post by &lt;a href="http://christianbilien.wordpress.com/2007/03/31/real-time-scheduling-for-oracle-on-hp-ux-hpux-sched_noage-12/"&gt;Christian Bilien&lt;/a&gt;, it should help your environment&amp;nbsp;significantly if you're running more than one Oracle database on a SMP system.&lt;br /&gt;My reasoning is that there will be more than one CPU hungry Oracle thread and they could each be battling against each other (ageing each other out) even more so in a well tuned system with less I/O (large SGA/PGA and well tuned SQL) meaning less voluntary context switches and more forced ones. It’s possible that in this situation, without HPUX_SCHED_NOAGE, you could start to see CPU bottlenecks.&lt;br /&gt;&lt;br /&gt;HP also produce their own performance recommendations for running Oracle.&lt;br /&gt;Here's one on the &lt;a href="http://h20195.www2.hp.com/V2/GetPDF.aspx/4AA1-9839ENW.pdf"&gt;HP recommended filesystem IO options&lt;/a&gt;.&lt;br /&gt;Notice that it says if you're using VxFS v5.0, you don't need to worry about 1KB block sizes on Redo and Archive Log partitions.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;WARNING:&lt;/b&gt; Take heed in the warning about Progress databases on file system partitions with directio enabled on the mount options. &amp;nbsp;I have personally experienced issues where Progress applications have had a 20x decrease in performance! &amp;nbsp;It's a fact, Progress is not very good without the file system cache.&lt;br /&gt;&lt;br /&gt;This one is specific to &lt;a href="http://docs.hp.com/en/11890/perf-whitepaper-tcpip-v1_1.pdf" target="_blank"&gt;tuning HP-UX TCP/IP&lt;/a&gt;. &amp;nbsp;Very useful if you're seeing networking bandwidth problems in you environment.&lt;br /&gt;&lt;br /&gt;Finally, the &lt;a href="http://h21007.www2.hp.com/portal/download/files/unprot/devresource/docs/techpapers/uxperfcookbook.pdf"&gt;HP-UX Performance Cookbook&lt;/a&gt; provides an excellent source of information.&lt;br /&gt;I have noticed that some of the SAP Oracle recommended parameters (&lt;a href="https://service.sap.com/sap/support/notes/830576"&gt;830576&lt;/a&gt;&amp;nbsp;"Parameter Recommendations for Oracle 10g")&amp;nbsp;are specific to HP-UX, I have found that a good set of descriptions for some of these are covered in this HP Oracle paper:&amp;nbsp;&lt;a href="http://h20195.www2.hp.com/v2/GetPDF.aspx/4AA2-0547ENW.pdf" target="_blank"&gt;The Oracle Database on HP Integrity servers&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It's really a trade off between what SAP say and what Oracle say.&lt;br /&gt;Obviously Oracle know there own database system, so anything Oracle says can also be included.&lt;br /&gt;I generally follow the top down rule, where SAP overrides anything that is contradictory from HP or Oracle, Oracle overrides anything contradictory from HP, and I only implement any parameters from HP if neither Oracle or SAP have anything to say on the matter:&lt;br /&gt;- HP (OS)&lt;br /&gt;&amp;nbsp;- Oracle (RDBMS)&lt;br /&gt;&amp;nbsp; - SAP&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-8668434280288500483?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/8668434280288500483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=8668434280288500483&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/8668434280288500483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/8668434280288500483'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/09/sap-on-hp-ux.html' title='SAP on HP-UX'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-6638951601973133345</id><published>2011-09-10T13:12:00.000+01:00</published><updated>2011-09-10T13:12:02.635+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Administration'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP'/><title type='text'>SAP User Groups</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Apart from the roles, profiles and authorisation objects involved in SAP security controls, there is also an additional level. &amp;nbsp;User groups.&lt;br /&gt;The user groups in an SAP system can be used to control access to certain authorisation objects (i.e as a restriction in a profile), or used as a method of tagging different types of users to permit certain types of administrative delegation.&lt;br /&gt;Therefore permitting a super set of users to administer passwords for a smaller sub-set of users of a certain user group.&lt;br /&gt;&lt;br /&gt;So how do you create user groups? &amp;nbsp;Use transaction SUGR to define the groups, then assign the users in SU01 or SU10.&lt;br /&gt;Take a look at authorisation object S_USER_GRP.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-6638951601973133345?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/6638951601973133345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=6638951601973133345&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/6638951601973133345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/6638951601973133345'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/09/sap-user-groups.html' title='SAP User Groups'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-1281448338826773745</id><published>2011-09-05T20:48:00.000+01:00</published><updated>2011-09-05T20:48:49.202+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Management'/><category scheme='http://www.blogger.com/atom/ns#' term='Space'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='Indexes'/><title type='text'>Monitoring Index Usage In Oracle 10G Using V$OBJECT_USAGE</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Have you got some large indexes creeping around?&lt;br /&gt;Some of my systems have 10GB indexes.&lt;br /&gt;These take valuable resources away from the Oracle database:&lt;br /&gt;- DML time (INSERT, UPDATE etc).&lt;br /&gt;- Stats generation time.&lt;br /&gt;- Segment space (hard disk).&lt;br /&gt;- Structure validation time.&lt;br /&gt;- Recovery time.&lt;br /&gt;&lt;br /&gt;Removing the index may not be an option. &amp;nbsp;But what if it's not actually used!!&lt;br /&gt;&lt;br /&gt;How can we tell if it's used?&lt;br /&gt;Well you could monitor all SQL in the shared pool using the AWR capture script &lt;a href="http://www.remote-dba.net/oracle_10g_tuning/t_oracle_index_usage_tracking.htm"&gt; http://www.remote-dba.net/oracle_10g_tuning/t_oracle_index_usage_tracking.htm&lt;/a&gt;, or you could use Jonathan's script &lt;a href="http://jonathanlewis.wordpress.com/segment-scans/"&gt;http://jonathanlewis.wordpress.com/segment-scans/&lt;/a&gt; to see if the index segment(s) has been scanned (full scan). &amp;nbsp;But these don't comprehensively give you a definitive answer.&lt;br /&gt;There could be holes in your monitoring.&lt;br /&gt;&lt;br /&gt;Instead, you could use the V$OBJECT_USAGE view to monitor index usage.&lt;br /&gt;Although a very basic method, if you only want to know definitively if an index has been used or not, then it gives you the answer.&lt;br /&gt;It is described in great detail here: &lt;a href="http://wiki.oracle.com/page/Monitor+Index+Usage"&gt; http://wiki.oracle.com/page/Monitor+Index+Usage&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-AcwpCY-Pp6Y/ThrOr_3vfYI/AAAAAAAAAJE/miW6UL2LcQQ/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B1-794905.jpg"&gt;&lt;img border="0" height="46" src="http://3.bp.blogspot.com/-AcwpCY-Pp6Y/ThrOr_3vfYI/AAAAAAAAAJE/miW6UL2LcQQ/s640/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B1-794905.jpg" width="640" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Turn on: &lt;br /&gt;&lt;code&gt;alter index &amp;lt;INDEX&amp;gt; monitoring usage;&lt;br /&gt;&lt;br /&gt;ALTER INDEX SAPSR3."JCDS~Z01" monitoring usage;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Turn off: &lt;br /&gt;&lt;code&gt;alter index &amp;lt;INDEX&amp;gt; nomonitoring usage;&lt;br /&gt;&lt;br /&gt;ALTER INDEX SAPSR3."JCDS~Z01" nomonitoring usage;&lt;/code&gt; &lt;br /&gt;&lt;br /&gt;Check usage (must be as owner of monitored objects): &lt;br /&gt;&lt;code&gt;select count(1) from v$object_usage; &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Or use query below to see all monitored objects: &lt;br /&gt;&lt;br /&gt;&lt;code&gt;SELECT &lt;br /&gt;u.name owner , &lt;br /&gt;io.name index_name , &lt;br /&gt;t.name table_name , &lt;br /&gt;DECODE(bitand(i.flags, 65536), 0, 'NO', 'YES') monitoring , &lt;br /&gt;DECODE(bitand(ou.flags, 1), 0, 'NO', 'YES') used , &lt;br /&gt;ou.start_monitoring start_monitoring , &lt;br /&gt;ou.end_monitoring END_MONITORING &lt;br /&gt;FROM &lt;br /&gt;sys.user$ u , &lt;br /&gt;sys.obj$ io , &lt;br /&gt;sys.obj$ t , &lt;br /&gt;sys.ind$ i , &lt;br /&gt;sys.object_usage ou &lt;br /&gt;WHERE &lt;br /&gt;i.obj#    = ou.obj# &lt;br /&gt;AND io.obj# = ou.obj# &lt;br /&gt;AND t.obj#  = i.bo# &lt;br /&gt;AND u.user# = io.owner#;&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-1281448338826773745?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/1281448338826773745/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=1281448338826773745&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/1281448338826773745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/1281448338826773745'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/09/monitoring-index-usage-in-oracle-10g.html' title='Monitoring Index Usage In Oracle 10G Using V$OBJECT_USAGE'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-AcwpCY-Pp6Y/ThrOr_3vfYI/AAAAAAAAAJE/miW6UL2LcQQ/s72-c/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B1-794905.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-8267490375042061743</id><published>2011-09-01T18:16:00.000+01:00</published><updated>2011-09-01T18:16:40.490+01:00</updated><title type='text'>Basic Performance Tuning Guide - SAP NetWeaver 7.0 - Part IV - ABAP Runtime Analysis</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;This is the final part of my SAP NetWeaver 7.0, Basic Performance Tuning Guide.&lt;br /&gt;You may wish to review &lt;a href="http://darrylgriffiths.blogspot.com/2011/06/basic-performance-tuning-guide-sap.html"&gt;Part I&lt;/a&gt;, &lt;a href="http://darrylgriffiths.blogspot.com/2011/07/basic-performance-tuning-guide-sap.html"&gt;Part II&lt;/a&gt; or Part &lt;a href="http://darrylgriffiths.blogspot.com/2011/08/basic-performance-tuning-guide-sap.html"&gt;III&lt;/a&gt;.&lt;br /&gt;In this part I will focus on the use of ABAP Runtime Analysis to check performance of ABAP programs/reports. &amp;nbsp;This will help you locate areas of ABAP that are eating up valuable response time.&lt;br /&gt;&lt;br /&gt;Execute transaction SE30.&lt;br /&gt;Enter the transaction (or program or function module) that you wish to analyse:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-vpnMdnX8J3A/TjbAT4gqBjI/AAAAAAAAAJk/-md1Slc6FEU/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B1-723500.jpg"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-vpnMdnX8J3A/TjbAT4gqBjI/AAAAAAAAAJk/-md1Slc6FEU/s320/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B1-723500.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Edit the "Measurement Restrictions" variant to either create your own, or simply adjust the DEFAULT.&lt;br /&gt;This will allow us to display additional information which can be very useful when trying to determine performance problems.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-yHrc_m_k88U/TjbAUO_RK9I/AAAAAAAAAJs/9_LGmMwswvo/s1600/PBrush%2B2-724182.jpg"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-yHrc_m_k88U/TjbAUO_RK9I/AAAAAAAAAJs/9_LGmMwswvo/s320/PBrush%2B2-724182.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Tick the "DB-level ops" option on the Statements tab:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-ZK1oJ-jEvaQ/TjbAUeUPFpI/AAAAAAAAAJ0/h7JVOLXbezM/s1600/PBrush%2B3-724916.jpg"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-ZK1oJ-jEvaQ/TjbAUeUPFpI/AAAAAAAAAJ0/h7JVOLXbezM/s320/PBrush%2B3-724916.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;On the Duration/Type tab, select "None" for Aggregation and tick "With memory use":&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-kTi4TRI5ULI/TjbAUlZxWyI/AAAAAAAAAJ8/e1LBY-BS7P4/s1600/PBrush%2B4-726432.jpg"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-kTi4TRI5ULI/TjbAUlZxWyI/AAAAAAAAAJ8/e1LBY-BS7P4/s320/PBrush%2B4-726432.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The transaction or program you entered will be run, but you should see a prompt at the bottom of the screen telling you that the measurement process has started:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-ExPKYPTeW9c/TjbAU4f6hQI/AAAAAAAAAKE/FcQEFzu2kWo/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B5-727003.jpg"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-ExPKYPTeW9c/TjbAU4f6hQI/AAAAAAAAAKE/FcQEFzu2kWo/s320/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B5-727003.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Perform the actions you need in the transaction/program.&lt;br /&gt;Once you have finished, simply click Back (exit from the transaction) to the SE30 main screen:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-zSQDxHF3m8A/TjbAU_w8tMI/AAAAAAAAAKM/TMxO1RzKW3c/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B6-727764.jpg"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-zSQDxHF3m8A/TjbAU_w8tMI/AAAAAAAAAKM/TMxO1RzKW3c/s320/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B6-727764.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The SE30 screen will display a prompt showing the analysis has finished:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-fSli8jzYHdw/TjbAVGwH-JI/AAAAAAAAAKU/naKy14hvUGo/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B7-728303.jpg"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-fSli8jzYHdw/TjbAVGwH-JI/AAAAAAAAAKU/naKy14hvUGo/s320/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B7-728303.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The trace data is stored in a file on the SAP instance server.&lt;br /&gt;This can be seen by clicking the "File Info..." button:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-CWHl0JQvl5E/TjbAVEeetdI/AAAAAAAAAKc/_JHppSE0cQ0/s1600/PBrush%2B8-728716.jpg"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-CWHl0JQvl5E/TjbAVEeetdI/AAAAAAAAAKc/_JHppSE0cQ0/s320/PBrush%2B8-728716.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can see the file name and path:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-Qqr-7KmrdzA/TjbAVee_p7I/AAAAAAAAAKk/uXhp_CZ_UJ0/s1600/PBrush%2B9-729753.jpg"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-Qqr-7KmrdzA/TjbAVee_p7I/AAAAAAAAAKk/uXhp_CZ_UJ0/s320/PBrush%2B9-729753.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you need to load the trace data again for analysis, you can simply click the "Other File..." button on the main screen.&lt;br /&gt;It's also possible to transfer the analysis files via RFC to another SAP system from the "Other File..." sub-screens.&lt;br /&gt;This is very useful if you want to compare performance between two systems.&lt;br /&gt;&lt;b&gt; NOTE:&lt;/b&gt; The performance data files are only retained on the server for eight days. &amp;nbsp;I haven't found a way of extending this.&lt;br /&gt;&lt;br /&gt;Let's analyse the stats.&lt;br /&gt;Click the Evaluate button:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-j62Z7Wj5pHI/TjbAVgrADyI/AAAAAAAAAKs/WPz3wdFo7YU/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B10-730437.jpg"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-j62Z7Wj5pHI/TjbAVgrADyI/AAAAAAAAAKs/WPz3wdFo7YU/s320/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B10-730437.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You will see a basic breakdown of the transaction runtime performance analysis in histogram form.&lt;br /&gt;The three different areas are shown (ABAP, Database and System) against time (as a percentage):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-MgyFl1Jehxg/TjbAVrcuhpI/AAAAAAAAAK0/0BMHuejnuao/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B11-730951.jpg"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-MgyFl1Jehxg/TjbAVrcuhpI/AAAAAAAAAK0/0BMHuejnuao/s320/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B11-730951.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;More details on this screen can be found here: &lt;a href="http://help.sap.com/saphelp_nw70/helpdata/en/c6/617d27e68c11d2b2ab080009b43351/content.htm"&gt; http://help.sap.com/saphelp_nw70/helpdata/en/c6/617d27e68c11d2b2ab080009b43351/content.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The values shown correlate to the response times measured in the single record statistics plus the time required for analysis.&lt;br /&gt;Note that DATABASE time above, also includes the time the system takes to open and close cursors etc, not just the SQL runtime.&lt;br /&gt;For reference, the STAD output for the same operation (notice the slightly lower DB req time):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-uWXd2-EcfBs/TjbAV5RiIvI/AAAAAAAAAK8/v01LZznM27s/s1600/PBrush%2B12-731765.jpg"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-uWXd2-EcfBs/TjbAV5RiIvI/AAAAAAAAAK8/v01LZznM27s/s320/PBrush%2B12-731765.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The most interesting buttons at the top of the SE30 screen are "Hit List", "Table Hit List" and "Call hierarchy".&lt;br /&gt;&amp;nbsp;Click the Hit List button:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-6S5F05CAPjo/TjbAWFkCS_I/AAAAAAAAALE/bk598c63QX8/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B13-732512.jpg"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-6S5F05CAPjo/TjbAWFkCS_I/AAAAAAAAALE/bk598c63QX8/s320/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B13-732512.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The Hit List will be displayed in descending order (gross time):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-F9EQBd8G_aU/TjbAW-zu-_I/AAAAAAAAALk/CK3xYZH0izA/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B17-735264.jpg"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-F9EQBd8G_aU/TjbAW-zu-_I/AAAAAAAAALk/CK3xYZH0izA/s320/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B17-735264.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The columns are defined as follows:&lt;br /&gt;&lt;br /&gt;"&lt;i&gt;&lt;b&gt;No.&lt;/b&gt;&lt;/i&gt;" - Shows the number of times a call was made.&lt;br /&gt;If a "SELECT" is performed in a loop, then this will show the number of times the call was made in total in the loop.&lt;br /&gt;&lt;br /&gt;"&lt;i&gt;&lt;b&gt;Gross&lt;/b&gt;&lt;/i&gt;" - Total execution time in microseconds (running bottom to top of the hit list).&lt;br /&gt;"&lt;i&gt;&lt;b&gt;Net&lt;/b&gt;&lt;/i&gt;" - The time in microseconds for the specific call(s)&lt;br /&gt;"&lt;i&gt;&lt;b&gt;Call&lt;/b&gt;&lt;/i&gt;" - The program component that was being executed.&lt;br /&gt;"&lt;i&gt;&lt;b&gt;In program&lt;/b&gt;&lt;/i&gt;" - The main program of the component.&lt;br /&gt;"&lt;i&gt;&lt;b&gt;Type&lt;/b&gt;&lt;/i&gt;" - The type of call (DB, System, Non-system).&lt;br /&gt;&lt;br /&gt;SAP says here&amp;nbsp;&lt;a href="http://help.sap.com/saphelp_nw70/helpdata/en/c6/617d27e68c11d2b2ab080009b43351/content.htm:"&gt;http://help.sap.com/saphelp_nw70/helpdata/en/c6/617d27e68c11d2b2ab080009b43351/content.htm:&lt;/a&gt;&lt;br /&gt;"&lt;i&gt;Gross time &lt;br /&gt;The total time required for a call. This includes the runtime of all modularization units and ABAP statements called by the subject.&lt;br /&gt;&lt;br /&gt;Net time &lt;br /&gt;The net time is the gross time less the time required for modularization units (MODULE, PERFORM, CALL FUNCTION, CALL SCREEN, CALL TRANSACTION, CALL METHOD, CALL DIALOG, SUBMIT), and for the ABAP statements listed separately. For statements such as APPEND, the gross time is the same as the net time.&lt;/i&gt;"&lt;br /&gt;&lt;br /&gt;In this view, you are looking for records in the list with the larger "Net" value.&lt;br /&gt;This indicates that a large amount of overall time was spent in the call/program listed.&lt;br /&gt;&lt;br /&gt;If the Gross and Net time fields do not hold the same value for a record, then double clicking the record will display the sub-components and switch to the hierarchy view:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-JG31AhL_QRc/TjbAW5x-InI/AAAAAAAAALs/EpcY5hjR81w/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B18-735899.jpg"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-JG31AhL_QRc/TjbAW5x-InI/AAAAAAAAALs/EpcY5hjR81w/s320/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B18-735899.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;At any time, you can single click a record, then jump to the ABAP source by clicking the "Display Source Code" button:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-7_RhBQgtiao/TjbAXOxWRtI/AAAAAAAAAL0/DBngvHYo10o/s1600/PBrush%2B19-736590.jpg"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-7_RhBQgtiao/TjbAXOxWRtI/AAAAAAAAAL0/DBngvHYo10o/s320/PBrush%2B19-736590.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-Q7m0zxkOR9U/TjbAXYRs-SI/AAAAAAAAAL8/RtsEqu8wf_M/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B20-737166.jpg"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-Q7m0zxkOR9U/TjbAXYRs-SI/AAAAAAAAAL8/RtsEqu8wf_M/s320/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B20-737166.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;NOTE:&lt;/b&gt; I always recommend you enable the "New" ABAP editor. &amp;nbsp;It gives you visibility of line numbers and highlights the results of text "Find" operations so you can see what's been found.&lt;br /&gt;&lt;br /&gt;Back on the main analysis screen, select the "Table Hit List" button:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-3x6_Ni2pHqc/TjbAWQSH6TI/AAAAAAAAALM/e-ntDNAcv54/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B14-733274.jpg"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-3x6_Ni2pHqc/TjbAWQSH6TI/AAAAAAAAALM/e-ntDNAcv54/s320/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B14-733274.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The list of tables used in the execution of the transaction/program are displayed in descending order of runtime:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-yhZm1X-1ACQ/TjbAX8wt9yI/AAAAAAAAAMM/VsXodiDejGQ/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B22-738958.jpg"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-yhZm1X-1ACQ/TjbAX8wt9yI/AAAAAAAAAMM/VsXodiDejGQ/s320/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B22-738958.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The #Acces column, displays the number of times the table was accessed (read/write) and corresponds to any loops you may have seen in the "Hit List" screen No. column.&lt;br /&gt;&lt;br /&gt;The Class column shows TRANSP (Transparent Table), VIEW or POOL (cluster table).&lt;br /&gt;&lt;br /&gt;Double click a table to display the call points, from which you can jump to the ABAP source.&lt;br /&gt;&lt;br /&gt;Finally, from the main analysis screen, click the "Call hierarchy" button:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-yqVEJizZMDA/TjbAWiTOJgI/AAAAAAAAALU/tGUroT_iH8w/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B15-734074.jpg"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-yqVEJizZMDA/TjbAWiTOJgI/AAAAAAAAALU/tGUroT_iH8w/s320/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B15-734074.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The Hit List that you have already seen, will now be displayed in a hierarchy with sub-calls indented under the parent call:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-DnQAhHMKThg/TjbAYC8v-nI/AAAAAAAAAMc/NsRl1aoSThQ/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B24-740208.jpg"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-DnQAhHMKThg/TjbAYC8v-nI/AAAAAAAAAMc/NsRl1aoSThQ/s320/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B24-740208.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The only real difference between this view and the Hit List table view, is the indenting.&lt;br /&gt;You can still double click to display the execution time overview for that sub-call, or use the "Display Source Code" button to jump to the ABAP source.&lt;br /&gt;&lt;br /&gt;In my example screen shots, you will have seen that the PMSDO fetch is taking a large amount of the response time.&lt;br /&gt;I was able to find that this operation was inside the GET_DATA function and check the ABAP code.&lt;br /&gt;&lt;br /&gt;The main thing you are looking for in poor performing ABAP code, is where does the execution time get eaten up. &amp;nbsp;As a side note, you may also check the amount of memory used if you are looking to resolve TSV PAGE ALLOC errors.&lt;br /&gt;&lt;br /&gt;Try sorting the Hit List by "Net Time" to find the individual components with the highest net execution time.&lt;br /&gt;Check if the operation is a database related call or not. &amp;nbsp;You can then use &lt;a href="http://darrylgriffiths.blogspot.com/2011/08/basic-performance-tuning-guide-sap.html"&gt;Part III&lt;/a&gt; to trace this further with an SQL trace.&lt;br /&gt;Check the number of loop iterations (The "No." column) in the "Hit List".  Are you performing an expensive routine too many times in a loop?&lt;br /&gt;&lt;br /&gt;Validate that the code is not doing too much work using iTabs, when some of the work could be done in the database.&lt;br /&gt;The database is the ultimate place to do sorting, grouping and record elimination.&lt;br /&gt;Don't pull back more records than you need, only to loop through an iTab in ABAP and remove them, it's more expensive.&lt;br /&gt;&lt;br /&gt;That's it for now. &amp;nbsp;Thanks for reading.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-8267490375042061743?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/8267490375042061743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=8267490375042061743&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/8267490375042061743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/8267490375042061743'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/09/basic-performance-tuning-guide-sap.html' title='Basic Performance Tuning Guide - SAP NetWeaver 7.0 - Part IV - ABAP Runtime Analysis'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-vpnMdnX8J3A/TjbAT4gqBjI/AAAAAAAAAJk/-md1Slc6FEU/s72-c/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B1-723500.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-6277226449229729173</id><published>2011-08-30T20:14:00.000+01:00</published><updated>2011-08-30T20:14:34.783+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OEM'/><category scheme='http://www.blogger.com/atom/ns#' term='Grid Control'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='Macro'/><title type='text'>Lock/Unlock OEM Grid Control Accounts From Excel Macro</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-family: Tahoma, sans-serif; font-size: x-small;"&gt; &lt;/span&gt;&lt;br /&gt;As a complimentary post to my previous blog post on &lt;a href="http://darrylgriffiths.blogspot.com/2011/08/report-all-oracle-user-accounts-through.html"&gt;Reporting All Oracle User Accounts Through OEM Grid Control&lt;/a&gt;, I have decided to post the code for an Excel VBA macro which uses three buttons to call the specific OEM Grid Control URLs that will enable you Lock/UnLock or Edit an Oracle user account using the OEM Grid Control user interface, but from a link on an Excel spreadsheet.&lt;br /&gt;&lt;br /&gt;This sounds confusing so maybe I should explain the reason behind this.&lt;br /&gt;I needed to know about all Oracle user accounts throughout the Oracle landscape so that I could compare them to a dump of Active Directory accounts.&lt;br /&gt;The AD accounts get locked when people leave, but the leavers process didn't always include the DBA in the 'cc list.&lt;br /&gt;So, armed with the Excel spreadsheet of AD users, I needed to marry the list to the Oracle accounts and then go and lock the Oracle accounts where the AD account had been locked/expired.&lt;br /&gt;&lt;br /&gt;Sound OK so far?&lt;br /&gt;Good. &amp;nbsp;So once I've got the Excel sheet with the ~200 Oracle accounts I need to lock, here's how it could be done using OEM Grid Control (you can give the spreadsheet to your 1st line support people, if they have OEM access).&lt;br /&gt;&lt;br /&gt;Three buttons on the spreadsheet: &amp;nbsp;Lock, UnLock and Edit.&lt;br /&gt;Just paste the code into the sheet's VBA section, then change the text "&amp;lt;your_oem_server&amp;gt;" and add the three buttons and hook them to the sub routines.&lt;br /&gt;I should mention that this was an Oracle Enterprise Manager Grid Control 10g implementation.&lt;br /&gt;&lt;br /&gt;Enjoy.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Private Sub CommandButton1_Click() &lt;br /&gt;' Call to open IE with the URL to lock the user based on the data on the current sheet on the current selected row. &lt;br /&gt;&lt;br /&gt;Dim str_URLpart1 As String &lt;br /&gt;Dim str_URLpart2 As String &lt;br /&gt;Dim str_URLpart3 As String &lt;br /&gt;Dim str_URLpart4 As String &lt;br /&gt;Dim str_URLpart5 As String &lt;br /&gt;Dim str_complete_URL As String &lt;br /&gt;Dim str_sys As String &lt;br /&gt;Dim str_user As String &lt;br /&gt;Dim IE As Object &lt;br /&gt;&lt;br /&gt;str_URLpart1 = "http://&amp;lt;your_oem_server&amp;gt;/em/console/database/security/user?oname=" &lt;br /&gt;str_URLpart2 = "&amp;amp;amp;event=lockUser&amp;amp;amp;cancelURL=%2Fem%2Fconsole%2Fdatabase%2FdatabaseObjectsSearch%3Fevent%3Dredisplay%26target%3D"&lt;br /&gt;str_URLpart3 = "%26type%3Doracle_database%26objectType%3DUSER%26otype%3DUSER&amp;amp;amp;backURL=%2Fem%2Fconsole%2Fdatabase%2FdatabaseObjectsSearch%3Fevent%3Dredisplay%26target%3D"&lt;br /&gt;str_URLpart4 = "%26type%3Doracle_database%26objectType%3DUSER%26otype%3DUSER&amp;amp;amp;otype=USER&amp;amp;amp;target="&lt;br /&gt;str_URLpart5 = "&amp;amp;amp;type=oracle_database" &lt;br /&gt;str_user = Range("D" &amp;amp;amp; ActiveCell.Row).Value&lt;br /&gt;str_sys = Range("A" &amp;amp;amp; ActiveCell.Row).Value &lt;br /&gt;str_complete_URL = str_URLpart1 + str_user + str_URLpart2 + str_sys + str_URLpart3 + str_sys + str_URLpart4 + str_sys + str_URLpart5&lt;br /&gt;&lt;br /&gt;' Create InternetExplorer Object &lt;br /&gt;Set IE = CreateObject("InternetExplorer.Application") &lt;br /&gt;&lt;br /&gt;' You can uncoment Next line To see form results &lt;br /&gt;IE.Visible = True &lt;br /&gt;&lt;br /&gt;' Send the form data To URL As POST binary request &lt;br /&gt;IE.Navigate str_complete_URL &lt;br /&gt;&lt;br /&gt;' Statusbar &lt;br /&gt;Application.StatusBar = "URL is loading. Please wait..." &lt;br /&gt;&lt;br /&gt;' Wait while IE loading... &lt;br /&gt;Do While IE.Busy &lt;br /&gt;Application.Wait DateAdd("s", 1, Now) &lt;br /&gt;Loop &lt;br /&gt;&lt;br /&gt;Application.StatusBar = "" &lt;br /&gt;&lt;br /&gt;End Sub &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Private Sub CommandButton2_Click() &lt;br /&gt;&lt;br /&gt;' Call to open IE with the URL to unlock the user based on the data on the current sheet on the current selected row. &lt;br /&gt;&lt;br /&gt;Dim str_URLpart1 As String &lt;br /&gt;Dim str_URLpart2 As String &lt;br /&gt;Dim str_URLpart3 As String &lt;br /&gt;Dim str_URLpart4 As String &lt;br /&gt;Dim str_URLpart5 As String &lt;br /&gt;Dim str_complete_URL As String &lt;br /&gt;Dim str_sys As String &lt;br /&gt;Dim str_user As String &lt;br /&gt;Dim IE As Object &lt;br /&gt;&lt;br /&gt;str_URLpart1 = "http://&amp;lt;your_oem_server&amp;gt;/em/console/database/security/user?oname=" &lt;br /&gt;str_URLpart2 = "&amp;amp;amp;event=unlockUser&amp;amp;amp;cancelURL=%2Fem%2Fconsole%2Fdatabase%2FdatabaseObjectsSearch%3Fevent%3Dredisplay%26target%3D"&lt;br /&gt;str_URLpart3 = "%26type%3Doracle_database%26objectType%3DUSER%26otype%3DUSER&amp;amp;amp;backURL=%2Fem%2Fconsole%2Fdatabase%2FdatabaseObjectsSearch%3Fevent%3Dredisplay%26target%3D"&lt;br /&gt;str_URLpart4 = "%26type%3Doracle_database%26objectType%3DUSER%26otype%3DUSER&amp;amp;amp;otype=USER&amp;amp;amp;target="&lt;br /&gt;str_URLpart5 = "&amp;amp;amp;type=oracle_database" &lt;br /&gt;str_user = Range("D" &amp;amp;amp; ActiveCell.Row).Value&lt;br /&gt;str_sys = Range("A" &amp;amp;amp; ActiveCell.Row).Value &lt;br /&gt;str_complete_URL = str_URLpart1 + str_user + str_URLpart2 + str_sys + str_URLpart3 + str_sys + str_URLpart4 + str_sys + str_URLpart5&lt;br /&gt;&lt;br /&gt;' Create InternetExplorer Object &lt;br /&gt;Set IE = CreateObject("InternetExplorer.Application") &lt;br /&gt;&lt;br /&gt;' You can uncoment Next line To see form results &lt;br /&gt;IE.Visible = True &lt;br /&gt;&lt;br /&gt;' Send the form data To URL As POST binary request &lt;br /&gt;IE.Navigate str_complete_URL &lt;br /&gt;&lt;br /&gt;' Statusbar &lt;br /&gt;Application.StatusBar = "URL is loading. Please wait..." &lt;br /&gt;&lt;br /&gt;' Wait while IE loading... &lt;br /&gt;Do While IE.Busy &lt;br /&gt;Application.Wait DateAdd("s", 1, Now) &lt;br /&gt;Loop &lt;br /&gt;&lt;br /&gt;Application.StatusBar = "" &lt;br /&gt;&lt;br /&gt;End Sub &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Private Sub CommandButton3_Click() &lt;br /&gt;&lt;br /&gt;' Call to open IE with the URL to edit the user based on the data on the current sheet on the current selected row. &lt;br /&gt;&lt;br /&gt;Dim str_URLpart1 As String &lt;br /&gt;Dim str_URLpart2 As String &lt;br /&gt;Dim str_URLpart3 As String &lt;br /&gt;Dim str_URLpart4 As String &lt;br /&gt;Dim str_URLpart5 As String &lt;br /&gt;Dim str_complete_URL As String &lt;br /&gt;Dim str_sys As String &lt;br /&gt;Dim str_user As String &lt;br /&gt;Dim IE As Object &lt;br /&gt;&lt;br /&gt;str_URLpart1 = "http://&amp;lt;your_oem_server&amp;gt;/em/console/database/security/user?oname=" &lt;br /&gt;str_URLpart2 = "&amp;amp;amp;event=edit&amp;amp;amp;cancelURL=%2Fem%2Fconsole%2Fdatabase%2FdatabaseObjectsSearch%3Fevent%3Dredisplay%26target%3D"&lt;br /&gt;str_URLpart3 = "%26type%3Doracle_database%26objectType%3DUSER%26otype%3DUSER&amp;amp;amp;backURL=%2Fem%2Fconsole%2Fdatabase%2FdatabaseObjectsSearch%3Fevent%3Dredisplay%26target%3D"&lt;br /&gt;str_URLpart4 = "%26type%3Doracle_database%26objectType%3DUSER%26otype%3DUSER&amp;amp;amp;otype=USER&amp;amp;amp;target="&lt;br /&gt;str_URLpart5 = "&amp;amp;amp;type=oracle_database" &lt;br /&gt;str_user = Range("D" &amp;amp;amp; ActiveCell.Row).Value&lt;br /&gt;str_sys = Range("A" &amp;amp;amp; ActiveCell.Row).Value &lt;br /&gt;str_complete_URL = str_URLpart1 + str_user + str_URLpart2 + str_sys + str_URLpart3 + str_sys + str_URLpart4 + str_sys + str_URLpart5&lt;br /&gt;&lt;br /&gt;' Create InternetExplorer Object &lt;br /&gt;Set IE = CreateObject("InternetExplorer.Application") &lt;br /&gt;&lt;br /&gt;' You can uncoment Next line To see form results &lt;br /&gt;IE.Visible = True &lt;br /&gt;&lt;br /&gt;' Send the form data To URL As POST binary request&lt;br /&gt;IE.Navigate str_complete_URL &lt;br /&gt;&lt;br /&gt;' Statusbar &lt;br /&gt;Application.StatusBar = "URL is loading. Please wait..." &lt;br /&gt;&lt;br /&gt;' Wait while IE loading... &lt;br /&gt;Do While IE.Busy &lt;br /&gt;Application.Wait DateAdd("s", 1, Now) &lt;br /&gt;Loop &lt;br /&gt;&lt;br /&gt;Application.StatusBar = "" &lt;br /&gt;&lt;br /&gt;End Sub&lt;/code&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-6277226449229729173?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/6277226449229729173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=6277226449229729173&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/6277226449229729173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/6277226449229729173'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/08/lockunlock-oem-grid-control-accounts.html' title='Lock/Unlock OEM Grid Control Accounts From Excel Macro'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-2388034542290538342</id><published>2011-08-25T19:56:00.001+01:00</published><updated>2011-08-25T20:19:41.278+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Musing'/><category scheme='http://www.blogger.com/atom/ns#' term='Disaster Recovery'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><title type='text'>Disaster Recovery - Where To Start</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Perhaps IT implementors think that Disaster Recovery is a dark art, or maybe it's just another item to de-scope from the implementation project due to time restrictions or budget cuts.&lt;br /&gt;But I find that it's coming up more and more as part of the yearly financial system audits (the ones we love to hate!).&lt;br /&gt;Not only is it an action on the main financial systems, but the auditors are training there sights on the ancillary systems too.&lt;br /&gt;&lt;br /&gt;So where do I normally start?&lt;br /&gt;Usually it's not a case of where I would like to start, it's where I *have* to start due to missing system documentation and configuration information.&lt;br /&gt;Being a DBA, I'm responsible for ensuring the continuity of business with respect to the database system and the preservation of the data.&lt;br /&gt;So no matter what previous work has been completed to provide a DR capability, or a HA capability (so often confused) it's useless without any documentation or analysis to show what the tolerances are (how much data can you afford to lose - &lt;a href="http://www.google.co.uk/url?sa=t&amp;amp;source=web&amp;amp;cd=2&amp;amp;ved=0CCYQFjAB&amp;amp;url=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FRecovery_point_objective&amp;amp;ei=C5lWTpLQFsqx8gOhvei-DA&amp;amp;usg=AFQjCNFl6EDOms5GANwUNtgWhx6odaI1Sg&amp;amp;sig2=uHEZO1TrdcS8pGxTLcxfNg"&gt;RPO&lt;/a&gt;, and how much time it will take to get a system back, &lt;a href="http://www.google.co.uk/url?sa=t&amp;amp;source=web&amp;amp;cd=2&amp;amp;ved=0CCAQFjAB&amp;amp;url=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FRecovery_time_objective&amp;amp;ei=7ZhWTsL7MYy08QOtz9yTDA&amp;amp;usg=AFQjCNFYD7QBEipkJQl9QlsbiYm3auaOOA&amp;amp;sig2=x3w5dj70J340S-VGGF0njQ"&gt;RTO&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;First things first, ensure that the business recognises that DR is not just an IT task.&lt;br /&gt;You should point them at the host of web pages devoted to creating the perfect Business Continuity Plan (&lt;a href="http://www.google.co.uk/url?sa=t&amp;amp;source=web&amp;amp;cd=2&amp;amp;ved=0CCAQFjAB&amp;amp;url=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FBusiness_continuity_planning&amp;amp;ei=w5VWTon5EIbD8QPevYWdDA&amp;amp;usg=AFQjCNEpCMD3OPZBKCshZFhkBpMVU_g6Dg&amp;amp;sig2=8YbqinaQyGLBH_LxWptaTQ"&gt;BCP&lt;/a&gt;).&lt;br /&gt;It states that a BCP should include what *the business* intends to do in a disaster. &amp;nbsp;This more often than not involves a slight re-work to the standard business processes. &amp;nbsp;Whether this involves going to a paper based temporary system or just using a cut-down process, the business needs a plan.&lt;br /&gt;It's not all about Recovery Point Objective and Recovery Time Objective!&lt;br /&gt;A nice "swim lane" diagram will help a lot when picturing the business process.&lt;br /&gt;You should start at the beginning of your business process (normally someone wants to buy something), then work through to the end (your company gets paid). &amp;nbsp;Add all the steps in between and overlay the systems used. &amp;nbsp;Imagine if those systems were not present, how could you work around them.&lt;br /&gt;&lt;br /&gt;Secondly, you need to evaluate the risks among the systems you support. &amp;nbsp;Identify points of failure.&lt;br /&gt;To be able to do this effectively, you will need to know your systems inside out.&lt;br /&gt;You should be aware of *all* dependencies (e.g. interfaces) especially with the more complex business systems like ERP, BPM, BI, middleware etc.&lt;br /&gt;Start by creating a baseline of your existing configuration:&lt;br /&gt;- What applications do you have.&lt;br /&gt;- What versions are they.&lt;br /&gt;- How are they linked (interfaces).&lt;br /&gt;- Who uses them (business areas).&lt;br /&gt;- What type of business data do they store (do they store data at all).&lt;br /&gt;&lt;br /&gt;Third, you should make yourself aware of the hardware capabilities of important things like your storage sub-system (SAN, NAS etc). &amp;nbsp;Can you leverage these devices to make yourself better protected/prepared.&lt;br /&gt;An overall architecture diagram speaks a thousand words.&lt;br /&gt;&lt;br /&gt;Once you understand what you have got, only then can you start to formulate a plan for the worst.&lt;br /&gt;Decide what "the worst" actually is! &amp;nbsp;I've worked for companies that are convinced an aeroplane would decimate the data centre at any moment. &amp;nbsp;All the prep-work in the world couldn't prevent it from happening, but maybe you can save the data (if not yourself ;-) ).&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-2388034542290538342?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/2388034542290538342/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=2388034542290538342&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/2388034542290538342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/2388034542290538342'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/08/disaster-recovery-where-to-start.html' title='Disaster Recovery - Where To Start'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-4229503754005347611</id><published>2011-08-22T19:27:00.000+01:00</published><updated>2011-11-12T10:21:55.727Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='VMWare'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Virtualisation Conundrum</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Whilst researching ideas for using my &lt;a href="http://darrylgriffiths.blogspot.com/2011/07/vmware-esxi-41-test-rig-update.html"&gt;VMware ESXi test rig&lt;/a&gt;, I came across this blog site:&amp;nbsp;&lt;a href="http://weinshenker.net/blog/2011/07/26/oracle-redhat-vmware/"&gt;http://weinshenker.net/blog/2011/07/26/oracle-redhat-vmware/&lt;/a&gt;&lt;br /&gt;I've added it to my Fav's as a *must read* once in a while.&lt;br /&gt;It's packed with some very interesting articles concerning Linux, Virtualisation and more importantly, Oracle.&lt;br /&gt;&lt;br /&gt;It may have changed my mind about using Oracle Enterprise Linux. &amp;nbsp;I'm considering shifting up the Linux tree to RedHat, or experimenting with Fedora.&lt;br /&gt;&lt;br /&gt;See the Wikipedia tree diagram&amp;nbsp;&lt;a href="http://upload.wikimedia.org/wikipedia/commons/8/8c/Gldt.svg"&gt;http://upload.wikimedia.org/wikipedia/commons/8/8c/Gldt.svg&lt;/a&gt;&amp;nbsp;on the right of the &lt;a href="http://en.wikipedia.org/wiki/Linux_distribution"&gt;Wikipedia Linux Distro page&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-4229503754005347611?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/4229503754005347611/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=4229503754005347611&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/4229503754005347611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/4229503754005347611'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/08/virtulisation-conundrum.html' title='Virtualisation Conundrum'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-7773791326265251879</id><published>2011-08-13T17:18:00.002+01:00</published><updated>2011-08-13T17:20:37.925+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VMWare'/><title type='text'>Clone a VMware ESXi Virtual Machine from the Command Line</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;My version of VMware vSphere is obviously not the full "knock your socks off" version and prevents me from right clicking and cloning an existing VM.&lt;br /&gt;Not to be downhearted, there is another way...&lt;br /&gt;&lt;br /&gt;Pre-requisites:&lt;br /&gt;- VMware vSpehere client.&lt;br /&gt;- Access to the VMware ESXi server console &amp;amp; keyboard or an SSH client (like &lt;a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/"&gt;PUTTY&lt;/a&gt;&amp;nbsp;for Windows).&lt;br /&gt;- The VMware ESXi root user's password.&lt;br /&gt;&lt;br /&gt;Process:&lt;br /&gt;- Create the new VM using vSphere client.&lt;br /&gt;- Give it a very small hard disk.&lt;br /&gt;- Remove the hard disk from the VM once created.&lt;br /&gt;&lt;br /&gt;- Enable local tech support mode from VMware *console* screen, press ALT+F1 and log in as "unsupported" with the root password.&lt;br /&gt;or&lt;br /&gt;- Enable remote tech support mode from VMware *console* screen, then use an SSH client to log into the server as root.&lt;br /&gt;&lt;br /&gt;- Once you have a command line, locate the source virtual machine's datastore directory under /vmfs/volumes/&amp;lt;datastorename&amp;gt;:&lt;br /&gt;&lt;code&gt;# cd /vmfs/volumes/ds1/source_vm&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;- Change to the new target VM datastore directory:&lt;br /&gt;&lt;code&gt;# cd /vmfs/volumes/ds1/target_vm&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;- Now use vmkfstools to clone the disk (note the use of thin-provisioning, you don't have to):&lt;br /&gt;&lt;code&gt;# vmkfstools -i "/vmfs/volumes/ds1/source_vm/source_file.vmdk" "/vmfs/volumes/ds1/target_vm/target_file.vmdk" -d thin&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;- Back in the vSphere client, add the new disk to the target virtual machine and boot it.&lt;br /&gt;&lt;br /&gt;- Bob is your uncle.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-7773791326265251879?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/7773791326265251879/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=7773791326265251879&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/7773791326265251879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/7773791326265251879'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/08/clone-vmware-esxi-virtual-machine-from.html' title='Clone a VMware ESXi Virtual Machine from the Command Line'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-7069858226468774238</id><published>2011-08-12T20:51:00.000+01:00</published><updated>2011-08-12T20:51:47.699+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Management'/><category scheme='http://www.blogger.com/atom/ns#' term='Grid Control'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Use EMDIAG REPVFY to fix OEM issues</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;EMDIAG is a diagnostics utility specifically for the Oracle Enterprise Manager system.&lt;br /&gt;It is useful to diagnose issues with the repository of OEM as it doesn’t need the OMS to be running to use it. &lt;br /&gt;&lt;br /&gt;The Oracle document 763072.1 (Oracle Enterprise Manager Grid Control Release Notes for Linux and Windows 10g Release 5) suggests upgrading the EMDIAG kit before performing a general OEM upgrade (it's in the OEM pre-upgrade tasks list).&lt;br /&gt;&lt;br /&gt;Follow the steps in document 421499.1 to install the EMDIAG kit into the C:\ directory (you should see the old one already installed there).&lt;br /&gt;&lt;br /&gt;Follow the process in the document for upgrading the EMDIAG kit and check the Windows environment variable for the EMDIAG_HOME value.&lt;br /&gt;&lt;br /&gt;Once installed, use the “repvfy -version” command in the %EMDIAG_HOME%\bin directory to verify the current installed OEM software.&lt;br /&gt;&lt;br /&gt;To use EMDIAG, set your OracleHome from the command line:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;set ORACLE_HOME=C:\OracleHomes\oms10g&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Change to the EMDIAG_HOME bin directory and run repvfy:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-80Vz2aYQgTw/TjuOOCpcXpI/AAAAAAAAANE/J8fBoe9vAo0/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B1-779562.jpg"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-80Vz2aYQgTw/TjuOOCpcXpI/AAAAAAAAANE/J8fBoe9vAo0/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B1-779562.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now fix the errors where possible (generic operations that EMDIAG can perform to fix common problems):&lt;br /&gt;&lt;br /&gt;&lt;code&gt;repvfy -fix&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Some of the problems cannot be fixed automatically.&lt;br /&gt;You can get more details by running verify with greater detail:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;repvfy verify TARGETS -level 9 -detail&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;NOTE:&lt;/b&gt; You may want to redirect to a text file in Windows (&amp;gt; c:\TARGET_details.txt).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-BIrPDnalPwQ/TjuOOVnQ1RI/AAAAAAAAANM/j2OA7DIOnr0/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B2-781048.jpg"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-BIrPDnalPwQ/TjuOOVnQ1RI/AAAAAAAAANM/j2OA7DIOnr0/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B2-781048.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The detailed view may open a can of worms for you.&lt;br /&gt;Good luck!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-7069858226468774238?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/7069858226468774238/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=7069858226468774238&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/7069858226468774238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/7069858226468774238'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/08/use-emdiag-repvfy-to-fix-oem-issues.html' title='Use EMDIAG REPVFY to fix OEM issues'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-80Vz2aYQgTw/TjuOOCpcXpI/AAAAAAAAANE/J8fBoe9vAo0/s72-c/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B1-779562.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-6371997700735187902</id><published>2011-08-08T17:54:00.002+01:00</published><updated>2011-08-25T20:11:24.532+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OEM'/><category scheme='http://www.blogger.com/atom/ns#' term='Grid Control'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Report All Oracle User Accounts Through OEM Grid Control</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;You know the problem: You have Oracle Enterprise Manager Grid Control 10g installed and all your databases are configured in it.&lt;br /&gt;It allows you to manage your entire landscape. &amp;nbsp;Great!&lt;br /&gt;&lt;br /&gt;All of a sudden, a "leaver form" pops on your desk from HR with a long list of people who have left the company recently.&lt;br /&gt;Do they have accounts in your Oracle databases?&lt;br /&gt;If you have only one or two Oracle databases to check, then you can use the power of Grid Control to sort out the list in a few minutes.&lt;br /&gt;What if you've got 50+ databases?&lt;br /&gt;What if you've got 100+ databases?&lt;br /&gt;Don't they say: "The little jobs are the most time consuming"?&lt;br /&gt;&lt;br /&gt;You may maintain an external spreadsheet of Oracle accounts, or you may not. &amp;nbsp;If you do, or even if you don't, this article will show you how to configure a Oracle Enterprise Manager Grid Control 10g report that will show you all users accounts across the landscape at the click of a button. &amp;nbsp;You could use this technique to extend it to almost anything that can be done in an SQL or PL/SQL session.&lt;br /&gt;&lt;br /&gt;Architecture overview:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/--7Jk9kymXc8/TjgYNcPetoI/AAAAAAAAAMk/xJ4rZdZq5l8/s1600/Picture%2B%2528Enhanced%2BMetafile%2529%2B1-760738.jpg"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/--7Jk9kymXc8/TjgYNcPetoI/AAAAAAAAAMk/xJ4rZdZq5l8/s320/Picture%2B%2528Enhanced%2BMetafile%2529%2B1-760738.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;We will be creating a new OEM Grid Control job called LIST_USER_ACOUNT_DETAILS, and a new report called LIST_USER_ACCOUNT_DETAILS.&lt;br /&gt;The job is executed on the monitored database targets and it stores it's output in the usual MGMT$ table in the OEM repository database.&lt;br /&gt;The report simply pulls and re-connects the job output.&lt;br /&gt;&lt;br /&gt;In OEM Grid Control create a new job called "LIST_USER_ACCOUNT_DETAILS".&lt;br /&gt;Add the database targets or target group.&lt;br /&gt;&lt;br /&gt;Set the SQL script to be:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;SET HEAD OFF; &lt;br /&gt;SET PAGESIZE 9999; &lt;br /&gt;SET LINESIZE 999; &lt;br /&gt;SET TRIMOUT ON; &lt;br /&gt;SET TRIMSPOOL ON; &lt;br /&gt;SET FEEDBACK OFF; &lt;br /&gt;SET COLSEP ' '; &lt;br /&gt;COL MARKER FORMAT A2; &lt;br /&gt;COL USERNAME FORMAT A30; &lt;br /&gt;COL ACCOUNT_STATUS FORMAT A25; &lt;br /&gt;COL LOCK_DATE FORMAT A12; &lt;br /&gt;COL EXPIRY_DATE FORMAT A12; &lt;br /&gt;COL HAS_REMOVED_ROLE FORMAT A30; &lt;br /&gt;COL HAS_DBA_ROLE FORMAT A20; &lt;br /&gt;WHENEVER SQLERROR EXIT FAILURE; &lt;br /&gt;SELECT &lt;br /&gt;'@|' marker, &lt;br /&gt;username||'|' username, &lt;br /&gt;account_status||'|' account_status, &lt;br /&gt;'|'||TO_CHAR(lock_date,'DD-MM-RRRR')||'|' lock_date, &lt;br /&gt;'|'||TO_CHAR(expiry_date,'DD-MM-RRRR')||'|' expiry_date, &lt;br /&gt;'|'||DECODE((SELECT 'X' FROM dba_role_privs WHERE grantee = username AND granted_role ='REMOVED_ACCOUNTS'),'X','HAS ROLE "REMOVED_ACCOUNTS"','')||'|' has_removed_role,&lt;br /&gt;'|'||DECODE((SELECT 'X' FROM dba_role_privs WHERE grantee = username AND granted_role ='DBA'),'X','HAS DBA ROLE!!','') has_dba_role&lt;br /&gt;from dba_users;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Set the Parameters to be "-s" (silent):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-JKotwqf05Ho/TjgYNwDVHeI/AAAAAAAAAMs/mXWePuhkS8M/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B2-762387.jpg"&gt;&lt;img border="0" height="211" src="http://3.bp.blogspot.com/-JKotwqf05Ho/TjgYNwDVHeI/AAAAAAAAAMs/mXWePuhkS8M/s400/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B2-762387.jpg" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Set the Credentials to use an account capable of querying DBA_USERS and DBA_ROLE_PRIVS (you could change this to use ALL_ views and use a lower priviledged account).&lt;br /&gt;Set the schedule for the job.  However frequently you wish to query the account details.&lt;br /&gt;&lt;br /&gt;Submit the job for execution.&lt;br /&gt;&lt;br /&gt;Once the job runs, the job output will be visible in the OEM MGMT$JOB_STEP_HISTORY table.&lt;br /&gt;The actual SQLPlus output is stored in the OUTPUT column which is a CLOB field.&lt;br /&gt;We have had to insert a marker in the SQL so that the output contains a '@|' at the beginning of each line.  This is used to determine the start of each record in the OUTPUT CLOB.&lt;br /&gt;We just need to write a report to pull out the details.&lt;br /&gt;&lt;br /&gt;Create a new report called "LIST_USER_ACCOUNT_DETAILS".&lt;br /&gt;On the "General" tab, select the "Use the specified target" option and enter the hostname of your OEM Grid Control repository server (DB server).&lt;br /&gt;Select the "Run report using target privileges of the report owner (SYSMAN)" tick box.&lt;br /&gt;&lt;br /&gt;On the "Elements" tab, add a "Table from SQL" item and then set the header, then paste in the statement below:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;SELECT TARGET_NAME,JOB_TIME,ACCOUNT_DETAILS FROM ( &lt;br /&gt;SELECT '===============' TARGET_NAME,'================' JOB_TIME,'==================================================' ACCOUNT_DETAILS FROM DUAL&lt;br /&gt;UNION &lt;br /&gt;SELECT &lt;br /&gt;TARGET_NAME, &lt;br /&gt;TO_CHAR(END_TIME,'DD-MON-RRRR HH24:MI:SS') JOB_TIME, &lt;br /&gt;-- non-regexp option -- TO_CHAR(REPLACE(SUBSTR(mh.OUTPUT,INSTR(mh.OUTPUT,'@| ',1,ct.x),INSTR(mh.OUTPUT,'@| ',1,ct.x+1) - INSTR(mh.OUTPUT,'@| ',1,ct.x)),'@| ','')) ACCOUNT_DETAILS&lt;br /&gt;TO_CHAR(REGEXP_SUBSTR(mh.OUTPUT,'[^@]+', 1,ct.x)) ACCOUNT_DETAILS &lt;br /&gt;FROM MGMT$JOB_STEP_HISTORY mh, &lt;br /&gt;(SELECT rownum x FROM ALL_OBJECTS WHERE rownum&amp;lt;=5000) ct &lt;br /&gt;WHERE TARGET_TYPE='oracle_database' &lt;br /&gt;AND JOB_OWNER='SYSMAN' &lt;br /&gt;AND JOB_NAME LIKE 'LIST_USER_ACCOUNT_DETAILS.%' &lt;br /&gt;AND STEP_NAME='Command' &lt;br /&gt;) &lt;br /&gt;WHERE ACCOUNT_DETAILS IS NOT NULL &lt;br /&gt;ORDER BY TARGET_NAME, JOB_TIME;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt; NOTE:&lt;/b&gt; In the report SQL, we have assumed a maximum number of 5000 user accounts across all database targets.&lt;br /&gt;If you exceed this (if you have a lot of user accounts) then you will need to increase the number.&lt;br /&gt;We have also assumed that SYSMAN is the owner of the job that created the output.  You should change this if necessary.&lt;br /&gt;&lt;/code&gt;&lt;/code&gt;&lt;a href="http://4.bp.blogspot.com/-Lq-S8IXrPb8/TjgYOHi5g7I/AAAAAAAAAM0/XyZBh8i-Zrw/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B3-764269.jpg"&gt;&lt;img border="0" height="388" src="http://4.bp.blogspot.com/-Lq-S8IXrPb8/TjgYOHi5g7I/AAAAAAAAAM0/XyZBh8i-Zrw/s400/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B3-764269.jpg" width="400" /&gt;&lt;/a&gt;&lt;code&gt;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;You can choose to schedule the report if you wish (you should take into account the source job schedule).&lt;br /&gt;It's probably best to secure the report so that only administrators can see it.&lt;br /&gt;&lt;br /&gt;Test the report.&lt;br /&gt;&lt;/code&gt;&lt;/code&gt;&lt;a href="http://3.bp.blogspot.com/-OJ0qAsRuIKA/TjgYOuOaWZI/AAAAAAAAAM8/LXxAyC_rdR0/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B4-765879.jpg"&gt;&lt;img border="0" height="90" src="http://3.bp.blogspot.com/-OJ0qAsRuIKA/TjgYOuOaWZI/AAAAAAAAAM8/LXxAyC_rdR0/s400/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B4-765879.jpg" width="400" /&gt;&lt;/a&gt;&lt;code&gt;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;The output format consists of the following columns:&lt;br /&gt;&amp;nbsp;TARGET NAME&lt;br /&gt;&amp;nbsp;JOB TIME&lt;br /&gt;&amp;nbsp;ACCOUNT DETAILS {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;USERNAME&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ACCOUNT STATUS&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LOCK DATE&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;EXPIRY DATE&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;HAS REMOVED ROLE&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;HAS DBA ROLE&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;br /&gt;The "HAS REMOVED ROLE" column relates to a "flag" role that I use to denote that an Oracle account has been de-activated purposely.&lt;br /&gt;Instead of the account being deleted, it is retained for audit purposes and the REMOVED_ACCOUNTS role granted to it.  You can choose to ignore or adapt this column.&lt;br /&gt;&lt;br /&gt;Once you have the output, you can extract it to Excel for comparison with an Active Directory dump or any other means.&lt;/code&gt;&lt;/code&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-6371997700735187902?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/6371997700735187902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=6371997700735187902&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/6371997700735187902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/6371997700735187902'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/08/report-all-oracle-user-accounts-through.html' title='Report All Oracle User Accounts Through OEM Grid Control'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/--7Jk9kymXc8/TjgYNcPetoI/AAAAAAAAAMk/xJ4rZdZq5l8/s72-c/Picture%2B%2528Enhanced%2BMetafile%2529%2B1-760738.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-4347963746360711202</id><published>2011-08-05T09:59:00.002+01:00</published><updated>2011-08-05T13:08:50.963+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Management'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='Backup'/><title type='text'>Optimal Oracle RMAN Backup Command Options</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-family: Tahoma, sans-serif; font-size: x-small;"&gt; &lt;/span&gt;&lt;br /&gt;Just a very short post about an optimal Oracle RMAN backup command run block.&lt;br /&gt;Here's what *I* think provides an optimal backup for a generic setup.&lt;br /&gt;&lt;br /&gt;-- Check our existing files are available before we do some obsolete deleting.&lt;br /&gt;&lt;code&gt;&lt;b&gt;crosscheck archivelog all;&lt;br /&gt;crosscheck backup;&lt;/b&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;-- Delete any obsolete files before we start so that we have max space available.&lt;br /&gt;-- I have "REDUNDANCY 1" set so that I retain the previous backup until the next backup is completed successfully (you need double disk/tape space available for this).&lt;br /&gt;&lt;code&gt;&lt;b&gt;delete noprompt obsolete;&lt;/b&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;-- Do the DB and ARCH log backups but put each datafile into it's own piece file.&lt;br /&gt;-- I prefer this because should I need only a specific datafile restored and I have to go to tape, I only need to get the piece that's relevant and this piece is only the datafile needed, saving tape restore time.&lt;br /&gt;-- For Oracle 9i remove the 'as compressed backupset' option.&lt;br /&gt;&lt;code&gt;&lt;b&gt;backup as compressed backupset database filesperset 1 plus archivelog filesperset 1;&lt;/b&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;-- Now only delete archive logs that are in two separate backups. &amp;nbsp;This is critical.&lt;br /&gt;&lt;code&gt;&lt;b&gt;delete noprompt archivelog all backed up 2 times to disk;&lt;/b&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;-- Delete the previous night's backup from disk (obviously you need the space to be able to store two backups on disk).&lt;br /&gt;&lt;code&gt;&lt;b&gt;delete noprompt obsolete;&lt;/b&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;-- Finally, always a good idea to keep a list of datafiles and temp files that existed at the time of the backup.&lt;br /&gt;&lt;code&gt;&lt;b&gt;report schema;&lt;/b&gt;&lt;/code&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Make sure that you always save the RMAN backup logs.&lt;br /&gt;I've found that they can be very useful during a restore scenario.&lt;br /&gt;&lt;br /&gt;As a tip, you can also run a daily job to list what backups are required to restore a database using the "&lt;code&gt;RESTORE DATABASE PREVIEW SUMMARY;&lt;/code&gt;" command.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-4347963746360711202?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/4347963746360711202/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=4347963746360711202&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/4347963746360711202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/4347963746360711202'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/08/optimal-oracle-rman-backup-command.html' title='Optimal Oracle RMAN Backup Command Options'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-9019274875170336737</id><published>2011-08-02T18:37:00.000+01:00</published><updated>2011-08-02T18:37:39.371+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Troubleshooting'/><category scheme='http://www.blogger.com/atom/ns#' term='Guide'/><category scheme='http://www.blogger.com/atom/ns#' term='Netweaver'/><category scheme='http://www.blogger.com/atom/ns#' term='Tuning'/><category scheme='http://www.blogger.com/atom/ns#' term='Performance'/><title type='text'>Basic Performance Tuning Guide - SAP NetWeaver 7.0 - Part III - Using SQL Trace</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;This is Part III, you may like to see &lt;a href="http://darrylgriffiths.blogspot.com/2011/06/basic-performance-tuning-guide-sap.html"&gt;Part I&lt;/a&gt; and &lt;a href="http://darrylgriffiths.blogspot.com/2011/07/basic-performance-tuning-guide-sap.html"&gt;Part II&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Once you have traced the poor performing program (see &lt;a href="http://darrylgriffiths.blogspot.com/2011/06/basic-performance-tuning-guide-sap.html"&gt;Part I&lt;/a&gt; of this guide), and you have identified that your problem is in the database response time (see &lt;a href="http://darrylgriffiths.blogspot.com/2011/07/basic-performance-tuning-guide-sap.html"&gt;Part II&lt;/a&gt; of this guide), then you can start digging deeper into the potential SQL problem by running an SQL trace using transaction ST05.&lt;br /&gt;In ST05, click the "&lt;i&gt;Activate Trace with Filter&lt;/i&gt;" button:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-9awri3_GW08/TgyY_le-kCI/AAAAAAAAAE4/Dk5nShWuY5U/s1600/PBrush%2B1-745631.jpg"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5624038252840128546" src="http://3.bp.blogspot.com/-9awri3_GW08/TgyY_le-kCI/AAAAAAAAAE4/Dk5nShWuY5U/s320/PBrush%2B1-745631.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;b&gt;NOTE:&lt;/b&gt; We are only concerned with an SQL statement that has directly accessed the database (&lt;a href="http://help.sap.com/saphelp_nw04/helpdata/en/d1/801f89454211d189710000e8322d00/frameset.htm"&gt;http://help.sap.com/saphelp_nw04/helpdata/en/d1/801f89454211d189710000e8322d00/frameset.htm&lt;/a&gt;).&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Unless you select the additional tick box "&lt;i&gt;Table Buffer Trace&lt;/i&gt;" on the main ST05 screen, to show table buffer accesses, all the trace details in ST05 will be for direct database accesses (bypassing the table buffer).&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Since direct database accesses will take longer than the buffer accesses, it is generally accepted that the longer runtimes will be associated with direct database access.&lt;/div&gt;&lt;br /&gt;Enter your user id and the name of the report/transaction. &amp;nbsp;This is so that we can try to limit the records in the trace. &amp;nbsp;If you want to trace another user, simply enter their user id:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-WtJRUR_XhRk/TgyY_jYvegI/AAAAAAAAAFA/yxgiFwpmpCg/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B2-746678.jpg"&gt;&lt;img alt="" border="0" height="190" id="BLOGGER_PHOTO_ID_5624038252277103106" src="http://4.bp.blogspot.com/-WtJRUR_XhRk/TgyY_jYvegI/AAAAAAAAAFA/yxgiFwpmpCg/s200/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B2-746678.jpg" width="200" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Click &lt;i&gt;Execute&lt;/i&gt; to start the trace:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-tuQLLJfJeSk/TgyY_wLJsdI/AAAAAAAAAFI/0Z_-NQrxLKw/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B3-747226.jpg"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5624038255709762002" src="http://3.bp.blogspot.com/-tuQLLJfJeSk/TgyY_wLJsdI/AAAAAAAAAFI/0Z_-NQrxLKw/s320/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B3-747226.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now in a separate session (preferably) run the transaction/program with the performance problem.&lt;br /&gt;Once you're happy you have experienced the problem, you can go back into ST05 and click "&lt;i&gt;Disable Trace&lt;/i&gt;" &amp;nbsp;(by default it will remember the trace details and disable the running trace, you won't need to re-enter all the details):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-wTOZZl4GERo/TgyZAAKSppI/AAAAAAAAAFQ/c19jRKoJczI/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B4-747933.jpg"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5624038260001121938" src="http://1.bp.blogspot.com/-wTOZZl4GERo/TgyZAAKSppI/AAAAAAAAAFQ/c19jRKoJczI/s320/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B4-747933.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Still within ST05, click "&lt;i&gt;Display Trace&lt;/i&gt;":&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-Dcvr2YS9q68/TgyZAS98CFI/AAAAAAAAAFY/Xpzs_e2zPvk/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B5-749639.jpg"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5624038265049581650" src="http://4.bp.blogspot.com/-Dcvr2YS9q68/TgyZAS98CFI/AAAAAAAAAFY/Xpzs_e2zPvk/s320/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B5-749639.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The system remembers the last trace recorded and should automatically populate the details, but you can always enter them for date/time, user id etc:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-Ld7Pxy1CySk/TgyZAzJWXhI/AAAAAAAAAFg/0Sos5fnODME/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B6-751790.jpg"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5624038273687379474" src="http://4.bp.blogspot.com/-Ld7Pxy1CySk/TgyZAzJWXhI/AAAAAAAAAFg/0Sos5fnODME/s320/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B6-751790.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The SQL trace records are displayed.&lt;br /&gt;The poor performing SQL has it's time (duration) in microseconds (millionths of a second) highlighted in red if it exceeds 10000 microseconds, 10 milliseconds or 0.01 seconds:&lt;br /&gt;&lt;br /&gt;(1 second = 1000 milliseconds = 1000000 microseconds)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-HyezQm-ZY2E/TgibKdlEQCI/AAAAAAAAADg/i8k_Cqi3W7U/s1600/PBrush%2B1-756695.jpg"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-HyezQm-ZY2E/TgibKdlEQCI/AAAAAAAAADg/i8k_Cqi3W7U/s320/PBrush%2B1-756695.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;At the top of the window we can see the transaction name (ZW39), the work process responsbile for executing the dialog step in which our statement was contained, the type of work process (DIA or BTC), the client and user and transaction id.&lt;br /&gt;The OP column shows that this session has reused an existing cursor in the DB for this query.&lt;br /&gt;This is because it has a "PREPARE" operation as the first OP before the cursor "OPEN" and not a "DECLARE" (see here &lt;a href="http://help.sap.com/saphelp_nw04/helpdata/en/d1/801fa3454211d189710000e8322d00/content.htm"&gt; http://help.sap.com/saphelp_nw04/helpdata/en/d1/801fa3454211d189710000e8322d00/content.htm&lt;/a&gt;).&lt;br /&gt;If the session re-executed this query at another point in the trace, then it is likely (depending on code and available database resources), that the query would have re-used the existing cursor and even no "PREPARE" would have been visible, just OPEN and FETCH (&lt;a href="http://help.sap.com/saphelp_nw04/helpdata/en/d8/a61d94e4b111d194cb00a0c94260a5/content.htm"&gt;http://help.sap.com/saphelp_nw04/helpdata/en/d8/a61d94e4b111d194cb00a0c94260a5/content.htm&lt;/a&gt;)&lt;br /&gt;The deep yellow colour of each line will alternate between a dark and lighter colour when the table (obj name) changes in the list.&lt;br /&gt;&lt;br /&gt;The RECS column shows the number of records retrieved in the "FETCH" operation.&lt;br /&gt;The RC column shows the Oracle database return code 1403 (ORA-1403) which you get when you call "FETCH" in a loop and reach the end of the results (see SAP note 1207927).&lt;br /&gt;&lt;br /&gt;The STATEMENT column shows the pre-parsed SQL including bind variables (:A1, :A2 etc).&lt;br /&gt;The second line of the STATEMENT column shows the statement in the "OPEN" database call where all the bind variables have been normalised.&lt;br /&gt;Double clicking on the STATEMENT column delves into the SQL statement a little more:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-9DDvKDN0ebs/TgibKxQoEFI/AAAAAAAAADo/RDhJoZq9IZ0/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B2-758957.jpg"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-9DDvKDN0ebs/TgibKxQoEFI/AAAAAAAAADo/RDhJoZq9IZ0/s320/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B2-758957.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here you will see the SQL statement in full (above) and the bind variables, their data types (CH,3 = CHAR(3)) and respective values.&lt;br /&gt;Back on the main trace screen, with the SQL statement selected (single click), you can click the "Explain" button:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-J0uWPmagUMw/TgibLZj-YmI/AAAAAAAAADw/y2fgSDujI9A/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B3-760676.jpg"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-J0uWPmagUMw/TgibLZj-YmI/AAAAAAAAADw/y2fgSDujI9A/s320/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B3-760676.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Again, you will see the SQL statement with bind variables (remember you can get the values from the other screen) but more importantly, you will see the Oracle Explain Plan.&lt;br /&gt;The Explain Plan shows how the Oracle optimizer *may* choose to execute the statement and the relative costs associated with performing the query (I'll explain more on this in a later chapter of this guide).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-gugtMywgZJE/TgibL5TNzyI/AAAAAAAAAD4/_YItpoCFIEY/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B4-762459.jpg"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-gugtMywgZJE/TgibL5TNzyI/AAAAAAAAAD4/_YItpoCFIEY/s320/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B4-762459.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In the above example, you can see that Oracle has chosen to perform an Index Range Scan on index "IHPA~Z1" before going to the table IHPA to get the matching data rows.&lt;br /&gt;Single click the "Access Predicates" on the index and you can see what will be applied to the index scan:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-a6OSfvF6GsY/TgibMB8ARSI/AAAAAAAAAEA/dfGbwzTh6cc/s1600/PBrush%2B5-764331.jpg"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-a6OSfvF6GsY/TgibMB8ARSI/AAAAAAAAAEA/dfGbwzTh6cc/s320/PBrush%2B5-764331.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-c81BPCqKLLw/TgibNC6J5wI/AAAAAAAAAEI/pSlDMhbFzMw/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B6-768014.jpg"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-c81BPCqKLLw/TgibNC6J5wI/AAAAAAAAAEI/pSlDMhbFzMw/s320/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B6-768014.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Again, you will need to reference the very first SQL view screen to get the bind variables values.&lt;br /&gt;Clicking the name of the index will show the statistics values for the index:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-7H2LXiavm5U/TgibNmr2-rI/AAAAAAAAAEQ/MrMykyHPKBo/s1600/PBrush%2B7-769709.jpg"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-7H2LXiavm5U/TgibNmr2-rI/AAAAAAAAAEQ/MrMykyHPKBo/s320/PBrush%2B7-769709.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-PTUwelIZeW0/TgibON2bAmI/AAAAAAAAAEY/i2OEApcZrQY/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B8-772271.jpg"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-PTUwelIZeW0/TgibON2bAmI/AAAAAAAAAEY/i2OEApcZrQY/s320/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B8-772271.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can see the two columns that make up the index (objnr and parvw).&lt;br /&gt;The Analyze button can be clicked to update the index database statistics real-time or as a background job.&lt;br /&gt;&lt;b&gt;WARNING:&lt;/b&gt; Be aware that SAP collects statistics in Oracle using it's own set of predefined requirements as per SAP notes 588668, 1020260 and that you *must* disable the standard Oracle stats gathering jobs as per note 974781.  Therefore, the stats may be out of date for a good reason.&lt;br /&gt;&lt;br /&gt;The same detail can be seen when clicking the table name.&lt;br /&gt;&lt;br /&gt;Back on the main screen, for those who have more knowledge of reading Oracle Explain Plans, you can choose the "EXPLAIN: Display as Text" button, which will display a more detailed Explain Plan that can be copied to a text editor also (I find this very useful):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-GbkQQk9cg7Q/TgibOleJhqI/AAAAAAAAAEg/hhzwdJQs4mY/s1600/Picture%2B%2528Metafile%2529%2B9-774100.jpg"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-GbkQQk9cg7Q/TgibOleJhqI/AAAAAAAAAEg/hhzwdJQs4mY/s320/Picture%2B%2528Metafile%2529%2B9-774100.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; Plan hash value: 1636536768 &lt;br /&gt;&lt;br /&gt;---------------------------------------------------------------------------------------- &lt;br /&gt;| Id  | Operation                    | Name    | Rows  | Bytes | Cost (%CPU)| Time     | &lt;br /&gt;---------------------------------------------------------------------------------------- &lt;br /&gt;|   0 | SELECT STATEMENT             |         |     2 |    82 |     2  (50)| 00:00:01 | &lt;br /&gt;|   1 |  INLIST ITERATOR             |         |       |       |            |          | &lt;br /&gt;|*  2 |   TABLE ACCESS BY INDEX ROWID| IHPA    |     2 |    82 |     1   (0)| 00:00:01 | &lt;br /&gt;|*  3 |    INDEX RANGE SCAN          | IHPA~Z1 |     2 |       |     1   (0)| 00:00:01 | &lt;br /&gt;---------------------------------------------------------------------------------------- &lt;br /&gt;&lt;br /&gt;Query Block Name / Object Alias (identified by operation id): &lt;br /&gt;------------------------------------------------------------- &lt;br /&gt;&lt;br /&gt;1 - SEL$1 &lt;br /&gt;2 - SEL$1 / IHPA@SEL$1 &lt;br /&gt;3 - SEL$1 / IHPA@SEL$1 &lt;br /&gt;&lt;br /&gt;Predicate Information (identified by operation id): &lt;br /&gt;--------------------------------------------------- &lt;br /&gt;&lt;br /&gt;2 - filter("MANDT"=:A0) &lt;br /&gt;3 - access(("OBJNR"=:A1 OR "OBJNR"=:A2 OR "OBJNR"=:A3) AND "PARVW"=:A4) &lt;br /&gt;&lt;br /&gt;Column Projection Information (identified by operation id): &lt;br /&gt;----------------------------------------------------------- &lt;br /&gt;&lt;br /&gt;1 - "OBJNR"[VARCHAR2,66], "PARVW"[VARCHAR2,6], "PARNR"[VARCHAR2,36], &lt;br /&gt;"ERDAT"[VARCHAR2,24] &lt;br /&gt;2 - "OBJNR"[VARCHAR2,66], "PARVW"[VARCHAR2,6], "PARNR"[VARCHAR2,36], &lt;br /&gt;"ERDAT"[VARCHAR2,24] &lt;br /&gt;3 - "IHPA".ROWID[ROWID,10], "OBJNR"[VARCHAR2,66], "PARVW"[VARCHAR2,6]&lt;/span&gt; &lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Finally, it's possible to see the point in the ABAP program where the SQL statement was run.&lt;br /&gt;Single click the statement column, then click the "Display Call Positions in ABAP Program" button or press F5:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-g8y2tBKN2qU/TgibPGRBdXI/AAAAAAAAAEo/jyZXX8tSjRM/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B10-775843.jpg"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-g8y2tBKN2qU/TgibPGRBdXI/AAAAAAAAAEo/jyZXX8tSjRM/s320/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B10-775843.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The ABAP code will be displayed, and if you are using the new ABAP editor (I think you should), you will be positioned on the statement:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-e1FcEmf9zzs/TgibPgVZGFI/AAAAAAAAAEw/bFhWR7jbOKU/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B11-778304.jpg"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-e1FcEmf9zzs/TgibPgVZGFI/AAAAAAAAAEw/bFhWR7jbOKU/s320/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B11-778304.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Looking at the ABAP statement, you can see how it has been converted from an OPEN SQL statement into an Oracle SQL statement.&lt;br /&gt;The use of the "IN" keyword has been translated into multiple "OR" statements at the Oracle level.&lt;br /&gt;&lt;br /&gt;Once at the ABAP statement level, it is sometimes required to know both Oracle SQL and ANSI SQL, since Oracle generally uses it's own dialect and SAP uses ANSI SQL.&lt;br /&gt;Therefore, you may see the original statement in a somewhat different form, especially when a table join is required on two or more tables.&lt;br /&gt;Lastly, you will notice that the MANDT field is not present in the original ABAP, but it gets added to the predicate list by the ABAP OPEN SQL processor unless you use the "CLIENT SPECIFIED" keyword.&lt;br /&gt;&lt;br /&gt;Armed with the SQL performance facts, the knowledge of how to perform an SQL trace and how to link this back to the piece of ABAP code; you should be able to use your database level investigative skills to work out why the statement is causing poor performance.&lt;br /&gt;&lt;br /&gt;Make adjustments in the test system and see how the changes affect the performance.&lt;br /&gt;I like to modify the Oracle SQL captured in the SQL trace, then enter it into ST05 (Execute SQL option) with the Explain button, to see if the explain plan is any better.&lt;br /&gt;&lt;br /&gt;Some pointers:&lt;br /&gt;- How much data is in the database tables being referenced?&lt;br /&gt;- Is the Explain Plan showing that the query is making best use of available indexes?&lt;br /&gt;- Can you replicate the problem in the test system?&lt;br /&gt;- If this is a custom table, do you need to add additional indexes?&lt;br /&gt;- Could the ABAP OPEN SQL statement be re-written to be more effective (use one query instead of two)?&lt;br /&gt;- Are you SELECTing more fields than you actually need?&lt;br /&gt;&lt;br /&gt;You may wish to read the&amp;nbsp;&lt;a href="http://www.oracle.com/technetwork/database/focus-areas/bi-datawarehousing/twp-explain-the-explain-plan-052011-393674.pdf"&gt;master class in reading Explain Plans&lt;/a&gt;&amp;nbsp;from Oracle.&lt;br /&gt;I have blogged before about cardinality in Explain Plans &lt;a href="http://darrylgriffiths.blogspot.com/2011/06/oracle-explain-plans-cardinality.html"&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-9019274875170336737?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/9019274875170336737/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=9019274875170336737&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/9019274875170336737'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/9019274875170336737'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/08/basic-performance-tuning-guide-sap.html' title='Basic Performance Tuning Guide - SAP NetWeaver 7.0 - Part III - Using SQL Trace'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-9awri3_GW08/TgyY_le-kCI/AAAAAAAAAE4/Dk5nShWuY5U/s72-c/PBrush%2B1-745631.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-4095728639715318159</id><published>2011-08-01T20:38:00.000+01:00</published><updated>2011-08-01T20:38:07.119+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Musing'/><title type='text'>Back once again (with the renegade master...)</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Some hefty time off spent on the beach in the south of Italy (ah che bello) with the in-laws, has revealed a slight sun-tan and a new sense of purpose.&lt;br /&gt;- Part III of my SAP Basic Performance Tuning Guide is nearly ready for posting.&lt;br /&gt;- A new job opportunity has come my way.&lt;br /&gt;- The VMWare test rig will be getting another hammering once I have got some post holiday chores out of the way (still can't believe I got it working in 30 minutes!).&lt;br /&gt;&lt;br /&gt;Bring on August!&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-4095728639715318159?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/4095728639715318159/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=4095728639715318159&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/4095728639715318159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/4095728639715318159'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/08/back-once-again-with-renegade-master.html' title='Back once again (with the renegade master...)'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-13820456495232935</id><published>2011-08-01T20:26:00.000+01:00</published><updated>2011-08-01T20:26:18.388+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Error'/><category scheme='http://www.blogger.com/atom/ns#' term='BW'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='BI'/><title type='text'>SAP BI - ORA-04031 - Oracle 10.2.0.5 - Bug 9737897 - End Of.</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-family: Tahoma, sans-serif; font-size: x-small;"&gt; &lt;/span&gt;&lt;br /&gt;If you use SAP BI 7.0 on an Oracle 10.2.0.5 64bit database you may experience this issue.&lt;br /&gt;Our BI system performs tha delta loads for FI data overnight.&lt;br /&gt;These are large loads of records into the cubes.&lt;br /&gt;&lt;br /&gt;The problem is Oracle error 04031: &lt;code&gt;&lt;br /&gt;----------------------------------------------------------------------------------&lt;br /&gt;Mon Jul 11 00:46:26 GMT Daylight Time 2011 &lt;br /&gt;Errors in file j:\oracle\bwp\saptrace\usertrace\bwp_ora_3716.trc: &lt;br /&gt;ORA-00603: ORACLE server session terminated by fatal error &lt;br /&gt;ORA-00604: error occurred at recursive SQL level 1 &lt;br /&gt;ORA-04031: unable to allocate 4120 bytes of shared memory ("shared pool","select name,online$,contents...","Typecheck","kgghteInit")&lt;br /&gt;&lt;br /&gt;ORA-00604: error occurred at recursive SQL level 1 &lt;br /&gt;ORA-04031: unable to allocate 4120 bytes of shared memory ("shared pool","select name,online$,contents...","Typecheck","kgghteInit")&lt;br /&gt;&lt;br /&gt;ORA-00604: error occurred at recursive SQL level 1 &lt;br /&gt;ORA-04031: unable to allocate 4120 bytes of shared memory ("shared pool","select name,online$,contents...","Typecheck","kgghteInit")&lt;br /&gt;&lt;br /&gt;Mon Jul 11 00:46:26 GMT Daylight Time 2011 &lt;br /&gt;Errors in file j:\oracle\bwp\saptrace\background\bwp_smon_8756.trc: &lt;br /&gt;ORA-00604: error occurred at recursive SQL level 1 &lt;br /&gt;ORA-04031: unable to allocate 4120 bytes of shared memory ("shared pool","select file#, block#, ts# fr...","Typecheck","seg:kggfaAllocSeg")&lt;br /&gt;&lt;br /&gt;Mon Jul 11 00:46:27 GMT Daylight Time 2011 &lt;br /&gt;Errors in file j:\oracle\bwp\saptrace\background\bwp_smon_8756.trc: &lt;br /&gt;ORA-00604: error occurred at recursive SQL level 1 &lt;br /&gt;ORA-04031: unable to allocate 4120 bytes of shared memory ("shared pool","select file#, block#, ts# fr...","Typecheck","seg:kggfaAllocSeg")&lt;br /&gt;&lt;br /&gt;----------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Once it hits this problem, it causes the rest of the chain to fail on the index rebuilds.&lt;br /&gt;Sometimes the user queries also fail in the Bex Web front-end.  The user sees a similar error as those shown above.&lt;br /&gt;&lt;br /&gt;Using V$SGASTAT I was able to take snapshots of the Shared Pool usage via a Windows scheduled task.&lt;br /&gt;I traced the problem to the memory allocation of "obj stat memo" in the Shared Pool of the database.&lt;br /&gt;It's constantly growing, and although the "free memory" reduces slightly, it doesn't seem to correlate to the increase in "obj stat memo" usage.&lt;br /&gt;&lt;br /&gt;So next step was looking on Oracle Support.&lt;br /&gt;I found bug 9737897, which is valid *upto* 10.2.0.4.  But it does not state that it has actually been fixed in 10.2.0.5.&lt;br /&gt;The bug description says: "An SGA memory leak is possible for "obj stat memo" and "obj htab chun" &lt;br /&gt;memory if a segment is dropped and recreated many times."&lt;br /&gt;&lt;br /&gt;The bug note recommends querying x$ksolsfts (see here about this table &lt;a href="http://yong321.freeshell.org/computer/x$table.html"&gt; http://yong321.freeshell.org/computer/x$table.html&lt;/a&gt;).&lt;br /&gt;The following SQL is recommended by Oracle:&lt;br /&gt;&lt;br /&gt;select distinct fts_objd, fts_objn from x$ksolsfts x &lt;br /&gt;where not exists (select 1 from obj$ o &lt;br /&gt;where o.dataobj#=x.fts_objd and o.obj#=x.fts_objn);&lt;br /&gt;&lt;br /&gt;The note says that a high number of records returned could indicate that you are seeing the symptoms of the bug.&lt;br /&gt;I was seeing over 160,000 records in a database that had been restarted 24 hours prior.&lt;br /&gt;&lt;br /&gt;I produced a lovely Excel chart showing the snapshot times against the memory use of the "obj stat memo" component.&lt;br /&gt;The chart showed significant increases (step ups) of approximately 10MB at specific points in time.&lt;br /&gt;I was then able to search SM37 using the "extended" option, to show background jobs active during the memory "step ups" identified by the chart.&lt;br /&gt;Generally I saw 10-20 jobs active at the time, but the correlation showed that more often than not, the "step ups" were at near enough the same time as a BI_PROCESS_INDEX job.&lt;br /&gt;&lt;br /&gt;Looking in the background job log, I was able to identify the process chain and the type of index/load that was being performed.&lt;br /&gt;The indexes in question were FI cube related.  They were quite large indexes and they were bitmap indexes ("CREATE BITMAP INDEX...").&lt;br /&gt;Each night these indexes got re-built after a load.&lt;br /&gt;The re-build command was visible in the background job log and included "COMPUTE STATISTIC".&lt;br /&gt;&lt;br /&gt;So I had successfully identified a segment(s) that was being dropped and re-created regularly.&lt;br /&gt;This met with the Oracle bug description.&lt;br /&gt;&lt;br /&gt;At the bottom of the bug note, it states:&lt;br /&gt;&lt;br /&gt;"Note: &lt;br /&gt;If you suffer "obj stat memo" memory leak problem in 10.2.0.5, you can try &lt;br /&gt;_object_statistics = false as a workaround, or following init parameter to see &lt;br /&gt;if it solves problem. &lt;br /&gt;_disable_objstat_del_broadcast=false"&lt;br /&gt;&lt;br /&gt;So what does SAP say about this.&lt;br /&gt;Well the following SAP notes were/are available:&lt;br /&gt;1120481 - ORA-4031 - memory allocation errors for object-level stat&lt;br /&gt;1070102 - High memory allocation by 'obj stat memo'&lt;br /&gt;869006 - Composite SAP note: ORA-04031&lt;br /&gt;&lt;br /&gt;The only note of relevance is 1120481 which has a short reference to Oracle 10.2.0.4.&lt;br /&gt;The other notes tend to point the read at just blindly increasing the Share Pool.  I tried this, it didn't work when 900MB was used by "obj stat memo"!&lt;br /&gt;&lt;br /&gt;So, stuck with only one possible solution (other than upgrading to 11g), I can confirm that setting "_object_statistics = false"  (alter system set "_object_statistics"=false scope=spfile;) and bouncing the database solved the problem as it completely removes the use of the "obj stat memo" memory area (it's no longer visible in V$SGASTAT).&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-13820456495232935?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/13820456495232935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=13820456495232935&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/13820456495232935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/13820456495232935'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/08/sap-bi-ora-04031-oracle-10205-bug.html' title='SAP BI - ORA-04031 - Oracle 10.2.0.5 - Bug 9737897 - End Of.'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-4914569324247956003</id><published>2011-07-17T10:55:00.003+01:00</published><updated>2011-08-06T07:27:46.471+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VMWare'/><category scheme='http://www.blogger.com/atom/ns#' term='Projects'/><title type='text'>VMWare ESXi 4.1 Test Rig - UPDATE</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;This is an update to my previous post &lt;a href="http://darrylgriffiths.blogspot.com/2011/07/vmware-esxi-41-test-rig-up-up-and-away.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The VMware install onto the HP XW6200 hardware was a snip:&lt;br /&gt;&lt;a href="http://www.vmware.com/pdf/vsphere4/r41/vsp_41_esxi_i_vc_setup_guide.pdf"&gt;VMware ESXi 4.1 Update 1 Install Guide&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.vmware.com/support/vsphere4/doc/vsp_esxi41_u1_rel_notes.html"&gt;VMware ESXi 4.1 Update 1 Release Notes&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I decided to use a spare 8GB USB pen (check requirements in the &lt;a href="http://www.vmware.com/pdf/vsphere4/r41/vsp_41_esxi_i_vc_setup_guide.pdf"&gt;installation guide&lt;/a&gt;&amp;nbsp;relating to swap space) to install the VMware hypervisor on. &amp;nbsp;This enables me to use the entire size of the internal SATA disks as VMware datastores for hosting guest operating systems. &amp;nbsp;It also means I can create a backup copy of the USB pen when trying out a VMware upgrade.&lt;br /&gt;&lt;br /&gt;Total time to install:&lt;br /&gt;- Download boot CD ISO &amp;nbsp; &amp;nbsp; &amp;nbsp;= 10mins.&lt;br /&gt;- Burn boot CD from ISO &amp;nbsp; &amp;nbsp; &amp;nbsp;= 5 mins.&lt;br /&gt;- Install from CD to USB pen = 10 mins.&lt;br /&gt;- Download vSphere Client &amp;nbsp; &amp;nbsp;= 5 mins.&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; TOTAL = 30mins.&lt;br /&gt;&lt;br /&gt;Once installed, I then downloaded the VMware standalone converter to my laptop.&lt;br /&gt;I had two VirtualBox guest machines on my laptop, so I used the VMware converter to simply pull them off (there is no pun here!) onto the VMware virtual infrastructure.&lt;br /&gt;My LAN is not the fastest so total time to v2v conversion was about 10 hours to do both guest VMs.&lt;br /&gt;&lt;br /&gt;The next problem was the Oracle Linux 6.1 install.&lt;br /&gt;This seems to come in two separate parts; the boot ISO and the main DVD ISO.&lt;br /&gt;Downloading the main DVD ISO took about 3 hours over my simple ADSL connection.&lt;br /&gt;&lt;br /&gt;Once downloaded, my problems started.&lt;br /&gt;I attached the Oracle Linux 6.1 boot ISO to the virtual CDROM of a new 64bit virtual machine and click "Power On".&lt;br /&gt;Then, bam! &amp;nbsp; &amp;nbsp;No longmode enabled:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-Om3lz1asWzg/TiKssjkSKGI/AAAAAAAAAJQ/HKGpGewZgaA/s1600/Virtual+Machine+Question+17072011+103427.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="136" src="http://4.bp.blogspot.com/-Om3lz1asWzg/TiKssjkSKGI/AAAAAAAAAJQ/HKGpGewZgaA/s320/Virtual+Machine+Question+17072011+103427.jpg" style="cursor: move;" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;What!&lt;br /&gt;Well, it turns out that the history of the Intel XEON processor is a rather tarnished story of rivalry between Intel and AMD.&lt;br /&gt;Although the XEON processor I have *is* 64bit capable, and does support EM64t with Hyperthreading and all that, it just doesn't have the VT (virtualization) capability.&lt;br /&gt;The spec of the XEON processors in the HP XW6200 workstations can be seen on the Intel page here&amp;nbsp;&lt;a href="http://ark.intel.com/products/27086/64-bit-Intel-Xeon-Processor-3_40E-GHz-2M-Cache-800-MHz-FSB"&gt;http://ark.intel.com/products/27086/64-bit-Intel-Xeon-Processor-3_40E-GHz-2M-Cache-800-MHz-FSB&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Looking at the Intel page is even more confusing, since it states it doesn't have Hyperthreading, but I have just enabled it in the BIOS. &amp;nbsp;Does it? &amp;nbsp;Doesn't it? &amp;nbsp; &amp;nbsp;Arghh!&lt;br /&gt;&lt;br /&gt;In summary, you're better off getting any one of the Core2Duo processors as these will undoubtedly support EM64t and VT.&lt;br /&gt;Only problem is, most don't support 8GB of RAM due to the system board limitations (more than likely a soft limitation). &amp;nbsp;Oh dear indeed.&lt;br /&gt;&lt;br /&gt;So my story doesn't end there, I'm now in the process of downloading and installing 32bit Oracle Linux 6.1. &amp;nbsp;Not quite what I wanted, but it will suffice because I have limited memory so will not be needing the use of 64bit memory addressing capabilities - yet.&lt;br /&gt;My other task is to download the 32bit version of the Oracle 11g XE. &amp;nbsp;But wait, Oracle only provide a Linux version of the 11g XE in 64bit mode. &amp;nbsp;Scuppered! &amp;nbsp;I'll have to use the 32bit version for Windows only.&lt;br /&gt;&lt;br /&gt;As you can see, we are in this awkward transition period where software is both 32bit and 64bit but hardware is 32bit or 64bit or 64bit with flags.&lt;br /&gt;We are trying our best to virtualise, but for the small guy it's an expensive project.&lt;br /&gt;You either buy a server or you buy the latest and greatest desktops that support more than 4GB of RAM.&lt;br /&gt;It's a very tricky thing to get right.&lt;br /&gt;For me, it's a case of trying to keep skills current. &amp;nbsp;I think I can afford £166 for now, then re-invest another £166 at a later stage to make the jump to a "proper" 64bit (with VT) capable system.&lt;br /&gt;&lt;br /&gt;One other thing, once the free version of VMware ESXi expires (you get 60-days free use of all the features), you'll need to spend some time faffing with the license to register it (downgrade to free only features) so you can continue to use it. I did this up-front so I don't have a situation where I can't use the VMs because I forgot the expiry date.&lt;br /&gt;See instructions here:&amp;nbsp;&lt;a href="http://planetmediocrity.com/2010/09/vmware-vsphere-evaluation-downgrade/"&gt;http://planetmediocrity.com/2010/09/vmware-vsphere-evaluation-downgrade/&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-4914569324247956003?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/4914569324247956003/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=4914569324247956003&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/4914569324247956003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/4914569324247956003'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/07/vmware-esxi-41-test-rig-update.html' title='VMWare ESXi 4.1 Test Rig - UPDATE'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-Om3lz1asWzg/TiKssjkSKGI/AAAAAAAAAJQ/HKGpGewZgaA/s72-c/Virtual+Machine+Question+17072011+103427.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-710424013712360587</id><published>2011-07-15T14:26:00.001+01:00</published><updated>2011-08-06T07:27:46.473+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VMWare'/><category scheme='http://www.blogger.com/atom/ns#' term='Projects'/><title type='text'>VMWare ESXi 4.1 Test Rig - Up up and away!</title><content type='html'>This weekend I will be focussing my attention on getting my new (old) HP XW6200 workstation transformed into a VMWare ESXi 4.1 test rig.&lt;br /&gt;Bought on eBay for £166.00.&lt;br /&gt;&lt;br /&gt;I did take a brief look at the Oracle VM 2.2 offering, but it required about twice the amount of storage space to install it compared to the ~200MB required by VMWare ESXi 4.1 and it didn't have the nice GUI for simplicity or the excellent VMWare converter for transfering my existing VirtualBox guest VMs to the virtual infrastructure.&lt;br /&gt;&lt;br /&gt;The plan is to install VMWare onto a USB pen device, then use the 500GB SATA disk and 1TB SATA disk as virtual disk storage where I can host all manner of Virtual Servers.&lt;br /&gt;I'm planning to use OpenFiler inside a virtual appliance, to provide a shared chunk of disk via iSCSI so that I can get ASM working in a cluster.&lt;br /&gt;I'm hoping to get an Oracle Unbreakable Linux server running and download the beta Oracle 11gR2 XE RDBMS.&lt;br /&gt;For those of you in the know, Oracle don't officially support VMWare (I wonder why...) but since I'm not running a production database, this is not a problem. &amp;nbsp;I know for sure that it *will* work fine.&lt;br /&gt;&lt;br /&gt;The XW6200 machine spec:&lt;br /&gt;2 x Intel Xeon 3.4gGhz with HT and EM64t.&lt;br /&gt;256MB graphics card.&lt;br /&gt;4GB RAM (for the moment, but will support 8GB via 4x2GB DIMMS).&lt;br /&gt;500GB SATA&lt;br /&gt;1TB SATA&lt;br /&gt;CDROM&lt;br /&gt;Floppy (really!)&lt;br /&gt;USB sockets galore.&lt;br /&gt;&lt;br /&gt;It's a little power sucker, but it supports wake-on-lan so I can have it shutdown until required.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-710424013712360587?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/710424013712360587/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=710424013712360587&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/710424013712360587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/710424013712360587'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/07/vmware-esxi-41-test-rig-up-up-and-away.html' title='VMWare ESXi 4.1 Test Rig - Up up and away!'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-7486733834628689538</id><published>2011-07-11T18:59:00.000+01:00</published><updated>2011-07-11T18:59:57.171+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AWR'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>When Should I Pay For Oracle Diagnostics/Tuning Pack in 10G/11G</title><content type='html'>&lt;span style="font-family: Tahoma, sans-serif; font-size: x-small;"&gt; &lt;/span&gt;&lt;br /&gt;If you are unsure about what action will result in you having to pay for a license for the Oracle Diagnostic Pack or Tuning Pack (or other options come to think of it), then you could use the query below to determine the check conditions:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;SELECT NAME, DESCRIPTION FROM WRI$_DBU_FEATURE_METADATA;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This will output the name of the feature and the description of the check that is performed.&lt;br /&gt;You could also see the check "code" if you include the USG_DET_LOGIC column in the SELECT.&lt;br /&gt;&lt;br /&gt;In 10G it is immediately possible to see that the AWR is only classed as used if "&lt;i&gt;At least one Workload Repository Report has been created by the user&lt;/i&gt;".&lt;br /&gt;In 11G, AWR is classed as used if "&lt;i&gt;At least one AWR Baseline has been created by the user&lt;/i&gt;" OR "&lt;i&gt;At least one AWR Baseline Template has been created by the user&lt;/i&gt;".&lt;br /&gt;&lt;br /&gt;The AWR is licenseable (&lt;a href="http://www.orafaq.com/wiki/AWR"&gt;http://www.orafaq.com/wiki/AWR&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;So does this mean you can select from those views?  Well Oracle do ask you to in some support situations.  So maybe it is reasonable to assume so.&lt;br /&gt;The Oracle 11G Diagnostics Pack doc &lt;a href="http://www.oracle.com/technetwork/oem/grid-control/overview/diagnostics-pack-11gr2-datasheet-134502.pdf"&gt; http://www.oracle.com/technetwork/oem/grid-control/overview/diagnostics-pack-11gr2-datasheet-134502.pdf&lt;/a&gt; states otherwise: "&lt;i&gt;These features may be accessible through Oracle Enterprise Manager , Oracle SQL Developer and APIs provided with Oracle Database software. The use of these and other features described in the product licensing documentation requires licensing of the Oracle Diagnostic Pack regardless of the access mechanism.&lt;/i&gt;".&lt;br /&gt;&lt;br /&gt;The Oracle 11G Tuning Pack *does not* say the same: &lt;a href="http://www.oracle.com/technetwork/oem/grid-control/overview/tuning-pack-11gr2-datasheet-134450.pdf"&gt; http://www.oracle.com/technetwork/oem/grid-control/overview/tuning-pack-11gr2-datasheet-134450.pdf&lt;/a&gt;&lt;br /&gt;But, the tuning pack APIs use features included in the Diagnostic Pack. &amp;nbsp;Chicken and egg.&lt;br /&gt;&lt;br /&gt;I guess it's open to interpretation.  Better stay safe and ensure that you don't hit any of the checks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-7486733834628689538?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/7486733834628689538/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=7486733834628689538&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/7486733834628689538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/7486733834628689538'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/07/when-should-i-pay-for-oracle.html' title='When Should I Pay For Oracle Diagnostics/Tuning Pack in 10G/11G'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-3558315803771695479</id><published>2011-07-09T11:37:00.000+01:00</published><updated>2011-07-09T11:37:09.036+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Netweaver'/><category scheme='http://www.blogger.com/atom/ns#' term='Tuning'/><category scheme='http://www.blogger.com/atom/ns#' term='Performance'/><title type='text'>Analysing SAP Java Memory Usage in Windows</title><content type='html'>Running SAP systems on a Windows operating system provided me with some difficulties when it came to understanding memory usage.  I was used to Unix based systems and using terms like "swap file", "virtual memory" etc.&lt;br /&gt;Hopefully this article will help you diagnose SAP Java system memory issues on Windows, especially “Out Of Memory” (OOM) error situations in the SAP Java stack.&lt;br /&gt;It has been written based on Windows Server 2003 64bit with SAP Netweaver 7.0 (2004s) and Oracle 10g (10.2.x).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;REFERENCES:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial, sans-serif;"&gt;&lt;a href="http://technet.microsoft.com/en-gb/library/bb742598.aspx"&gt;Understanding memory usage in Windows 2000.&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial, sans-serif;"&gt;&lt;a href="http://www.blogger.com/goog_459496530"&gt;SAP Note&amp;nbsp;&lt;/a&gt;&lt;/span&gt;&lt;a href="https://service.sap.com/sap/support/notes/723909"&gt;723909 &amp;nbsp;v33 -&amp;nbsp;Java VM Settings For J2EE 6.40/7.0&lt;/a&gt;&lt;br /&gt;&lt;a href="https://service.sap.com/sap/support/notes/879377"&gt;SAP Note 879377 -&amp;nbsp;Adjusting SDM Java Memory Usage&lt;/a&gt;&lt;br /&gt;&lt;a href="https://service.sap.com/sap/support/notes/716604"&gt;SAP Note 716604 &amp;nbsp;v56 - Sun J2SE Recommended Options&lt;/a&gt;&lt;br /&gt;&lt;a href="https://service.sap.com/sap/support/notes/313347"&gt;SAP Note 313347 -&amp;nbsp;Windows Editions Memory Support&lt;/a&gt;&lt;br /&gt;&lt;a href="https://service.sap.com/~sapidb/011000358700006449432006E"&gt;Netweaver 7.0 SR2 Java Windows Oracle Installation Guide.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;WINDOWS MEMORY TERMINOLOGY&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Before we go into the memory details of an SAP system on Windows, it is useful to understand the memory terminology of the Windows operating system.&lt;br /&gt;This is useful if you come from a UNIX background.&lt;br /&gt;&lt;br /&gt;RAM – Random Access Memory, physical installed memory in the server.&lt;br /&gt;&lt;br /&gt;Page File – An area of hard disk (or other storage medium) used for temporary storage of memory blocks. Generally this should be manually set according to the installation guide for the SAP system.&lt;br /&gt;&lt;br /&gt;Virtual Memory – The logical memory accessed by user space program (calculator or any other app) this is roughly the summary of physical RAM plus page file size.&lt;br /&gt;&lt;br /&gt;Kernel Memory – This is the area of virtual memory and RAM used by the operating system for device driver memory (non-user space programs).&lt;br /&gt;&lt;br /&gt;Page Faults – When a process tries to access a portion of virtual memory that has been swapped to disk, a page fault occurs and the swapped portion is read back into RAM from disk potentially displacing an existing memory page).&lt;br /&gt;&lt;br /&gt;Page – A block of memory usually around 4K in size.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;DETERMINE OS MEMORY&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;We need to first determine how much memory is actively being used at the operating system level and how much memory is available to us.&lt;br /&gt;On the Windows server, open Windows Task Manager and click on the “Performance” tab:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-Z33HmcNe-IY/Thgd7hCHc3I/AAAAAAAAAHE/-VK1GgrM2xI/s1600/dragimage.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="276" src="http://4.bp.blogspot.com/-Z33HmcNe-IY/Thgd7hCHc3I/AAAAAAAAAHE/-VK1GgrM2xI/s400/dragimage.jpg" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This will show the current memory usage of the entire server.&lt;br /&gt;Ignore the line graphs and histograms as the bottom section of the pane is more important.&lt;br /&gt;The following sections are described:&lt;br /&gt;&lt;br /&gt;Physical Memory - Total Total amount of RAM installed in server.&lt;br /&gt;Physical Memory - Available RAM available for CPU processes.&lt;br /&gt;Physical Memory - System Cache RAM being used by the file cache.&lt;br /&gt;Commit Charge - Total Size of virtual memory in use.&lt;br /&gt;Commit Charge - Limit Max amount of virtual memory.&lt;br /&gt;Commit Charge - Peak Virtual memory used high water mark.&lt;br /&gt;Kernel Memory - Total Paged and non-paged mem used by the operating system's kernel e.g. device drivers etc.&lt;br /&gt;Kernel Memory - Paged Virtual memory set aside for the kernel.&lt;br /&gt;Kernel Memory - Nonpaged Physical RAM set aside for the kernel.&lt;br /&gt;&lt;br /&gt;The most important to watch when measuring memory usage of an SAP system are the following:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Commit Charge – Peak&lt;/b&gt;: This is the high water mark for memory usage on the server. If this is close to the maximum available virtual memory (Commit Charge – Total) then you could be suffering performance issues caused by excessive paging to/from hard disk.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Physical Memory – System Cache&lt;/b&gt;: This is the file system cache that stores data accessed from the hard disk in RAM for more efficient data retrieval.&lt;br /&gt;This value is maintained by the operating system but can be influenced by setting the performance options in “My Computer -&amp;gt; Properties -&amp;gt; Advanced -&amp;gt; Settings (Performance) -&amp;gt; Advanced” shown below:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-qOq2J_20118/ThgfCUwaVuI/AAAAAAAAAHU/gv841-gO-eE/s1600/dragimage.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="197" src="http://4.bp.blogspot.com/-qOq2J_20118/ThgfCUwaVuI/AAAAAAAAAHU/gv841-gO-eE/s200/dragimage.jpg" style="cursor: move;" width="200" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Which is also related to (or rather overridden by) the setting of “Maximize data throughput for network applications” in the “File and Printer Sharing for Microsoft Networks” of the local network connections in control panel:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-vU8Q-axxd_8/ThgfU3pPjVI/AAAAAAAAAHY/i1QmINCPJGY/s1600/dragimage-1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-vU8Q-axxd_8/ThgfU3pPjVI/AAAAAAAAAHY/i1QmINCPJGY/s1600/dragimage-1.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;MANAGE OS MEMORY&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Before you try and tune the memory in the SAP system, you should first explore all avenues of optimising the amount of RAM available in the operating system.&lt;br /&gt;We can see that there are three factors that affect the amount of RAM available for use with programs:&lt;br /&gt;&lt;br /&gt;1, Other programs running.&lt;br /&gt;2, The file system cache.&lt;br /&gt;3, Device drivers loaded in the system (kernel).&lt;br /&gt;&lt;br /&gt;Reducing the number of running programs and services is a good way of freeing up memory.&lt;br /&gt;The amount of memory used by a specific program or service can be seen in Task Manager on the “Processes” tab:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-qf3IdZQHyjs/ThgfnTvAy4I/AAAAAAAAAHc/12Dv0Zpx9G8/s1600/dragimage-2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="166" src="http://3.bp.blogspot.com/-qf3IdZQHyjs/ThgfnTvAy4I/AAAAAAAAAHc/12Dv0Zpx9G8/s320/dragimage-2.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;Only the needed applications for the application and its management should be running.&lt;br /&gt;The svhost.exe binary signifies services that are visible in the services applet in the Administrative Tools applet in Windows Control Panel.&lt;br /&gt;Disabling redundant services will improve available RAM.&lt;br /&gt;&lt;br /&gt;You should seek to reduce the file system cache as much as possible.&lt;br /&gt;Since the SAP system is not a file server, any file system level buffering of data is only wasting resources. This is especially true for the Oracle database which buffers read data in memory anyway, which is then potentially buffered again in SAP.&lt;br /&gt;&lt;br /&gt;You can reduce the system cache by setting the “Maximize throughput for network applications” as discussed in the previous section. This should be done on all servers within the SAP landscape (apart from specific cache servers, subject to SAP recommendations).&lt;br /&gt;This is generally recommended by SAP in the installation guide for the Netweaver system.&lt;br /&gt;&lt;br /&gt;Lastly, disable any redundant devices from the device manager.&lt;br /&gt;These devices require kernel memory, some of which is taken directly from RAM.&lt;br /&gt;You can see the memory ranges allocated to devices in the device manager accessed from the “Computer Management -&amp;gt; Device Manager” option from the Administrative Tools applet in Windows Control Panel.&lt;br /&gt;Simply select “View -&amp;gt; Resources by Connection” in the Computer Management panel:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-aBj8oeGiVnE/Thgny3f9-fI/AAAAAAAAAHw/3TBKUkeqLAA/s1600/comp_mgmt_resources.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="168" src="http://4.bp.blogspot.com/-aBj8oeGiVnE/Thgny3f9-fI/AAAAAAAAAHw/3TBKUkeqLAA/s320/comp_mgmt_resources.jpg" style="cursor: move;" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;Expand the “Memory” item from the tree on the right and the devices will be listed with their memory address ranges:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://3.bp.blogspot.com/-1AsjUuNSTeM/ThgrJ-XiI2I/AAAAAAAAAIk/4kjWXcqt5JI/s1600/dragimage.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="160" src="http://3.bp.blogspot.com/-1AsjUuNSTeM/ThgrJ-XiI2I/AAAAAAAAAIk/4kjWXcqt5JI/s320/dragimage.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The address ranges are in hexadecimal notation and in the form [RegionLetter][HEX Values] e.g. A0000000 – AFFFFFFF. The value in hex is bytes and is calculated as follows: FFFFFFF = 4294967295 bytes in decimal. Divide the decimal by 1024 accordingly to get a value in Kilobytes, Megabytes or Gigabytes.&lt;br /&gt;&lt;br /&gt;Devices which are not required can be disabled (right click and choose “Disable”).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;DETERMINE SAP JAVA SYSTEM MEMORY&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The memory allocated to an SAP system comprises of three parts:&lt;br /&gt;&lt;br /&gt;1, The Database instance memory.&lt;br /&gt;If the database is on the same server as the SAP system, then some of the operating system memory will be taken up by the database itself.&lt;br /&gt;&lt;br /&gt;2, The ABAP system memory.&lt;br /&gt;If the SAP system is a dual stack system with an ABAP instance also on the same server then some memory will also be taken up by the ABAP instance.&lt;br /&gt;&lt;br /&gt;3, The Java stack memory.&lt;br /&gt;The Java stack comprises of mainly three (sometimes four) running Java Runtime Environments (Server, Dispatcher &amp;amp; SDM).&lt;br /&gt;&lt;br /&gt;The main memory of the server must be divvied up between these 3 main components of the SAP system.&lt;br /&gt;&lt;br /&gt;Since we are concentrating on the Java stack only, we will assume that SAP recommendations were followed correctly for the setup of the database and ABAP components.&lt;br /&gt;&lt;br /&gt;Using Windows Task Manager it is possible to determine the amount of memory in use by the SAP Java system.&lt;br /&gt;The jlaunch.exe processes represent the Java Runtime Environments of the Java stack and therefore the memory usage for each process equates to the current virtual memory usage for the SAP processes:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-s0p8nHscSic/Thgo4GvctBI/AAAAAAAAAH8/6nTral-n0Ug/s1600/dragimage-15.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="157" src="http://1.bp.blogspot.com/-s0p8nHscSic/Thgo4GvctBI/AAAAAAAAAH8/6nTral-n0Ug/s400/dragimage-15.jpg" style="cursor: move;" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In the Windows Task Manager you must change the view to be able to see the process ID of a process:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://1.bp.blogspot.com/-VrL25CmBfqA/ThgpH0fJQhI/AAAAAAAAAIA/Buiq03xsBI4/s1600/dragimage-16.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="122" src="http://1.bp.blogspot.com/-VrL25CmBfqA/ThgpH0fJQhI/AAAAAAAAAIA/Buiq03xsBI4/s320/dragimage-16.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Ensure that you select the following columns:&lt;br /&gt;&lt;br /&gt;PID,&lt;br /&gt;Memory Usage,&lt;br /&gt;Peak Memory Usage,&lt;br /&gt;Page Faults&lt;br /&gt;Virtual Memory Size,&lt;br /&gt;Paged Pool,&lt;br /&gt;Non-paged Pool&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://1.bp.blogspot.com/-IEBZ9FUjQS0/ThgpXM0TQSI/AAAAAAAAAIE/2Ktg1263C1I/s1600/dragimage-17.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://1.bp.blogspot.com/-IEBZ9FUjQS0/ThgpXM0TQSI/AAAAAAAAAIE/2Ktg1263C1I/s200/dragimage-17.jpg" width="171" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;With these columns selected, we can get a far better overview of the memory usage for the SAP components:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://3.bp.blogspot.com/--JmUW1tNzEo/ThgpjJxkNaI/AAAAAAAAAII/IWbbpFJ211U/s1600/dragimage-18.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="180" src="http://3.bp.blogspot.com/--JmUW1tNzEo/ThgpjJxkNaI/AAAAAAAAAII/IWbbpFJ211U/s640/dragimage-18.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;You can now see that the actual virtual memory usage (VM Size) of the PID 5144 (what we think is the SAP Java server process) is ~1.7GB in size (1,678,188 K).&lt;br /&gt;&lt;br /&gt;The summary of the VM Size column should roughly add up to the size of the “Commit Charge – Total” value displayed on the “Performance Tab”.&lt;br /&gt;&lt;br /&gt;Generally you can guess that the jlaunch processes with the highest memory usage will be the SAP Java server processes (since they have the largest memory settings out of the box), followed by the dispatcher and finally the SDM (with the smallest default settings).&lt;br /&gt;&lt;br /&gt;For confirmation, it is possible to find the exact process id using the jcmon.exe program.&lt;br /&gt;Use option 30 (Shared Memory Menu), then&amp;nbsp;select option 2 (Display Process Data):&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://2.bp.blogspot.com/-T0HdKEqfF58/ThgruyR25II/AAAAAAAAAIs/U3KN47aJiDI/s1600/dragimage-20.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="393" src="http://2.bp.blogspot.com/-T0HdKEqfF58/ThgruyR25II/AAAAAAAAAIs/U3KN47aJiDI/s640/dragimage-20.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The running components will be displayed and we can confirm that PID 5144 is in fact the server0 process:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://3.bp.blogspot.com/-w_UJnzM7524/ThgsJ30TqkI/AAAAAAAAAI0/49-mpXJGzq8/s1600/dragimage-21.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-w_UJnzM7524/ThgsJ30TqkI/AAAAAAAAAI0/49-mpXJGzq8/s1600/dragimage-21.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;DETERMINE SET MEMORY VALUES&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;We have determined what virtual memory the SAP Java processes are actually using but we need to see the configuration settings of the Java processes so we know what to expect at startup and maximum use.&lt;br /&gt;&lt;br /&gt;There are a number of different areas of memory for a Java Runtime Environment.&lt;br /&gt;The following is a very brief overview:&lt;br /&gt;&lt;br /&gt;Heap Size The total amount of memory stack available to a Java Runtime Environment process (excludes the resident memory for the binary). The minimum heap memory is set using parameter “–Xms”.&lt;br /&gt;&lt;br /&gt;New Size Also known as the “young generation”, is the amount of heap memory allocated by default for new java classes created within the JRE. The new size is set using parameter “–NewSize”.&lt;br /&gt;&lt;br /&gt;Perm Size Also know as the “old generation” or “tenured generation” is the amount of heap memory allocated by default for java classes that have survived a number of garbage collections and are deemed “permanent” in the JRE. The perm size is set using parameter “–PermSize”.&lt;br /&gt;&lt;br /&gt;Any java classes that are no longer referenced are cleared from memory during the garbage collection cycles which are either time-triggered or based on a percentage of free heap size.&lt;br /&gt;&lt;br /&gt;The sections of heap memory and the heap memory total size itself can be set within bounds using the “-MaxXXXXSize” arguments or “-Xmx” (for the heap itself) to the JRE.&lt;br /&gt;The JRE will not break these bounds.&lt;br /&gt;If the amount of Heap allocated is not enough for the running JRE it will constantly try to garbage collect more aggressively. This will be seen in the developer trace files e.g. dev_server0, dev_dispatcher and dev_sdm.&lt;br /&gt;&lt;br /&gt;If the JRE is still unable to reference enough memory, then a Java.Lang.OutOfMemoryError will be thrown. If this is visible in the dev_server0 trace file, then this is the JRE that threw the error and was suffering the problem (more than likely).&lt;br /&gt;&lt;br /&gt;If no maximum heap size is set using the –Xmx parameter, then the JRE will attempt to expand the heap dynamically when required (it may not shrink back).&lt;br /&gt;If the Windows virtual memory is exhausted, then the JRE will eventually throw a Java.Lang.OutOfMemoryError and Windows may throw its own error.&lt;br /&gt;&lt;br /&gt;Now we understand roughly how the JRE memory is utilised, we can see the settings for the respective SAP JREs for the server, dispatcher and SDM.&lt;br /&gt;&lt;br /&gt;The JRE server0 memory allocation can be seen either through ConfigTool by selecting “Cluster-Data -&amp;gt; Instance ID XXXXXX” -&amp;gt; Server” and checking the parameters on the right hand side:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://2.bp.blogspot.com/-e4-kBeoLkgs/Thgsu8SOUdI/AAAAAAAAAI4/61j-LAvLVUY/s1600/dragimage-22.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="341" src="http://2.bp.blogspot.com/-e4-kBeoLkgs/Thgsu8SOUdI/AAAAAAAAAI4/61j-LAvLVUY/s400/dragimage-22.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Or by looking in the jlaunch process trace file:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://4.bp.blogspot.com/-oArAdO8IHYE/Thgs9K9ko_I/AAAAAAAAAI8/3DcsMvUEzAM/s1600/dragimage-23.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-oArAdO8IHYE/Thgs9K9ko_I/AAAAAAAAAI8/3DcsMvUEzAM/s1600/dragimage-23.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;This concludes the analysis of memory usage for the Java stack.&lt;br /&gt;Using this information you should now be able to determine if this meets the recommendations by SAP.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SAP JAVA STACK MEMORY RECOMMENDATIONS &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;During the creation of this article a number of SAP notes became of significance.&lt;br /&gt;Generally SAP try to recommend certain settings during installation of the SAP software, and then at a later date, they will release a note that details changes to the installation settings.&lt;br /&gt;&lt;br /&gt;The base install of SAP Netweaver 7.0 Java (SR3) seems to install with the following settings:&lt;br /&gt;&lt;br /&gt;Server:&lt;br /&gt;-Xms 1024m&lt;br /&gt;-NewSize 171m&lt;br /&gt;-MaxNewSize 171m&lt;br /&gt;-PermSize 256m&lt;br /&gt;-MaxPermSize 256m&lt;br /&gt;&lt;br /&gt;Dispatcher:&lt;br /&gt;-Xms 170m&lt;br /&gt;-NewSize 57m&lt;br /&gt;-MaxNewSize 57m&lt;br /&gt;&lt;br /&gt;SDM:&lt;br /&gt;-Xms 256m&lt;br /&gt;&lt;br /&gt;The installation documentation specifically states that the sizing of the Windows page file is essential for correct operation of the SAP system.&lt;br /&gt;The document states in the section “3.1.2 Requirements Checklist for a Central System”:&lt;br /&gt;&lt;br /&gt;“&lt;i&gt;Minimum RAM:&lt;br /&gt;1.5 GB&lt;br /&gt;To check RAM, in the Windows Explorer choose Help About Windows.&lt;br /&gt;Paging File Size: 1 times RAM plus 8 GB&lt;/i&gt;”&lt;br /&gt;&lt;br /&gt;This would infer that on a system with 10GB of RAM, the page file should be 18GB in size. This would give a total virtual memory size of 28GB.&lt;br /&gt;&lt;br /&gt;According to note 723909, SAP’s latest recommendations for sizing the JRE memory is as follows:&lt;br /&gt;&lt;br /&gt;“&lt;i&gt;For 32 bit platforms we recommend to start the server nodes with 1GB&lt;br /&gt;whereby the initial and the maximal heap size should be equal: -Xmx1024m&lt;br /&gt;-Xms1024m&lt;br /&gt;Higher values may cause troubles, for example see notes 736462 and 664607&lt;br /&gt;about Windows DLLs preventing big java heap.&lt;br /&gt;We recommend using additional server nodes instead of huge heaps.&lt;br /&gt;&lt;br /&gt;For 64 bit platforms (that means not only your OS but also your JDK&lt;br /&gt;supports 64 bit) we recommend using 2GB: -Xmx2048m -Xms2048m&lt;br /&gt;Take into account while planning your productive landscape: for NW 7.0&lt;br /&gt;(04s) there is a general recommendation to use 64bit systems, see note&lt;br /&gt;996600.&lt;br /&gt;2.2 For dispatcher nodes it's sufficient to set the heap size to 171m on 32&lt;br /&gt;bit and to 256m on 64 bit platforms. There is no need to apply the&lt;br /&gt;parameters mentioned under 4-9 below.&lt;br /&gt;Default size of the young generation (one third of the heap) is ok for&lt;br /&gt;dispatchers.&lt;br /&gt;If the instance contains more than three server nodes we recommend to add&lt;br /&gt;50MB of dispatcher heap for each additional server node.&lt;br /&gt;2.3 The max heap size (plus max perm size) of all Java server nodes&lt;br /&gt;must fit completely into the physical memory in order to avoid heavy&lt;br /&gt;paging on OS level. You must also consider the space needed for OS&lt;br /&gt;and other processes.&lt;br /&gt;For each JavaVM on the server, all Java memory must fit completely&lt;br /&gt;into physical memory (no paging)!&lt;br /&gt;Therefore the rule of thumb for number of server nodes for SUN and HP&lt;br /&gt;JavaVM with 1 GB Heap each will be&lt;br /&gt;#ServerNodes = (AvailableMemory / 1.5 GB)&lt;br /&gt;and factor 2.5 should be used instead of 1.5 for 64 bit with 2GB heap size.&lt;/i&gt;”&lt;br /&gt;&lt;br /&gt;The additional note 716604 recommends some specific settings for the SUN JVM:&lt;br /&gt;&lt;br /&gt;“&lt;i&gt;For 6.40/7.00:&lt;br /&gt;For the heapsize and the size of the new generation please take care of the&lt;br /&gt;recommendations of note 723909.&lt;br /&gt;For Windows (ia64 and x86 (64Bit)) and Linux/ia64 (Itanium) platforms set&lt;br /&gt;the stack size to at least 2MB for each serverID, the dispatcher and the&lt;br /&gt;Java based tools:&lt;br /&gt;-Xss2m&lt;br /&gt;Additionally, increase the stack size of the JIT compiler threads at least&lt;br /&gt;on the server nodes of the J2EE Engine to 4MB on these platforms with&lt;br /&gt;following parameter (effective on Windows starting with 1.4.2_17 b12 resp.&lt;br /&gt;1.4.2_18):&lt;br /&gt;-XX:CompilerThreadStackSize=4096&lt;/i&gt;”&lt;br /&gt;&lt;br /&gt;Any modifications to the Java stack should be proven in the DEV and QA environments before application to production.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-3558315803771695479?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/3558315803771695479/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=3558315803771695479&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/3558315803771695479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/3558315803771695479'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/07/analysing-sap-java-memory-usage-in.html' title='Analysing SAP Java Memory Usage in Windows'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-Z33HmcNe-IY/Thgd7hCHc3I/AAAAAAAAAHE/-VK1GgrM2xI/s72-c/dragimage.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-6644902681778942732</id><published>2011-07-01T09:25:00.002+01:00</published><updated>2011-08-04T05:59:42.795+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Troubleshooting'/><category scheme='http://www.blogger.com/atom/ns#' term='Guide'/><category scheme='http://www.blogger.com/atom/ns#' term='Netweaver'/><category scheme='http://www.blogger.com/atom/ns#' term='Performance'/><title type='text'>Basic Performance Tuning Guide - SAP NetWeaver 7.0 - Part II - Reading Single Record Statistics</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;This is Part II.  You may like to see &lt;a href="http://darrylgriffiths.blogspot.com/2011/06/basic-performance-tuning-guide-sap.html"&gt;Part I&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;In &lt;a href="http://darrylgriffiths.blogspot.com/2011/06/basic-performance-tuning-guide-sap.html"&gt;Part I&lt;/a&gt;, we showed you how to trace an ABAP program using STAD to show the single record statistics of the response times for a transaction/program.&lt;br /&gt;In this part, we will go through and decipher the statistics to help you decide where the problem may lie in your slow performing program.&lt;br /&gt;&lt;br /&gt;Following Part I, we saw the STAD screen output. &amp;nbsp;Below is a snapshot of the right hand side of the screen showing the "standard" view fields:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-lDKoSUvmKsA/TgyZBZJmMOI/AAAAAAAAAFw/h6JmCCEtc30/s1600/PBrush%2B8-753589.jpg"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-lDKoSUvmKsA/TgyZBZJmMOI/AAAAAAAAAFw/h6JmCCEtc30/s320/PBrush%2B8-753589.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The "Response time (ms)" field shows the total response time for the dialog step (or summary of steps if you have chosen not to expand the left tree).&lt;br /&gt;&lt;br /&gt;As a reminder, SAP says (&lt;a href="http://help.sap.com/saphelp_nw70ehp1/helpdata/en/21/2c8f38c7215428e10000009b38f8cf/content.htm"&gt;http://help.sap.com/saphelp_nw70ehp1/helpdata/en/21/2c8f38c7215428e10000009b38f8cf/content.htm&lt;/a&gt;&lt;br /&gt;):&lt;br /&gt;"&lt;i&gt;Response time = wait time + execution time&lt;br /&gt;where: execution time =&lt;br /&gt;Generation time during the run&lt;br /&gt;+ Load time for programs, screens, and graphical user interfaces&lt;br /&gt;+ Roll times for rolling in the work data&lt;br /&gt;+ ABAP processing time &lt;br /&gt;+ Database time&lt;br /&gt;+ Enqueue time for logical SAP lock processes&lt;br /&gt;+ CPIC/RFC time&lt;br /&gt;+ Roll wait time (excluding task types RFC/CPIC/ALE).&lt;/i&gt;"&lt;br /&gt;&lt;br /&gt;So if we take a look at our initial screen of values, the example below shows that&amp;nbsp;the "DB req time (ms)" is one of the larger values (4929):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-L0c9L8XweK8/TgyZBjKeuVI/AAAAAAAAAF4/XqzCE6LNzz8/s1600/PBrush%2B9-754122.jpg"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-L0c9L8XweK8/TgyZBjKeuVI/AAAAAAAAAF4/XqzCE6LNzz8/s320/PBrush%2B9-754122.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The total database request time (time taken for database work to be done for this step) is more than 92% of the total response time for the step.&lt;br /&gt;If the database time IS NOT a significant percentage of total response time, then you should check the other parts that make up the total response time, for clues.&lt;br /&gt;&lt;br /&gt;At this point, it's better to change the screen columns so that you can see all the timings.&lt;br /&gt;The best view is the "&lt;i&gt;Time Analysis&lt;/i&gt;" view. &amp;nbsp;Switch views by clicking the "&lt;i&gt;Sel. fields&lt;/i&gt;" button:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-lpqqOwo0NFQ/TgyZCFgTDTI/AAAAAAAAAGA/74ym3yVfBf8/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B10-756061.jpg"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-lpqqOwo0NFQ/TgyZCFgTDTI/AAAAAAAAAGA/74ym3yVfBf8/s320/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B10-756061.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Click "&lt;i&gt;Time Analysis&lt;/i&gt;":&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-X3abpEt938o/TgyZC1VOR1I/AAAAAAAAAGI/IIh9mP4E41Q/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B11-759333.jpg"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-X3abpEt938o/TgyZC1VOR1I/AAAAAAAAAGI/IIh9mP4E41Q/s320/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B11-759333.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You will now see more timing fields&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-jJUrBDqtQ2w/TgyZC3MWK3I/AAAAAAAAAGQ/sBwvZ6qzwm0/s1600/PBrush%2B12-759914.jpg"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-jJUrBDqtQ2w/TgyZC3MWK3I/AAAAAAAAAGQ/sBwvZ6qzwm0/s320/PBrush%2B12-759914.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-PGFec5JCnQA/TgyZDrfipmI/AAAAAAAAAGY/U276uEE-IZ4/s1600/PBrush%2B13-762421.jpg"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-PGFec5JCnQA/TgyZDrfipmI/AAAAAAAAAGY/U276uEE-IZ4/s320/PBrush%2B13-762421.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The fields highlighted are responsible for the total response time calculation.&lt;br /&gt;&lt;br /&gt;In our example, TOTAL RESPONSE TIME = Wait Time + DB Req Time + Processing Time + Load Time + Generating Time + Roll In Time + Roll Wait Time + Enqueue Time.&lt;br /&gt;=&amp;gt; 5330 = 0 + 4929 + 122 + 17 + 0 + 262 + 0&lt;br /&gt;(5330 / 1000 = 5.3 seconds total response time)&lt;br /&gt;&lt;br /&gt;You should check each of the fields, looking for disproportionate response times.&lt;br /&gt;&lt;br /&gt;The "&lt;b&gt;Wait time (ms)&lt;/b&gt;" indicates the amount of time the dialog step was waiting to be processed by a dialog work process. &amp;nbsp;High values indicate that the overall system performance is degraded. &amp;nbsp;Maybe a lack of memory, CPU or I/O performance at the O/S layer could be causing issues. &amp;nbsp;Check the dispatcher queue.&lt;br /&gt;&lt;br /&gt;The "&lt;b&gt;Time in WPs (ms)&lt;/b&gt;" indicates the time that the dialog step was being actively serviced by a work process and not by any other type of process (BTC, UPD, UPD2 etc).&amp;nbsp;Check "SM51 &lt;i&gt;-&amp;gt; Goto -&amp;gt; Server Name -&amp;gt; Information -&amp;gt; Queue Information&lt;/i&gt;" and SM66 to see how busy the system is.&lt;br /&gt;&lt;br /&gt;The "&lt;b&gt;Processing time (ms)&lt;/b&gt;" indicates the amount of time the individual components spent processing (working) and not idle or sleeping or waiting. &amp;nbsp;Check SM50 and SM66 to see how busy the system is.&lt;br /&gt;Use ST06 (O/S monitor) to check CPU usage and system load.&lt;br /&gt;&lt;br /&gt;The "&lt;b&gt;Load time (ms)&lt;/b&gt;" indicates the amount of time taken to load the program code into memory buffers.&lt;br /&gt;A problem here could indicate the program buffer is not large enough (see ST02). &amp;nbsp;You should check the CPU time if the load time value is large.&lt;br /&gt;&lt;br /&gt;Values for "&lt;b&gt;Generating time (ms)&lt;/b&gt;" show the time spent compiling the ABAP source code. &amp;nbsp;You will see a value here if the code has not already been compiled through SGEN. &amp;nbsp;Any large values here for programs already generated could mean a problem in the database with the code storage tables.&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Large values for "&lt;b&gt;Roll (i+w) time (ms)&lt;/b&gt;" indicates that the Roll-In and Roll-Wait times are being affected.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Roll-In is the process of moving the users session context into the work process so that it can be used to execute the dialog step. &amp;nbsp;High values could indicate that the roll buffer is too small (see ST02) or that the user has a very large set of roles and profiles and is consuming too much memory.&lt;/div&gt;&lt;br /&gt;Values for "&lt;b&gt;Enqueue time (ms)&lt;/b&gt;" show the time waited for a logical database lock to be performed.&lt;br /&gt;A high value here could indicate excessive contention (someone else doing the same work) in the SAP system or the underlying database. Maybe check SM13.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;If we look at a CPU time example, a high value here would indicate a large amount of overall processing causing the WP to use more CPU.&lt;br /&gt;Maybe a rogue loop, or a large internal table operation.&lt;br /&gt;The example below shows a high CPU time for a background job performing a lot of RFC calls.&lt;br /&gt;Notice how the processing time (just off the screen shot, sorry) has increased too (some component has to do the work):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-8zLzQLvo08o/TgyZD6mN6hI/AAAAAAAAAGg/K6WLBV-jLAM/s1600/PBrush%2B14-762982.jpg"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-8zLzQLvo08o/TgyZD6mN6hI/AAAAAAAAAGg/K6WLBV-jLAM/s320/PBrush%2B14-762982.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Could be that a lot of data/work was transfered by RFC call.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Summary:&lt;/b&gt;&lt;br /&gt;If you see high database time in your analysis, &lt;a href="http://darrylgriffiths.blogspot.com/2011/08/basic-performance-tuning-guide-sap.html"&gt;Part III&lt;/a&gt; will show you how to perform an SQL trace to see what the database is doing for so long.&lt;br /&gt;&lt;br /&gt;If you have high CPU/processing time, then in Part IV you will be shown how to find where exactly in the ABAP program is causing the most response time.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-6644902681778942732?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/6644902681778942732/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=6644902681778942732&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/6644902681778942732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/6644902681778942732'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/07/basic-performance-tuning-guide-sap.html' title='Basic Performance Tuning Guide - SAP NetWeaver 7.0 - Part II - Reading Single Record Statistics'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-lDKoSUvmKsA/TgyZBZJmMOI/AAAAAAAAAFw/h6JmCCEtc30/s72-c/PBrush%2B8-753589.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-729981903989398483</id><published>2011-06-25T10:08:00.000+01:00</published><updated>2011-06-26T17:09:07.237+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Patching'/><category scheme='http://www.blogger.com/atom/ns#' term='Space'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Oracle Home Space Cleanup (how random that sounds)</title><content type='html'>Just a quick post to make you aware of a fantastic option I recently discovered in opatch.&lt;br /&gt;I look after a large number of database systems, some having multiple Oracle homes on the same drive (I know I know, but when you're limited on drives...).&lt;br /&gt;These homes consist of things like Oracle RDBMS (obvious one), Oracle 10g EM Agent and finally Oracle 10gAS (and 10g OEM if you like to think that OMS is separate, but it's a 10gAS so I didn't).&lt;br /&gt;&lt;br /&gt;Generally the Oracle home for a 10gR2 RDBMS Enterprise Edition binary codeset seems to be around 1GB in size.&lt;br /&gt;Apply a couple of opatches and you could be looking at 2GB!&lt;br /&gt;All of a sudden, the partition is looking quite full (it used to be 9i on there when it was originally designed!!).&lt;br /&gt;&lt;br /&gt;Lets bring in a new opatch command that came in as part of an opatch upgrade in 10gR2 (opatch patch 6880880).&lt;br /&gt;The command is part of the "opatch util" command and is a sub-command called "cleanup".&lt;br /&gt;It supposedly removes the duplicated binary files taken during an opatch patch application.&lt;br /&gt;&lt;br /&gt;Oracle doc &lt;a href="https://support.oracle.com/CSP/main/article?cmd=show&amp;type=NOT&amp;doctype=HOWTO&amp;id=550522.1"&gt;550522.1&lt;/a&gt; states "&lt;i&gt;Starting with 10.2, Opatch does not backup only the affected modules, it also takes a backup of the complete affected libraries to $ORACLE_HOME/.patch_storage/&lt;patchid&gt;/backup/&lt;lib_directory_name&gt;/&lt;library_name&gt;.&lt;/i&gt;".&lt;br /&gt;&lt;br /&gt;The cleanup command only removes files that are not required as part of a patch rollback.&lt;br /&gt;&lt;br /&gt;Syntax: "&lt;code&gt;$ opatch util cleanup&lt;/code&gt;".&lt;br /&gt;&lt;br /&gt;You will be prompted to select the oracle home and confirm the cleanup.  It will also inform you of the amount of space saving.&lt;br /&gt;Enjoy the space you get back, while you can!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-729981903989398483?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/729981903989398483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=729981903989398483&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/729981903989398483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/729981903989398483'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/06/oracle-home-space-cleanup-how-random.html' title='Oracle Home Space Cleanup (how random that sounds)'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-9093134059671994035</id><published>2011-06-24T11:45:00.004+01:00</published><updated>2011-06-24T17:18:40.347+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='Tuning'/><category scheme='http://www.blogger.com/atom/ns#' term='Performance'/><title type='text'>Checking Lack of Bind Variables &amp; Adhoc SQL in Oracle</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;The following Oracle SQL is a crude method that can be used to check the V$SQLAREA view for SQL statements that have the same execution plan, but where the SQL is unique.  e.g. SQL statements where only the predicate changes in the WHERE clause. &amp;nbsp;These are otherwise known as adhoc queries (something that SQL Server 2008 is supposed to be very good at detecting).&lt;br /&gt;&lt;br /&gt;The statement was constructed based on the "Understanding Shared Pool Memory" document by Oracle (&lt;a href="http://www.oracle.com/technetwork/database/focus-areas/manageability/ps-s003-274003-106-1-fin-v2-128827.pdf"&gt;http://www.oracle.com/technetwork/database/focus-areas/manageability/ps-s003-274003-106-1-fin-v2-128827.pdf&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;The doc basically says that a count of the PLAN_HASH_VALUE column versus the number of SQL_IDs using the plan indicates how bad the SQL needs bind variables since it should have only one or two SQL statements (the lower the better) per plan.&lt;br /&gt;&lt;br /&gt;In my opinion, systems that return &amp;gt;60% for ACTION "Could use bind variables." should either consider revising the application SQL code (permanent fix), or using the CURSOR_SHARING=FORCE init parameter (temporary fix!).&lt;br /&gt;&lt;code&gt;&lt;br /&gt;SELECT 'Multiple SQLs in SQLAREA using same plan:' DESCRIPTION,sum(pct_hash_use) PCT,'Could use bind variables.' ACTION FROM (&lt;br /&gt;select hc.plan_hash_value, &lt;br /&gt;hc.hash_use_count, &lt;br /&gt;sc.sql_count, &lt;br /&gt;round((hc.hash_use_count/sc.sql_count*100),2) pct_hash_use &lt;br /&gt;from &lt;br /&gt;(select s.plan_hash_value, count(s.plan_hash_value) hash_use_count &lt;br /&gt;from v$sqlarea s &lt;br /&gt;group by s.plan_hash_value &lt;br /&gt;having plan_hash_value &amp;gt; 0 &lt;br /&gt;) hc, &lt;br /&gt;(select count(1) sql_count &lt;br /&gt;from v$sqlarea t &lt;br /&gt;where plan_hash_value &amp;gt; 0 &lt;br /&gt;) sc &lt;br /&gt;order by pct_hash_use desc &lt;br /&gt;) WHERE hash_use_count &amp;gt; 1 &lt;br /&gt;UNION &lt;br /&gt;SELECT 'Single SQLs in SQLAREA using same plan:' Description,sum(pct_hash_use) PCT,'No action needed.' ACTION FROM ( &lt;br /&gt;select hc.plan_hash_value, &lt;br /&gt;hc.hash_use_count, &lt;br /&gt;sc.sql_count, &lt;br /&gt;round((hc.hash_use_count/sc.sql_count*100),2) pct_hash_use &lt;br /&gt;from &lt;br /&gt;(select s.plan_hash_value, count(s.plan_hash_value) hash_use_count &lt;br /&gt;from v$sqlarea s &lt;br /&gt;group by s.plan_hash_value &lt;br /&gt;having plan_hash_value &amp;gt; 0 &lt;br /&gt;) hc, &lt;br /&gt;(select count(1) sql_count &lt;br /&gt;from v$sqlarea t &lt;br /&gt;where plan_hash_value &amp;gt; 0 &lt;br /&gt;) sc &lt;br /&gt;order by pct_hash_use desc &lt;br /&gt;) WHERE hash_use_count &amp;lt;= 1;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;You can also use the following query to determine roughly how much memory is wasted on single SQL statements that have been executed only once (you should use this on a well bedded in system that has been running for a while):&lt;br /&gt;&lt;code&gt;&lt;br /&gt;select count(1) num_sql, &lt;br /&gt;sum(decode(executions, 1, 1, 0)) num_1_use_sql, &lt;br /&gt;sum(sharable_mem)/1024/1024 mb_sql_mem, &lt;br /&gt;sum(decode(executions, 1, sharable_mem, 0))/1024/1024 mb_1_use_sql_mem &lt;br /&gt;from v$sqlarea &lt;br /&gt;where sharable_mem &amp;gt;0;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;You should double check the output with the SQL text in V$SQLAREA to ensure that the SQL is truly ad-hoc.&lt;br /&gt;&lt;br /&gt;Remember to get some hard and fast values for the "Concurrency" wait class before and after the change (bind variables introduced or init parameter changed).&lt;br /&gt;&lt;br /&gt;You can use SQL: "&lt;code&gt;select * from v$system_event where wait_class#=4 order by average_wait desc;&lt;/code&gt;" to determine the average wait time.&lt;br /&gt;&lt;br /&gt;I would expect the library cache operation wait times to reduce as hard parses are reduced. &lt;br /&gt;&lt;br /&gt;Here is an example of a system that is not using bind variables to optimise SQL:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-L7WVrBnB3Q0/Tf9o92DuDJI/AAAAAAAAABo/X38VEuR42wA/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B1-783234.jpg"&gt;&lt;img border="0" height="302" src="http://3.bp.blogspot.com/-L7WVrBnB3Q0/Tf9o92DuDJI/AAAAAAAAABo/X38VEuR42wA/s640/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B1-783234.jpg" width="640" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;When running the script we get:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-49tlNBimwKA/Tf9o-W1fXCI/AAAAAAAAABw/s2dNnY1YgMI/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B2-784959.jpg"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-49tlNBimwKA/Tf9o-W1fXCI/AAAAAAAAABw/s2dNnY1YgMI/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B2-784959.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You should note that an OLTP system such as SAP ERP should have a much lower count for adhoc SQL &amp;nbsp;compared to a SAP BW system where users can write their own queries.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-9093134059671994035?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/9093134059671994035/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=9093134059671994035&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/9093134059671994035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/9093134059671994035'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/06/checking-lack-of-bind-variables-adhoc.html' title='Checking Lack of Bind Variables &amp; Adhoc SQL in Oracle'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-L7WVrBnB3Q0/Tf9o92DuDJI/AAAAAAAAABo/X38VEuR42wA/s72-c/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B1-783234.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-1955695810946541262</id><published>2011-06-24T11:27:00.000+01:00</published><updated>2011-06-24T11:27:09.976+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='Tuning'/><category scheme='http://www.blogger.com/atom/ns#' term='Performance'/><title type='text'>Oracle Explain Plans: Cardinality &amp; Histograms</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;This is one of the better&amp;nbsp;white papers&amp;nbsp;on how to read an Oracle explain plan:&lt;br /&gt;&lt;a href="http://www.oracle.com/technetwork/database/focus-areas/bi-datawarehousing/twp-explain-the-explain-plan-052011-393674.pdf"&gt;http://www.oracle.com/technetwork/database/focus-areas/bi-datawarehousing/twp-explain-the-explain-plan-052011-393674.pdf&lt;/a&gt;&lt;br /&gt;The most important point is made on cardinality on page 10 when explaining "Data Skew".&lt;br /&gt;The term "Data Skew" is used to refer to the imbalance of values with respect to a normal distribution (&lt;a href="http://en.wikipedia.org/wiki/Skewness"&gt;http://en.wikipedia.org/wiki/Skewness&lt;/a&gt;).&lt;br /&gt;The imbalance is shown as the Mode (&lt;a href="http://en.wikipedia.org/wiki/Mode_(statistics)"&gt;http://en.wikipedia.org/wiki/Mode_(statistics)&lt;/a&gt;) of the values in a column of a table.&lt;br /&gt;&lt;br /&gt;Example:&lt;code&gt;&lt;br /&gt;SELECT * FROM A_TABLE;&lt;br /&gt;&lt;br /&gt;COL1 | COL2&lt;br /&gt;-----|-----&lt;br /&gt;&amp;nbsp; &amp;nbsp;1    |   A   &amp;lt;== Mode = most frequent.&lt;br /&gt;&amp;nbsp; &amp;nbsp;2    |   A&lt;br /&gt;&amp;nbsp; &amp;nbsp;3    |   A   &amp;lt;== Median = middle one&lt;br /&gt;&amp;nbsp; &amp;nbsp;4    |   B&lt;br /&gt;&amp;nbsp; &amp;nbsp;5    |   B&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Histogram for COL2:&lt;code&gt;&lt;br /&gt;&lt;br /&gt;Value |Number&lt;br /&gt;------|------&lt;br /&gt;A &amp;nbsp; &amp;nbsp; |###&lt;br /&gt;B &amp;nbsp; &amp;nbsp; |##&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Data Skew means that more of (usually it takes a lot more, like +60%) the values in COL2 have a value of "A" than of "B".&lt;br /&gt;As the Oracle whitepaper points out "&lt;i&gt;One of the simplest formulas is used when there is a single equality predicate in a single table query (with no histogram). In this case the Optimizer assumes a uniform distribution and calculates the cardinality for the query by dividing the total number of rows in the table by the number of distinct values in the column used in the where clause predicate.&lt;/i&gt;".&lt;br /&gt;&lt;br /&gt;In example "&lt;code&gt;SELECT * FROM A_TABLE WHERE COL2='A'&lt;/code&gt;" this would equate to:  Cardinality = 5 / 2 A cardinality value of 2.5 would be rounded to 3.&lt;br /&gt;Accurate enough.&lt;br /&gt;&lt;br /&gt;The problem with this is that the larger the number of rows the more skewed the cardinality will become.&lt;br /&gt;Imagine the table with values like so:&lt;code&gt;&lt;br /&gt;&lt;br /&gt;Value |Number&lt;br /&gt;------|---------------&lt;br /&gt;A &amp;nbsp; &amp;nbsp; |###############&lt;br /&gt;B &amp;nbsp; &amp;nbsp; |##&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Now in example "&lt;code&gt;SELECT * FROM A_TABLE WHERE COL2='A'&lt;/code&gt;" this would equate to:  Cardinality = 17 / 2&lt;br /&gt;A cardinality value of 8.5 would be rounded to 9.&lt;br /&gt;Definitely&amp;nbsp;not 15.&lt;br /&gt;&lt;br /&gt;To solve this problem, Oracle has the capability to collect statistics for individual columns.&lt;br /&gt;You can use the DBMS_STATS.GATHER_TABLE_STATS command to collect stats on the column (&lt;a href="http://www.dba-oracle.com/t_histograms.htm"&gt;http://www.dba-oracle.com/t_histograms.htm&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;The below statement will collect stats on the COL2 column of A_TABLE in the OE schema with a bucket size of 20 buckets. &amp;nbsp;These column stats are histograms of the distribution of values.&lt;code&gt;&lt;br /&gt;&lt;br /&gt;BEGIN&lt;br /&gt;DBMS_STATS.GATHER_table_STATS (OWNNAME =&amp;gt; 'OE', TABNAME =&amp;gt; 'A_TABLE',&lt;br /&gt;METHOD_OPT =&amp;gt; 'FOR COLUMNS SIZE 20 COL2');&lt;/code&gt;&lt;br /&gt;&lt;code&gt;END;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;/&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Two types of HISTOGRAM are available in Oracle, FREQUENCY and HEIGHT.&lt;br /&gt;Oracle uses HEIGHT based histograms *only* when the number of distinct values of a column is greater than the number of buckets specified.&lt;br /&gt;"&lt;i&gt;In a height-balanced histogram, the column values are divided into bands so that each band contains approximately the same number of rows. The useful information that the histogram provides is where in the range of values the endpoints fall.&lt;/i&gt;".&lt;br /&gt;&lt;br /&gt;Oracle will use FREQUENCY based histograms by default when the number of distinct values of a column is less than or equal to the number of buckets specified.&lt;br /&gt;"&lt;i&gt;In a frequency histogram, each value of the column corresponds to a single bucket of the histogram.&lt;/i&gt;".&lt;br /&gt;&lt;br /&gt;&lt;a href="http://download.oracle.com/docs/cd/B19306_01/server.102/b14211/stats.htm"&gt;http://download.oracle.com/docs/cd/B19306_01/server.102/b14211/stats.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It is possible to view the collected histogram for a column:&lt;code&gt;&lt;br /&gt;&lt;br /&gt;SELECT column_name, num_distinct, num_buckets, histogram&lt;br /&gt;FROM USER_TAB_COL_STATISTICS&lt;br /&gt;WHERE table_name = 'A_TABLE' AND column_name = 'COL2';&lt;/code&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-1955695810946541262?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/1955695810946541262/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=1955695810946541262&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/1955695810946541262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/1955695810946541262'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/06/oracle-explain-plans-cardinality.html' title='Oracle Explain Plans: Cardinality &amp; Histograms'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-1134992501477493774</id><published>2011-06-24T11:12:00.000+01:00</published><updated>2011-06-24T11:12:45.247+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Error'/><category scheme='http://www.blogger.com/atom/ns#' term='Troubleshooting'/><category scheme='http://www.blogger.com/atom/ns#' term='Gateway'/><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><category scheme='http://www.blogger.com/atom/ns#' term='Netweaver'/><title type='text'>SAP RFC Gateway Error 10060</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: left;"&gt;Yesterday I spent the majority of the morning tracking a problem in the SAP ERP system.&lt;/div&gt;It has been occurring for a while but I have had far more important issues. &amp;nbsp;Finally I got round to looking at it.&lt;br /&gt;&lt;br /&gt;In hosta SM21 system log, the gateway process (RD) had registered a network connect error (Q0I) "Operating system call connect failed (error no. 10060)":&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-ycXlAr4rRcw/TgRfxZNlQTI/AAAAAAAAAC4/HYrXEuE1_F4/s1600/Paintbrush%2BPicture%2B1-708936.jpg" style="clear: left; margin-bottom: 1em;"&gt;&lt;img border="0" height="11" src="http://1.bp.blogspot.com/-ycXlAr4rRcw/TgRfxZNlQTI/AAAAAAAAAC4/HYrXEuE1_F4/s400/Paintbrush%2BPicture%2B1-708936.jpg" style="cursor: move;" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The architecture of the SAP systems involved in the landscape looks like the following diagram, which shows an SAP ERP single ABAP stack (hosta), which is connected to an SAP Enterprise Portal system which is clustered (hostb &amp;amp; hostc):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-R5fX-Ex2AdQ/TgRfxsYd_GI/AAAAAAAAADA/9B08P-HC61s/s1600/Picture%2B%2528Metafile%2529%2B2-710199.jpg"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-R5fX-Ex2AdQ/TgRfxsYd_GI/AAAAAAAAADA/9B08P-HC61s/s1600/Picture%2B%2528Metafile%2529%2B2-710199.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Looking in the gateway error log (TX: SMGW), I saw the network interface (Ni) timeout error when looking up the hostname for IP address 192.168.1.1:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-QTWmn8MkCkw/TgRfxwFOvOI/AAAAAAAAADI/TeR-lbi4q3E/s1600/Paintbrush%2BPicture%2B3-711157.jpg"&gt;&lt;img border="0" height="31" src="http://4.bp.blogspot.com/-QTWmn8MkCkw/TgRfxwFOvOI/AAAAAAAAADI/TeR-lbi4q3E/s400/Paintbrush%2BPicture%2B3-711157.jpg" style="cursor: move;" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The business process involved means that an RFC connection is established from the EP server processes (hostb) to the ERP gateway process (hosta).&lt;br /&gt;As you can see in the architecture diagram, the IP 192.168.1.1 is the private IP address of the hostb server in the EP cluster.&lt;br /&gt;The private IP address is only used as a heartbeat address as part of the Microsoft Cluster service.&lt;br /&gt;So the question was, why was the SAP ERP gateway process receiving inbound connections from hostb via the private IP address?&lt;br /&gt;&lt;br /&gt;The method of analysis involves understanding how the IP to hostname lookups are performed on the Windows servers:&lt;br /&gt;&lt;br /&gt;First, if you open a command prompt and use NSLOOKUP to check the hostname ("C:&amp;gt; nslookup hostb") it will return the hostname from the Name Service configured for the Windows Server.  Usually this is in the order of hosts file first, then DNS.  It performs the lookup using the appropriate network interface according to the network routings ("C:&amp;gt; route print").&lt;br /&gt;In our example, the nslookup correctly returned the public IP address.&lt;br /&gt;&lt;br /&gt;Second, you can issue a PING of hostb from hostb (itself) using "C:&amp;gt; ping hostb". &lt;br /&gt;When using PING, it sends a network packet using the appropriate network interface according to the network routings ("C:&amp;gt; route print").  Since we are pinging ourselves, it will use the first network interface in bind order of the Windows network connections.&lt;br /&gt;In our case, it was pinging the *private* IP address.&lt;br /&gt;According to Microsoft, the PING command in Windows uses gethostbyname() to find the IP address for the destination to be ping'd(http://support.microsoft.com/kb/822713).&lt;br /&gt;&lt;br /&gt;So we have established that the private IP address is seen when we ping our own servername on hostb, why does this mean that the private IP is seen as the client in a SAP RFC gateway connection?&lt;br /&gt;Well, in the same way that PING uses gethostbyname(), the RFC connection that is established through jlaunch.exe (host of the JAVA stack server processes) also uses gethostbyname().  Of course, we know what IP address a gethostbyname() call returns, as this is used in the PING command .&lt;br /&gt;&lt;br /&gt;(findstr /M gethostbyname jlaunch.exe)&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-8vPRYOZHuMw/TgRfyJpyIMI/AAAAAAAAADQ/ISE1y-ToNR4/s1600/Picture%2B%2528Metafile%2529%2B4-712622.jpg"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-8vPRYOZHuMw/TgRfyJpyIMI/AAAAAAAAADQ/ISE1y-ToNR4/s1600/Picture%2B%2528Metafile%2529%2B4-712622.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So, the RFC connection performed by the JAVA stack is created from the jlanuch.exe binary, which uses gethostbyname() during the bind() call, which returns the private IP.&lt;br /&gt;The RFC connection is established and part of the RFC connection process the jlanuch.exe process passes it's calling IP address.  Which is the private IP address.&lt;br /&gt;The ERP system gateway at the other end of the connection receives the incoming connection and notes that it is coming from 192.168.1.1.  Should the ERP system on hosta wish to make an RFC callback (&lt;a href="http://help.sap.com/saphelp_nw04/helpdata/en/22/042a77488911d189490000e829fbbd/content.htm"&gt;http://help.sap.com/saphelp_nw04/helpdata/en/22/042a77488911d189490000e829fbbd/content.htm&lt;/a&gt;)&lt;br /&gt;(&lt;a href="http://help.sap.com/saphelp_nw04/helpdata/en/22/042a91488911d189490000e829fbbd/content.htm"&gt;http://help.sap.com/saphelp_nw04/helpdata/en/22/042a91488911d189490000e829fbbd/content.htm&lt;/a&gt;), it has no chance of returning the call to the private IP address on hostb.  This is where we get the error "NiHsLGetHostByName failed".&lt;br /&gt;&lt;br /&gt;So how do we resolve the problem?&lt;br /&gt;We could code the lookup into the hosts file (172.x.x.2  hostb) on hostb, but this might cause other issues.&lt;br /&gt;A quick look into the SAP documentation for installing Netweaver 7.0 SR3 in a Microsoft Clustered system reveals that a simple step was missed during installation on hostb.&lt;br /&gt;In the document it states "The card of the public network must be displayed before that of the private network. If necessary, change the order in which the cards are listed by using the Move Up and Move Down arrows".&lt;br /&gt;&lt;br /&gt;So I check the binding orders on hostb in Control Panel -&amp;gt; Network Connections -&amp;gt; Advanced Settings:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-xTsTcTIULTs/TgRfyTKEFSI/AAAAAAAAADY/UFuA_nKoQYk/s1600/Picture%2B%2528Metafile%2529%2B5-713107.jpg"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-xTsTcTIULTs/TgRfyTKEFSI/AAAAAAAAADY/UFuA_nKoQYk/s320/Picture%2B%2528Metafile%2529%2B5-713107.jpg" style="cursor: move;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;They are the wrong way around.  The "Cluster Heartbeat" (Private IP) should be beneath the Public IP ("Local Area Connection" in our example).&lt;br /&gt;The Microsoft article here (&lt;a href="http://support.microsoft.com/kb/894564"&gt;http://support.microsoft.com/kb/894564&lt;/a&gt;) lists the process to change it and provides alternative solutions (I would recommend to follow the SAP document).&lt;br /&gt;&lt;br /&gt;Changing the binding order on Windows Server 2003 does not require a reboot, but the change will not be effective until a reboot is performed.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-1134992501477493774?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/1134992501477493774/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=1134992501477493774&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/1134992501477493774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/1134992501477493774'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/06/sap-rfc-gateway-error-10060.html' title='SAP RFC Gateway Error 10060'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-ycXlAr4rRcw/TgRfxZNlQTI/AAAAAAAAAC4/HYrXEuE1_F4/s72-c/Paintbrush%2BPicture%2B1-708936.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-7473394892011515225</id><published>2011-06-20T19:42:00.002+01:00</published><updated>2011-06-21T19:21:45.338+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Management'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Netweaver'/><title type='text'>Detecting &amp; Reducing Space Used For SAP Business Workplace Documents</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Within the SAP Netweaver 7.0 system is a complete e-mail tool that allows users to send/receive electronic documents.&lt;br /&gt;These documents are visible in the SAP Business Workplace (TX: SBWP) inbox/outbox and also in the SAP Connect transmission requests (TX: SOST).&lt;br /&gt;&lt;br /&gt;As time goes by and users accumulate documents in their inbox and internal/external mails get sent through SAPConnect, space in the database will be used.&lt;br /&gt;&lt;br /&gt;SAP Note: 966854 recommends running RSBCS_REORG to clear down these documents and free the space.&lt;br /&gt;Unfortunately it doesn't tell you how much space is taken up and how much you could get back.&lt;br /&gt;&lt;br /&gt;Using the details in SAP Note: 706478 it is possible to check some of the tables at the database level.&lt;br /&gt;Once again, the note doesn't list all tables involved.&lt;br /&gt;Instead, running the RSBCS_REORG report in "Test" mode reveals the full extent of the tables where records will be deleted:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-_qg1hwOsUmw/Tf9o1pxyrxI/AAAAAAAAABY/hwdRh9yWckI/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B1-750091.jpg"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-_qg1hwOsUmw/Tf9o1pxyrxI/AAAAAAAAABY/hwdRh9yWckI/s320/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B1-750091.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So using this information, the following constructed SQL query will return the current size of the database segments (Oracle) for the selected tables:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;SELECT * &lt;br /&gt;FROM ( &lt;br /&gt;select sum(s.bytes)/1024/1024 size_mb , &lt;br /&gt;s.segment_name, &lt;br /&gt;s.segment_type, &lt;br /&gt;s.segment_name table_name, &lt;br /&gt;t.ddtext descr &lt;br /&gt;from dba_segments s, &lt;br /&gt;sapsr3.dd02t t &lt;br /&gt;where s.segment_name in ('BCST_BOR', &lt;br /&gt;'BCST_CAM', &lt;br /&gt;'BCST_RE', &lt;br /&gt;'BCST_SR', &lt;br /&gt;'SOC3', &lt;br /&gt;'SOCS', &lt;br /&gt;'SOCX', &lt;br /&gt;'SOER', &lt;br /&gt;'SOES', &lt;br /&gt;'SOFM', &lt;br /&gt;'SOOD', &lt;br /&gt;'SOOS', &lt;br /&gt;'SOST') &lt;br /&gt;and s.segment_name = t.tabname &lt;br /&gt;and ddlanguage='E' &lt;br /&gt;group by s.segment_name, s.segment_type, s.segment_name, t.ddtext &lt;br /&gt;union all &lt;br /&gt;select sum(s.bytes)/1024/1024 size_mb , &lt;br /&gt;s.segment_name, &lt;br /&gt;s.segment_type, &lt;br /&gt;i.table_name, &lt;br /&gt;t.ddtext descr &lt;br /&gt;from dba_segments s, &lt;br /&gt;sapsr3.dd02t t, &lt;br /&gt;dba_indexes i &lt;br /&gt;where i.table_name in ( &lt;br /&gt;'BCST_BOR', &lt;br /&gt;'BCST_CAM', &lt;br /&gt;'BCST_RE', &lt;br /&gt;'BCST_SR', &lt;br /&gt;'SOC3', &lt;br /&gt;'SOCS', &lt;br /&gt;'SOCX', &lt;br /&gt;'SOER', &lt;br /&gt;'SOES', &lt;br /&gt;'SOFM', &lt;br /&gt;'SOOD', &lt;br /&gt;'SOOS', &lt;br /&gt;'SOST') &lt;br /&gt;and i.table_name = t.tabname &lt;br /&gt;and i.index_name = s.segment_name &lt;br /&gt;and ddlanguage='E' &lt;br /&gt;group by s.segment_name, s.segment_type, i.table_name, t.ddtext &lt;br /&gt;) t1 &lt;br /&gt;ORDER BY t1.table_name ASC, t1.segment_type DESC;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-nF7esGewsr4/Tf9o2efFKOI/AAAAAAAAABg/Pu3b4T93hg8/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B2-752768.jpg"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-nF7esGewsr4/Tf9o2efFKOI/AAAAAAAAABg/Pu3b4T93hg8/s320/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B2-752768.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You may just be able to see that the SOC3 table is using ~7GB of space with an index of 144MB and a lob object of 64KB.&lt;br /&gt;&lt;br /&gt;Now if you run the RSBCS_REORG report using "Test" mode, with the settings to remove the documents that are &amp;gt;60 days old, then you can estimate what percentage of records will be removed from table SOC3 and therefore estimate the space saving.&lt;br /&gt;&lt;br /&gt;As a rule of thumb, it may be wise to remove the documents from users who have left the company.&lt;br /&gt;Generally the SAP account will be locked, so you can pull the account names using the following SQL query then add them into the RSBCS_REORG report "User" field:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;SELECT DISTINCT bname FROM sapsr3.usr02 WHERE uflag =128;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;NOTE: When running RSBCS_REORG, it will not remove assigned workflows from the "Workflow" folder (or sub-folders).&lt;br /&gt;&lt;br /&gt;You may also consider running the report for the user who runs the SAPConnect background job step.&amp;nbsp; As this user will have the majority of occupied space.&lt;br /&gt;&lt;br /&gt;Once you've deleted the records that are not required, the space in the database tables will be freed.&lt;br /&gt;However, this will not release the space to the rest of the database, only the tables from where the records were deleted.&lt;br /&gt;Stay tuned for my up-coming post on how to free the table segment space after you've removed thousands of records from the Oracle database.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-7473394892011515225?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/7473394892011515225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=7473394892011515225&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/7473394892011515225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/7473394892011515225'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/06/detecting-reducing-space-used-for-sap.html' title='Detecting &amp; Reducing Space Used For SAP Business Workplace Documents'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-_qg1hwOsUmw/Tf9o1pxyrxI/AAAAAAAAABY/hwdRh9yWckI/s72-c/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B1-750091.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-1123651391019179625</id><published>2011-06-20T19:34:00.000+01:00</published><updated>2011-11-12T10:19:52.224Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reports'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Netweaver'/><title type='text'>Useful SAP Reports</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;It's always good to have the exact report handy, just incase the transaction is not in your SAP role:&lt;br /&gt;&lt;br /&gt;BTCTRNS1 - Suspend All Jobs For an Upgrade &lt;br /&gt;BTCTRNS2 - Un-Suspend All Jobs For an Upgrade &lt;br /&gt;RDBMIDOC - Create IDocs from change pointers and send. &lt;br /&gt;RBDMOIND - Status conversion of successfull IDoc communication. &lt;br /&gt;RSALDBRG - Reorganise CCMS Alert Database &lt;br /&gt;RSALERTTEST - Test alerts &lt;br /&gt;RSAVGL00 - Table adjustment across clients &lt;br /&gt;RSINCL00 - Extended program list &lt;br /&gt;RSBDCSUB - Release batch-input sessions automaticly &lt;br /&gt;RSCPINST - Check language installation config.&lt;br /&gt;RSTXSCRP - Transport SAPscript files across systems &lt;br /&gt;RGUGBR00&amp;nbsp;- Substitution/Validation utility &lt;br /&gt;RSBCSRE03 - Clean old SOST records (send deliveries) &lt;br /&gt;RSBTCDEL - Clean the old background job records &lt;br /&gt;RSDBCREO - Clean batch input session log &lt;br /&gt;RSEIDOCA - Active IDoc Monitoring &lt;br /&gt;RSPARAM - Display all instance parameters &lt;br /&gt;RSPO0041 - Removing old spooling objects &lt;br /&gt;RSSNAPDL - Clean the old ABAP error dumps &lt;br /&gt;RSSLG200 - Remove expired application logs (SLG1). &lt;br /&gt;RSSLGK90 - Delete application logs created before the specified date. &lt;br /&gt;RSSOREST - Clean old SOST records (send deliveries) &lt;br /&gt;RSPO1041 - Cross-Client Spool Request Cleanup.&lt;br /&gt;RSPOR_SETUP - BW / BI Configuration Consistency Check &lt;br /&gt;RSTXICON - List all icons in the system &lt;br /&gt;RSTRFCEG - Consistency check of outbound queues (RFC/trfc/qrfc). &lt;br /&gt;RSUSR002 - Roles by complex selection (new) &lt;br /&gt;RSUSR003 - Check the passwords of users SAP* and DDIC in all clients &lt;br /&gt;RSUSR006 - List users last login &lt;br /&gt;RSUSR020 - Profiles by complex selection &lt;br /&gt;RSUSR050 - Compare users &lt;br /&gt;RSUSR070 - Roles by complex selection &lt;br /&gt;RSUSR200 - List users by login date. &lt;br /&gt;RSWUWFML2 - Delivers work items via users e-mail address. &lt;br /&gt;RSWWWIDE - Remove work items and related sub-items. &lt;br /&gt;RSXMB_CANCEL_MESSAGES - Cancel messages in error. &lt;br /&gt;RSXMB_CHECK_MSG_QUEUE - Check messages in queue. &lt;br /&gt;SSF_ALERT_CERTEXPIRE - Certificate expiry check.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-1123651391019179625?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/1123651391019179625/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=1123651391019179625&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/1123651391019179625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/1123651391019179625'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/06/useful-sap-reports.html' title='Useful SAP Reports'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-8350237876409548970</id><published>2011-06-14T19:39:00.000+01:00</published><updated>2011-06-21T19:15:38.707+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Management'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Oracle vs SQL Server - I like it!</title><content type='html'>&lt;div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I found this today &lt;a href="http://www.oaktable.net/sites/default/files/deathmatch.pdf"&gt;http://www.oaktable.net/sites/default/files/deathmatch.pdf&lt;/a&gt;&lt;br /&gt;It shows a good comparison of basic syntactical differences in SQL Server and Oracle when looking to compare performance / features.&lt;br /&gt;I especially like the use of blockrecover in RMAN towards the end.&amp;nbsp; Nice.&lt;br /&gt;&lt;br /&gt;Just take a look at the tags for&amp;nbsp;it's hosting blog page and it's obvious which one will win without even reading the slide.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-8350237876409548970?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/8350237876409548970/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=8350237876409548970&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/8350237876409548970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/8350237876409548970'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/06/oracle-vs-sql-server-i-like-it.html' title='Oracle vs SQL Server - I like it!'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-6315804837534243090</id><published>2011-06-14T18:34:00.000+01:00</published><updated>2011-10-07T19:11:33.769+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Transactions'/><category scheme='http://www.blogger.com/atom/ns#' term='Netweaver'/><title type='text'>Useful SAP Transactions</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Here are a collection of SAP transactions that I find useful:&lt;br /&gt;&lt;br /&gt;AISUSER - Solution Manager maintain S-user for maint-opt. &lt;br /&gt;AL08 - All Users Logged On &lt;br /&gt;AL13 - Display Shared Memory &lt;br /&gt;ALRTCATDEF - Alert category definitions &lt;br /&gt;ALRTDISP - Alert display &lt;br /&gt;ALTINBOX - Alert inbox &lt;br /&gt;BDLSS - Shows all items associated with the logical system name. &lt;br /&gt;BDM7 - ALE Audit Statistics &lt;br /&gt;BD10 - Send Material Master &lt;br /&gt;BD12 - Send Customer Master &lt;br /&gt;BD14 - Send Vendor Master &lt;br /&gt;BD22 - Reorganise (Delete) Change Pointers &lt;br /&gt;BD87 - ALE Message Monitor &lt;br /&gt;BF24 - Create Product (User exits) &lt;br /&gt;BF34 - Register user exit event to function module. &lt;br /&gt;CG3Z - Transfer file from frontend. &lt;br /&gt;CMOD - List user exits &lt;br /&gt;DB02 - Database Tables/Tablespace Statistics &lt;br /&gt;DB13 - Database Planning Calendar &lt;br /&gt;DB14 - Database Operations Log &lt;br /&gt;DB26 - Database Parameters &lt;br /&gt;DBCO - External Database Connections in SAP. &lt;br /&gt;F.10 - GL Accounts &lt;br /&gt;F110 - BACS Payments&lt;br /&gt;FBL1N - List Invoice Documents &lt;br /&gt;IDX1 - Port Maintenance In IDoc Adapter &lt;br /&gt;IDX2 - Meta Data Overview in IDoc Adapter &lt;br /&gt;IDX5 - XI IDoc search.&lt;br /&gt;LISTSCHEMA - BW Lists underlying tables for InfoCubes. &lt;br /&gt;MMRV - Show current posting period &lt;br /&gt;OAAD - Archivelink Administration of Stored Documents&lt;br /&gt;OAER - Business Document Navigator &lt;br /&gt;OAM1 - ArchiveLink Monitor &lt;br /&gt;OAC0 - Define content servers &lt;br /&gt;OAWD - Archivelink Document Storage. &lt;br /&gt;OB29 - Define Posting Periods (See also SPRO -&amp;gt; Fianncial Accounting -&amp;gt; Financial Accounting Global Settings -&amp;gt; Fiscal Year)&lt;br /&gt;OMJ3 - Printer Determination by Plant. &lt;br /&gt;OMJR - Printer Determination by Output Type. &lt;br /&gt;OS01 - Ping servers &lt;br /&gt;ORA_PERF - Analyse tables, delete statistics. &lt;br /&gt;OY18 - Reports for table logging. &lt;br /&gt;PA30 - Maintain HR Master &lt;br /&gt;PFAL - HR ALE Transfer of Master Data. &lt;br /&gt;PFCG - Role Maintenance&lt;br /&gt;PFTC - Workflow task maintenance. &lt;br /&gt;PFTC_CHG - Change a workflow task. &lt;br /&gt;PFUD - Profile consistency (mass user comparison) check (schedule job).&lt;br /&gt;RMPS_SET_SUBSTITUTE - Set Workflow substitute. &lt;br /&gt;PPOME - HR Mini Master (Personnel Management) &lt;br /&gt;PPOMW - HR Mini Master (Organisational Management) &lt;br /&gt;RRMX - Launch BEX Analyser &lt;br /&gt;RSA7 - BW Delta Queue Maintenance &lt;br /&gt;RSM37 - Display background jobs with parameters. &lt;br /&gt;RSRDA - Stop all daemons for real-time data acquisition in BW. &lt;br /&gt;RZ01 - Job Scheduling Monitor. &lt;br /&gt;RZ03 - Display/ Manully Switch Operation Mode (start/stop instance). &lt;br /&gt;RZ04 - Maintain Operations Modes &lt;br /&gt;RZ12 - Maintain RFC groups. &lt;br /&gt;RZ21 - Monitoring Properties &lt;br /&gt;RZ70 - SLD Administration &lt;br /&gt;SA38 - ABAP Reporting &lt;br /&gt;SAPL0ARC - Archiving Customising For Object. &lt;br /&gt;SCCL - Local Client Copy.&lt;br /&gt;SCEM - CATT initial screen. &lt;br /&gt;SCU3 - Analyse table logging logs &lt;br /&gt;SDCCN - Service Data Control Centre &lt;br /&gt;SECR - AIS (Audit Information System) &lt;br /&gt;SE03 - System Change Option &lt;br /&gt;SE11 - Data Dictionary Display &lt;br /&gt;SE21 - Package Builder. &lt;br /&gt;SE61 - Change display screen text. &lt;br /&gt;SE93 - Transaction lookup. &lt;br /&gt;SE37 - ABAP Function Modules &lt;br /&gt;SE54 - Generate Table Maintenance. &lt;br /&gt;SBIW - Maintain Business Information Warehouse Data Sources &lt;br /&gt;SCU0 - Customizing Cross System Viewer &lt;br /&gt;SLDCHECK - Check status of the SLD &lt;br /&gt;SLDAPICUST - SLD API Customizing &lt;br /&gt;SLG1 - Analyse application log &lt;br /&gt;SLG2 - Application Logs Delete &lt;br /&gt;SMLG - Logon groups. &lt;br /&gt;SMGW - Gateway monitoring &lt;br /&gt;SMICM - ICM Monitor &lt;br /&gt;SMQ1 - qRFC Monitor (Outbound Queue) &lt;br /&gt;SMQ2 - qRFC Monitor (Inbound Queue) &lt;br /&gt;SMQ3 - qRFC Monitor (Saved E-Queue) &lt;br /&gt;SMQE - qRFC Administration &lt;br /&gt;SMSY - SOLMAN - Landscape Directory &lt;br /&gt;SMSY_SETUP - Solution Directory Setup &lt;br /&gt;SMX - Own Jobs &lt;br /&gt;SM18 - Security Audit Log Reorganisation &lt;br /&gt;SM19 - Security Audit Log Configuration &lt;br /&gt;SM20 - Security Audit Log Analysis &lt;br /&gt;SM35 - Batch Input Log (LSMW etc) &lt;br /&gt;SM58 - Asynchornous RFC Error Log &lt;br /&gt;SM63 - Maintain Operation Modes Calendar &lt;br /&gt;SM64 - Background Jobs Events. &lt;br /&gt;SM65 - Background processing check. &lt;br /&gt;SM66 - All processes across system. &lt;br /&gt;SM69 - Maintain External Commands &lt;br /&gt;SO36 - Automatic System Forwarding for E-Mails &lt;br /&gt;SOA0 - ArchiveLink Document Types. &lt;br /&gt;SOLMAN_WORKCENTER - Solution Manager Maintenance Optimizer. &lt;br /&gt;SP12 - TemSe administration &lt;br /&gt;SSAA - System Administrator Assistant &lt;br /&gt;ST02 - SAP Buffer Tuning &lt;br /&gt;ST03 - Global Workload Monitor &lt;br /&gt;ST04 - Database Statistics &lt;br /&gt;ST06 - Operating System Monitor &lt;br /&gt;SUCU - Table / View Authorisations. &lt;br /&gt;SUGR - User Group Maintenance &lt;br /&gt;SWDD - Workflow Builder. &lt;br /&gt;SWDM - Workflow Builder &lt;br /&gt;SWI1 - Workflow Instance Log &lt;br /&gt;SWE2 - Workflow linkages &lt;br /&gt;SWEL - Display Event Trace &lt;br /&gt;SWELS - Switch on/off event trace &lt;br /&gt;SWEQADM - Event Queue Administration &lt;br /&gt;SWEQBROWSER - Event queue browser &lt;br /&gt;SWO1 - Business Object Builder &lt;br /&gt;SWU0 - Workflow event simulation &lt;br /&gt;SWU3 - Workflow customizing &lt;br /&gt;SWUS - Test Workflow &lt;br /&gt;SWWL - Delete workflow &lt;br /&gt;SXMB_MONI - Integration Engine Monitoring &lt;br /&gt;SXMB_MONI_BPE - Process Engine Monitoring &lt;br /&gt;SXMB_IFR - Call Integration Builder &lt;br /&gt;SXMB_ADM - Integration Engine Admin &lt;br /&gt;SXI_CACHE - XI Directory Cache &lt;br /&gt;SXI_MONITOR - XI Message Monitoring &lt;br /&gt;TU02 - Change parameters &lt;br /&gt;USMM - User Measurement Statistics. &lt;br /&gt;WE02 - IDoc Display &lt;br /&gt;WE07 - IDoc Monitoring &lt;br /&gt;WE05 - IDoc List. &lt;br /&gt;WE09 - IDoc Search. &lt;br /&gt;WE11 - Delete IDocs &lt;br /&gt;WE19 - IDoc Test Tool &lt;br /&gt;WE20 - IDoc Partner Profiles &lt;br /&gt;WE40 - Idoc administration setup &lt;br /&gt;WE41 - Outbound Process codes. &lt;br /&gt;WE42 - Inbound process codes. &lt;br /&gt;WE46 - IDoc Admin &lt;br /&gt;WE60 - IDoc Types Documentation &lt;br /&gt;XK02 - Changer Vendor Details &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-6315804837534243090?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/6315804837534243090/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=6315804837534243090&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/6315804837534243090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/6315804837534243090'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/06/useful-sap-transactions.html' title='Useful SAP Transactions'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-4561088695035723145</id><published>2011-06-14T18:10:00.000+01:00</published><updated>2011-06-21T19:10:40.907+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tables'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Netweaver'/><title type='text'>Useful SAP Tables</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;During my time as a SAP BASIS administrator, I have accumulated a number of useful database tables.&lt;br /&gt;&lt;br /&gt;ADR6 - User Address Data (cross with USR21) &lt;br /&gt;AGR_1250 - Authorization data for the activity group &lt;br /&gt;AGR_USERS - Assignment of roles to users &lt;br /&gt;AGR_SELECT - Assignment of roles to Tcode &lt;br /&gt;AGR_PROF - Profile name for role &lt;br /&gt;AGR_DEFINE - Role definition &lt;br /&gt;BDCPS - Change Pointers &lt;br /&gt;DDLOG - Table buffer changes for sync between dialog instances.&lt;br /&gt;DD02T - SAP Tables and descriptions. &lt;br /&gt;PA0105 - HR Communications InfoType (includes USERID to PERNO). &lt;br /&gt;SH_PRIN - Printer list &lt;br /&gt;TADIR - Repository object table. &lt;br /&gt;TBRG - All Authorisation Groups. &lt;br /&gt;TDDAT - Tables to Authorisation Groups.&lt;br /&gt;TBTCP - Background Job Steps (see field AUTHCKNAM for job user) &lt;br /&gt;TOLE - OLE Link table &lt;br /&gt;USR02 - User passwords. &lt;br /&gt;USR01 - Users. &lt;br /&gt;USR04 - User Master Authorisations. &lt;br /&gt;USR10 - Authorisation Profiles. &lt;br /&gt;UST04 - Users to profiles. &lt;br /&gt;TDEVC - Package table. &lt;br /&gt;TSP03D - Printer Output Devices &lt;br /&gt;TST03 - Spool requests &lt;br /&gt;TSTC - Transactions &lt;br /&gt;TVARV - Variant Variables &lt;br /&gt;VARI - Variants &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-4561088695035723145?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/4561088695035723145/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=4561088695035723145&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/4561088695035723145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/4561088695035723145'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/06/useful-sap-tables.html' title='Useful SAP Tables'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-8156558800288196144</id><published>2011-06-13T18:37:00.000+01:00</published><updated>2011-06-21T19:11:33.125+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AWR'/><category scheme='http://www.blogger.com/atom/ns#' term='Code Standards'/><category scheme='http://www.blogger.com/atom/ns#' term='Musing'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='ASH'/><title type='text'>Use of Oracle AWR / ASH leading to bad coding?</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I had a brief email exchange with another Oracle guru the other day.&lt;br /&gt;He suggested that the quality of Oracle coding in PL*SQL and Plain Jane (&lt;a href="http://www.medicaltextbooksrevealed.com/blog/2010/02/plain-jane/"&gt;www.medicaltextbooksrevealed.com/blog/2010/02/plain-jane/&lt;/a&gt;)&amp;nbsp;SQL had gone down hill.&lt;br /&gt;&lt;br /&gt;This could be attributed to two factors:&lt;br /&gt;1, The level of coding experience has dropped.&amp;nbsp; Older more experienced coders have filled into the new architect roles and the void is being filled quickly by newer in-experienced coders.&lt;br /&gt;2, The rigour with which debugging, testing and tuning is performed has become somewhat lax (&lt;a href="http://www.thefreedictionary.com/lax"&gt;www.thefreedictionary.com/lax&lt;/a&gt; ) because there's just no emphasis on the developers to tune their code when the DBA has such great tools to do it for them.&lt;br /&gt;&lt;br /&gt;Is it possible that the use of the additionally licensed tools such as AWR (Automatic Workload Repository) and ASH (Active Session History) introduced in Oracle 10g, have provided an easy mechanism for DBAs to seek out better performance.&lt;br /&gt;I don't think these tools are just for DBAs, but the way they are marketed makes me feel they are pushed that way.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-8156558800288196144?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/8156558800288196144/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=8156558800288196144&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/8156558800288196144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/8156558800288196144'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/06/use-of-oracle-awr-ash-leading-to-bad.html' title='Use of Oracle AWR / ASH leading to bad coding?'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-6040938738211132095</id><published>2011-06-12T11:08:00.000+01:00</published><updated>2011-06-21T19:13:09.995+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UNIX'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Server'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='Tuning'/><title type='text'>Running Oracle (Windows vs UNIX/Linux)</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;For most of my IT career I've been using UNIX/Linux (let's call this ULix to save my fingers) to run Oracle.&lt;br /&gt;Humans are creatures of habit (like cats &lt;a href="http://www.simonscat.com/"&gt;http://www.simonscat.com/&lt;/a&gt;) and so why would I want to change this.&lt;br /&gt;Running Oracle on ULix is a measured quantity.&amp;nbsp; It works, it's reliable, you can tune it and then you can really&amp;nbsp;tune it.&lt;br /&gt;&lt;br /&gt;Whilst browsing my book library I came across a book I've had for years:&lt;br /&gt;"&lt;a href="http://www.solarisdatabases.com/"&gt;Configuring &amp;amp; Tuning Databases on the Solaris Platform&lt;/a&gt;" by Allan N. Packer&lt;br /&gt;If you have ever wondered what the possibilities are in tuning an Oracle system on ULix, then read this book.&amp;nbsp; It might be old, but it's a good one, and it establishes all the basic principles of tuning.&lt;br /&gt;&lt;br /&gt;Now if we were to consider running Oracle on Windows (&lt;a href="http://www.dba-oracle.com/art_builder_linux_oracle.htm"&gt;http://www.dba-oracle.com/art_builder_linux_oracle.htm&lt;/a&gt;), then out-of-the-box (&lt;a href="http://www.ukrapmusic.com/mixtapes/717-rootz-sparka-presents-out-of-the-box"&gt;http://www.ukrapmusic.com/mixtapes/717-rootz-sparka-presents-out-of-the-box&lt;/a&gt;)&amp;nbsp;it would work perfectly fine.&lt;br /&gt;&lt;br /&gt;Microsoft have made vast improvements to the monitoring/tuning&amp;nbsp;capabilities in newer Windows Server versions, but I don't think this can compare to the&amp;nbsp;flexibility of monitoring/tuning in&amp;nbsp;ULix.&lt;br /&gt;I find it very difficult to profile a database on Windows.&lt;br /&gt;Think about it, where can I see the individual shadow processes (&lt;a href="http://cavyspirit.deviantart.com/art/Don-t-Mess-with-Shadow-Process-194711067"&gt;http://cavyspirit.deviantart.com/art/Don-t-Mess-with-Shadow-Process-194711067&lt;/a&gt;)&amp;nbsp;at the OS level?&lt;br /&gt;&lt;br /&gt;On Tanel Poder's company's website, there's a great whitepaper &lt;a href="http://files.e2sn.com/slides/Tanel_Poder_log_file_sync.pdf"&gt;"Understanding LGWR, Log File Sync Waits and Commit Performance"&lt;/a&gt;.&lt;br /&gt;In this whitepaper, Tanel mentions monitoring and tuning the Oracle log writer (LGWR) process to get better CPU time.&amp;nbsp; I thought to myself, how would someone do this on Windows?&lt;br /&gt;&lt;br /&gt;I really don't think you can.&lt;br /&gt;To summarise: I like Windows, it can run Oracle RDBMS perfectly fine, but it's not as flexible as running on ULix.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-6040938738211132095?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/6040938738211132095/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=6040938738211132095&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/6040938738211132095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/6040938738211132095'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/06/running-oracle-windows-vs-unixlinux.html' title='Running Oracle (Windows vs UNIX/Linux)'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-698354314788739114</id><published>2011-06-10T18:06:00.003+01:00</published><updated>2011-08-04T06:02:07.064+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Management'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Guide'/><category scheme='http://www.blogger.com/atom/ns#' term='Netweaver'/><category scheme='http://www.blogger.com/atom/ns#' term='Tuning'/><category scheme='http://www.blogger.com/atom/ns#' term='Performance'/><title type='text'>Basic Performance Tuning Guide - SAP NetWeaver 7.0 - Part I - Finding Slow Running Programs</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;For me, as a BASIS administrator, it's the most fun part of the job.&amp;nbsp; Performance tuning!&lt;br /&gt;I enjoy making things faster, more efficient.&amp;nbsp; It seems German (&lt;/span&gt;&lt;a href="http://www.urbandictionary.com/define.php?term=german%20efficiency"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;http://www.urbandictionary.com/define.php?term=german%20efficiency&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;) in some ways, and I guess that I must have a little OCD in me, but it's rewarding.&lt;br /&gt;&lt;br /&gt;I can't believe how simple performance tuning can be sometimes.&amp;nbsp; If I write the process down it even seems simple:&lt;br /&gt;1, Find slow running programs.&lt;br /&gt;2, Analyse why they are slow or poor performers.&lt;br /&gt;3, Tune them.&lt;br /&gt;4, Cup of tea.&lt;br /&gt;5, See them fly.&lt;br /&gt;&lt;br /&gt;For those Lean Six Sigma followers, this fits in with DMAIC (&lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/Six_Sigma"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;http://en.wikipedia.org/wiki/Six_Sigma&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;) quite nicely.&lt;br /&gt;I bet it would even look good on a fish bone diagram (&lt;/span&gt;&lt;a href="http://www.leansixsigmasource.com/2009/04/15/how-to-construct-a-fishbone-diagram/"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;http://www.leansixsigmasource.com/2009/04/15/how-to-construct-a-fishbone-diagram/&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;) (sorry, I did mean "cause &amp;amp; effect diagram" honest).&lt;br /&gt;&lt;br /&gt;I'm going to break these steps down.&lt;br /&gt;&lt;br /&gt;Let's start with number 1:&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;Find Slow Running Programs&lt;/b&gt;&lt;br /&gt;So you have your new SAP system all installed. &lt;br /&gt;The consultancy that briskly implemented it and have now rolled-off, have left it running beautifully (&lt;/span&gt;&lt;a href="http://www.zdnet.com/blog/projectfailures/san-diego-fires-axon-over-erp-implementation-problems/1960"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;http://www.zdnet.com/blog/projectfailures/san-diego-fires-axon-over-erp-implementation-problems/1960&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;).&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Why wouldn't they.&lt;br /&gt;As an operations specialist (&lt;/span&gt;&lt;a href="http://darrylgriffiths.blogspot.com/2011/06/are-you-sure-im-not-consultant-not.html"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;http://darrylgriffiths.blogspot.com/2011/06/are-you-sure-im-not-consultant-not.html&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;), you get called in.&lt;br /&gt;Of course, you're an expert and you know that profiling a system is one of those tasks that needs to be done to help you troubleshoot performance problems.&amp;nbsp; But being an expert, you also know that there are bigger fish to fry after a fresh implementation of anything.&lt;br /&gt;So we assume that it is not plausible to use a comparative profile of before and after performance.&lt;br /&gt;&lt;br /&gt;Let's assume that a report/transaction has been reported as running slowly today by a single user (one helpdesk ticket &lt;/span&gt;&lt;a href="http://lukasland.com/humour/Computing-General/Help-Desk-Hell.htm"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;http://lukasland.com/humour/Computing-General/Help-Desk-Hell.htm&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;).&lt;br /&gt;You're on the case and you can look at the problem right now.&lt;br /&gt;What's you're first call?&lt;br /&gt;Wrong!&amp;nbsp; Crying won't get you anywhere!&lt;br /&gt;We need to see if the problem is caused by the system in general, the user (sometimes you do get them) or something else.&lt;br /&gt;I always use the following methods:&lt;br /&gt;&lt;br /&gt;1, Check SM66 (global work process overview). It's easier than checking SM50, then remembering that you're on a system with Apps servers (additional dialog instances).&lt;br /&gt;What's currently running?&lt;br /&gt;Look specifically at the "Time" and "Action" columns:&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;a href="http://1.bp.blogspot.com/-HRZa_RgG-E0/TfJMnLu4rFI/AAAAAAAAAA4/PFJWKR3nJUY/s1600/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B1-755260.jpg"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;img alt="" border="0" height="103" id="BLOGGER_PHOTO_ID_5616635921332481106" src="http://1.bp.blogspot.com/-HRZa_RgG-E0/TfJMnLu4rFI/AAAAAAAAAA4/PFJWKR3nJUY/s400/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B1-755260.jpg" width="400" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;If there are any long running programs (large "Time" values) in the list, what "Action" are they performing?&amp;nbsp; Could it affect the report that the user has identified as being slow?&lt;br /&gt;&lt;br /&gt;2, Check SM21 (System Log) always good to keep abreast of potential system wide issues!&amp;nbsp; Brownie points (&lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/Brownie_points"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;http://en.wikipedia.org/wiki/Brownie_points&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;) from the big boss for being so quick!&lt;br /&gt;Any problems in here will also mention short dumps in ST22, so no need to check ST22 unless it's in the system log.&lt;br /&gt;&lt;br /&gt;3, Check STAD (SAP Workload - Single Business Transactions).&amp;nbsp; This shows specific transactions that the user has completed in the&amp;nbsp;&amp;lt;n&amp;gt;hours (after this they get aggregated and shown in ST03N/ST03G depending on your collector settings).&lt;br /&gt;Use the "Show Business Transaction Tots" option, it's easier to see the wood for the trees (&lt;/span&gt;&lt;a href="http://www.woodfortrees.org/"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;http://www.woodfortrees.org/&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;).&lt;br /&gt;Enter the username into the filter and adjust the time period to search for (when did the problem happen?).&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;img alt="" border="0" height="397" id="BLOGGER_PHOTO_ID_5616635926673788642" src="http://4.bp.blogspot.com/-BSqam9HNqC8/TfJMnfoWjuI/AAAAAAAAABA/xj3I1GK6lok/s400/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B2-757036.jpg" width="400" /&gt;&lt;br /&gt;&lt;br /&gt;Great!&amp;nbsp; You can see the individual transactions performed by the user (even ITS based services e.g. BSPs will be shown):&lt;br /&gt;&lt;br /&gt;TIP: Try it without the filter on a small system to see what you can actually get.&amp;nbsp; It's quite a lot of information.&amp;nbsp; RFCs, background jobs, HTTP.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://3.bp.blogspot.com/-UJWmwrhqz0s/TfJMnmowIJI/AAAAAAAAABI/H9D0h09DnpY/s1600/PBrush%2B3-758231.jpg"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;img alt="" border="0" height="115" id="BLOGGER_PHOTO_ID_5616635928554512530" src="http://3.bp.blogspot.com/-UJWmwrhqz0s/TfJMnmowIJI/AAAAAAAAABI/H9D0h09DnpY/s400/PBrush%2B3-758231.jpg" width="400" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Check out the "Response Time", "CPU time" and "DB req time" columns.&lt;br /&gt;See if any specific transaction stands out above the rest for these three values.&lt;br /&gt;&lt;br /&gt;If you expand the "+" folder on the very left, you will see each dialog step (screen) that the user has been through:&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;img alt="" border="0" height="60" id="BLOGGER_PHOTO_ID_5616635932622770930" src="http://4.bp.blogspot.com/-L4h4sFPUQUc/TfJMn1ys0vI/AAAAAAAAABQ/zV2_SH4S7OM/s400/PBrush%2B4-759581.jpg" width="400" /&gt;&lt;br /&gt;&lt;br /&gt;The time gap between each screen is the previous screens response time + roll-time + front-end time + "Think Time".&lt;br /&gt;&lt;br /&gt;So now you've found the slow program, you need to analyse it. &lt;br /&gt;&lt;a href="http://darrylgriffiths.blogspot.com/2011/07/basic-performance-tuning-guide-sap.html"&gt;Part II&lt;/a&gt; of this guide shows how to read and decipher the single record statistics using STAD.&lt;br /&gt;&lt;a href="http://darrylgriffiths.blogspot.com/2011/08/basic-performance-tuning-guide-sap.html"&gt;Part III&lt;/a&gt; of this guide shows how to perform an SQL Trace.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-L4h4sFPUQUc/TfJMn1ys0vI/AAAAAAAAABQ/zV2_SH4S7OM/s1600/PBrush%2B4-759581.jpg" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-698354314788739114?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/698354314788739114/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=698354314788739114&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/698354314788739114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/698354314788739114'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/06/basic-performance-tuning-guide-sap.html' title='Basic Performance Tuning Guide - SAP NetWeaver 7.0 - Part I - Finding Slow Running Programs'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-HRZa_RgG-E0/TfJMnLu4rFI/AAAAAAAAAA4/PFJWKR3nJUY/s72-c/Picture%2B%2528Device%2BIndependent%2BBitmap%2529%2B1-755260.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16458652.post-5307823530379265943</id><published>2011-06-10T16:30:00.002+01:00</published><updated>2011-06-21T19:15:07.073+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Musing'/><title type='text'>Are you sure I'm not a consultant</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;I'd like to mention the growing (in my mind anyway) disparity between an operational support person and a consultant.&lt;br /&gt;Having spent some time in contact with various recruitment agencies, I can understand how single words specified on a requirements brief from the client must be followed as accurately as possible.&lt;br /&gt;The client, after all, wants the perfect candidate don't they?!&lt;br /&gt;&lt;br /&gt;I've worked on both sides of the coin you see.&lt;br /&gt;I started off as an apprentice in an IT department in the late nineties.&lt;br /&gt;Customer satisfaction is key when you're in an IT department working the helpdesk.&amp;nbsp; Even if you're second line (which infers a military comparison, doesn't it? &lt;/span&gt;&lt;a href="http://www.google.co.uk/search?hl=en&amp;amp;biw=1385&amp;amp;bih=862&amp;amp;q=second+line+of+defence&amp;amp;aq=f&amp;amp;aqi=g7g-v2g-sv1&amp;amp;aql=f&amp;amp;oq="&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;http://www.google.co.uk/search?hl=en&amp;amp;biw=1385&amp;amp;bih=862&amp;amp;q=second+line+of+defence&amp;amp;aq=f&amp;amp;aqi=g7g-v2g-sv1&amp;amp;aql=f&amp;amp;oq=&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;), you may be rated on your comms skills, how efficient you were and how accurate (first time fix).&lt;br /&gt;So I can understand that supporting something that is already installed and working would be viewed as operational support and not consultancy.&lt;br /&gt;&lt;br /&gt;I've also worked for a consultancy, quite a big one.&amp;nbsp; I wasn't called a consultant, but if you work for a consultancy you must be? right?&lt;br /&gt;&lt;br /&gt;But wait, doesn't an internal IT department upgrade stuff?&amp;nbsp; performance tune?&amp;nbsp; generate ideas?&lt;br /&gt;Are we saying that IT departments just do these things without talking to the business side.&amp;nbsp; I think not.&amp;nbsp; I remember many meetings where new ideas had been conceived in the IT department and were conveyed to the business.&lt;br /&gt;Is this not consulting? Advising what would be best for the business and the technology.&amp;nbsp; I don't know any IT department today that would contemplate changing anything without consulting with the business first.&lt;br /&gt;&lt;br /&gt;So if we're saying that IT departments do consult, the difference between a consultant and operational support must be in the *type* of consulting right?&lt;br /&gt;You could argue that a consultant has more "soft" skills.&amp;nbsp; Um, like a salesman perhaps?&lt;br /&gt;Or would you argue that a consultant may have broader knowledge.&amp;nbsp; Possibly.&amp;nbsp; More of a fish eye? (&lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/Jack_of_all_trades,_master_of_none"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;http://en.wikipedia.org/wiki/Jack_of_all_trades,_master_of_none&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;).&lt;br /&gt;Hmm, I can't see how this is different either.&amp;nbsp; You are either very good at these things (IT skills) or you're not.&lt;br /&gt;The only difference is when you consider a company wanting change, but not having the skills internally.&amp;nbsp; Wouldn't that force them to use an external consultancy?&amp;nbsp; Someone *else* to consult with.&lt;br /&gt;&lt;br /&gt;I think a "consultant" today is someone who has managed to escape the IT department.&amp;nbsp; He's a free radical (&lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/Radical_(chemistry"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;http://en.wikipedia.org/wiki/Radical_(chemistry&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;)).&amp;nbsp; But without the other elements he's not got anything to bond with.&amp;nbsp; He's able to offer unbounded ideas and generally gets the biggest budget (and sometimes some training), but he's not able to evolve into anything more complex.&amp;nbsp; He came, he saw, he implemented, he left.&amp;nbsp; There's a bigger side to this implementation lark, and it happens to be operational support!&lt;br /&gt;Hurrah to the helpdesk operators, the backup tape changers and the email mailbox size limiting people (&lt;/span&gt;&lt;a href="http://www.winserverkb.com/Uwe/Forum.aspx/exchange-admin/5313/Why-limit-people-s-mailbox-size"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;http://www.winserverkb.com/Uwe/Forum.aspx/exchange-admin/5313/Why-limit-people-s-mailbox-size&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;).&lt;br /&gt;&lt;br /&gt;Some of the best, most talented people I've ever worked with have been working in operational support.&amp;nbsp; Fantastic, creative ideas ingeniously devised in the smallest of rooms at the eleventh hour (&lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/The_Eleventh_Hour"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;http://en.wikipedia.org/wiki/The_Eleventh_Hour&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;) to stop the world ending (or the system from crashing) on a system that was implemented 20+ years ago.&amp;nbsp; How can these people not be consultants?&amp;nbsp; Maybe they're too honest ;-)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16458652-5307823530379265943?l=darrylgriffiths.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darrylgriffiths.blogspot.com/feeds/5307823530379265943/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16458652&amp;postID=5307823530379265943&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/5307823530379265943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16458652/posts/default/5307823530379265943'/><link rel='alternate' type='text/html' href='http://darrylgriffiths.blogspot.com/2011/06/are-you-sure-im-not-consultant-not.html' title='Are you sure I&apos;m not a consultant'/><author><name>Darryl Griffiths</name><uri>http://www.blogger.com/profile/14606963192602668739</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/-Q00Id_XmxmE/TfIn5tvaLpI/AAAAAAAAAAY/HThM-hZsXjk/s220/me.jpg'/></author><thr:total>0</thr:total></entry></feed>
