Caching in OSB

Hi,
I wanted help on how to go about configuring Caching in OSB? The latest install of 11g OSB comes with Oracle Coherence. I wanted to also know how is the refresh parameter set. For eg, I have configured service result caching on a Business Service in OSB and everytime the Business Service is called it returns the cached result. But if the actual service interface changes, the Business Service will need to return the refreshed/updated results. So where is the refresh setting configured on the Business Service.
Thanks.

But if the actual service interface changes, the Business Service will need to return the refreshed/updated results. So where is the refresh setting configured on the Business Service.
http://download.oracle.com/docs/cd/E14571_01/doc.1111/e15866/ui_ref.htm#i1248363
http://download.oracle.com/docs/cd/E14571_01/doc.1111/e15867/configuringandusingservices.htm#OSBAG170
refer 34.7.5.1.1 Flushing Cached Results which has got details. So you can do any of the documented steps to flush existing cache.
Manoj

Similar Messages

  • Caching in OSB with Business Service

    Hi All,
    I am done with business service development, but I need to configure caching to fetch the data from cache if TTL (Time to Live) <24 if is more then my request to interact with the database can please help how I can I do it, as I am new to caching concept.
    Thank You,
    Vinay Kumar

    Hi Vinay, Select the Business Service - Message Handling Configuration - in Advanced Settings section, you can configure caching for the business service; select Result caching as Supported, and specify cache token (unique key) and expiration time (TTL). Note- once the TTL exceeds for a particular data, the business service will fetch the result from the target system/database and cache it, and the cycle repeats (no specific configuration to be done for this).  Also, before configuring the above, first enable the caching globally in OSB; go to Operations - Global settings - select Enable Result caching, and activate the changes.

  • Result Caching in OSB

    We are planning to implement OSB result caching feature in our project.We did the following to do a POC.
    1.Created a DBAdapter to select from a table and created a BS out of that.
    2.Enabled Result caching with TTL for 5 mins.
    3.Invoked the BS from a PS.
    4.Tested the PS by invoking from test cosnole.
    5.Response was received as expected.
    6.Changed the value in the table and tested again within 5 mins.
    7.New values were returned instead of the ones in the cache.
    What might be the problem?Should it not return the old value from table?

    Each cached result is uniquely identified by a cache key that is made up of the ServiceRef (the unique identifier for the service which is the fully qualified path name of the service), the operation being invoked, and a cache token String. The cache token helps to uniquely identify a single cache result among other cache results for one business service. You control the value of the cache token. You can set the cache token either by configuring the Cache Token expression in the Result Caching configuration for the business service or by using the cache-token metadata element in the $transportMetaData using the proxy service message flow. If there is no cache-token defined then caching may not work as expected.
    Please refer -
    35.7.5 Improving Performance by Caching Business Service Results at http://download.oracle.com/docs/cd/E17904_01/doc.1111/e15867/configuringandusingservices.htm#CHDDCGEE
    http://blogs.oracle.com/MarkSmith/2011/03/osb_and_coherence_integration_1.html
    Regards,
    Anuj

  • Cache in OSB - multiples operations

    Hi,
    How can I configure a Business Service in OSB to use a result caching?
    The cache works with one operation, but how can I configure a service with multiple operations?
    tks!
    Marina

    if your BS is based on a WSDL, this should take care of chaining the operation to the key to ensure uniqueness of the key in the cache.
    The official documentation (that I can't seem to find right now) explains how the Coherence key is formed:
    chaining the Service name, the operation and the eventual key you specify with an XPath.

  • How to use caching in OSB

    Hi all,
    I am very new to the OSB. I have got one requirement in which I should create a cache
    to store the result for a certain period of time. The result would be a collection of employees
    which comes by invoking a webserivce service. We have a webservice which returns the employees
    based on the search criteria. If someone want the same list of employees we are hitting the web service again
    instead of that we are planning to cache the result of the search criteria and use them if the same request
    comes, rather than invoking the web service every time. For that, Is there anything available in OSB ?? if so how
    can I make use of it.. Kindly come up with your help please.
    Thanks & Regards,
    Phanindra.

    my the business service might return more than 10,000 records can I still go with the in built cache? or will it lead to performance issue?If you have enough memory resource available and following the best practices, you won't have any performance issue. It is highly scalable. Please refer -
    http://tomhofte.blogspot.com/2010/06/coherence-in-oracle-fusion-middleware.html
    http://blogs.oracle.com/MarkSmith/entry/osb_and_coherence_integration_1
    Regards,
    Anuj

  • Issue while configuring cache management -/osb/service/ResultCache

    Hello, I am trying to configure cache data management through OEM console of 12.1.0.2 version . While executing a coherance select query, I am getting below error message
    "Error occurs while executing the "view" operation. CacheDataManager custom MBean is not registered with the Oracle Coherence JMX Server during startup. The custom MBean is available with the coherenceEMIntg.jar."
    I have even included these jar files in my coherance server startup parameters ..
    <>/agent12c/plugins/oracle.sysman.emas.agent.plugin_12.1.0.3.0/archives/coherence/coherenceEMIntg.jar:
    <>/plugins/oracle.sysman.emas.agent.plugin_12.1.0.3.0/archives/coherence/bulkoperationsmbean.jar
    could someone pls help on this.

    Hi
    To configure the SCAN , this SCAN IP should be resolve through DNS or /etc/hosts file .Please follow the below link to configure the DNS.
    If you face any problem , then please let me know .
    shivenracdba: configure DNS for Installtion of Oracle Grid Infrastructure RAC cluster
    warm regards
    Shivendra Narain Nirala

  • OSB - Accessing Operational Settings within Proxy Service

    Does anyone know if it is possible to access Operation Settings from within a Proxy Service?
    The use case is instead of logging, we perform auditing by inserting into a database. In certain environments, we would like to turn this off. I would like to reuse the Logs logging level field to decide whether or not to audit.
    So the message flow would have if (auditLevel = 'Warning') then BusinessService callout for auditing.
    Doing it this way lets operations choose whether or not to audit, instead of making code changes in different environments to choose whether or not to audit.

    Few months back I was also working on a similar requirement where client did not want to go for OSB configuration change (and even update) for changing the log levels or start auditing. After researching a little bit, we implemented java callout which used to read a property file and provide the value of auditing flag at runtime. We also created a java utility which used to clear the cache of server (because server loads & caches the property file after each restart). So whenever we have to make a change in auditing flag, we just change the value in property file and clear the cache of the server. This makes the fresh copy of property file available in server cache and OSB java callout picks the same.
    It was quite complex but the only better solution we could find. Please let us know if you get something better.
    Regards,
    Anuj

  • Problem with a db sequence in DBAdapter (OSB)

    Hello,
    I'm having problems with a dbAdapter every time I make a installation in a new environment.
    I have a dbadapter that increments a db sequence (custom sql: select seq_onl_audit.nextval from dual) but every time I install the service in a new environment, restart the server and run it for the first time it returns a completly different number.
    Directly in Oracle DB: select seq_onl_audit.nextval from dual = 234
    In OSB: select seq_onl_audit.nextval from dual = 23 (constraint exception!)
    How can I solve this? There's any cache in OSB/Weblogic for this?
    Thank you,
    Lara Fernandes.

    Let me understand what you are trying to do.
    You have created a sequence in DB and you call it from OSB service to fetch the incremented value.
    This works fine.
    When you move the OSB service to another environment it starts giving error/incorrect values while the same sequence when run from the DB still gives correct value?
    Questions:
    Are you pointing to the same DB instance from both/all OSB environments?
    Are you also using the same user to connect to the DB from each environment?
    Can you please post the SQL for your sequence here.

  • Coherence Web Service cache

    Hi all,
    I want to cache an web service with coherence and I have no idea where to start, here is my problem :
        I have a database, an web service that queries and modifies the data and an OSB that uses this service and also makes some transformations.
        I want to cache the OSB result, how do I do that ? I suppose the only thing I will have will be the WSDL for the service ... do I have to generate my classes with jax-ws ? any links will be helpful.
    Thank you,
    Marius

    Your outline is correct.
    The simplest thing to do in the web service machines is to create storage disabled Coherence nodes and use the NamedCache API to put data into the cache. The storage disabled node participates in the cluster but does not hold any data so its JVM shouldn't run out of memory. These are configured just like every other node except storage is disabled. A storage disabled node is effectively a client.
    If you want a true client, you can use Extend (http://coherence.oracle.com/display/COH35UG/Coherence+Extend).
    In step 5, you can execute business logic in Coherence using entry processors. The advantage is that the processing will run on the machine with the data so the work is distributed. The work can be triggered by events as you pointed out.
    The number of JVMs running Coherence depends on the memory and number of cores available for each physical machine. As a rule of thumb, you can use 1 JVM per 2 cores for best latency. In your case, the main determinant will be the amount of processing of the messages you want to do in a Coherence node. If you're just storing and extracting cache data, you can probably have a JVM per core.
    Regards,
    David

  • Regarding OSB dvm

    Hello Experts,
    I was trying to use the dvm in OSB.At run time i could see that i am getting null values for the username and password. You could see below the xquery transformation where i am using my dvm. Can anyone let me know is there any issue in dvm usage in this xquery. I could see that rest of the things are fine.
    xquery version "1.0" encoding "Cp1252";
    (:: pragma bea:global-element-parameter parameter="$locateDealerByDealerIdRequest1" element="ns2:locateDealerByDealerIdRequest" location="../public_doc/endpoint/SOAP/locateDealerByDealerIdRequest.xsd" ::)
    (:: pragma bea:global-element-return element="ns1:EJB" location="../public_doc/endpoint/SOAP/commonTypes/EJB_UserName_Password.xsd" ::)
    (:: pragma bea:global-element-parameter parameter="$dvm1" element="ns3:dvm" location="../public_doc/DVM.xsd" ::)
    declare namespace xf = "http://tempuri.org/GLTO_LocateDealer_V1_0_OSB/xq/EJB_UserName_Password_DealerId/";
    declare namespace ns2 = "http://www.gm.com/gssm/request/locateDealerByDealerIdRequest";
    declare namespace ns1 = "http://www.ngis.gm.com";
    declare namespace ns0 = "http://www.gm.com/gssm/commonTypes";
    declare namespace ns3 = "http://xmlns.oracle.com/dvm";
    declare function xf:EJB_UserName_Password_DealerId($locateDealerByDealerIdRequest1 as element(ns2:locateDealerByDealerIdRequest),$dvm1 as element(ns3:dvm))
    as element(ns1:EJB) {
    <ns1:EJB>
    <ns1:UserName>{ $dvm1/ns3:rows/ns3:row[cell[1]=concat('dealer.locate.brand.access.id.',$locateDealerByDealerIdRequest1/metadata/ns0:webSiteId)]/ns3:cell[2] }</ns1:UserName>
    <ns1:Password>{ $dvm1/ns3:rows/ns3:row[cell[1]=concat('dealer.locate.brand.access.password',$locateDealerByDealerIdRequest1/metadata/ns0:webSiteId)]/ns3:cell[2] }</ns1:Password>
    </ns1:EJB>
    declare variable $locateDealerByDealerIdRequest1 as element(ns2:locateDealerByDealerIdRequest) external;
    declare variable $dvm1 as element(ns3:dvm) external;
    xf:EJB_UserName_Password_DealerId($locateDealerByDealerIdRequest1 , $dvm1)

    So does the property files gets loaded on every transaction or is there any caching that OSB performs. We do have abt 500 key value pairs . Do you think will it have any impact on perforomance.There is no caching involved here and hence there will be a slight performance hit. I always prefer storing mappings in DB and use JCA based Business Service (DB adapter) to read it. As we have out-of-box caching support with JCA DB adapter in OSB 11g, it helps to improve the performance. You may refer section "35.7.5 Improving Performance by Caching Business Service Results" at below link to know more about caching feature in OSB -
    http://download.oracle.com/docs/cd/E17904_01/doc.1111/e15867/configuringandusingservices.htm#CHDDCGEE
    You may have a performance test with both approaches and choose one which performs better.
    Regards,
    Anuj

  • Jython or wlst script to enable/disable result set cache at BusinessService

    Hi,
    I am new to creating Jython or wlst script. Can anybody help me out and send me the wlst script to enable/disable businsess service cache in OSB. The script should be called by Proxy Service.
    Thanks

    You cannot change the role name. If you want to use the same account activation scheme as used by the console and the perl script command lines, you must use the exact same names for roles, etc.
    If you don't care about using the console or the command lines to manage roles, you can use any scheme you like, but you cannot mix and match the two schemes.

  • How to use cache on Proxy service in OSB

    Hi all,
    I need to use cache on proxy service. I am new to OSB, I have searched for this on net but unable to find.
    Please come up with some docs or links going through which I can achieve this.
    Thanks,
    Phani.

    i assume you already checked the result caching feature which can be used on the business service?
    http://docs.oracle.com/cd/E14571_01/doc.1111/e15867/configuringandusingservices.htm#OSBAG170

  • Caching XML Variable in OSB

    Hi All,
    I have following Requirement
    1] Scenario 1: My PS is initializing the variable by reading the XML File. When PS gets invoked first time; the Assign Activity will get executed by OSB. Since Configuration data is static; next time PS gets called; I do not want .xq/assign activity to parse the configuration again. Is there any way that OSB will catch the variable in Proxy and accessible in rest of the Stages/Activities/Message Flows.
    2] Scenario 2 : PS1 -->PS2-->PS3 in OSB. I initialize the variable in PS1 by reading the XML Configuration file. I need the same variable in PS2 and PS3 as well without reading the XML file again and Again.
    Can I pass the variable from one proxy to another?? Can I catch the variable using first scenario and pass the same for subsequent calls?
    Sushil

    4] IS OSB smart enough to cache the "FWKConfigVar" so that Assign activity will not get executed every time and save the CPU cycles?No, OSB being a stateless product, does not cache/store any process/it's state anywhere.
    5] Let say Ps1 Calling PS2 and PS2 calling PS3. All the Proxy services are using the same variable data "FWKConfigVar". Is there any way that this variable will get initialize first time in PS1 and pass/available across the Message flow of PS2 and PS3??As I mentioned earlier as well, you may pass variables as user defined headers/part of message body from PS1 to PS2 and so on.
    The problem here is "Service Callout activity(to get Configuration data). Is it a best practice to call BS instead of taking help of small XQuery( use fn:doc() and get the required value using the XQuery)?? Assuming I required configuration data in couple of activities in message flows?Now this is something which requires a performance test because both may be a preferable option depending upon the design, complexity, size of config data file/number of records etc.
    Generally for small range of data I would prefer XQuery but for large data I will always go for different approach. I remember that for one of our client, we stored the key-value pairs in DB and used java callout in OSB 10g to load them once and use across. Now when with 11g, caching feature is available, this is the preferable approach but again it depends upon your design and choice.
    Do few tests and you should have a clear picture.
    You may refer -
    http://forums.oracle.com/forums/thread.jspa?threadID=1131939
    Regards,
    Anuj

  • OSB result caching with Coherence Out of process

    Existing setup:
    Oracle Fusion Middleware SOA 11g domain with
    1 weblogic cluster
    1 OSB cluster
    We have an Out of Process Coherence cluster configured with  caches defined already which is just working fine in production.
    The requirement is that development team would like to use the OSB result caching feature and we are having hard time to configure this OSB result cache join our existing cluster.
    Any suggestions on this is appreciated.

    Hi,
    You would need to override the operational configuration on OSB Server to join the cluster spawned by the Coherence dedicated servers. Also, set the flag -Dtangosol.coherence.distributed.storage=false in the ServerStart of your OSB Servers which will disable the data storage in the OSB Servers.
    HTH
    Cheers,
    _NJ                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Caching XQuery Result in OSB for Performance Improvement

    Hi,
    I have written a custom XPath function in Java to pick the IP address of the machine and registered the same with Oracle Service Bus 11g.
    In the Proxy Message Flow, the server IP is picked at run time by using XQuery that refers to the Custom Function.
    Now, is there a way to cache this result some where in OSB so that in the subsequent execution, the XQuery will pick the cached value from Cache instead of making a call to Custom Function registered with OSB.
    I'm asking this question to understand if performance optimization is possible here by caching the result.
    Thanks,
    CC

    Hi All,
    Have implemented Java Callout and Custom XPath in the same flow and kept current datetime stamp before and after each of these steps to calculate the difference b/w timestamps thereby finding the execution times of Java Callout and Custom XPath steps (this may not be an elegant way of calculating the execution time of each step in OSB message flow, request someone to suggest the most recommended approach here!) ...
    For a load of 10 users, each submitting 10 requests (total 100 requests), following are the execution times (in milliseconds) collected for 10 requests (Server is not occupied with any other activity at this time):
    Java Callout(milliseconds) |     Custom XPath(milliseconds)
    13 |     1
    4 |     0
    5 |     1
    1 |     2
    0 |     1
    1 |      0
    1 |     0
    1 |     0
    1 |     0
    1 |     2
    Where the value of '0' is appearing, I assume it could be some micro seconds. The difference happens to be zero in some cases as we don't have microsecond level logging.
    Thanks,
    CC
    Edited by: Chandu on 19-Jul-2011 22:02

