Performance of Java API 2

Hello,
we are currently using Java API 2 that comes with MDM 5.5 SP5 (Build 5.5.42.65) to read extended information from the mdm repository.
Our process:
We are export every product as a XML file over the MDM Syndicator and enrich this file with extended information from the API (This step is needed because we cannot export all data by the Syndicator, for example multilingual attributes / some product data like textblocks / id's for incremental updates ...).
Actually the performance is really bad, we need ca. 10-15 secs to process one file, that is really frustrating when you have stored near 70.000 products in your repository.
Are there some tricks to improve the performance or is the API really so slow? Or any better alternatives for an fast export?
Thanks for your help ....
Best Regards,
Jan

1 - If you are able to use the EJB connection with the LiveCycle SDK classes (you have are using a supported java version such as 1.5_xx, your network security doesn't prevent RMI calls, etc.) then that is your best bet.
2 - Yes, you will need the java APIs to be accessible for your application. The LiveCycle APIs have remote EJB endpoints so you can access them from another server.
3 - There are samples that ship with the LiveCycle server (located in your LCInstall\LiveCycle_ES_SDK\samples\Forms). There are also samples on the LiveDocs page at: http://livedocs.adobe.com/livecycle/8.2/programLC/programmer/help/000064.html

Similar Messages

  • Process Performance monitoring Java API

    Hi,
    I am looking for java API's which can help me monitor performance stats like CPU utilization, memory utilization etc on a windows platform. I did get a handle on few APIs to measure memory utilization but somehow monitoring the CPU seems to be a problem. My requirement is to measure CPU and memory for a particular process and not for the entire system. Any pointers on this front would be of great help.
    Thanks
    Bhavin

    I don't see any great free libraries that you can just drop in and make this happen.
    There's an interesting looking product called "SIGAR" that seems to speak directly to what you want to do here.
    Or this might be a great opportunity for you to play with JNI and some C++... awesome! ;-)

  • Invalid Argument Exception on Java API's DB Close

    When closing the database via the Java API's close method, I am getting an invalid argument exception... how can this be fixed... subsequent access to the DB causes the JVM to crash??
    ERROR: An exception has occurred: java.lang.IllegalArgumentException: Invalid argument
    java.lang.IllegalArgumentException: Invalid argument
    at com.sleepycat.db.internal.db_javaJNI.DbEnv_close0(Native Method)
    at com.sleepycat.db.internal.DbEnv.close0(DbEnv.java:217)
    at com.sleepycat.db.internal.DbEnv.close(DbEnv.java:77)
    at com.sleepycat.db.Environment.close(Environment.java:39)
    at com.sleepycat.dbxml.XmlManager.closeInternal(XmlManager.java:301)
    at com.sleepycat.dbxml.XmlManager.delete(XmlManager.java:33)
    at com.sleepycat.dbxml.XmlManager.close(XmlManager.java:310)
    at com.iconnect.data.adapters.BerkleyXMLDBImpl.insert(BerkleyXMLDBImpl.java:827)
    at com.iconnect.data.DataManagerFactory.insert(DataManagerFactory.java:182)
    at Xindice2Berkley.main(Xindice2Berkley.java:99)

    I had the same problem. I could fix it by carefully calling the delete() function on all those DBXML Xml..xyz objects that you create when you perform queries etc. It seems that those Java objects have some 'shadow' object in the underlying DLL and by calling delete() you free resources that remain otherwise assigned (maybe somebody with a C++ background who programmed this stuff?). Call delete() before the Java object gets out of scope. For instance:
    results = mgr.query(collection,context,null);
    XmlValue value;
    try {
    while ((value = results.next()) != null) {
    XmlValue c = value.getFirstChild();
    String ref = c.getNodeValue();
    c.delete(); c = null;
    value.delete(); value = null;
    catch (Exception e) {
    finally {
    if (results != null) {
    results.delete();
    results = null;
    Once i did this on all possible dbxml objects i used in my code, the java.lang.IllegalArgumentException: Invalid argument disappeared.
    Message was edited by:
    user562374

  • 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

  • Iterate through all the records in a table using Java API

    Hi All,
    What is the easiest way to iterate through all the records in a given table using Java API? I cannot find any methods that will return all records in a table and the only way I can use is to perform a free form search with a condition that is always true. The code works but is pretty ugly. Is there an alternative to this approach?
    Thanks!
    Kenny

    Hi Kenny,
    You can construct a new Search object with your table's code name, a new ResultSetDefinition object for your table and just execute this search using the GetResultSet method of CatalogData.
    Please look at the following code:
    Search search = new Search(<code name of your table>);
    ResultSetDefinition rsd = new ResultSetDefinition(<code name of your table>);
    rsd.AddField<code name of a field>);
    rsd.AddField(<code name of a field>);
    String sortField = <code name of your sort field>;
    boolean sortAscending = true;
    int page = 0; //page number
    A2iResultSet rs = <your CatalogData object>.GetResultSet(search, rsd, sortField, sortAscending, page);
    for (int i = 0; i < rs.GetRecordCount(); i++)
        Value fieldValue = rs.GetValueAt(i, <code name of a field>);
    Hope this helps,
    Nir
    PS - I really recommend you to start using the new API, as it is much more efficient and straight-forward.

  • How to use the Public Java API

    Is it possible to use the Public Java API to write a custom transformation in Java and use this in OWB. i.e. Say I have a Dateofbirth field in my source database and an Agegroup field in the target database, and I write a transformation in Java to take the Dateofbirth as an input parameter to the method and calculate the Agegroup e.g. 25-30, and return it from this method which then populates the Agegroup field in the target database. If so, how do I go about this?

    Martin,
    In general, yes you could... but you do not need to. You could use the UI to implement this requirement. The public Java API is there for you to manipulate metadata. How you implement your system, is independent of that.
    The way you would go about the case you just mentioned... you would write the Java code, deploy it into the database, wrap it in a PL/SQL procedure or function, and call it from OWB.
    Would this be a good idea...? I think no. Unless you have very complicated calculations that can only be performed in Java, I strongly encourage you use the PL/SQL language. Reason being: transformation will be much faster, because there is no need to translate PL/SQL into Java and back again.
    Hope this helps,
    Mark.

  • How to build a small application using Java API

    Hai expertise,
         I want to retreive MDM repository info using JAVA API, i am following these blogs:
    /people/andreas.seifried/blog/2006/03/26/performing-free-form-searches-with-mdm-java-api
    /people/udi.katz/blog/2005/08/21/retrieving-data-from-mdm-server-using-the-mdm-java-api
    /people/udi.katz/blog/2005/07/17/mdm-connectivity-to-java-application
    <b>where to get the jar and sda files to build the application??
    In Developer Studio.. Windows -> Preferences -> Java -> Classpath variables. Is this the only place where we need to give the jar file path??
    Are there any other configurations to do(except setting container variable to MDM4J jar file) to connect my java application to MDM repository???</b>
    Regards,
    Chand.

    Hi Govada,
    (1)You need to add the MDM4j and other JAR files at:-
    right click on project -> Java Build Path -> Libraries -> Add External JARs
    (2)If the project is Web Dynpro project one
    then right click on project -> Web Dynpro Reference -> Library Reference -> and add sap.com/com.sap.mdm.tech.mdm4j
    Are you using JAVA API 1 or 2???
    Thanking you
    Namrata Dixit

  • Java API for CVS access

    Hi,
    I am looking for a third party Java API which i can use to connect to a CVS repository and perform code synch up operations with the repository. If anybody has any informations. Pls let me know.
    Thanks.

    Thanks for the reply. I did try jcvs. I am still trying to get it running in my system. That apart, i am not sure if jcvs exposes any of its API's that I could use to connect to a CVS repository. I did not find any API documentation with it. I am finding it painfull to go thru its source code to find out what its core classes are and how I should call them.
    Anyways, there should be other third party APIs in the www. And I need to get my hands on them.
    Pls help !!

  • Using the Java API to address a specific instance

    Hi,
    I've created another operation (onRequest) in the client of an async. process.
    <!-- portType implemented by the Exp2 BPEL process -->
    <portType name="Exp2">
    <operation name="initiate">
    <input message="tns:Exp2RequestMessage"/>
    </operation>
    <operation name="onRequest">
    <input message="tns:Exp2onRequestMessage"/>
    </operation>
    </portType>
    I then use this operation in a recieve activity so that I can stall the flow of the instance, and then call it whenever I whant from a RMI client.
    <receive createInstance="no" name="onRequest" partnerLink="client" portType="tns:Exp2" operation="onRequest" variable="inputRequest"/>
    My problem is that, after the creation of one or more instances of this process, how can I send a post message to a specific instance using the Java API?
    I understand that i should use something like...
    deliveryService.post("Exp2", "onRequest", nm );
    but there's nothing to "say" that this post message is to be delivered to the instance with the ID "xx".
    I also know that I need to use correlation on this but I don't know how.
    I would really apreciate some help on this.
    Thanks...

    This is a very good question: here is a code snippet that shows how you can add a conversation id to the NormalizedMessage that you are sending to the delivery service.
    HashMap properties = new HashMap();
    properties.put("conversationId", "yourUniqueKeyHere");
    // construct the normalized message and send to the
    // delivery service
    NormalizedMessage nm = new NormalizedMessage( );
    nm.setProperties(properties );
    // The rest is the same
    nm.addPart("XXX" , someElement );
    Please note that you will need to use the conversationId property both with the message you use to initiate the BPEL process and the message you use to perform the onRequest call.
    Please note that if at some point you want to perform any of the 2 calls through the SOAP channel, you can embed he conversationId in the WS-Addressing header within the relateTo element.
    I hope this helps.
    Edwin

  • Is there an Oracle forms services trace java api

    Hi All,
    Is there a java api to use Oracle Trace on a running oracle form. I see that when I run the Oracle trace here it gets the correct item names. I want to be able to custom make my own trace files useing the oracle trace mechanism as a base. Is there a java api to develop our own forms trace?
    Thanks,
    Mia

    Erik wrote:
    Hi.
    Jdeveloper 11.1.1.2
    Is there a way in ADF to populate extra read-only text-columns in an af:table (based on a ViewObject) as was possible in Oracle Forms with a Post-Query-Trigger:
    Post-Query
    Perform an action after fetching a record, such as looking up values in other tables based on a value in the current record.
    Fires once for each record fetched into the block.
    Best regards
    ErikHi,
    http://docs.oracle.com/cd/E15523_01/web.1111/b31974/appendix_formstriggers.htm#sm0350

  • Calling Java API from HBR

    Hi guys,
    I’m trying to use Java API to update ASO cube from Planning forms. So there are several steps:
    1.     Planning form passes variables to HBR
    2.     HBR passes variables and calls Java CDF
    3.     CDF performs some operations and uses JAPI classes to update ASO cube.
    When I run CDF as runtime command or from JDeveloper/Netbeans if works fine. When I run CDF from HBR but do not use JAVA API methods it works too. But when I call CDF from HBR AND use JAPI methods it doesn’t execute JAPI methods. I do not receive any error; methods that use JAPI methods are simply not executed.
    Any ideas why it happens?
    Thanks,
    Dmitry

    Hi,
    Have you tried running it from an essbase calc script first and run the essbase server in the foreground (not as a service if you are on windows) then if you have any System.out.prints on errors or in your code they should be outputted to the window.
    It usually easier to get it running from a calc script first because you sometimes get better messaging than business rules.
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • Why does the Java API use int instead of short or byte?

    Why does the Java API use int if short or even byte would be sufficient?
    Example: The DAY_OF_WEEK field in Calendar uses int.

    One of the point is, on the benchmark tests on Java performance, int does far better than short and byte data types.
    Please follow the below blog talks about the same.
    Java Primative Speed
    -K

  • Is there any Java API to interact/integrate with Adobe LiveCycle Policy Server

    Hi,
    We are already using Adobe LiveCycle Policy server & has manual process in place to send documents to clients.
    Going forward we want to automate this document generation process. We are using Java, JEE in our application.
    We are planning to use below steps to automate this process.
    1) Administrator will create a Template in Adobe Policy Server and will map users intended to receive mails with this template
    2) Our application will interact with Adobe Policy Server and use Template ID to generate PDF document and send mails to client.
    Can anyone please let me know if there is any Java API which can be used to perform the above second step.
    Thanks a lot for your help.
    Best Regards - Roy

    Hi Steven,
    What you refer to is PDF Generator version 7.x Postscript edition.
    In version 7 of the product there were 3 editions:
    1. PDF Generator Professional
    Create PDF files from a wide range of source files:
    Print (PS, EPS, PRN)
    Image (JPG, GIF, BMP, TIFF, PSD)
    Standard office formats (DOC, XLS, PPT, WPD, MPP)
    Text (TXT, RTF)
    Web (HTML)
    Design files (DWG, VSD)
    Generate all types of Adobe PDF file formats:
    PDF 1.3, 1.4, 1.5, 1.6
    PDF/X-1a and PDF/X-3 for prepress document exchange
    PDF/A for archiving with easy search and retrieval
    Searchable PDF files from images
    Convert PDF files to:
    HTML documents
    Text (TXT, RTF, accessible)
    Images (TIFF, PNG, JPEG)
    Print (PS, EPS)
    2. PDF Generator Elements
    Create PDF files from a wide range of source files:
    Print (PS, EPS, PRN)
    Image (JPG, GIF, BMP, TIFF, PSD)
    Standard office formats (DOC, XLS, PPT, WPD, MPP)
    Text (TXT, RTF)
    Web (HTML)
    Design files (DWG, VSD)
    Generate all types of Adobe PDF file formats:
    PDF 1.3, 1.4, 1.5, 1.6
    PDF/X-1a and PDF/X-3 for prepress document exchange
    PDF/A for archiving with easy search and retrieval
    Convert PDF files to:
    HTML documents
    Text (TXT, RTF, accessible)
    Print (PS, EPS)
    3. PDF Generator Postscript
    Create PDF files from a wide range of source files:
    Print (PS, EPS, PRN)
    Generate all types of Adobe PDF file formats:
    PDF 1.3, 1.4, 1.5, 1.6
    PDF/X-1a and PDF/X-3 for prepress document exchange
    PDF/A for archiving with easy search and retrieval
    So basically what you have is the very limited edition, doing exactly what you said. For more functionality you should opt for one of the other editions (that for version 7.x)
    Today's version is the newer LC PDF Generator ES. You can look for its specifications at http://www.adobe.com/products/livecycle/pdfgenerator/
    Thanks

  • How could JAVA API and ABAP API useful to MDM.

    Hi Experts,
    How could JAVA API and ABAP API useful to MDM, and any coding in Java or ABAP is required in MDM.

    Hi Reema,
    Java API and ABAP API are verry usefull to MDM to integrate MDM with other SAP componants like SAP R\3, EP etc. :
    It dose not required any coding in MDM infact in JAVA API coding can be done on NWDS(Netweaver Developer Studio).And for ABAP API coding is done on SAP R\3 System in ABAP editor.
    JAVA API:
    By using Java API MDM client operations can be performed.For one need to install NWDS and to deploy some .jar files and with the help of standard classes and interfaces it can be connected to MDM server and various operations like create repository ,connect to repository ,Data mainuplation etc.
    ABAP API:
    Suppose you have an Expert abaper and you want him to perform MDM operations.In that case he need not to learn MDM basic Data types infact by doing some settings on R\3 and MDM server side an ABAPer  can perform
    MDM Cnsole and MDM Data Manager level operations.
    you can go through these links
    http://help.sap.com/javadocs/MDM/SP06/overview-summary.html
    /people/bv.pillai/blog/2006/11/28/installing-mdmtech-add-on-and-configuring-the-mdm4a-mdm-for-abap-api
    Here the coding is done on SAP R\3 system.
    hope it will give you some idea about Java API and ABAP API
    Reward if helpful
    Thanks ,
    Vinay Yadav

  • Keyword Search using the SOUNDS_LIKE modifier, Java API

    Hello guys:
    Does anyone have a piece of code that shows how can I do a search, using the keyword and the SOUNDS_LIKE mod, like on the Data Manager?
    I've seen the blog "Performing Free Form Searches with MDM Java API" but I'm afraid this doesn't apply (it's about free-form, as the name says)
    Thanks!
    Alejandro

    Hi Alejandro,
    maybe this piece of code helps you a bit. The most important is the static attribute SOUNDS_LIKE of the TextSearchConstraint class.
    Also try to find the MDM Java Example files @ service.sap.com/installMDM . There is a complete introduction on how to search against an MDM repository which is very useful.
              // assumption:
              // you have connected to some repository which contains a field "Material Number"
              // with a session and you have already read the MainTable properties to identify
              // the MainTableID, as well as some fields yo want to read.          
              // set search conditions
              Search search = new Search(<yourMainTableId>);
              String fieldname = "Material Number";
              ResultDefinition rd = new ResultDefinition(<yourMainTableId>);;
              FieldId field = <someFieldFromYourRepository>;
              rd.add(field);
              // add some additional fields you want to select here ...
              FieldSearchDimension searchDimension = new FieldSearchDimension(field);
              TextSearchConstraint searchString =     new TextSearchConstraint(materialNumber, TextSearchConstraint.SOUNDS_LIKE);
              search.addSearchItem(searchDimension, searchString);
              RetrieveLimitedRecordsCommand limitingCommand = new RetrieveLimitedRecordsCommand(<yourConnection>);
              limitingCommand.setSession(<yourSession>);
              limitingCommand.setResultDefinition(rd);
              limitingCommand.setSearch(search);
              limitingCommand.setPageSize(10);
              try {
                   limitingCommand.execute();
                   RecordResultSet rs = limitingCommand.getRecords();
              catch(Exception e){
                   e.printStackTrace();
    If you need more help, let me know
    Best regards,
    Martin

Maybe you are looking for

  • Website will not open correctly

    I haev a website that that I use with no issues on my Desktop computer, but when I open webite on the ipad some things don't work, and the owner of the site says it's Safari.  Anybody have a solution?

  • I can't seem to email anything.

    I've tried to email to several different addresses.  Nothing goes through.  I'm working on an iPad mini, if that makes any difference.

  • Error importing data via Apex

    Hi, I have an apex application on a 10g XE machine, and am in the process of migrating this to an 11g machine (same version of apex: 3.2.1). With a dozen or more "Apex" users, I first was a little disgruntled to find that there wasn't a readily-avail

  • Adobe Edge Inspect not syncing on ios devices?

    Hiya, Just trialing Edge Inspect at work. It works excellently on my Galaxy SII, but it doesn't work so well on any ios devices we have in the office, including  ipads 1,2,3 and  iphones 4/4S/5 (running ios5 and 6). I can get the page to sync initial

  • Determining DNS

    I'm trying to figure out how I can determine what the DNS servers are for a given machine using Java. I can determine the local hostname easily enough, but how can I determine where it's looking for DNS? Thanks so much! Eddie