How to store and refresh cache in CPO 2.3?

                   We have some dozen workflows (CPO 2.3 processes) each triggered to start by a unique tidal event. Each workflow when triggered fetches numeric data (just two or three two-digit data such as 15, 300) from a singluar web service  end point and uses the same in its workflow logic. Data fetched by each workflow is usually specific to that workflow. We want the workflow to cache locally the data thus fetched. Reason for caching data locally in CPO: The rate of web service lookups is 100+ lookups per second and the web service cannot scale beyond 100 lookups per second. The data thus cached will be local to that workflow.
QUESTIONS PLEASE:
1. What is the best way to store the fetched data? Is it using local variables or global variables or some other storage mechanism?
2. Should the data thus cached be fetched each time the process (workflow) is re-started?
3. When the data is changed at the web service, the web service can send fresh data back to CPO to refresh the previously cached data. What is the best way to receive this data in order to refresh the local cache in CPO while the worklfow is running and operational [(i.e) without disrupting the workflow's running state]?
Will appreciate detailed answers please to avoid follow up questions.
thanks in advance,
Jamal

Thanks to Von and Mike for responding. I have summarized your responses to my specific questions. Please see if my summary/understanding of your responses is right.
QUESTIONS:
1) Can the PO process create a global table variable containing say 20,000 entries? If not, what's the max limit?
RESPONSE: There is no max limit to the number of rows in a table variable (global or local).
2) Assuming the PO process can build a global table variable containing 20,000 entries, will a lookup for ThresholdData given a DeviceIPAddress be VERY SLOW making the PO process inefficient?
RESPONSE: select statement to query a table it's pretty fast.  If you looped trying to find a match, it would be incredibly slow.
- Let's say at time Tn, the number of entries in the global table variable is 20,000.
- Let's say at time Tn+1, the ThresholdData for 8000 (of the 20,000) devices got changed in the web service DB.
QUESTIONS:
3) Can the web service send ThresholdData for 8000 devices using a table variable of type INPUT? I did not see a table variable for type INPUT supported by a PO process and hence this question.
RESPONSE: wrap table data in CDATA tags in XML, then read it into a table once it gets into the process.
Now to answer some of your questions:
1. We are planning on using CPO 2.3 to act as a Real time Alert Notification tool to send email notifications to our NoC Operations personnel. We would like to send a notification within 3-5 mins of TCA generation (yes - TCAs come from a performance management tool such as InfoVista).
2. Tidal's workflow is expected to do some validation on a received TCA, before deciding to send a email notification. For example, Tidal will wait for 15 minutes upon receiving a MAJOR/CRITICAL TCA to see if a CLEAR arrives for that TCA within that 15 minutes interval. If so, Tidal  workflow will generate a mail notification, if not, it will do nothing. Like this, we have many HIGHER LEVEL VALIDATION RULES that CANNOT BE PERFORMED AT PERFORMANCE MGR LEVEL. They can only be performed at the level of tidal that supports easy to write rules GUI and easy to change the rules in a matter of minutes.
3. No - we do not have 50,000 processes. We will have utmost 25 processes (workflows) - one for each TCA type coming out of InfoVista. Each process will know how to treat a TCA type before generating an email notification.
4. The number 50,000 corresponds to Devices in our Network. The validation rules that will be implemented in tidal workflow shall use data such as the 15 minutes mentioned above. An external DB shall maintain the list of 50K devices and the 'time-to-wait-for-CLEAR' data for each of the 50 K devices. Like 'time-to-wait-for-CLEAR' data, we have other data for other validation rules that will be implemented using tidal workflow for the various TCAs that we intend to support. This DB shall be exposed to Tidal workflow via a Web Services API.
Hope our use case is now clear. If so, please do add your 2c that will help answer my original questions. I can also go on a call to explain our use case. If you think I should engage with your services team, please send me their contact details and I will do so.
Thanks for all the support.

