Clear Library Cache

Where Are Cache Files and Temp Files Located? The Mac has two primary types of cache files, System and User, which are located in three primary locations. The system caches are located at /Library/Cache as well as /System/Cache. The user caches are located at /Library/Cache. The tilde in the last cache location is a shortcut for your home. To clear the Windows Store cache, open “Run” by pressing Windows+R on your keyboard. The “Run” window will appear. In the text box next to “Open,” type WSReset.exe and then click “OK.” Once selected, a black window will appear. If you want to clear the cached data per-app basis, then follow some of the simple steps given below. First of all, open Settings and then on the ‘Apps’. In the next step, select the app whose cache you want to delete. Next, tap on the ‘Storage’. Tap on ‘Storage’.

Clear the Office cache on Mac. Add-ins are often cached in Office for Mac, for performance reasons. Normally, the cache is cleared by reloading the add-in. If more than one add-in exists in the same document, the process of automatically clearing the cache on reload might not be reliable.

  1. Click the Tools menu (three dotted lines in the upper-right corner).
  2. Select History.
  3. Select Clear Browsing Data from the left-hand side. Set the Time Range set to All Time. Check-mark Cookies and other site data and Cached images and files and select Clear Data.

  4. If on a Windows computer, close and re-open Chrome to save your changes. If on an Apple computer, go to the Chrome menu on the top menu bar and select Quit for the changes to take effect.
  1. Click on the Tools bar.
  2. Click on Options (On Mac, it's labeled Preferences).
  3. On the menu to the left, select Privacy & Security.
  4. Under the Cookies and Site Data option, click the 'Clear Data...' button.

  5. Select only the two options and hit clear now.

  6. If on a Windows computer, close and re-open Firefox to save your changes. If on an Apple computer, go to the Firefox menu on the top menu bar and select Quit for the changes to take effect.
  1. Click on Safari on the top menu bar.
  2. Click Preferences.

  3. Click the Privacy tab.
  4. Click Manage Website Data...
  5. Click Remove All.
  6. Click Remove Now.

  7. Go to the Safari menu on the top menu bar.
  8. Select Quit to close Safari and save your changes.
  1. Click the Tools menu (three dotted lines in the upper-right corner), and open the Settings menu.

  2. Click Privacy, search, and services on the left-side menu.
  3. Under the section Clear browsing data, Click Choose what to clear.

  4. Select Cookies and other site data and Cached images and files.
  5. Click Clear Now.

  6. Close Microsoft Edge completely for your changes to take effect.
  1. Click on the Settings menu in the upper-right corner.
  2. Click Internet options.

  3. Under the General tab on the upper-left-hand side, scroll down to Browsing history.
  4. Select Delete...

  5. Check the Temporary Internet files and website files, Cookies and website data, History, and Download History boxes.
  6. Select Delete.

  7. Close Internet Explorer and reopen it for changes to take effect.
  1. Go to the Settings app on your device.
  2. Scroll down to the Safari menu.
  3. Scroll down and select Clear History and Website Data.

  4. A pop-up will come up verifying that you want to clear the History and Data. Select Clear History and Data.

  5. The button for Clear History and Website Data will turn gray when cache and cookies have been successfully cleared.
  1. Open Google Chrome on your iOS device.
  2. Click on the menu toolbar in the bottom right corner.

  3. Select Settings.

  4. Select Privacy.

  5. Select Cookies, Site Data, and Cached Images and Files. At the top, set the Time Range set to All Time.

  6. Click Clear Browsing Data at the bottom of the screen.
  7. Then confirm by clicking Clear Browsing Data again.

Well, as I have already shown, I like to work in the area of troubleshooting and performance because every incident is a battle and you will never imagine what you will find as a problem and how the case will end. One tip I leave here ... always have good weapons in the battle for it to end quickly.

Today, I'd like to share another example troubleshooting with the library cache lock event, which for me is one of the hardest to find root cause. This example I am going to show is just one example because we know that there are many causes about the 'library cache lock' event and another point is the difficulty of finding the offender, and that often due to the pressure to resolve the fast incident, we can not find the root cause and for sure your Manager will request the root cause of the incident. But in this case I had TIME to investigate before killing, not needing to restart the entire database or kill almost every session of the Database without knowing what the offender was.

Before we start the analysis we will understand a little about the event library cache lock:

What is 'Library cache lock' ?

This event controls the concurrency between clients of the library cache. It acquires a lock on the object handle so that either:

  • One client can prevent other clients from accessing the same object.
  • The client can maintain a dependency for a long time (for example, so that no other client can change the object).

This lock is also obtained to locate an object in the library cache.

Library cache lock will be obtained on database objects referenced during parsing or compiling of SQL or PL/SQL statements (table, view, procedure, function, package, package body, trigger, index, cluster, synonym). The lock will be released at the end of the parse or compilation.

Cursors (SQL and PL/SQL areas), pipes and any other transient objects do not use this lock.

Library cache lock is not deadlock sensitive and the operation is synchronous.

From my experience this library cache lock event occurs mainly in large databases with concurrency in the Shared Pool when we perform the following activities:

- Execution of DDL as Object Recompilation.

- Execution of Grant on very busy objects. But Grant Bruno? Yes, a grant depending on the use of the object and the size of the database may rather have a memory lock.

- Collection of statistics during peak hours.

- Run SQL analyze, Advisor Tunig for a long time.

- In general, the problem may be generated because of administrative tasks that should be performed outside of business hours, but I have already encountered Bug with ORA-0600 error with the event library cache lock. So each case a case and needs to be well analyzed.

Analyzing ASH (active session history) ... and using Oracle Enterprise Manager you will find that you will find a high volume of sessions waiting for the library cache lock and the OEM will not easily show the offender to you.

Symptom: Increasing Active Sessions and a Contention in the Database with the event library cache lock - Wait Class Concurrency

Let’s go to troubleshooting…

Now let's investigate the AWR report at the time of database contention.

Analyzing the AWR we can verify that 89% of the DTIME of the database in the contention period was the event library cache lock.

Analyzing AWR in the 'SQL ordered by Elapsed Time' topic we can check the SQLs that have the most waits from the event cache lock lock and killing those SQLs will not resolve the contention, I say that for sure, because I tried it.

Analyzing AWR in the 'SQL ordered by Sharable Memory' topic also does not show the offender.

Analyzing AWR in the 'SQL ordered by Version Count' topic also does not show the offender.

So how to find the contention offender of the library cache lock event?

So how do I say Shared Pool contention for me is one of the most difficult because we generally do not have much time to run some collections because of the seriousness of the incident because it is a very critical database in which it generates a lot of financial impact for the company. If you are lucky like me in this case, I suggest running HANG ANALYSIS as below and if you can collect well at the exact moment of contention you will get the offender.

To run HANG ANALYSIS and Systemstate we have 2 ways:

1-Form of Execution for Single Instance Environments:

sqlplus / as sysdba

oradebug setmypid

oradebug unlimit

oradebug hanganalyze 3

oradebug dump systemstate 258

2 - Form of execution for RAC ambitions:

oradebug setmypid

oradebug unlimit

oradebug -g all hanganalyze 3

oradebug -g all dump systemstate 258

Well, we go to the result of HANG ANALISYS and Systemstate that I collected to try to find the contention offender…

*** 2018-02-21 16:07:45.815

HANG ANALYSIS:

instances (db_name.oracle_sid):

oradebug_node_dump_level: 3

analysis initiated by oradebug

Chains most likely to have caused the hang:

[a] Chain 1 Signature: <not in a wait><='library cache lock'<='library cache lock'

Non-intersecting chains:

------------------------------------------------------------------------------

Chain 1:

-------------------------------------------------------------------------------

Oracle session identified by:

{

instance: 1 (abcd)

os id: 88112

process id: 961, oracle@machine1

session id: 70

session serial #: 13391

}

is waiting for 'library cache lock' with wait info:

{

p1: 'handle address'=0xba9ecd01a8

p2: 'lock address'=0xb313e4baf8

p3: '100*mode+namespace'=0x3ead800010002

time in wait: 7 min 52 sec

timeout after: 7 min 7 sec

wait id: 85

blocking: 0 sessions

current sql: SELECT * FROM 'MDES_XX_ALTERADO'

wait history:

* time between current wait and wait #1: 0.000342 sec

1. event: 'SQL*Net message from client'

}

and is blocked by

=> Oracle session identified by:

{

instance: 1 (abcd)

os id: 91878

process id: 1234, oracle@machine1

session id: 2155

session serial #: 5794

Clear

}

which is waiting for 'library cache lock' with wait info:

{

p1: 'handle address'=0xba9ecd01a8

p2: 'lock address'=0xb3423fe0e0

p3: '100*mode+namespace'=0x3ead800010003

time in wait: 10 min 31 sec

timeout after: 4 min 28 sec

wait id: 46

blocking: 137 sessions

current sql: INSERT INTO DADOS (msg_id,msg_id2,msg_id_serv,split_row_num,ext_tracking_id, trans_id,element_id,type_id_usg,orig_type_id_usg,rate_class, bill_class,provider_id,jurisdiction,rate_currency_code, account_no,subscr_no,subscr_no_resets,external_id,external_id_type, point_origin,point_id_origin,country_code_origin,

wait history:

* time between current wait and wait #1: 0.001148 sec

1. event: 'SQL*Net message from client'

}

and is blocked by

=> Oracle session identified by:

{

instance: 1 (abcd)

os id: 30462

process id: 65, oracle@machine1

session id: 4102 <<<<<<<<<<<<<<<<<<<<<< Offender Session.

session serial #: 39087

}

which is not in a wait:

{

last wait: 0.000000 sec ago

blocking: 138 sessions

current sql: /* SQL Analyze(4102,0) */ SELECT XXT_PERIOD CICLO, JD.ACCOUNT_CATEGORY, JD.ID_VALUE, JD.MKT_CODE, JD.REV_RCV_COST_CTR, JD.ACCOUNT_NO, JD.SUBSCR_NO, JD.SUBSCR_NO_RESETS, JD.ELEMENT_ID, FU.UNITS_FREE UNITS_FREE, SUM(CD.RATED_UNITS) USAGE_UNITS, JD.REPORTED_AMOUNT REPORTED_AMOUNT, JD.INVOICE_AMOUNT INVOICE_AMOUNT, UT

wait history:

1. event: 'db file sequential read'

time waited: 0.000368 sec

wait id: 53223005 p1: 'file#'=0x2ac

Clear Library Cache

p2: 'block#'=0xc6d44

p3: 'blocks'=0x1

Cause: By analyzing HANG ANALYSIS, it was possible to identify Session 4102 by running SQL Analyzer possibly a Tuning Advisor from 02/20/2018 at 10am and was causing library cache lock contention.

Below the SQL that Session 4102 was running:

Current sql: / * SQL Analyze (4102,0) * / SELECT XXT_PERIOD CYCLE, JD.ACCOUNT_CATEGORY, JD.ID_VALUE, JD.MKT_CODE, JD.ACV_COST_CTR, JD.ACCOUNT_NO, JD.SUBSCR_NO, JD.SUBSCR_NO_RESETS, JD. ELEMENT_ID, FU.UNITS_FREE UNITS_FREE, SUM (CD.RATED_UNITS) USAGE_UNITS, JD.REPORTED_AMOUNT REPORTED_AMOUNT, JD.INVOICE_AMOUNT INVOICE_AMOUNT, UT

Solution: Executing kill only in the Session 4102 that was causing Library Cache Lock contention, the Database returned to normal.


Reference: Doc ID 444560.1


I hope I’ve helped.

Intellij Clear Library Cache

Thank you and regards.

Database Buffer Cache

Bruno Murassaki