Value mapping performance using LookUp API

All,
We are using Value mapping look up from an external table using JDBC adapter and Lookup API. The scenario works good, but the performance is a hit for us as it is taking 7 seconds for the first step and the subsequent steps are taking much longer. In the performance header it shows that the steps "DB ENTRY QUEUING" and "DB SPLITTER QUEUING" are taking 90% of the time even though mapping execution is real quick.
We tried the below things which did not help us analyze or isolate the problem.
1. We increased the number of dialog processes from 3 to 8. (Optimal value should be 5)
2. We tested the scenario using Value mapping in ID instead of external table. But it is almost taking the same time in the above two steps mentioned.
I would like to know whether any kind of configuration settings to be done on the server like "specifying connection pool capabilities" etc...
Any pointers would be really appreciated.
Thanks and Regards,
GP

Hi,
Have you seen this weblogs by Prasad recently:
/people/prasad.illapani/blog/2007/03/08/performance-tuning-checks-in-sap-exchange-infrastructure
/people/prasad.illapani/blog/2007/04/20/performance-tuning-checks-in-sap-exchange-infrastructurexi-part-ii
Also are you doing multiple lookups or a single lookup? If you are using multiple lookup for multiple fields which has the same logic then try to use global variables.
---Satish

Similar Messages

  • Best practice to monitor 10gR3 OSB performance using JMX API?

    Hi guys,
    I need some advice on the best practice to monitor 10gR3 OSB performance using JMX API.
    Jus to show I have done my home work, I managed to get the JMX sample code from
    http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/jmx_monitoring/example.html#wp1109828
    working.
    The following is the list of options I am think about:
    * Set up: I have a cluster of one 1 admin server with 2 managed servers, which managed server runs an instance of OSB
    * What I try to achieve:
    - use JMX API to collect OSB stats data periodically as in sample code above then save data as a record to a
         database table
    Options/ideas:
    1. Simplest approach: Run the modified version of JMX sample on the Admin Server to save stats data to database
    regularly. I can't see problems with this one ...
    2. Use WLI to schedule the Task of collecting stats data regularly. May be overkill if option 1 above is good for production
    3. Deploy a simple web app on Admin Server, say a simple servlet that displays a simple page to start/stop and configure
    data collection interval for the timer
    What approach would you experts recommend?
    BTW, the caveats os using JMX in http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/jmx_monitoring/concepts.html#wp1095673
    says
         Oracle strongly discourages using this API in a concurrent manner with more than one thread or process. This is because a reset performed in
         one thread or process is not visible to another threads or processes. This caveat also applies to resets performed from the Monitoring Dashboard of
         the Oracle Service Bus Console, as such resets are not visible to this API.
    Under what scenario would I be breaking this rule? I am a little worried about its statement
         discourages using this API in a concurrent manner with more than one thread or process
    Thanks in advance,
    Sam

    Hi Manoj,
    Thanks for getting back. I am afraid configuring aggregation interval from Dashboard doesn't solve problem as I need to collect stats data of endpoint URI or in hourly or daily basis, then output to CSV files so line graphs can be drawn for chosen applications.
    Just for those who may be interested. It's not possible to use SQL to query database tables to extract OSB stats for a specified time period, say 9am - 5pm. I raised a support case already and the response I got back is 'No'.
    That means using JMX API will be the way to go :)
    Has anyone actually done this kind of OSB stats report and care to give some pointers?
    I am thinking of using 7 or 1 days as the aggregation interval set in Dashboard of OSB admin console then collects stats data using JMX(as described in previous link) hourly using WebLogic Server JMX Timer Service as described in
    http://download.oracle.com/docs/cd/E12840_01/wls/docs103/jmxinst/timer.html instead of Java's Timer class.
    Not sure if this is the best practice.
    Thanks,
    Regards,
    Sam

  • Search for a Multilingual value in MDM using JAVA API

    Good day,
    Could you kindly assist.
    I am trying to search for a field in MDM, from Portal using JAVA API. I do retrieve the value in English, but the problem is when I am trying to retrieve it in other languages. Please see sample code:
         private Search getSearch(MDMConnection mdmconnection,String value, TableId tableid){
              Search search =null;
              FieldSearchDimension fielddimension=null;
              TextSearchConstraint textcontrain=null;
              RepositorySchema reposchema =mdmconnection.reposchema;          
                                               if(value!=null)
                   search= new Search(tableid);
                   fielddimension=new FieldSearchDimension(reposchema.getFieldId("ATTR_VAL_ABBR","TEXT_VALUE"));
                   textcontrain=new TextSearchConstraint(value,TextSearchConstraint.EQUALS);
                   search.addSearchItem(fielddimension,textcontrain);
                   search.setComparisonOperator(Search.AND_OPERATOR);
              return search;
    Thank you in advance.
    Regards,
    Simni

    Hi ,
    Mdm- Multilingual value in MDM using JAVA API:
    you can check the first point as its reagrdign youisue related pdf and soloutions for your question.
    1.  http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/b0e8aedc-cdfe-2c10-6d90-bea2994455c5?QuickLink=index&overridelayout=true
    2.  http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/b0e8aedc-cdfe-2c10-6d90-bea2994455c5?QuickLink=index&overridelayout=true
    Hope this information helps you in solving the  issue!!
    Thanks&Regards
    AswinChandraGirmaji

  • Retriving all records in the value mapping cache using java

    Hi,
    Is there a way to retrieve all records assuming I properly maintain some values in the value mapping using java? I know and I tried retrieving already using XIVMService.executeMapping but it seems that I can retrieve only 1 value at a time.
    For instance, in the value mapping cache I have the following:
    Agency         Schema         Value                Context
    SENDER       KEY              0001&ABC        http://xyz.com/ECC/ZTABLE
    SENDER       KEY              0003&           http://xyz.com/ECC/ZTABLE
    SENDER       KEY              0004&DEF        http://xyz.com/ECC/ZTABLE
    RECEIVER     RESULT           Hello           http://xyz.com/ECC/ZTABLE
    RECEIVER     RESULT           World           http://xyz.com/ECC/ZTABLE
    RECEIVER     RESULT           Hi              http://xyz.com/ECC/ZTABLE
    Is it possible to retrieve all values under the column Values assuming I know the value Agency, Schema and Context columns using a java program? If yes, can you point where I can find such an example code or if you are pointing to http://help.sap.com/javadocs/NW04S/current/pi/index.html please provide a sample code on how this can be done.
    Many thanks.

    Hi,
    Have you seen this weblogs by Prasad recently:
    /people/prasad.illapani/blog/2007/03/08/performance-tuning-checks-in-sap-exchange-infrastructure
    /people/prasad.illapani/blog/2007/04/20/performance-tuning-checks-in-sap-exchange-infrastructurexi-part-ii
    Also are you doing multiple lookups or a single lookup? If you are using multiple lookup for multiple fields which has the same logic then try to use global variables.
    ---Satish

  • How can i access value mapping table using xslt mapping

    Hi All,
    I have maintained value mapping table in integration directory.I want to access the data from the value mapping table in XSLT mapping using java function.PLease suggest me to do this.
    Thanks
    Pullarao.

    Value mapping that thread should solve your query !!!

  • Get Field Values from Table using Java api

    I am using the example java code "RetrieveLimitedRecords" that can be found at :
    https://help.sap.com/javadocs/MDM71/current/API/index.html
    The code give the expected result and retrieves the record count for the main table
    Now I want to get the values of the fields for one record
    I added the lines:
    Record[] records = recordResultSet.getRecords() ;
    FieldId[] fields = records[0].getFields();
    System.out.println ("Field Length = "+fields.length);
    and the output is::
    Field Length = 0
    How can I get the fields of the record and read their values?
    Thanks
    Nicolas

    Assuming you want every field, the equivalent of "SELECT *" in SQL, you can use the RepositorySchema object to get a TableSchema, and with that get all FieldIds for the table.
    If your RepositorySchema variable is rs it would be something along the lines of:
    TableSchema mainTableSchema = rs.getTableSchema(mainTableId);
    ResultDefinition rd = new ResultDefinition(mainTableId);
    rd.setSelectFields(mainTableSchema.getFieldIds());
    Hope this helps,
    Greg

  • CrEme 4.0 (beta) GUI performance using different API's

    Hi
    Written a prototype that uses several buttons, a few drop downs,
    couple of textfields, one or two small images and a few different
    kinds of layouts.
    Did this with Swing, AWT and SWT from the Eclipse distribution.
    In my prototype I found that SWT is by far the fastest API for a GUI,
    everything is just smooth and the startup seems faster too.
    Next is AWT, things seem to take twice as much time as with
    SWT (and u lose editable drop downs if u cant impl one in AWT yourself).
    Swing just feels painful , much slower performance than AWT (not
    a surprise tho since it's built on top of AWT).
    I recommend everyone to try SWT if your JVM can run it.

    Just to clarify.
    The PDA I used is iPAQ 6340 (64mb RAM, 240x320
    display, 65536 colors, TI OMAP1510 CPU up to 168 Mhz afaik)

  • Value Mapping Replication for Mass Data - Performance Issues

    Hi All,
    We are looking into Value Mapping Replication for Mass Data. We have done this for less number of fields.
    Now we might have to have 15,000 records in the cache for the Value Mapping. I am not sure how this would effect the Java Cache and Java Engine as a whole.
    There might be a situation where we will have to leave the 15K records in the cache table on Java Engine...
    Are there any parameters that we can look into just to see how this hits the performance.
    Any links/ guidance in the right direction might help me..
    reg

    Naveen,
    Check jins reply in this thread (they have done with API and without API using graphical but still some issues):
    Value mapping performance using LookUp API
    ---Satish

  • Value Mapping  and Lookups

    Hi all,
    I know something about Value Mapping.
    And I heard that the Lookups (DB and RFC) are types of Value Mapping.
    I am confused how value mapping is related to lookups.
    Request you all to provide me some information regd.this.
    Thank you.
    Regards
    Krishna.

    Hi,
    All the links above are quite useful in understanding Value Mapping and RFC lookups.
    Both solutions could be used for getting values from R3 tables at runtime. However, there's difference in way both operate.
    RFC lookup is performed at runtime, since it is executed from the UDF in message mapping. Thus at runtime, call is made to R3 table and value is fetched.
    In value mapping replication, Value Mapping program is run from SAP R3 and values from table are updated in XI Runtime Cache. Thus at runtime, while performing message mapping, call to R3 system is not made. Values are available in XI cache.
    Thus, it is quite obvious that Value Mapping is more performace efficient since it doesn't make a call to SAP R3 system for each incoming message. If the table data does not change very frequently(since for every change value mapping scenario has to be run for update of XI cache), and it is not very large, then it is a good option as compared to RFC lookup.
    However, in cases where either data is frequently changing in table or the volume of data is too large, RFC lookup should be prefered choice.
    Hope it would be helpful.
    Thanks,
    Bhavish
    Kindly award points if comments are useful

  • Where we use Conversions? like Fixed Value and Value mapping? and use of th

    where we use Conversions? like Fixed Value and Value mapping?
    and what is the use of that....

    Hi
    Have a Look at this
    /people/community.user/blog/2007/01/08/valuemapping-using-the-graphical-mapping-tool
    Value mapping is used to map different representations of an object to each other.
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/9202d890-0201-0010-1588-adb5e89a6638
    You can do value mapping both in IR and ID
    IR: Message Mapping
    http://help.sap.com/saphelp_nw04/helpdata/en/43/c4cdfc334824478090739c04c4a249/content.htm
    /people/sreekanth.babu2/blog/2005/01/05/design-time-value-mappings-in-xslt
    ID: Tools --> Value Mapping
    http://help.sap.com/saphelp_nw04/helpdata/en/13/ba20dd7beb14438bc7b04b5b6ca300/content.htm
    Value mapping replication: For uploading data from tables, excel sheet etc. into XI
    http://help.sap.com/saphelp_nw04/helpdata/en/2a/9d2891cc976549a9ad9f81e9b8db25/content.htm
    Value mapping
    /people/siva.maranani/blog/2005/08/23/lookup146s-in-xi-made-simpler
    /people/sravya.talanki2/blog/2005/12/21/use-this-crazy-piece-for-any-rfc-mapping-lookups
    /people/sap.user72/blog/2005/12/06/optimizing-lookups-in-xi
    /people/alessandro.guarneri/blog/2006/03/27/sap-xi-lookup-api-the-killer
    Thanks

  • Value mapping.

    hi
    sdn experts,
    could you please explain about value mapping?
    where the value mapping is used?
    thanks in advance.

    Hi Chinna Rao,
    Value mapping means mapping the data of some source fields to some target fields, in this mapping data can be transform in the format you required for your target system. You can do a value mapping simply by graphical mapping, using UDF etc
    Go thru this thread which talks about value mapping:
    Value mapping
    Value mapping : value mapping function to map different representations of an object to each other. You save the mapping rules for different objects in a value mapping table.
    we have two types ,
    And Value mapping is used to map different representations of an object to each other.
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/9202d890-0201-0010-1588-adb5e89a6638
    You can do value mapping both in IR and ID
    IR: Message Mapping
    http://help.sap.com/saphelp_nw04/helpdata/en/43/c4cdfc334824478090739c04c4a249/content.htm
    /people/sreekanth.babu2/blog/2005/01/05/design-time-value-mappings-in-xslt
    ID: Tools --> Value Mapping
    http://help.sap.com/saphelp_nw04/helpdata/en/13/ba20dd7beb14438bc7b04b5b6ca300/content.htm
    Value mapping replication: For uploading data from tables, excel sheet etc. into XI
    http://help.sap.com/saphelp_nw04/helpdata/en/2a/9d2891cc976549a9ad9f81e9b8db25/content.htm
    /people/sreekanth.babu2/blog/2005/02/23/value-mapping-replication
    /people/siva.maranani/blog/2005/08/23/lookup146s-in-xi-made-simpler
    /people/sravya.talanki2/blog/2005/12/21/use-this-crazy-piece-for-any-rfc-mapping-lookups
    /people/sap.user72/blog/2005/12/06/optimizing-lookups-in-xi
    /people/alessandro.guarneri/blog/2006/03/27/sap-xi-lookup-api-the-killer
    Thanks,
    Ram
    *Pls reward if you find useful

  • Fixed value mapping

    Any one there to explain me what is fixed value mapping Coz when i used LOOK UPS , they told me you can used fixed value mapping instead of it , as i was having only to values , please send me a detail explanation abt it thanking you
    sridhar

    There is a lot of difference between fixed value mapping and Lookup:
    Fixed value mapping is used when you need to populate the some differnt target value based on some inpur value.
    Take example
    I have used fixed value M:
    My input is ABC
    Now for this input I wanted to poupulate some different values.
    Suppose when A comes in File it should map the target value to America.
    When B come it should map to Belgium
    and C -> California
    Now come to Looup:
    What is Lookup and why we need:
    Within an XI mapping it is a common requirement to be able to perform data lookups on-the-fly. In particular, there may be a need to look up some data that is maintained in an R/3 application.
    In the error handling topic we have seen the different validations which need to be performed on file. This can be done through Lookup.
    Some use cases:
    • Look up material number from table MARA.
    • Look up cost center budget.
    • Look up employee information.
    • Look up unit-of-measure (UOM) information from table t006a.
    • Lookup for raising an alert.
    The purpose of the lookup may be:
    • To perform application-level validation of the data, before sending it to the backend.
    • To populate fields of the XML document with some additional data found in the backend application.
    This is a form of value transformation.
    The "value mappings" offered by XI are not adequate in this case, since the data would have to be manually entered in the Integration Directory.
    There are two ways in which we can do lookup:
    • Call lookup method from GUI mapping.
    • Call lookup method from XSLT mapping.
    I think u got ur answer
    Thnx
    Chirag

  • Issue with Value Mapping table

    Hi
    I want to upload a external value mapping table to XI.
    I do not want to code for it on the SAP R/3 side. and there might be more than 2000 value mappings. so can we upload a external mapping table.
    Is it possible?? if yes, then how??.
    Thanks
    Nikhil

    XI 3.0
    Hi,
    first of all one helpful information:
    You can see all data of the value mapping tables using the
    runtime workbench: Go to the IntegrationBuilder->
    Integration Monitoring->Cache Monitoring, select 'Search
    for Value-Mapping' and choose your context.
    The value mapping tables are located in the J2EE part of
    XI. You have to send your value mapping data to an Java proxy
    located in the J2EE part. First, the inbound proxies
    (synchronous and asynchronous) need to be activated.
    There are two urls, named in the docu, you have to call
    from a web browser:
    (asynchronous replication scenario)
    http://<Server>:<Port>/ProxyServer/register?ns=http://sap.com/xi/XI/System&interface=ValueMappingReplicationSynchronous&bean=localejbs/sap.com/com.sap.xi.services/ValueMappingApplicationSynchronous&method=valueMappingReplicationSynchronous
    (synchronous replication scenario)
    http://<Server>:<Port>/ProxyServer/register?ns=http://sap.com/xi/XI/System&interface=ValueMappingReplication&bean=localejbs/sap.com/com.sap.xi.services/ValueMappingApplication&method=valueMappingReplication
    You only need to perform this step once (for each
    installation).
    If you already have a sender for the mapping data, the
    next step is to configure the scenario in the directory
    Create a communication channel with
    Adapter type: XI
    Transport protocol: HTTP 1.0
    Message-Protocol: XI 3.0
    Adapter-Engine: Integration Server
    and host name and http port of the XI J2EE Engine and Path Prefix: /MessagingSystem/receive/JPR/XI
    The user XIAPPLUSER has the required permissions.
    For an asynchronous communication you can use the
    inbound interface ValueMappingReplication from the namespace http://sap.com/xi/XI/System.
    In that namespace there are also outbound interfaces you
    can use to generate a sender proxy and synchronous
    interfaces for the same purpose. Set the created communication channel as the receiver channel.
    You may need a mapping and so on depending on your
    sender. If you use the provided outbound interfaces there
    is no mapping required.
    The Data:
    You can create your own GUIDs using some function like GUID_CREATE in ABAP. You don't need to declare the context you use. Something like http://mycompany.com/Test should be ok.
    A sample in ABAP:
    CRM and R3 are the names of the business systems.
    data: lcl_value_mapping type ref to co_svmr_value_mapping_rep,
            ls_value_mappings type svmr_value_mapping_replication,
            ls_item type svmr_value_mapping_rep_item,
            lcl_system_fault type ref to cx_ai_system_fault.
      ls_item-operation = 'Insert'.
      ls_item-group_id = '315286378563858425463215845123548'.
      ls_item-context = 'http://Test'.
      ls_item-identifier-scheme = 'FormOfAddress'.
      ls_item-identifier-agency = 'CRM'.  <- Business System A
      ls_item-identifier-value = '2'.
      append ls_item to ls_value_mappings-value_mapping_replication-item.
      ls_item-operation = 'Insert'.
    Use the same guid for another value of the same group
      ls_item-group_id = '315286378563858425463215845123548'.
      ls_item-context = 'http://Test'.
      ls_item-identifier-scheme = 'FormOfAddress'.
      ls_item-identifier-agency = 'R3'. <- Business System B
      ls_item-identifier-value = '1'.
      append ls_item to ls_value_mappings-value_mapping_replication-item.
      create object lcl_value_mapping.
      try.
          call method lcl_value_mapping->execute_asynchronous
            exporting
              output = ls_value_mappings.
          commit work.
        catch cx_ai_system_fault into lcl_system_fault.
          write: 'Error: ', lcl_system_fault->errortext.
      endtry.
    See the XI documentation at SAP XI Design and Configuration Time -> Configuration -> Value Mapping -> Value mapping Replication for Mass Data.
    Hope that helps.
    Regards,
    Christian

  • Lookup API - asynchonous SOAP Adapter Queue

    Hi,
    I have a question about the queue handling, when you use the Lookup API of the SAP PI. ([Sap Help Lookup API|http://help.sap.com/saphelp_nw04/helpdata/en/cf/406642ea59c753e10000000a1550b0/frameset.htm])
    When I call a synchronous Web Service via SOAP within a message mapping via the Lookup API, the synchronous web service is called via the "SOAP_http://sap.com/xi/XI/SystemSend" adapter queue. But "SOAP_http://sap.com/xi/XI/SystemSend" is the asynchronous SOAP sender adapter queue. The threads which handle the calls are not made for handling synchronous calls. If the synchonous web service has a high response time (10 seconds for example). The thread is blocked for this time.
    Synchronous threads are not blocked that long.
    Is there a way to configure which adapter queue has to be used by the lookup API?
    Regards,
    Torsten

    Hello,
    Regarding the error in the trace:
    nested exception is: com.sap.engine.services.deploy.exceptions.ServerDeploymentException: [ERROR CODE DPL.DS.5070] Already started operation with application sap.com/com.sap.aii.adapter.soap.app in the cluster. No other operation with this application is allowed at the moment, because it is locked in the enqueue server or the lock from there has been manually removed. at com.sap.engine.services.ejb3.runtime.impl.DefaultContainerRepository.startApp(DefaultContainerRepository.java:236) at
    please see note
    1339258 PI Adapter applications locked during start up
    You could try restarting the SOAP Adapter applications :
    com.sap.aii.adapter.soap.app
    com.sap.aii.adapter.soap.lib
    from the JEE NWA
    -> Operation Management
      -> Systems
       -> Start and Stop
        -> Java EE Applications
    http://wiki.sdn.sap.com/wiki/display/XI/start_stop_applications
    Regards,
    Sarah

  • Value Mapping Group in PI 7.1

    Hi All,
    In PI 7.1 Integration Directory there is one section as "Value Mapping Group".I suppose that it is used if and only if value mapping is used.But I am not using any kind of value mapping so can I skip that section?
    Thanks in advance.

    Hi Abhishek,
    THanks for the reply.
    I have another query. it is as follows:
    Actually I am having the Process Order coming in the source with 5 to 6 relevant fields.Out of these Process Order fields Status is one of the fields.Based on the the StatuS field the BAPIs will be called at the receiver.So can I skip Integrated Configurations as I am imposing the condition on the data in the payload(Source Structure) as Integrated configuration will not be helpful in my scenerio.?
    Or shall I skip Sender Agreement ,Receiver Agreement?
    Thanks in advance.

Maybe you are looking for

  • How to identify empty InfoObjects used in a Cube

    Hello Gurus! I need some help. How do I find empty InfoObjects used in a Cube? I have 20+ Cubes and I need to identify those objects in the cubes, which are empty /not filled/. Statistics Except writing an ABAP Thanks in advance Martin

  • Oracle 10G on Win XP

    I would like to know where can I find the instruction to install Oracle 10G on a Win XP machine. I have the following disk: 1. - Oracle DB 10G Rel 3 (10.1.0.2) Windows 32 Bits 2. - Oracle 10G Client And I would like to know if I need to install both

  • Lion vs Snow Leopard - Nightmare for me

    - user interface *...! - support old applications (Rosetta) *!!! - bilingual setings *!!! - iCloud vs MobielMe vs Mac.com *No Comment Thank You Apple. All benefits of your OS are ...!!! Why Apple, WHY?

  • Admin Cockpit question

    Hi, We are trying to activate the admin cockpit thru ABAP "RSTCC_ACTIVATE_ADMIN_COCKPIT" and have couple of question. 1. Activate SAPI DataSources  ( wat is mean by this) 2. Activate MySelf Source sytem (My source system is already in active, does th

  • Context menu in the Universal Worklist

    Hello all, I'm migrating from Portal 7.0 to 7.3, and right now, I'm trying to migrate the UWL configuration. I created the Universal Worklist Systems, I uploaded all the .xml configurations, I re-registered the system, I configurated the UWL iView...