Performance of __ham_func4 call

I have a application that inserts messages to a BDB database (TDS). I took a profile and see that the process spends a great deal of time in the __ham_func4 call.
Is there any way of choosing the alternative algoithms :__ham_func2, __ham_func3, __ham_func5 - whithout modifying the BDB source code ?

Any help will be appreciated.

Similar Messages

  • Is there any other option to perform any action / call script/program instead of sending email alerts from app Insights ?

    Hi ,
    For app Insights configured alerts ( CPU usage/Response time ), we have email notification but do we have any other option to perform any action / call script/program
     in case of alert from App insight ?    
    We need to log these alerts into existing ticketing system like MS Alarm/MS ticketing
     ( GFS ) , please suggest

    We don't support performing any action except email notification in case of alert from App Insight. 
    To integrate with
    MS Alarm/MS ticketing  (
    GFS ) you’d need parse the mails from AI and use the
    MS Alarm/MS ticketing  (
    GFS )  connector to create a ticket. 
    Mihail Smacinih

  • Improve performance of bdc call transaction

    Hi all,
    I am performing a batch update of tax codes in a BDC call transaction program. This particular code takes about 3 minutes to process 2,600 entries. I have tried almost everything but is there a way to improve / make it run faster?
    I have a feeling it has something to do with the form "do_transaction", but I really don't know anymore.
    Thank you in advance.
    Attached is the code:
    *& Report  ZFI_CHANGEWTAX
    *&  Description: Change Doctors Withholding Tax Code (EI)
    *&  Using BDC Call Transaction Method
    *&  Created by : mpena
    *&  Created on : 07/15/2009
    *&  Modification History
    *&  Seq  Changed on
    *&       Changed by
    *&  001   07/15/2009
    *&        mpena         Initial Development
    *&  002   07/20/2009
    *&        mpena         Logic modification
    *&                      Testing
    *&  003   07/20/2009
    *&        mpena         Call function parameter modification
    *&  004   07/22/2009
    *&        mpena         Report generation
    *&                      Performance improvements
    REPORT zfi_changewtax
           NO STANDARD PAGE HEADING
           MESSAGE-ID zfk02msg.
    TYPES: BEGIN OF t_tax,
           lifnr LIKE lfa1-lifnr,                "account number
           wt_withcd LIKE lfbw-wt_withcd,        "current tax code
           wt_withcd_new LIKE lfbw-wt_withcd,    "new tax code (left blank at default)
           END OF t_tax.
    DATA:  wa_tax TYPE t_tax,
           i_tax TYPE STANDARD TABLE OF t_tax,
           it_bdcdata TYPE bdcdata OCCURS 0 WITH HEADER LINE,
           lin TYPE i.
    -------Selection Screen Design -
    SELECTION-SCREEN:
    SKIP 1,
    BEGIN OF BLOCK blk1 WITH FRAME TITLE aaa.
    PARAMETERS: p_ktokk LIKE lfa1-ktokk DEFAULT 'DOCT' OBLIGATORY,
                p_bukrs LIKE lfbw-bukrs DEFAULT 'SL' OBLIGATORY,
                p_wtax LIKE lfbw-wt_withcd OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK blk1.
    INITIALIZATION.
      aaa = 'Change Tax Code to specified value'.
    TOP-OF-PAGE.
      WRITE:
      / 'Update of taxes successful on:', sy-datum, sy-uzeit,
      / 'Generated by:', sy-uname,
      / 'Company Code:', p_bukrs, 'Vendor Group:', p_ktokk.
      SKIP 1.
      ULINE.
      WRITE:
      / 'Account Number', 20 'Old Withholding Tax Code', 50 'New Withholding Tax Code'.
      ULINE.
    START-OF-SELECTION.
      SELECT lfa1~lifnr
             lfbw~wt_withcd
      INTO TABLE i_tax
      FROM lfa1 INNER JOIN lfbw
        ON lfa1lifnr = lfbwlifnr
        WHERE lfbw~bukrs EQ p_bukrs
        AND lfbw~witht EQ 'EI'.
      IF sy-subrc EQ 0.
        DESCRIBE TABLE i_tax LINES lin.
      ENDIF.
    Update i_tax with new value of wt_witchd, then display for comparison.
    After write: if old and new tax are the same, tax update was not successful for that specific account
    or inputted tax type is the same as the old one.
      LOOP AT i_tax INTO wa_tax.
        wa_tax-wt_withcd_new = p_wtax.
        MODIFY i_tax FROM wa_tax.
        WRITE:
        / wa_tax-lifnr,
        20 wa_tax-wt_withcd,
        50 wa_tax-wt_withcd_new.
        CLEAR wa_tax.
      ENDLOOP.
      PERFORM do_transaction USING p_bukrs p_wtax.
    *&      Form  do_transaction
         Extracted from ZFKO2 recording accessible in shdb.
    FORM do_transaction USING v_bukrs v_wtax.
      MESSAGE i000 WITH lin.
      LOOP AT i_tax INTO wa_tax.
        REFRESH it_bdcdata.
        PERFORM bdc_dynpro      USING 'SAPMF02K' '0106'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'RF02K-D0610'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'RF02K-LIFNR'
                                      wa_tax-lifnr.
        PERFORM bdc_field       USING 'RF02K-BUKRS'
                                      v_bukrs.
        PERFORM bdc_field       USING 'RF02K-D0610'
                                      'X'.
        PERFORM bdc_dynpro      USING 'SAPMF02K' '0610'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'LFBW-WT_WITHCD(01)'.
        PERFORM bdc_field       USING 'LFB1-QLAND'
                                      'PH'.
        PERFORM bdc_field       USING 'LFBW-WT_WITHCD(01)'
                                      v_wtax.
        PERFORM bdc_dynpro      USING 'SAPMF02K' '0610'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=UPDA'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'LFB1-QLAND'.
        PERFORM bdc_field       USING 'LFB1-QLAND'
                                      'PH'.
        CALL TRANSACTION 'FK02' USING it_bdcdata
                                MODE   'N'
                                UPDATE 'A'.
      ENDLOOP.
      MESSAGE i001.
    ENDFORM.                    "do_transaction
           form for bdc dynpro
    FORM bdc_dynpro USING program
                          dynpro.
      it_bdcdata-program = program.
      it_bdcdata-dynpro = dynpro.
      it_bdcdata-dynbegin = 'X'.
      APPEND it_bdcdata.
      CLEAR it_bdcdata.
    ENDFORM.                    "bdc_dynpro
           form for bdc field
    FORM bdc_field  USING fnam
                          fval.
      it_bdcdata-fnam = fnam.
      it_bdcdata-fval = fval.
      APPEND it_bdcdata.
      CLEAR it_bdcdata.
    ENDFORM.                    "bdc_field

    You might want to try using a BAPI instead of a call transaction.   I believe "BAPI_VENDOR_SAVECHARVALREPLICA" will work for you.  Calling a BAPI is just like calling a function module.   After you call the bapi remember to commit it with the function module "BAPI_TRANSACTION_COMMIT".

  • Performance Problem, RPC Call auf SQLServer 2000

    Hi,
    we have a performance problem with SQLServer 2000. We use Bea WLS 6.1, SQLServer
    2000, and JDBC Driver mssqlserver4v65.jar from Bea.
    we use this for performance optimization as in Documetation at
    "http://www.datadirect-technologies.com/download/docs/jdbc/Jdbcref/jdbcdesign.html"
    case 2
    Stored Procedure can be optimized to use a server-side RPC. Because the application
    calls the procedure by name and the argument values are already encoded, the load
    on the database server is less
    CallableStatement cstmt = conn.prepareCall ("Call getCustName (?)");
    cstmt.setLong (1,12345);
    ResultSet rs = cstmt.executeQuery();
    But the checking in the SQlServer 2000 with SQL Profiler don't show the use of
    RPC Call.
    I can test the different from Query Analyser:
    exec IF_GetBueroStatistik 1 -> SQLProfiler: SQL:BatchCompleted
    {call IF_GetBueroStatistik(1)} -> SQlProfiler: RPC:Completed
    But the Call from Bea Aplication make in SQlProfiler alwasy SQl:BatchCompleted.
    The RPC ist faster from the Batch call.
    is that a bug in the driver implementation?
    can any help me with a solution or workaround?
    thanks Halim

    Hi,
    thank you very much Joe.
    Halim.
    Joseph Weinstein <[email protected]> wrote:
    >
    >
    Halim wrote:
    Hi,
    we have a performance problem with SQLServer 2000. We use Bea WLS 6.1,SQLServer
    2000, and JDBC Driver mssqlserver4v65.jar from Bea.You shouldn't be using the 6.5 version of the driver anyway. The 7.0
    version is better,
    but what you are seeing is that our driver does send fresh SQL for PreparedStatements,
    which is not as fast as using the RPC protocol. It's not a bug, but it
    is a feature we didn't
    implement.
    You should probably download and use the free driver from MS. It does
    implement
    the procedure protocol.
    Joe
    we use this for performance optimization as in Documetation at
    "http://www.datadirect-technologies.com/download/docs/jdbc/Jdbcref/jdbcdesign.html"
    case 2
    Stored Procedure can be optimized to use a server-side RPC. Becausethe application
    calls the procedure by name and the argument values are already encoded,the load
    on the database server is less
    CallableStatement cstmt = conn.prepareCall ("Call getCustName (?)");
    cstmt.setLong (1,12345);
    ResultSet rs = cstmt.executeQuery();
    But the checking in the SQlServer 2000 with SQL Profiler don't showthe use of
    RPC Call.
    I can test the different from Query Analyser:
    exec IF_GetBueroStatistik 1 -> SQLProfiler: SQL:BatchCompleted
    {call IF_GetBueroStatistik(1)} -> SQlProfiler: RPC:Completed
    But the Call from Bea Aplication make in SQlProfiler alwasy SQl:BatchCompleted.
    The RPC ist faster from the Batch call.
    is that a bug in the driver implementation?
    can any help me with a solution or workaround?
    thanks Halim

  • Performance - using JDBC call with 'order by' vs sorting data on app server

    Hello! I need some valid thoughts on the performance of using a JDBC call versus processing information on the application server.
    Here is the somewhat simplified scenario:
    I need to retrieve customer information (name, e-mail, telephone), display it in HTML format and then be able to redisplay it in a different order. For example, initially the list would be displayed sorted by last name, but then a user might choose to sort it by e-mail address. Initial call to DB uses 'order by' in the SQL stmt to get me the initial ordering by last name. Results are stored in 2D array. However, when a user selects a different sort I have two options:
    1) just make another call to the DB with a different order by clause. This means I need to create a DB connection, connect to DB, retrieve the results and read them from result set into a 2 dimensional array
    2) re-sort data in the 2D array populated during the initial call. This means I need to use java.util.Arrays.sort(my_2D_resultsArray, my_custom_comparator)
    Question is : which is more efficient? Number of entries retrieved can be anywhere from 0 to a few thousands (depending on other filters such as customer's country). My feeling is that option umber 2 is better, but I would like to get your opinion.
    Thank you!

    Good points! Thanks! I ran a test (see code below) and it takes less than a second to sort 2000 Strings and 2000 nulls. The only thing I ran the test at a UNIX prompt as oppose to from within app server (Weblogic). I expect the speed to be compatible though. Do you think that test was valid and tells us that sorting on the app server is probably faster than doing another SQL query?
    import java.io.*;
    import java.math.*;
    import java.util.*;
    import java.util.Arrays.*;
    public class Test {
      public static void main(String[] args) throws Exception {
        Test test = new Test();
        test.testSortingPerformance();
      public void testSortingPerformance() {
        Object[] objArray2 = new Object[]{};
        Vector v = new Vector();
        Date start, end;
        java.util.Random rd = new java.util.Random(2000);
        for (int i = 0; i < 2000; i++){
          v.add(new Object[]{new String("" + rd.nextInt())});
          v.add(new Object[]{null});
        objArray2 = v.toArray();
        Object[] innerObjArray2 = new Object[]{};
        MyComparator2 myComp = new MyComparator2();
        start = new Date();
        java.util.Arrays.sort(objArray2, myComp);
        end = new Date();
        for (int i = 0; i < objArray2.length; i++) {
          System.out.println();
          innerObjArray2 = (Object[])objArray2;
    for (int j = 0; j < innerObjArray2.length; j++) {
    System.out.print(innerObjArray2[j] + " ");
    System.out.println(v.size());
    System.out.println("Start " + start + " End " + end);
    import java.util.*;
    public class MyComparator2
    implements Comparator {
    //position in the inner array to use for comparison
    private int position = 0;
    //default empty constructor
    public MyComparator2() {
    //implement compare method
    public int compare(Object o1, Object o2) {
    Object[] strAr1 = (Object[]) o1;
    Object[] strAr2 = (Object[]) o2;
    if (strAr1[0] == null){
    if (strAr2[0] == null){
    return 0;
    else{
    return -1;
    else if (strAr2[0] == null){
    return 1;
    return ( (String) strAr1[0]).compareTo( (String) strAr2[0]);

  • Issue with a "perform in program" call.

    I am trying to do a call to a form in a zprogram. This call is being done inside an enhancement.  The reason for this is because I can't delcare forms in the enhancement.  Below is the issue:
    The parameters I am trying to pass are typed as follows (in the SAP enhancement - SAP code):
    types: begin of mrm_rbkpv.
            include structure rbkp_v.
    types: begin of mmcr_drseg.
            include structure drseg.
    types: mmcr_tdrseg type mmcr_drseg occurs 0.
    I have the following as the call to the form and the form declaration:
    PERFORM cancel_ret IN PROGRAM zcancel_retention USING e_trbkpv e_tdrseg[].
    FORM cancel_ret  USING p_tdrseg TYPE rbkp_v
                          it_tdrseG TYPE J_1IDRSEG.
    I am getting a run-time error saying:
        An exception occurred that is explained in detail below.
        The exception, which is assigned to class 'CX_SY_DYN_CALL_ILLEGAL_TYPE', was
         not caught in
        procedure "EXIT_SAPLMRMP_010" "(FUNCTION)", nor was it propagated by a RAISING
         clause.
        Since the caller of the procedure could not have anticipated that the
        exception would occur, the current program is terminated.
        The reason for the exception is:
        Call to FORM "CANCEL_RET" is incorrect:
        The actual parameter no. 1 has a different data type in the
        PERFORM than requested for the FORM "CANCEL_RET" in program
         "ZCANCEL_RETENTION".
    This is telling me that the system doesn't see  e_trbkpv being the same type as  p_tdrseg.  However, I can't see why they aren't the same time.  I also assume I will have the issue with the second parameter.  The table type (in my opinion) J_1IDRSEG should be the same type as mmcr_drseg.
    Any ideas?  The enhancement I am using is EXIT_SAPLMRMP_010 (LMR1M001).
    Regards,
    Aaron
    Edited by: Aaron Shover on Apr 11, 2009 7:21 PM

    >
    Aaron Shover wrote:
    > OK, Aditya, I added another type pool to my program and I can now use the same type that SAP is using.
    >
    > Thanks for pointing out the [obvious] solution that I was overlooking!
    >
    > Aaron
    Aaron, I was not aware of the type pools as mentioned I don't have access to the system at the moment. But type pool has type declarations as well, so what I meant was pulling out the 2 declarations that you need into your Z program could have solved the problem :). Which will happen now since you've included the type pools.
    Anyways good to know that you problem is solved.
    Cheers,
    Advait

  • Performance issue when calling java module

    Hi experts,
    It takes much time to call Java module 'JBND_CRM_SVY_XSLT_TRANSFORM' from abap function module.
    When I executed runtime analysis via t-cd:se30,
    most of time is consumed in 'wait for RFC' .
    When the java module is called, it always takes much time.
    I think VMC memory management is not the cause,
    because the issue also occurs at first call.
    The kernel patch level is 146 of release 700.
    Do you have any idea to improve performance?
    Regards,
    Fukuhara Yohei

    Hi
    try with this code
    remove
    READ TABLE i_events INTO wa_events WITH KEY name = 'USER_COMMAND'.
    IF sy-subrc EQ 0.
    wa_events-form = 'USER_COMMAND'.
    MODIFY i_events FROM wa_events TRANSPORTING form WHERE name =
    wa_events-name.
    ENDIF.
    and change alv
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    i_callback_program = sy-repid
    i_callback_user_command = 'USER_COMMAND'
    it_fieldcat = i_ztal_prof1_cat[]
    i_save = 'A'
    TABLES
    t_outtab = i_ztal_prof1.
    Marco

  • Performance issue on calling the API queryFolders to retrive the subfolders

    Hi, We are using 10.3.0 collaboration server.When we make an API call to get the folders under a parent folder, the API is taking more than 2 minutes to return. When we did research, found out that the query collaboration server is executing taking time to return the results from the collaboration database. I am copying the query below. The performance issue coming when the number of sub folders is more than 1400. I did few experiments on this query. When I remove the sort clause, the query is running too fast. If i keep the sort clause and remove the sub query in select clause , query is running fast. But the combination is taking too much time i.e. 80 seconds. Please share your ideas on how to increase the performance of this API call. We are planning to upgrade to another version of collab but not sure whether it would fix the problem. Highly appreciated your valuable suggestions. Let me know if you need more information.
    SELECT OBJ.OBJECTID, OBJ.TID, OBJ.CREATED, OBJ.MODIFIED, OBJ.NAME,
    OBJ.DESCRIPTION, OBJ.OWNERID, OBJ.PROJECTID, OBJ.PARENTID,
    OBJ.OWNERNAME, OBJ.PARENTPATH, OBJ.PARENTIDPATH, OBJ.DEPTH,
    OBJ.MODERATED, OBJ.CRAWLERACCESSIBLE,(select DISTINCT(1) FROM
    CSFOLDERS where(exists(select * from csFolders subFolders where
    subFolders.parentID=OBJ.objectid))) as HASVISSUBFOLD FROM CSFOLDERS
    OBJ WHERE EXISTS (SELECT * FROM CSROLEMEMBERSHIP RM,CSFOLDERSECURITY
    OS,PLUMTREE.PTVGROUPMEMBERSHIP GRP WHERE OS.ACCESSLEVEL > 0 AND
    GRP.USERID=:v0 AND GRP.GROUPID = RM.PTGROUPID AND RM.OBJECTID =
    OS.ROLEID AND OS.OBJECTID = OBJ.OBJECTID) AND obj.TID = 3 AND
    (obj.parentID=:v1) ORDER BY LOWER(obj.NAME) ASC

    hi reddy,
    before applying for all entries on mseg
    1.sort t_mard by matnr werks and lgort
    2. if not t_mard is initial.
         select mblnr mjahr etc...
       endif. 
    these are the main precautions u need to look into before you are using second select.
    entires from bseg, mseg will consume lot of time.
    so the best if only the fields u r showing are required then take it from the respective table like
    ebeln ebelp from ekpo
    like that .
    so the alternative will be this but this will be the best option if u know only these fields are to be selected .
    hope u r getting my point.
    yeah swagatika also said correctly that u can go for indexing so the Retrieval is faster.
    one more option is construct a view/structure and proceed .
    regards,
    TVK.
    Message was edited by: Vikky

  • Running scripted queries to get performance stats from call manager

    Is it possible to do the above? or does the AXL interface only deal with Call Manager functions, not the underlying operating system? or is there a way to talk direct to the server operating system (MCS)?
    Hope you can help
    Paul                  

    Thanks. I've done this for my proxy-retrieve function and now get the following
    Performance Counters:
    Average Total Percent
    Total number of requests: 134
    Request processing time: 2.0625 276.3740
    proxy-bucket (Proxied requests)
    Number of Requests: 132 ( 98.51%)
    Number of Invocations: 132 ( 4.71%)
    Latency: 0.0000 0.0000 ( 0.00%)
    Function Processing Time: 2.0064 264.8450 ( 95.83%)
    Total Response Time: 2.0064 264.8450 ( 95.83%)
    default-bucket (Default bucket)
    Number of Requests: 134 (100.00%)
    Number of Invocations: 2669 ( 95.29%)
    Latency: 0.0002 0.0280 ( 0.01%)
    Function Processing Time: 0.0858 11.5010 ( 4.16%)
    Total Response Time: 0.0860 11.5290 ( 4.17%)
    Am I correct in saying that ~95% of total processing time is spent in that proxy-bucket (proxy-retrieve function)?
    Does anyone know if the time in proxy-retrieve is the total time from start of function to last byte of response back from origin-server? I'd just like to know exactly what this time involves.

  • How to get numeric information about system performance using WMI calls?

    Hello everyone,
    I'll make the question summarized for your convenience. I want to achieve the following task:
    -To be able to measure system performance over a sustained period of time.
    The way I intend to tackle that task is by doing the following:
    -To use WMI calls to get system performance data in a numeric and/or a percentage form. (RAM utilization, CPU utilization, Power state [active/idle]). 
    The information I am trying to get is EXACTLY the information you can see in Task Manager under Performance tab. 
    Please help. If you think there is a better way to do this than using WMI calls, I couldn't be more glad to take your advice and apply it!!
    Thanks in advance!
    Ray

    There is a better way.
    Use PDH function calls. This gets you as close as you can get to the performance counters provided by the operating system.
    Read more about it here.
    Examples found here.
    Codeproject example here and
    here

  • Lync 2013 Stress and performance tool - VoIP calls

    I want to test only VoIP calls using the Stress and Performance tool.  Does the tool make real SIP calls to the Front End server?  It seems like its only simulating a VoIP connection and not doing a real SIP call --I don't see the SIP SDP setup
    or RTP media stream.  Please confirm this. 
    I configured the Load Configuration Tool ( UserProfileGenerator.exe ) to only use VoIP and configured for Load Level: medium.  I only see between 2 and 4 Voip calls in progress at any given time.  How can I increase the calls to 50+ simultaneous
    calls? 
    For the UC/PSTN Gateway test, it says I need to run this on 2 clients.  How does this work?  I ran the RoutingRules.ps1 script, and it changed the voice routes and broke the current routing.  This is a lab setup, so I'm only setup with
    4 digit dialing between all clients and an Asterisk trunk.  It doesn't seem like this will work unless I change to E.164 numbers for everything.  Can someone share more information on configuring this? 
    Thanks,
    Jeff

    The tools can only create users, contacts, and distribution lists, and simulate user load.
    Please check the Number of Users you specified in Common Configuration, you can check
    http://technet.microsoft.com/en-us/library/gg679085(v=ocs.14).aspx
    Lisa Zheng
    TechNet Community Support

  • Performance overhead of calling Thread.currentThread().getStackTrace()

    All I can see is it is calling native function
    private static native StackTraceElement[][] dumpThreads(Thread athread[]);
    Just wonder if I call this method for every transaction, will this causing performance issue? Is this method considered slow to execute?

    How about compare with String concat?
    We now having our own transaction framework, at the end of the transaction the module call transaction.start() must call either commit() / close() . If that module doesn't do that, next module cannot start() another transaction. I understand this is not a good design, but this is what this is and I am not the module owner so I can say nothing about that.
    However, I would still like to have some checking to see if any the transaction starter forget to commit / close the transaction. I just thought of in method start() I save a copy of stacktrace() element. If the transaction cannot start then I show the printStack() of last saved copy so that I know which module have that problem.
    How do you think about that?

  • Why poor WCF performance for first calls?

    I'm seeing some weird WCF call timings that I can't explain, and it is causing some real issues in my application. My WCF service calls seem to be taking hundreds of milliseconds if not seconds longer than they should.
    I've set up a simple SL5 project hosted in a web app project just to reduce the variables, and I still see terrible timings.
    I've got a very simple WCF service call, and I'm using ClientBase to instantiate the service instance, then I'm calling the service in a tight loop 30 times (asynchronously).
    The problem is that the first handful of calls take extremely long, according to the IE F12 tools. I'm seeing network times of between 500ms and 2000ms. After that, all of the service call times drop down below 100 ms. The problem for me is that,
    when I am just calling the service once in an application, I am seeing these initial delays, meaning every time I call the service it tends to take a really long time. I only did the tight loop test to see if things get better over time, which they do.
    I would imagine it is doing something like establishing the initial channels, and that is what is taking the hit, and then calls after that just reuse them, but is there anyway to reduce that initial hit? Adding tons of extra time to each of my
    calls in the real app is killing my performance.
    Here is a screenshot of F12 with the call results. You can see the first bunch of calls take an extremely long time, then everything gets nice and quick after:
    Here is the calling code in the test app:
    Private Sub TestWcfClientBase()
    Dim client = ServicesCommon.GetService()
    client.Proxy.BeginGetCurrentUser((AddressOf OnGetUserCompletedCommon), Nothing)
    End Sub
    Public Shared Function GetService() As ServiceClient(Of IServiceAsync)
    Dim service As New ServiceClient(Of IServiceAsync)("IServiceAsyncEndpoint")
    Return service
    End Function
    Public Class ServiceClient(Of T As Class)
    Inherits ClientBase(Of T)
    Implements IDisposable
    Private _disposed As Boolean = False
    Public Sub New()
    MyBase.New(GetType(T).FullName)
    End Sub
    Public Sub New(endpointConfigurationName As String)
    MyBase.New(endpointConfigurationName)
    End Sub
    Public ReadOnly Property Proxy() As T
    Get
    Return Me.Channel
    End Get
    End Property
    Protected Sub Dispose() Implements IDisposable.Dispose
    If Me.State = CommunicationState.Faulted Then
    MyBase.Abort()
    Else
    Try
    Catch
    End Try
    End If
    End Sub
    End Class
    The client config is as follows:
    <system.serviceModel>
    <bindings>
    <basicHttpBinding>
    <binding
    name="NoSecurity"
    closeTimeout="00:10:00"
    openTimeout="00:01:00"
    receiveTimeout="00:10:00"
    sendTimeout="00:10:00"
    maxBufferSize="2147483647"
    maxReceivedMessageSize="2147483647"
    textEncoding="utf-8">
    <security mode="None" />
    </binding>
    </basicHttpBinding>
    </bindings>
    <client>
    <endpoint
    name="IServiceAsyncEndpoint"
    address="http://localhost/TestService.svc"
    binding="basicHttpBinding"
    bindingConfiguration="NoSecurity"
    contract="Services.Interfaces.IServiceAsync" />
    </client>
    </system.serviceModel>
    Here is the stripped down service code:
    <AspNetCompatibilityRequirements(RequirementsMode:=AspNetCompatibilityRequirementsMode.Allowed)>
    <ServiceBehavior(InstanceContextMode:=InstanceContextMode.PerCall)>
    Public Class TestProxy
    Implements IServiceAsync
    Public Function GetCurrentUser() As WebUser Implements IServiceAsync.GetCurrentUser
    Dim user As New WebUser
    With user
    .User_Name = "TestUser"
    End With
    Return user
    End Function
    End Class
    And here is the service config:
    <system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true"/>
    <bindings>
    <basicHttpBinding>
    <binding name="NoSecurity" closeTimeout="00:10:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:10:00" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" textEncoding="utf-8">
    <readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="4096" maxNameTableCharCount="16384"/>
    </binding>
    </basicHttpBinding>
    </bindings>
    <behaviors>
    <serviceBehaviors>
    <behavior name="TestProxyServiceBehavior">
    <serviceMetadata httpGetEnabled="true"/>
    <serviceDebug includeExceptionDetailInFaults="false"/>
    </behavior>
    </serviceBehaviors>
    </behaviors>
    <services>
    <service behaviorConfiguration="TestProxyServiceBehavior" name="TestProxy">
    <endpoint address="" binding="basicHttpBinding" bindingConfiguration="NoSecurity" contract="Services.Interfaces.IService" />
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
    </service>
    </services>
    </system.serviceModel>

    Hi ChrisMikeC,
    Based on your description and config file, it seems that you host your WCF Service in IIS and you try to consume this WCF Service in a SL5 project, if I do not misunderstand you, in my mind when we are hosting our WCF service in IIS, there is a high
    cost for the first call. On the first call to our WCF service, IIS must compile our service. Then IIS must construct and start the service host, so it will be slow in the first call. For more information about how to improve the time for the first call, please
    try to refer to
    this article. Meanwhile please try to host your WCF Service in Windows Activation Services or Windows Service in where you will have greater control on the service host startup.
    Besides, since your SL5 project hosted in a web app, then in my mind ASP.NET applications always takes longer in first call because it includes JIT compilation step, and ocne the code is compiled, all the calls thereafter are faster than first one, so please
    try to use the Console application or a Windows Forms appliction to test if the time can be slow down.
    Best Regards,
    Amy Peng
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Good/robust/high performance solution for calling Java from C

    Hi,
    I am looking for a good/robust/high performance solution for invoking a local java component from a C application in Windows.
    About Java component:
    - It has multiple methods that would be called very frequently from C application
    - It will reside in local machine. This machine may not have access to internet/LAN.
    My preference is to implement this java component as indepent running exe and have C application make outprocess calls. Is this possible?
    Any help/suggestions on this are greatly appreciated
    Thanks,
    -Arun

    I will stop replying to this conversation, unless it
    remains professional and without getting personal.I suggest you read your replies again then since you were the one that strayed from the topic and referred to my competency.
    >
    Or conversely those that have been working with JNIfor close to 10 years >might have a different opinion
    that someone who is promoting a commercial >product?
    I cannot see anything wrong with sharing and letting
    people know of potential solutions that might help to
    solve their problems.Not a problem at all.
    You however stated an absolute. I asked you to back up that absolute with something that was objective.
    You then lashed out at me and questioned my competency.
    >
    So you are questioning my competence as well as myintent?
    And not bothering to address the question at all.
    I am guessing you haven't actually attempted tocompare JNI to on board >sockets but instead you are
    just guessing.
    Frankly, I don't see how a socket solution with
    process switching overhead is going to work faster
    than a direct method call, passing parameters over
    the stack, the whole operation taking place
    in-process.
    And thus, as I thought, you haven't actually attempted to compare the two.
    And in terms of competency I can only wonder if youare competent enough
    to write the test frameworks that would demonstrateone or the other.
    As said earlier, there is no need to get personal,
    let's keep professional!
    And as I said earlier I would suggest that you look to your own replies.
    As mentioned, I do have enough experience for those
    who need to interoperate with Java using JNI, and can
    show how to do it in a safe and productive manner.
    And as I have said for the third time now that has nothing to do with what I actually asked you.
    The code that someone writes via JNI has much lessusage, and thus is much >more likely to have
    problems. Even if someone is competent in creating
    JNI >and C code.
    Thus JNI Is less stable.
    And by the way that includes the commercial productthat you are promoting >as well.
    Expressing an opinion on a product just based on its
    underlying technology without proper evaluation
    doesn't sound like constructive criticism.
    So you are claiming that your product is in fact more stable than the VM or at least as stable even though it has had far, far less usage?
    The only thing that can be said about the product so
    far, it that a product that is in production for some
    years without any problems, has a certain level of
    reliability and quality, whatever the underlying
    technology might be, and that there is enough
    competency with JNI to produce it and advice about
    the technology.
    True. But you were the one that brought up unrelated issues and then, as best as I can tell, thought to challenge my knowledge by pointing out how VMs "really" work.

  • Performance After Using Call Function

    Hi All,
       I have a program, where it is having some performance issues.
    It is taking a lot of time at a customized Z Call Function.
    Please suggest some solutions.

    Hi,
    Firstly check if the Z Function module is remote enables or not...
    if it is remote enabled then it will take some time....
    then debug the function module and check which statement is hitting on performance, try to find out the other way round for that statement or if its a long loop then try to find out some optimized way for that loop...
    still if you are not able to then paste the code of the z function module may be we are of some help there
    Regards,
    Siddarth

Maybe you are looking for

  • What speakers do I need for a X-FI Platin

    Well since I heard that the output for sound cards as the X-FI is always Digital, and not analog, what type of speakers do I need for the card? Will I be able to connect the card to a home stereo with L and R inputs? I am asking this because on my SB

  • Why won't my computer start up? Whats this mean?

    I have a power mac G5 (Power PC) I havent used the computer in years and I started it up one day and no problems. A few days after running the computer it wouldnt boot up its OS. Below is a link of the grey screen. After the wheel spins for about 45

  • Is this it or can you call someone

    Is this the only help that is offered, or does Apple have a phone number so that you can speak to a human?

  • Value comparison on jsp page

    Hi I want to compare value stored in bean object with another value to show suitable message on page Eg if(#{bean.userstatus=="N"}){ //show this }else{ //show this Can anybody please tell me how to do comparison as examplified above Thanks

  • HT1222 After upgrade to ios 6 can't Watch video on iPad

    After installation of iOS 6 can't open streaming video please need tip