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
-
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 suggestWe 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_fieldYou 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 HalimHi,
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 YoheiHi
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) ASChi 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
PaulThanks. 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!
RayThere 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,
JeffThe 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 -
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,
-ArunI 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?
-
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