Maybe you are looking for

  • Create a public access site to see the documents which are created by administrator

    Hi , I am new to the sharepoint. I would like to create a public facing sharepoint 2013 site . Main requirement is Administrator must login to site and create a documents in library.  Those documents must visible to everyone. So that site must be pub

  • Conecting Mini DVI to HDMI Video Cable with my mac book pro

    Hi. I just bought Mini DVI to HDMI Video Cable to connect my mac book pro to my HD TV. I connected the cables and put my TV on HDMI input. On the TV it appears the Snow Leopard Background but I can't see my desktop or the icons. What should I do to v

  • Dump while running a stock report for one year

    hi experts,                     i'm getting  dump error while running a stock summary report for one year         the error is as follows:   A RAISE statement in the program "CL_GUI_CUSTOM_CONTAINER=======CP" raised the    exception   condition "CNTL

  • Computer won't power up, again.

    Hi Folks, I bought a new Mac Book Pro a few weeks ago and suddenly the computer was dead. I was unable to turn it on. I took it to the Apple store and they replaced the computer (I was told a dead logic board). When they replaced the computer, they s

  • My default fonts are all in Bold in most software now. How do I fix this?

    So I installed in a large batch about 1,000 some fonts. I found my old font collection and got WAY to excited. Now however, most applications (Safair, TextEdit, Mail) chose to use a bold verison of Arial instead of regular Arial and when I change the