Process flow/map performance issues

We have some issues with our OWB-based application and we're looking to find out if there are different ways we could be using the tool, or features/options we've missed.
We are trying to maintain a near real time feed of data from a front end system into our warehouse which was built using OWB 10.2.0.3 over a 10.2.0.4 database. The bulk of the application consists of OWB maps with a few hand-written PL/SQL objects, all executed in a series of hierachical OWB process flows. Maps/transformations are executed either sequentially or in parallel where the referential integrity of the model allows.
The problem is that we have around 150 tables in the datamart which could potentially require updating on each refresh cycle, although in practice only a few tables have any activity on a typical refresh cycle. The cycle consists of loading data into a set of staging tables, and from there the data is transformed into the main schema, often with multiple maps per target table.
On every cycle we run hundreds of maps, the vast majority of which process zero rows. Each map runs quickly and efficiently in its own right but collectively they add up to a 5 - 10 min cycle even if there is no data to process.
There are 2 avenues which we'd like to explore and would be grateful if anyone could provide any pointers/suggestions :-
1) It appears that each map opens and closes its own database session when it executes. I presume this was done because a single process flow could be constructed with maps executing in different target schemas, but we know that's not the case for us. We'd like to know if there is anyway to configure the database connection at a higher level (eg. process flow) so it opens a connection once and executes each of the maps (database packages) in that one session.
Our DBAs are experimenting with 'shared server' settings at a database level which may help to some degree but won't be the whole story.
2) Another option is simply to run less maps eg. load the staging area as now, collate stats on which staging tables contain new data, and then apply some logic such that subsequent maps only execute if the relevant staging table(s) contain(s) some new data, otherwise bypass that map.
We tried experimenting with the 'Pre Mapping Process' operator, but essentially that just generates another function call from the map package, so we still have the overhead of opening a database session for each map to run the package. Minimal gain.
We thought about adding a function call in the process flow before each map and then branching to either execute/bypass the map as approriate, but the function call still requires opening/closing of a database session each time so, once again, minimal gain.
What we really want is some way for a map or process flow to check without logging onto the database repeatedly.
Any ideas on the above, or other potential solutions anyone could suggest, would be greatly appreciated.

Hi,
Please see if these documents help.
Note: 554635.1 - Create Accounting Process Performs Poorly When 100K + Distributions are Passed for an Event
Note: 954273.1 - Multiple Create Accounting Requests Result In Poor Performance For Online Accruals
Note: 763500.1 - R12: Performance Issue with Create Accounting
Note: 733637.1 - R12:Performance Issue When Running Accounting Program Xlaaccup
Note: 781311.1 - Create Accounting Process Taking A Long Time To Complete After Appying Critical Patches
Note: 557869.1 - EBS: R12 Oracle Financials Critical Patches
Regards,
Hussein

