Invalidation based caching?

9iAS v9.0.2 caching documentation mentions the following:
"using web cache you can take advantage of invalidation based caching. In this mode, the cache makes the assumption that content within it is valid until it is notified that this is no longer the case. As such, the content is always taken from the cache until the application specifically invalidates the information due to a change in the associated metadata or content."
Question is: how does the application invalidate the information; what is the triggering mechanism ? and can user defineable invalidation rules be implemented ?
Thanks.

The following Doc. should provide you most of the details.
http://portalstudio.oracle.com/pls/ops/docs/FOLDER/COMMUNITY/OTN_CONTENT/MAINPAGE/OWCOPENHAGEN/30753_FINAL.PDF
If you don't find the info. you are looking for then you might want to post this question explaining what you intend to do.
- Senthil

Similar Messages

  • Invalid connection cache name error while invoking a bpel process

    while invoking a service via DB adapter ,it gives invalid connection cache name orabpel 00000 error. the JCA connection is set properly and its reffered via jndi name in code. i tested the connection in EM and its working fine.
    Few transactions have passed and thereafter i'm getting this error.
    is there any parameter that needs to be set. Someone can help here!!

    Have got the same problem. Scenario at my end is little different though.
    I am trying to invoke a BPEL process from an ESB Service.
    I am trying to look into it..
    However, would be grateful, if someone can give some insight into this since many are running into this issue without being able to fix.
    Ashish.

  • Unable to create system performance counter SharePoint Disk-Based Cache - SharePoint 2010 SP2 Farm

    Hi,
    I'm getting this in my Trace Logs:
    Performance Counter OS (pdh) call failed with error code PDH_CSTATUS_BAD_COUNTERNAME
    PDH failure on counter <serverName>\Sharepoint Disk-Based Cache\Blob Cache hit ration with Unknown error (0x0000bc0)
    Unable to create system performance counter <ServerName>\SharePoint Disk-Based Cache\\Blob Cache fill ratio
    Unable to create system performance counter <ServerName>\SharePoint Disk-Based Cache\\Total Blob Size
    There are bunch of them from SharePoint Disk-Based Cache counter that its trying to create but they cannot be used.
    I've logged on to the server as a farm admin, which has full farm permissions, local admin and runs OWSTIMER.EXE service, but I was not able to add the counters myself. I've read few posts here on TechNet but no one answered on how to enable/recreate these
    performance counters. I would like to resolve this if its possible.

    I could not find the reason why those SharePoint Performance Counters were not on the WFE servers so I just disabled the "Diagnostic Data Provider: Performance Counters - Web Front Ends" in the Central Admin > Monitoring > Job Definitions.

  • Problems with invalidating web cache

    Currently we display the current date (portal smart link) in the top region of each portal page. We have been having problems with the date not refreshing, rather old pages continue to be served up. I set up a database job using wvuxtil to send an XML document to invalidate all documents in the web cache under root at midnight. (The caching of every portal page is set to "content and definiton at system level" for 1440 min). This morning, the job ran but when checking the pages from a client machine, the date still displayed as yesterday's for SOME of the pages (not all)- clearing the clients IE cache made no difference. Logging on to the server, I accessed the relevant pages displaying yesterday's date on the client - and they showed the correct date on the server. Going back to the client machine, the dates are now correct ? Help anyone ? What should I be checking/looking at next ?
    Cheers
    Brent Harlow

    Hi Brent,
    Which version of Web Cache and Portal are you using? A similar problem with dates and invalidation has been reported before, so you may want to check with Oracle Support for the appropriate patch.

  • Only after deleting filesystem based cache files new content is shown

    Hi,
    it seems that new content on my pages ends up in the filesystem cache on the middle tier. I have no influence on behaviour via the (caching concerned) page settings.
    Neither does a invalidate cache on the Access tab has any effect.
    Only when I remove middle tier cache files (in ..Apache\modplsq\cache) my new content shows up on the page.
    Has anyone had this behaviour ?
    Oracle says that this is normal behaviour and I should see in to the documentation to change this ....
    I'm lost though...
    Thanx Dave Ruzius
    Dave Ruzius

    Dave,
    What do you mean by not having access to influence the caching - do you mean you don't have admin access to the pages in question ?
    I suggest you read this document to understand the caching mechanisms for pages.
    Bottom line is, there are 3 caching modes (prior to 10g) for pages..
    - cache page defn only
    - cache page and content for [n] minutes
    - don't cache
    from what you're describing it sounds like the page has been cached with cache page and content for n minutes. This will cause the content to be cached in the file cache and the local browser cache but NOT in the webcache. The content will be cached for a period of time defined by the page designer, and will only expire after that time has expired. There should be a refresh link on the page when it's cached using this method (unless the page designer has removed it)..
    Does that help ?

  • Invalidating disk cache

    How do I ensure that Mac OS X will read the physical disk content when I access a file on the disk? I.e. that it will invalidate its cache for the content of that disk? Is an unmount/mount sequence sufficient?
    The context is: I've just backed up my drive and want to verify the backup, i.e. compare the content of the backup disk to the original disk, and I want to make sure it's what's on the disk (rather than in the cache) that's being compared.

    William - Thanks for helping us out of voodo0 land and speaking from having been there
    All I know is empirical observation - I've been maintaining UNIX systems since 1988 of all flavors and all I really know is that I rarely have to fsck (or wait for journals to replay) when sync is called before init kills all processes (no matter how sick the system is - if a newbie sysadmin kill -9 root owned processes with permissions they shouldn't have yet, or somehow updating the drivers from a major OS release ahead or behind what should ever be installed, or I make a mistake I know darn well I shouldn't and act like a newbie, or any other such nastiness that no one would ever expect a computer to deal with)
    It's always better to really know how things work

  • Invalid map cache tiles rendered

    I have created a java server page which displays city streets, county roads, etc. and it intermittantly (1% of the time) will give an error when trying to display a map tile. If I zoom out the tile displays ok, and if I zoom in it looks ok, and if I zoom in/out from mapbuilder or from the server itself it also looks ok. Can anyone suggest why this is occurring, and what I need to do to solve this problem. You can look at a png of the error at:
    ftp://ftp.mdt.mt.gov/download/mapviewer_err.png
    Thanks.

    Yes, thank you. That fixed it. Do you have any idea why this occurs. Am I doing something wrong in my rendering process? It is very intermittent.

  • How to enable invalidation cache in struts portlet?

    Dear Friends,
    I am in need of implementing invalidation based caching in my pdk struts portlet application. The sample in the jpdk is for normal pdk portlets (not struts.) and the code did not work for my application. Plz help.
    Many thanks,
    Alvi

    In the [Licensing document|http://download.oracle.com/docs/cd/E11882_01/license.112/e10594/editions.htm#CJACGHEB] , in the 'performance' section of the table, the result cache is only available on Enterprise and not Standard, so I wouldn't expect it to work in Express Edition

  • What's the implication of 'enabling invalidation caching'?

    Hi,
    From the web.xml file after I have finished deployment for the jpdk.ear file, I found the following lines:
    <servlet>
    <!--The following parameter enables invalidation caching-->
    <init-param>
    <param-name>invalidation_caching</param-name>
    <param-value>true</param-value>
    </init-param>
    </servlet>
    What's the effect of setting this parameter?
    Thanks for any replies and help!

    This is a required configuration step if your portlets want to use invalidation based caching.
    The PDK contains sample portlets using invalidation based caching, that's why this entry in web.xml.
    You can learn more about the steps you need to perform to leverage Oracle9iAS Web Cache's invalidation based caching in the Setting up the Invalidation Caching Sample PDK article.
    If you've subscription to iLearning, you may find this eClass useful: Oracle9iAS Portal Release 2: Enhance Portlet Performance using Web Cache.
    Hope this helps.

  • Read-Through Caching with expiry-delay and near cache (front scheme)

    We are experiencing a problem with our custom CacheLoader and near cache together with expiry-delay on the backing map scheme.
    I was under the assumption that it was possible to have an expiry-delay configured on the backing-scheme and that the near cache object was evicted when backing object was evicted. But according to our tests we have to put an expiry-delay on the front scheme too.
    Is my assumption correct that there will not be automatic eviction on the near cache (front scheme)?
    With this config, near cache is never cleared:
                 <near-scheme>
                      <scheme-name>config-part</scheme-name>
                      <front-scheme>
                            <local-scheme />
                      </front-scheme>
                      <back-scheme>
                            <distributed-scheme>
                                  <scheme-ref>config-part-distributed</scheme-ref>
                            </distributed-scheme>
                      </back-scheme>
                <autostart>true</autostart>
                </near-scheme>
                <distributed-scheme>
                      <scheme-name>config-part-distributed</scheme-name>
                      <service-name>partDistributedCacheService</service-name>
                      <thread-count>10</thread-count>
                      <backing-map-scheme>
                            <read-write-backing-map-scheme>
                                  <read-only>true</read-only>
                                  <scheme-name>partStatusScheme</scheme-name>
                                  <internal-cache-scheme>
                                        <local-scheme>
                                              <scheme-name>part-eviction</scheme-name>
                                              <expiry-delay>30s</expiry-delay>
                                        </local-scheme>
                                  </internal-cache-scheme>
                                  <cachestore-scheme>
                                        <class-scheme>
                                              <class-name>net.jakeri.test.PingCacheLoader</class-name>
                                        </class-scheme>
                                  </cachestore-scheme>
                                  <refresh-ahead-factor>0.5</refresh-ahead-factor>
                            </read-write-backing-map-scheme>
                      </backing-map-scheme>
                      <autostart>true</autostart>
                      <local-storage system-property="tangosol.coherence.config.distributed.localstorage">true</local-storage>
                </distributed-scheme>With this config (added expiry-delay on front-scheme), near cache gets cleared.
            <near-scheme>
                      <scheme-name>config-part</scheme-name>
                      <front-scheme>
                            <local-scheme>
                                 <expiry-delay>15s</expiry-delay>
                            </local-scheme>
                      </front-scheme>
                      <back-scheme>
                            <distributed-scheme>
                                  <scheme-ref>config-part-distributed</scheme-ref>
                            </distributed-scheme>
                      </back-scheme>
                <autostart>true</autostart>
                </near-scheme>
                <distributed-scheme>
                      <scheme-name>config-part-distributed</scheme-name>
                      <service-name>partDistributedCacheService</service-name>
                      <thread-count>10</thread-count>
                      <backing-map-scheme>
                            <read-write-backing-map-scheme>
                                  <read-only>true</read-only>
                                  <scheme-name>partStatusScheme</scheme-name>
                                  <internal-cache-scheme>
                                        <local-scheme>
                                              <scheme-name>part-eviction</scheme-name>
                                              <expiry-delay>30s</expiry-delay>
                                        </local-scheme>
                                  </internal-cache-scheme>
                                  <cachestore-scheme>
                                        <class-scheme>
                                              <class-name>net.jakeri.test.PingCacheLoader</class-name>
                                        </class-scheme>
                                  </cachestore-scheme>
                                  <refresh-ahead-factor>0.5</refresh-ahead-factor>
                            </read-write-backing-map-scheme>
                      </backing-map-scheme>
                      <autostart>true</autostart>
                      <local-storage system-property="tangosol.coherence.config.distributed.localstorage">true</local-storage>
                </distributed-scheme>

    Hi Jakkke,
    The Near Cache scheme allows to have configurable levels of cache coherency from the most basic expiry based cache to invalidation based cache to data versioning cache depending on the coherency requirements. The Near Cache is commonly used to achieve the performance of replicated cache without losing the scalability aspects of replicated cache and this is achieved by having a subset of data (based on MRU or MFU) in the <front-scheme> of the near cache and the complete set of data in the <back-scheme> of near cache. The <back-scheme> updates can automatically trigger events to invalidate the entries in the <front-scheme> based on the invalidation strategy (present, all, none, auto) configured for the near cache.
    If you want to expire the entries in the <front-scheme> and <back-scheme>, you need to specify an expiry-delay on both the schemes as mentioned by you in the last example. Now if you are expiring the items in the <back-scheme> for the reason that they get loaded again from the cache-store but the <front-scheme> keys remain same (only the values should be refreshed from the cache store) then you need not set the expiry-delay on the <front-scheme> rather mention the invalidation-strategy as present. But if you want to have a different set of entries in <front-scheme> after a specified expiry delay then you need to mention it in the <front-scheme> configuration.
    The near cache has the capability to keep front scheme and back scheme data in sync but the expiry of entries is not synced. Always, front-scheme is a subset of back-scheme.
    Hope this helps!
    Cheers,
    NJ

  • Purge cache utility

    Hi all,
    In OIM best practices guide, there is a reference to the PurgeCache utility, where we can run the utility to purge a particular category by specifying the category name. or by specifying 'all' for all categories.
    for ex: PurgeCache.bat ConnectorResourceBundle which can clear the content related to the connector fules from Server cache.
    Is there any list which gives the names of all the categories that can be purged.
    What actually happens in the background when we run this utility?
    Many thanks in advance.

    Moving forward, we are planning on leveraging the Web Cache capabilities of 9iAS to allow us to move to an invalidation based caching model in addition to our existing expiry and validation based models. With invalidation based caching, we will proactively invalidate the cache when something changes in the portal. This should solve your issue.

  • Web Service portlet using pdk documentation issue

    Hi,
    I have followed the instructions in
    http://portalcenter.oracle.com/pls/ops/docs/FOLDER/COMMUNITY/PDK/ARTICLES/how.to.build.web.services.portlets.html
    on how to build web service portlets.
    I have successfully deployed the WS portlet and can happily call my web Service (RPC style) passing a set of parameters which I have formatted using a stylesheet.
    However, every time I refresh the page within portal, it recalls the WS with the previously submitted parameters. Also, if I switch between view and edit mode in portal, it again calls the WS with previously entered parameters.
    Can I stop this happening either through a setting in portal or code in my Stub class. (Stub class below)
    Thanks alot
    Joel.
    package mypackage;
    import oracle.soap.transport.http.OracleSOAPHTTPConnection;
    import org.apache.soap.encoding.SOAPMappingRegistry;
    import java.math.BigDecimal;
    import java.net.URL;
    import org.apache.soap.rpc.Call;
    import org.apache.soap.Constants;
    import java.util.Vector;
    import org.apache.soap.rpc.Parameter;
    import org.apache.soap.rpc.Response;
    import org.apache.soap.Fault;
    import org.apache.soap.SOAPException;
    import java.util.Properties;
    * Generated by the Oracle JDeveloper 10g Web Services Stub/Skeleton Generator.
    * Date Created: Thu Feb 03 15:38:22 GMT 2005
    * WSDL URL: file:/D:/Software/Oracle/NT/jdev_10.1.2/jdev/mywork/blah/CreateSR2/src/LG02/CreateSR2.wsdl
    public class CreateSR2Stub
    public CreateSR2Stub()
    m_httpConnection = new OracleSOAPHTTPConnection();
    m_smr = new SOAPMappingRegistry();
    public static void main(String[] args)
    try
    CreateSR2Stub stub = new CreateSR2Stub();
    // Add your own code here.
    catch(Exception ex)
    ex.printStackTrace();
    private String _endpoint = "http://myServer:7779/Blah-CreateSR2-context-root/CreateSR2";
    public String getEndpoint()
    return _endpoint;
    public void setEndpoint(String endpoint)
    _endpoint = endpoint;
    private OracleSOAPHTTPConnection m_httpConnection = null;
    private SOAPMappingRegistry m_smr = null;
    public String createSrStub(BigDecimal pCitizen, String pAccountType, String pSummary, String pReferral, String pReason, String pHouse, String pRos, BigDecimal pGroup, String pOwner, String pMode, String pFrom) throws Exception
    String returnVal = null;
    URL endpointURL = new URL(_endpoint);
    Call call = new Call();
    call.setSOAPTransport(m_httpConnection);
    call.setTargetObjectURI("CreateSR2");
    call.setMethodName("createSrStub");
    call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
    Vector params = new Vector();
    params.addElement(new Parameter("pCitizen", BigDecimal.class, pCitizen, null));
    params.addElement(new Parameter("pAccountType", String.class, pAccountType, null));
    params.addElement(new Parameter("pSummary", String.class, pSummary, null));
    params.addElement(new Parameter("pReferral", String.class, pReferral, null));
    params.addElement(new Parameter("pReason", String.class, pReason, null));
    params.addElement(new Parameter("pHouse", String.class, pHouse, null));
    params.addElement(new Parameter("pRos", String.class, pRos, null));
    params.addElement(new Parameter("pGroup", BigDecimal.class, pGroup, null));
    params.addElement(new Parameter("pOwner", String.class, pOwner, null));
    params.addElement(new Parameter("pMode", String.class, pMode, null));
    params.addElement(new Parameter("pFrom", String.class, pFrom, null));
    call.setParams(params);
    call.setSOAPMappingRegistry(m_smr);
    Response response = call.invoke(endpointURL, "");
    if (!response.generatedFault())
    Parameter result = response.getReturnValue();
    returnVal = (String)result.getValue();
    else
    Fault fault = response.getFault();
    throw new SOAPException(fault.getFaultCode(), fault.getFaultString());
    return returnVal;
    public void setMaintainSession(boolean maintainSession)
    m_httpConnection.setMaintainSession(maintainSession);
    public boolean getMaintainSession()
    return m_httpConnection.getMaintainSession();
    public void setTransportProperties(Properties props)
    m_httpConnection.setProperties(props);
    public Properties getTransportProperties()
    return m_httpConnection.getProperties();
    }

    Hi Joel,
    You can enable caching for your portlet. There are three types of caching you can use: expiry, validation, and invalidation-based caching. You can learn about your options in the Enhancing Portlet Performance with Caching section of the Portal Developer's Guide.
    Regards,
    Peter

  • Refresh ALL Portlets

    Hi,
    I have around 150 discoverer portlets in portal. How do I refresh all the portlets automatically when the underlying table data got changed.
    Thanks
    Aman

    The issue you are experiencing is an issue for the discoverer portlet developers not the portal architecture. Depending on how the portlets have been built will govern how you can legislate for this. If the portlets are caching in the file cache using expiry based caching then you can simply clear out the cache folder of the middle tier (however this will blow away everything). If the portlets are cached in webcache using invalidation based caching then you can clear the webcache as described by the earlier respondent. However, if the portlets have been written correctly they should ultimately manage themselves. Ping (or validation based) caching should check the data in the cache with the data in the db and generate a cache hit or miss depending on the state of the data.
    Whichever caching type has been used (assuming any) you will still need to go back to the portlet developers as ultimately it is they who have taken the decisions on the caching methodology, the portal framework cannot provide for a poorly implemented portlet caching strategy.

  • Still wondering... Portal V 2

    Does anyone know if version 2 of Portal is available for NT 4.0 for an 8i database yet?
    If so, how can I upgrade from portal v 3.0.7.6.2?
    How can I verify what version of 9iAS I have installed?

    If your portlet uses invalidation based caching, all you need to do is invalidate the cached portlet content from your portlet code. Both the PL/SQL and the Java PDK provide APIs to invalidate a portlet by provider and portlet ID.
    Note: Don't use portlet instance invalidation as you want to invalidate all portlet instances of that particular portlet.
    If you've subscription to http://ilearning.oracle.com , you may find this eClass useful: Oracle9iAS Portal Release 2: Enhance Portlet Performance using Web Cache.
    Regarding your second question:
    You can invalidate all objects associated with a page group by following these steps:
    1) Edit page group properties
    2) Navigate to the Access tab
    3) Under Cache Invalidation click the Clear Cache link.
    Peter

  • User Level based Validation caching

    Hi,
    This is with references to JSP/JPDK based portlets.
    To implement validation based caching in JSP portlets, the first step I understand is to create our own class that extends JspValidateRenderer and reference this new class in the provider.xml file in the <showPage class=" "> tag for the appropriate Portlet/s.
    The questions I had -
    1) What do I call to cause a change in the version identifier? Do I call getNewVersion() and
    let my implementation of the JspValidateRenderer's getNewVersion()take care of
    setting/updating the version identifier? I dont need to take care of storing the version
    identifier anywhere - is that correct?
    2) How do I implement this if, for eg. events in Portlet A determines if a cached version or a
    new version of Portlet B has to be rendered? In my case Portlet A would be a
    showDetails page of Portlet A collecting data that drives the content in Portlet B.
    So, everytime the html form in Portlet A'showDetails page is submitted, I would like to
    refresh Portlet B, otherwise simply use the cached version. How do I change the version
    identifier in Portlet B, to cause the Portlet A to not use the cached version?
    3) How do I enforce USER level in this model? I didnt see any parameter that accepts the LEVEL in
    validation based caching methods.
    Appreciate any suggestions/help since this is my first attempt at implementing any form of cahing
    regards
    -Ananth Makaram

    Yes. There will be 20000 instances in the case you have mentioned.
    To answer your question "Would that be expensive OR is it a non-issue? "
    - The File Cache is built to handle 10 million cache items efficiently. So, This will NOT be an issue for the cache you are mentioning.
    - Assuming each of the portlet is about 2k. In your case you'd only have about 40MB in case. Even in very big sites the cache size is only about 2GB per mid-tier
    Moreover, Disk space is very Cheap. There are cache clean jobs which clean up the cache regularly to make sure that it does NOT grow to unmanageable proportions.

Maybe you are looking for