Similar Messages

  • How to store and retrieve blob data type in/from oracle database using JSP

    how to store and retrieve blob data type in/from oracle database using JSP and not using servlet
    thanks

    JSP? Why?
    start here: [http://java.sun.com/developer/onlineTraining/JSPIntro/contents.html]

  • LRv3.2 Networking with an Asst , How to store and retrieve updated work on Win7?

    LRv3.2 Networking with an Asst , How to store and retrieve updated work on Win7 Network?
    We have a working 1gig network in Win7 PRO 64-bit.  and using LRv3.2
    * How do I configure our Files or Cataloges "so"  ALL Edits are veiwable/edit to all?   (we don't work on the Same Shoot/Folder at the same time)
    I NEED to see,  ALL the LR  Edits  (is great with DNG files
    *** BUT,  what I cannot see if I remember correctly (with just the DNG sharing)  is the  CROP or Virtual Copys ... possibly the Brush edits.
    HOW, do I configure to be able to read and edit ...  ALL of the updated/saved  Edits???   (after it is done by my asst.)
    Is creating a New Catalog for EACH  shoot the way to go?   (not sure I like this idea)
    Right now everything is in one(1) catalog  ... and it's getting big ... BUT, this allows us to search , and group ... going way back.
    Would be nice to be able to still do this easily, and with what we have already done.
    With our one BIG Catalog ... not sure if two(2) can access this catalog over the Network at the same time?
    Even though we never Edit the Same Folder or Files at the same time.
    Or will that be a problem over a simple Win7 PRO network?
    Thank you,
    HG

    Aloha Bob,
    Saw your link.  thank you.
    At least I don't feel "alone"  LOL
    At this point ... I am looking for a  "cluncky"   Work Around?
    * I was thinking,  Maybe making a copy of  My Cataloge ...
    Deleting ALL the  Folders in LR  ... except for the one's  that  will be worked by the Asst.
    Then moving that file to the  Asst.  Computer.
    * NEXT,  pointing the  Folder that they are working on ... across the Network to the Servers Files.
    * After they work on it:
    *** IS THERE A WAY ...
    * To  take that Cataloge ... and UPDATE  my Main  Cataloge.
    THIS, is the STEP  ... I don't know how to do.
    Can someone Help me with this?
    Step by Step,  because I am clueless ....
    Talking UPDATE of everything worked on ... including   Virtual copys, and  CROPS.
    Thank you,
    HG

  • How the store and retrieval in ServletContext will happen??

    Hello Sir,
    I am developing a chat application thats in Swing & servlets Now I am able to authenticate user and I am using ArrayList to maintain the names of the user globally my storing it in ServletContext
    How to store and retrieve ArrayList from Servletcontext
    And another thing is that we are having personal chat(1-to-1) also. But how to use the thread model is not known to us as we have not faced such a situation before
    So if you could suggest some example code or snippets ot certain links then it would be of great help to us
    Thanks
    Regards
    Monarch

    Hello
    thanks for your reply. Actually we are doing the same thing that u have mentioned in your reply.
    The thing we are trying to do is that when a user is logged in the particular servlet which is responsible for the authentiacation of the user will authenticate the user an then calls method in the Chatter class which is outside the servlet
    The Chatter class declares two mwthods addChatter() and getChatter()
    I am managing the currently logged users in Arraylist using this two mehtods above
    When the first user logs in his entry gets stored at the first position in the arraylist but when other user logs in then his entry overrites the entry of the first user instead of getting stored in the next position.
    The arraylist gets initialized when second user logs in. to overcome this problem i want to store the arraylist into the ServletContext so it will be unique for the whole application and will not get initialized
    So I want to know the process of storing and retrieving the arraylist fro the context
    Hope ull understand me and reply me
    Thanks
    Regards
    Monarch

  • How to create and use cache

    hi all,
    In my web application I have to maintain cache. how can i create cache and how can I use that cache objects.
    thank you in advance....

    Your question is vague, so what follows is just a wild guess.
    Depending on your application's needs you can use one of the following contexts that are available for J2EE web applications:
    - ServletContext (for an application-wide cache)
    - HttpSession (well, for a session-specific cache)
    - HttpServletRequest (for a request-scoped cache)
    All of the contexts listed above provide getAttribute/setAttribute methods that can be used to store values in the respective contexts.

  • How to store and retrieve XML messages in AQ using ESB/ BPE

    Hello,
    I am having a requirement which I feel should be fairly common - store and retrieve XML messages in AQ. However, I am struggling to decide which type of queue to use AQ or JMS...Here is the requirement
    1. In an ESB, I want to read different kind of files using file adapter. Different kind as in, having different structure or schema
    2. I want to create a queue that is capable of storing any kind of xml data. To this queue, I want to enqueue the message read in step 1.
    3. In another process, say a BPEL, I want to dequeue the message and write into a file. The filename is retrieved from one of the header properties. I want to dequeue using a stored procedure, not by using a JMS or AQ Adapter (reason being that these adapters poll the queue, and consume a message immediately. However, I want to consume the message only when there is a business need)
    My questions are:
    1. What kind of queue I should create in the DB (What should be its payload type...XMLType? )... I guess the answer would also determine the adapter to be used - JMS or AQ
    2. How I should map the xml data read from the file in step 1 to this adapter
    Any help is highly appreciated.

    You are right in suggesting that I dont need to store my XML data as xml in the DB...I dont want to too :) but its just that, thats the only option I can see at this time (the other track i am exploring is :
    File adapter(XML) -> Convert to opaque (base64binary) -> Enqueue opaque to JMS (aq$_jms_bytes_message) ->Dequeue Opaque -> Write file opaquely.
    In this I have hit the roadblock in trying to convert XML to base64binary...maybe some custom java function is needed...anyway)
    Coming back to this thread, where I am trying the following
    File adapter(XML)  -> Enqueue as XML to queue  ->Dequeue XML -> Write file opaquely.
    PS: I think its important for me to mention that I am using SOA 10.1.3.1.0
    I tried the steps you gave...after creating the queue, I am trying to create a JMS adapter. But the queue I created doesnt show up in the browse window of destinations for the JMS Adapter..That had led me to infer that JMS adapter cant be used
    {color:#99cc00}CREATE OR REPLACE TYPE batchupdate_row_type AS OBJECT
    (update_queue_id NUMBER
    ,upc VARCHAR2(20)
    ,price1 NUMBER);
    {color}
    {color:#99cc00}CREATE OR REPLACE TYPE batchupdate_rec_type AS VARRAY(9999999) OF batchupdate_row_type;
    CREATE OR REPLACE TYPE payload_type AS OBJECT ( payload batchupdate_rec_type);
    EXECUTE DBMS_AQADM.CREATE_QUEUE_TABLE ( queue_table => 'jmsuser.batch_update_queue_table', queue_payload_type => 'payload_type');
    EXECUTE DBMS_AQADM.CREATE_QUEUE ( queue_name => 'batch_update_queue', queue_table => 'jmsuser.batch_update_queue_table');
    EXECUTE DBMS_AQADM.START_QUEUE ( queue_name => 'batch_update_queue'); {color}
    I also needed some opinion on whether the last step of my proposed solution ( Dequeue XML -> Write file opaquely) is possible. As I want to develop a service oblivious of the structure of the file, I dont want to create a file adapter based on a particular xsd...so I want to write whatever xml I am getting from the queue....is this step possible

  • How to store and access passwords on Keychain?

    I would like to know how to securely store and access passwords on Keychain?

    This article should answer your questions regarding setting up and using iCloud Keychain: http://9to5mac.com/2013/10/26/how-to-setup-and-use-icloud-keychain-for-mavericks -and-ios-7/

  • How to store and retrieve images from database...

    Hi All
    Anubody tell me plz how to store images in database using jsp.
    and how to retrieve tme.
    Plz reply...
    Anurag

    Exactly
    try the links below may be those might help u in store and retrieval any kind of file.
    http://www.mysqltalk.org/insert-blob-example-vt112861.html
    https://java.sun.com/j2se/1.5.0/docs/guide/jdbc/blob.html
    http://javaalmanac.com/egs/java.sql/GetBlob.html
    http://publib.boulder.ibm.com/infocenter/idshelp/v10/index.jsp?topic=/com.ibm.jdbc.doc/jdbc142.htm
    and a dearly advice friend please query google b4 you post any query out here.

  • How to  Store and Edit Vendor No in IC Agent?

    I have a requirement to display, store and edit the vendor no in the account identification.
    Vendor No stored in venmap table. Currently, I added the custom field in the account identification. I am able to populate vendor no but not able to edit and store in the account identification. Is there any funcationality or configuration where we can edit and store vendor no. I am using CRM 7.0
    Your reply is appreciated.
    Thanks,
    Banu

    I am closing this question, as no response from the forum.

  • How to store and retrive images in oracle database

    hi,
    i am interested in storing some students pictures ( photos) into my oracle database, and i want to know since the images are considered as binary data and since BLOB and CBLOB and supported by oracle, how to insert and to select the picture from oracle from my swing-based application?
    does anyone have a complete sample or tutorial doing that well!!
    thx

    Mira este link,
    hay varios articulos interesantes.
    http://www.oracle-base.com/articles/9i/Articles9i.php
    tambien puedes consultar este link
    http://tahiti.oracle.com/pls/db92/db92.homepage
    completa los coampos solicitados con la palabra "Images"
    hay un manual de LOBs muy completo

  • How to store and retrieve chinese characters

    Hi, I am facing some problem in storing and retrieving of chinese characters from oracle,9i .
    This is the character i am trying to store into the database
    自动提款机网络
    while trying to retrieve it, it shows
    自?提款机网?
    ^ ^
    you can see the weird characters like ? at some places.
    here is the sample code which i can using to store and retrieve data from the database
    class testInsert
    public static void main(String[] args)
    try {
         DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver());
         Connection conn = DriverManager.getConnection ("jdbc:oracle:thin:@172.16.6.81:1521:JFPPTDB1", "citi_user", "citi_user");
         int employee_id = 12345;
    String ename = "自动提款机网络";
         oracle.jdbc.OraclePreparedStatement pstmt = (oracle.jdbc.OraclePreparedStatement)conn.prepareStatement("INSERT INTO employees (employee_id, last_name) VALUES (?, ?)");
         pstmt.setFormOfUse(2, oracle.jdbc.OraclePreparedStatement.FORM_NCHAR);
         pstmt.setInt(1, employee_id);
         pstmt.setString(2, ename);
         pstmt.execute();
    pstmt.close();
    pstmt = (oracle.jdbc.OraclePreparedStatement)conn.prepareStatement("SELECT last_name, employee_id from employees");
    ResultSet rset = pstmt.executeQuery();
              String name = "";
              while(rset.next())
                   name = rset.getString(1);
         int id = rset.getInt(2);
              System.out.println("the name is :"+name);
    catch (SQLException sqe)
              System.out.println("Java SQLException caught, error message="+sqe.getMessage());
    and the table in oracle is
    SQL> desc employees;
    Name Null? Type
    LAST_NAME NVARCHAR2(10)
    EMPLOYEE_ID NUMBER
    I am using classes12.zip for oracle,9i. Is there any database setting that i need to know to retrieve the chinese characters?.
    I have been facing this problem for quite sometime and it makes my life tough. Please help me in solving this issue.
    Thanks
    PD

    hi, can you retrieve the chinese character from your os? When it comes to the wild code of asian character, you should focus on the database/client character setting. you may ask more about it from your dba.
    have a nice weekend!
    eilison
    [email protected]

  • Store and refresh saved file each time.

    Hello,
    I am writing program to save the inputs (String cmd) .I store it in seperate text file using FileOutputStream(filename).
    My problem os i am not able to refresh the contents of file each time i press the button save.
    I m use,
    FileOutputStream o=new FileOutputStream(filename,true).
    when i try to clear the saved text file,
    I give, o.reset (filename);
    but, it gives error.
    I think o.reset() not define for FileOutputStream function.
    what can I do.
    how can I reset the text file(file.txt) each time.
    I need each time the input is given, the file already strore must erased and store the new inputs.
    thanks in advance.

    Just write a new file, it will delete the existing data and overwrite it, unless you specified "append" in the constructor.

  • How to store and display Response from REST Service

    Hi,
    My WADL has defined the response that my REST service returns back as below :
    <object name="Get_Root">
            <property name="RequestId" type="number" />
            <property name="Name" type="string" />
            <property name="fromPlace" type="string" />
            <property name="toPlace" type="string" />
            <property name="fromDate" type="string" />
            <property name="toDate" type="string" />
    </object>
    I want to store this response; response is a single entry of the above type and not a collection (I am making the request on a button click) and then display it on the screen in multiple labels.
    How can I do this? Will I have to use a collection and a gallery, even though I have a single response?
    Thanks,
    Pragya

    Okay.. got it. So MyRestData has a Get function taking some n arguments and it responds back with an object of the type I had mentioned before.
    From what I understood, I have to write the below code for each label
    MyRestData!Get(.....)!Name
    MyRestData!Get(.....)!fromPlace
    MyRestData!Get(.....)!toPlace ...and so on
    Wouldn't that translate to different REST calls? Is there a way to get and store the entire response object
    in the app and access each of its properties/subelements locally?
    Also when you wrote the below before
    Text: "The name is: " &  MyRestData!Get_Root!Name
    it seems that I can access the response object Get_Root using MyRestData. This is not the case for me. MyRestData only lets me access the Get function using "!", and not the response object in any way.
    Thanks for your help!

  • How to store and load in java using mapping

    I am doing my project in java, my project consists of producing a card game.
    I my game at the end of each round the computer will ask the player if he/she wants to save the game. I have looked at some methods on how to do this. It seams that I need a type of mapping but how.
    I want to take a String (which is entered by the player) and to this String I want to store various peices of data that can be loaded up later.
    The data that I want to store are has follows
    1. Name of the player - String
    2. Name of the computer- String
    3. Points of computer sofar- Int
    4. Points of player sofar - Int
    5. Target points- Int
    If there is a better way then please tell me. thankyou

    The format of the saved game could be anything. An easy way to do this is by using the MessageFormat class.
    Let's say you use the tab character as a delimiter, and you want to write two strings and 3 ints:
    MessageFormat mf = new MessageFormat("{0}\t{1}\t{2,number}\t{3,number}\t{4,number}";
    Object[] o = new Object[5];
    o[0] = playerName;
    o[1] = computerName;
    o[2] = new Integer(computerPoints);
    o[3] = new Integer(playerPoints);
    o[4] = new Integer(targetPoints);
    String formatted = mf.format(o);
    PrintWriter out = new PrintWriter(new FileWriter("save.txt"));
    out.println(formatted);
    out.close();
    // reading:
    BufferedReader in = new BufferedReader(new FileReader("save.txt"));
    String s = in.readLine();
    Object[] values = mf.parse(s);
    playerName = (String)values[0];
    computerName = (String)values[1];
    computerScore = ((Number)values[2]).intValue();
    playerScore = ((Number)values[3]).intValue();
    targetScore = ((Number)values[4]).intValue();You could also just write each value on its own line and not using MessageFormat, but just read the values line by line and convert String to ints when needed.

  • How to Store and Access Clips on Another Drive

    hi all...how can I keep clips/projects on a drive other than my boot volume? Do I just have to move them back and forth? Or can you setup iMovie to access clips from various drives?
    Thanks!

    imovie will store new clips where you tell it to in your import options, it will see any valid connected drive and list it in the drop down list of locations.
    imovie will also look for attached drives and list any clips it finds in your event list whenever it is opened.
    In the top RH corner of the events list is a small HDD icon, click on it to reveal which of your events are stored where, if you want to move an event, drag it to the appropriate drive, imovie will copy it over and remove the original.
    DO NOT move events in the finder, it will cause you problems.

Maybe you are looking for

  • Team Development with Subversion

    Hallo, we have a model with nearly 1,900 tables. We were on Oracle Designer before and now started with a fresh reverse engineered Data Modeler model. Since Data Modeler does not have a database repository like Designer had, we use integrated subvers

  • All photos look blurry

    somehow while experimenting in iphoto all my pictures that were there now seem blurry? Any way to just make them all back to original look. Im also wondering if theres not a better mac program for just storing my photos ? Thanks Allan

  • Word document files appearing as Excel in IMail

    Hello: When I receive a Word document attachment it appears  in IMail as a .doc file extension but with an Excel Icon.  When I attempt to open it, Excel opens and informs me it is not a valid file.  The only way I am able to open these documents is b

  • I'm Having problems installing windows 7 through bootcamp Version 3.0.4onto my Imac 27in mid 2011 model

    So confused... ran boot camp, and created the partition, but when I insert my windows 7 disc, it spits it out, and says please insert disk! When I reeboot my computer, it now goes to a black screen that says no bootable drive... and insert boot disc

  • 2 Questions please

    hi im using premiere pro cs3 for a while and i have 2 problems 1 that when im having into premiere compressed files such as avi/wmv/mov etc.. its sometimes not working smooth and must be rendered but 1 rendering of the entire video itn't enought each