Similar Messages

  • Calling process flow / mapping from comand line on client machine?

    Looking to call a process flow / mapping from a commad line on the client machine. Online research has found some attempts at it, but nothing solid. I'd like to test this functionality so that I can eventually build these calls into a wrapper used by an enterprise scheduler.
    Thanks

    what oleg2 is writins is oke but I think
    it is easier to write you one wrap around this sql-call, because then you have to parse some parameters and do other additional stuff
    PROCEDURE "P_EXECUTE_WORKFLOW"("P_WORKSPACE" IN VARCHAR2, "P_LOCATION_NAME" IN VARCHAR2, "P_WORKFLOW_NAME" IN VARCHAR2, "P_CUSTOM_PARAMS" IN VARCHAR2 DEFAULT '","', "P_SYSTEM_PARAMS" IN VARCHAR2 DEFAULT '","') ;

  • Annotation process tools build performance issue

    Annotation process tools is taking 85 minutes to compile page flow files. Is there any suggestion to improve performance.

    As you probably already have gathered, you have different execution plans in the two environments. There could be different reason why this happens, for instance different profiles of the data. But more likely it is due to that in the slow environment, the
    plan was built from some atypical set of input parameters, which causes a performance issue when the procedure is run in a normal fashion.
    When you say that the query has a lot of isnull and convert functions I get a little worried. If it is only in the SELECT list, it's not evil, but if functions are used in the WHERE or ON clauses, the query might benefit from a review, and possibly also
    the data model. But this is pure speculation at this point.
    I would suggest more than one course of action. As a short-term solution, you run UPDATE STATISTICS WITH FULLSCAN on all tables involved, as out-dated statistics can also be explanation for why you got a bad plan. New statistics should trigger a recompilation.
    But even if this resolves the issue, it may not be feasible in the long run, because the events indicate that the query is sensitive to something and the bad plan could come back any day. For this reason, it might be a good idea to make sure that the query
    does include inappropriate constructs, and you also need to review that there are good indexes in place.
    Erland Sommarskog, SQL Server MVP, [email protected]

  • Process Flow - mapping not inserting data

    I have a process flow that executes three mappings in sequence i.e Map1 -> Map2 -> Map3.
    However, sometimes the process flow will execute and no data will be inserted by MAP2, other times it runs ok. If I run the mappings directly data is always inserted.
    The only workaround I've found is to add a WAIT of 10sec between Map1 and Map2 in the process flow.
    Has anyone come across anything like this and how did you work around or fix it?
    OWB 10.2.0.3 btw.
    Cheers
    Si
    PS. transitions are ok.

    Hi
    If you have any map inputs make sure they are also declared in the processflow map - you basicly need to bind them.
    You probably need to investigate from the beginning to understand your result of incoherent data.
    What I would to first is.
    1. Generete an intermediete code - choose your table as outgroup.
    2. Review the code - are there any loading hints ?
    3. Debug the map
    Check your locations.
    If everything seems right then the problem should lay on your workflow manager.
    Remember that the workflow manager has only one namespace, so watchout for mapping name. I had strange executions on my PF because one of my maps had a "½" in the name.
    Check the settings of the map - if you have enterd a set based run in your map and a row based run in the processflow.
    Remember the setting in the processflow is the "superior" one
    Just ideas what you can do.
    Cheers

  • Function to call Process-flows/mapping from SQL

    Hi All,
    Can any one of you send me the function to call process-flows/mappings (eg: I have 10 mapping/Process-flows). It is an urgent requirement pending in my final testing.
    Plz help me in this regard.
    Regards

    Hi
    All information that you need, you can find in $ORACLE_HOME/owb/rtp/sql/. BAsically all executions in owb is called through wb_rt_api_exec package.
    for example:
    declare
         variable exec_return_code number;
         procesflow varchar2(255);
    plsqlname varchar2(255);
    begin
    -- Initialize Return Code
    exec_return_code := owbrt_sys.wb_rt_api_exec.RESULT_FAILURE;
    -- Run Task
    procesflow:='WF_X1';
    plsqlname:='MP_X1'
    exec_return_code := owbrt_sys.wb_rt_api_exec.run_task('OWF_LCTN','PROCESS',procesflow, ' ' );
    if exec_return_code = 1 then
    exec_return_code := owbrt_sys.wb_rt_api_exec.run_task('STAGE_LCTN','PLSQL',plsqlname, ' ' );
    end if;
    end;
    Regards

  • Performance Issues in IS-Retail system

    Hi Idoc Gurus,
    We are working in IS-Retail environment.
    As a part of process we are posting sales from POS system in R/3 system.
    Which than create a billing document in SD.While doing this process,there are performance issues.
    Issue is that this sales posting takes considerable time which hampers system performance.
    Our Idoc sizes are considerably big.We are planning to break this Idoc to 1000 segments.
    Kindly suggest what is a solution apart from breaking Idocs.
    Warm Regards,
    Anil

    Hello,
    As you are creating billing document, then the billing document object RV_BELEG table should be buffered. This is the number range object for SD documents. You can activate buffering in SNRO transaction, this will reduce the time for creating the billing documents. Also Please have a look into the SAP Note 213546 is a collective note for POS inbound.
    Hope this helps
    Regards
    Dileep

  • Is there a way to translate process flow to OMB+ ?

    Hi all,
    Is there a way in OWB to translate process flow/mapping into OMB+ script?
    thanks.

    Well I can't say I have tried this with the OS, but I have done this with software that we had where I worked a number of years ago that somebody had bought in Europe and then moved to the US. Also, make sure you back up your computer before doing any of this, and no guarantees - especially when messing with System files!
    If you use Resedit to open application files and explore a bit you will often see things that appear as the menus and messages that pop up. You can try (and I emphasize "try") to replace these with something in Spanish. Usually you should not replace it with anything longer otherwise it may not fit in properly. Also some menus are contained elsewhere and you won't be able to change those at all.

  • Performance issues executing process flows after upgrading db to 10G

    We have installed OWF 2.6.2, and initially our database was at 9.2. Last week we updated our database to 10g, and process flow executions are taking a lot longer, from 1 minute to 15 minutes.
    Any ideas anyone what could be the cause of this performance issue?
    Thanks,
    Yanet

    Hi,
    Oracle10g database behaves differently on the statistics of tables and indexes. So check these and check wether the mappings are updating these statistics at the right moments with respect to the ETL-proces and with the right interval.
    Also, check your generated sources on how statistics are gathered (dmbs_stats.gather....). Does the index that might play a vital role in Oracle9i get new statistics, or only the table? Or only the table where doubled in amount of rows by this mapping?
    You can always take matter into your own hands, by letting OWB NOT generate the source for gathering statistics, and call your own procedure in a post-mapping.
    Regards,
    André

  • Regarding Performance Tunning of Mapping & Process Flow

    Hi,
    i have around 60-70 GB data in Target database.
    i need do improve the performance of Mapping and Process flow.
    i have used lookup transformation in mapping.
    Plz give me some tips for improving performance of Process.
    Thanks,

    Please go through a Performance Tuning Book for Oracle 10gR2.
    Most importantly remember that in Oracle 10g, your performace of mappings can be increased manifold by following these steps:
    1. Do not design a mapping wherein you load a table and then select from that table to load another table and so on. This is a bad design.
    2. Keep mappings as simple as possible. In other words if a mapping is complicated in terms of joins or other operators then split the mapping into more than one parts.
    3. Also check that all your source tables should be analyzed using DBMS_STATS. Ensuring this one single step can make your work very easy.
    4. Put indexes where you find your predicate has a very high selectivity. Also keep in mind the column ordering of the index.
    5. Use Set Based operation, since it is always a good idea to achieve the result by running one single query rather than a loop and multiple inserts.
    6. Use APPEND PARALLEL hint while loading the target tables. This will not generate wny redo and save time
    7. Please have a recheck while usng some performance intensive operators like UNION, DISTINCT and AGGREGATION
    8. When using a sequence operator to load a large table, check that the sequence should be cached with some values.
    9. When loading large data HASH JOINS are the most appropriate more often than not. So you can use USE_HASH as the hint for selecting from large tables.
    10. Filter out as much unrequired data from a table as soon as possible in the mapping before doing multiple joins.
    I am sure there are many more ... the above is just a random list that I could remember now. Please go through Oracle Performance Tuning Guide, Tom Kyte's Oracle Expert One on One. Knowledge of performance tuning will grow with experience. I am also learning each day !!!
    Regards
    AP

  • Process flow hangs when mapping execution fails

    Hi,
    Has anyone faced the 'process flow hanging' problem after upgrading to OWB 9.2.0.4? Don't know why this is happening again after the upgrade. The audit browser clearly indicates one of the mappings has failed and workflow tables indicate there was a notification upon failure. The process flow runs several sub process flows each containing 5-6 mappings.
    Also, the mapping that failed (due to unique key violations on the target table) executed the post mapping stored procedure although the post mapping run condition was set to 'ON SUCCESS'. Is this the expected behaviour for the post mapping operator when there are database related failures?
    Our environment is OWB 9.2.0.4 on AIX 5.2.
    Database version is 9.2.0.5. We recently upgraded the database from 9.2.0.4 to 9.2.0.5 and OWB from 9.2.0.2.8 to 9.2.0.4. Process flows are executed using sqlplus.
    Thanks,
    Chethan

    Hi,
    I would expect you to have less issues with 9204 as there were some fixes applied. So I have not seen this before.
    To get into the mapping a little bit more, is this a row based mapping that is under the tresshold? In any case, if you specify "on success" I would expect it to only work on success... A database related error will also cause it to get an error, so this is interesting as well.
    Does the error repeat at any case if there is a failure?
    Jean-Pierre

  • OWB Process Flow and Mapping Differences

    IHAC where we have a mapping which produces two different operations depending on how the mapping is called from the Deployment Manager.
    When you call the mapping as an individual job an INSERT is performed.
    However, when the SAME MAPPING is called as part of a process flow a MERGE is performed instead.
    The test data for each case is exactly the same and the result set at the end of the mapping, using either, method is the same.
    Has anyone come across this sort of behaviour before ?
    I would be grateful to know why this is happening and should I be concerned about it given the fact that the outcome is the same in both cases.
    Thanks in advance
    Chris

    Hi Christopher,
    This is funky. I have not seen this before... The only thing I can think of is that in the process flow someone changed the runtime parameters for the mapping, doing a set based execution while the map itself is doing this row based...
    Should not happen otherwise...
    Jean-Pierre

  • Binding mapping in a process flow

    Hi,
    This is the first time i am creating a process flow. I have kind of figured all the stuff out but i get 1 error in validation. i pulled the mapping into the process flow and named it but i donot know how to point it to the mapping in a particular location. is there something i need to do for this. I get the following error when i validate.
    mapping_name's bound object null of null type???has been deleted.
    Thanks
    Bharath

    Hi,
    I found the issue and it is solved...donot bother answering this thread....
    Regards
    Bharath

  • Issue when generating XPDL from process flows

    I have a process flow which has the following architecture.
    It begins with a Start activity called “START1”. START1 has two parameters P_MESSAGE_TYPE and P_MESSAGE_ID. These parameters are populated from values provided by an external process. From START1 an unconditional transition goes to a ROUTE activity. Leaving the ROUTE activity are 18 conditional transitions and 1 unconditional transition.
    The 18 conditional transitions each perform a test on the parameter value supplied in P_MESSAGE_TYPE. The value supplied is checked against a string value (they all check for different values, e.g. 'referenceEngineeringInstructionRecordExtract'). The 1 unconditional transition provides an “emergency exit” should something come through that does not match any of the 18 conditions.
    If there is a match against one of the 18 conditions then that particular transition is followed and a sub-process on the end of that transition is executed. Flow then continues from that sub-process on to an OR operator (which brings together the exit transitions from all 18 of these sub-processes) before the flow ends with the ususal Success, Error and Warning activities.
    Here is the problem. When I build this process flow from scratch it generate out the XPDL it works fine. The XPDL generated around some of the conditional transitions looks like this:
    <Transition Id="TRANSITION_4" From="MESSAGE_TYPE_ROUTER" To="R_EI_PART_CHANGE">
    <Condition Type="CONDITION">
    <Xpression>"P_MESSAGE_TYPE" ='referenceEngineeringInstructionPartChangeRecordExtract'</Xpression>
    </Condition>
    </Transition>
    <Transition Id="TRANSITION_5" From="MESSAGE_TYPE_ROUTER" To="R_ENGINEERING_INSTRUCTION">
    <Condition Type="CONDITION">
    <Xpression>"P_MESSAGE_TYPE" ='referenceEngineeringInstructionRecordExtract'</Xpression>
    </Condition>
    </Transition>
    <Transition Id="TRANSITION_6" From="MESSAGE_TYPE_ROUTER" To="R_FATIGUE">
    <Condition Type="CONDITION">
    <Xpression>"P_MESSAGE_TYPE" ='referenceFatigueParameterRecordExtract'</Xpression>
    </Condition>
    </Transition>
    Here the complex condition in the transitions can be seen as, for example, *"P_MESSAGE_TYPE" ='referenceEngineeringInstructionPartChangeRecordExtract'* which appears in the process flow editor in the form *"START1"."P_MESSAGE_TYPE"='referenceEngineeringInstructionPartChangeRecordExtract'*
    and these are all consistent throughout, i.e. every transition in thn process flow editor shows the “START1” which then seems to get stripped off during the XPDL generation.
    Now, if I make a change to the flow (e.g. remove a sub-process or add a new sub-process) and regenerate the XPDL what usually gets generated is of this form:
    <Transition Id="TRANSITION_4" From="MESSAGE_TYPE_ROUTER" To="R_EI_PART_CHANGE">
    <Condition Type="CONDITION">
    <Xpression>"P_MESSAGE_TYPE" ='referenceEngineeringInstructionPartChangeRecordExtract'</Xpression>
    </Condition>
    </Transition>
    <Transition Id="TRANSITION_5" From="MESSAGE_TYPE_ROUTER" To="R_ENGINEERING_INSTRUCTION">
    <Condition Type="CONDITION">
    <Xpression>"START1"."P_MESSAGE_TYPE" ='referenceEngineeringInstructionRecordExtract'</Xpression>
    </Condition>
    </Transition>
    <Transition Id="TRANSITION_6" From="MESSAGE_TYPE_ROUTER" To="R_FATIGUE">
    <Condition Type="CONDITION">
    <Xpression>"P_MESSAGE_TYPE" ='referenceFatigueParameterRecordExtract'</Xpression>
    </Condition>
    </Transition>     
    What can be seen here is that for some reason the generator has kept the “START1” context of P_MESSAGE_TYPE in the test for referenceEngineeringInstructionRecordExtract (and for two others that I haven't included) but not for the remaining 15 which appear as normal. This results in code that falls over at runtime. I haven't touched these conditional transitions between edits. They are uniquely sequenced and the process flow validates successfully.
    Has anyone else seen this issue before? I can’t find any reference to it either in MetaLink or in the forums.
    Edited by: AndrewD on Jul 3, 2009 1:57 PM

    Hi David,
    Thanks for the reply. The client version is 10.2.0.2.8 on a 10.2.0.2 repository. I suspect that it is something internally buggy. I have since found other issues - like I open up one process flow and choose the "Generate" option from the menu, whereupon it generates the XPDL for the last process I opened and not the current one...seems like there are several issues in this area.
    Andrew

  • Passing parameters from mapping to mapping with in process flows

    I am new to OWB and i would appreciate if any one can suggest me on how to solve the issue i have.
    I am trying to pass a parameter from one mapping to another mapping.
    ex: key need to be passed
    start ----->A--->B--->C----->END
    B needs to pass the key to mapping C
    In B i have mapping Out put parameter and in C i have a mapping input parameter.
    In process flow palatte i could see Key as OUT and in C properties i could bind it to Key .
    but i try to deploy this mapping i am getting error below
    PF_PKG Create Error
    RPE-02040: Internal error: KEY cannot be converted to a constant value. Please correct the value. If the problem persists then please contact Oracle Support with the stack trace and details on how to reproduce it.
    TEST_PFCreate INFORMATIONAL
    RPE-02071: Deployment has been aborted due to a previously reported critial error.
    please suggest me how to pass parameters between mappings with in a process flow.

    Hi
    You have to use process flow variables. So the output of map A, say parameter P would bind to variable V and then the input of map B, say Q would bind to variable V. In this way you can push parameters from one activity to the other. Although the UI lets you bind B.Q to A.P, it should not, I think there is a bug reported on this.
    Cheers
    David

  • Invoking a mapping from another DB in a process flow

    Hi experts, have anyone try to invoke/execute an OWB mapping from another database in a process flow? Is it possible to do that?
    My process flow (in the Staging db) scenario is to execute several OWB mapping in the Staging db, then the final step is to execute an OWB mapping which is created in the warehouse db.
    Is that possible?
    Edited by: wwardana on Apr 5, 2009 9:09 PM

    Look at this thread
    [Calling WB_RT_API_EXEC.RUN_TASK over database link|http://forums.oracle.com/forums/thread.jspa?threadID=775938]
    Regards,
    Oleg

Maybe you are looking for

  • JEditorPane printing a HTML PAGE

    Hi, Here is my problem. I am displaying a HTML Page in a JEditorPane. So far so good. when I try to print is printing to my printer. Here is the problem the Text or to say the font doesnot look good in the paper, each letter is not nice and smoth and

  • TS3212 Downloading itunes on Lenovo Notebook with Windows 7

    I am trying to download itunes on my Lenovo Notebook with Windows 7 via a wifi connection.  The box pops up to download itunes setup and I click download. On completion of setup download a prompt pops up to enter my administrator password which I do.

  • 16:9 - HOW to generate automatic 16:9 playback on widescreen

    I've done numerous tests - Trying to make my DVD playback on a widescreen TV set to be automatic. I've seen many "hollywood titles", where my TV system switches automatically to "Wide", but when I start to play my own DVDSP disc, it is being displaye

  • Moving from PC to Mac - The Serial Number you entered is invalid

    I have been using Photoshop Extended CS6 for about 8 months and the serial number worked okay. Now I've just bought an iMac and downloaded the Mac version of Photoshop Extended CS6 but the serial number is now showing as invalid. Please don't tell me

  • Laptop asks for PASSWORD. Won't start up.

    Today I was running a scan on my Toshiba Satellite C50D-A-133 when I came back to it eh computer won't run. It opens a black screen with a blue box in the middle saying 'enter password' - I have no idea what the password is as the user password doesn