I'm running a series of simple web service calls from OpenEdge 10.1C.
Pseudo code whise this is what i do:
1) connect
2) call webservice 1 to open session.
3) call webservice 2 to retrieve data (ca 10kbytes of xml).
4) parse xml.
5) call webservice 3 to close session.
6) disconnect.
Running this on my desktop is more than twice as fast as running it on our production server (SUN Sparc T5140). GHz wise my desktop is indeed faster but I wonder if this has to do with only raw cpu power. The parsing of the xml is just a fraction of the total time used.
Only creating the connection takes a lot of time.
CREATE SERVER ghWebService.
ghWebService:CONNECT(" -WSDL '" + gcWsdlFile + "'").
RUN AmadeusWebServicesPT SET ghAmadeusWebServicesPT ON ghWebService.
Desktop timing: about 2 seconds. Server timing: about 5 seconds!
WSDL-file and .xsds total to 33 files and roughly 3 megabytes.
Any input about this?
Slow connects are often an indication of DNS problems. In other words, resolving the host name from your machine.
Inserting the hostname into /etc/hosts doesn't make any difference. Also running "nslookup hostname" wont indicate any dns issues.
The connection is HTTPS and I use no other parameters than the -wsdl file.
I've also checked all three initiation statements (create, connect and run) and its connect that takes 90% of the time.
try to you save the WSDL file localy, and connect with the local file path.
The WSDL and all the XSDs already are locally saved.
The wsdl seem to point to the local xsd's as well.
example:
<xsd:import namespace="http://xml.amadeus.com/TTSTRQ_05_1_1A" schemaLocation="Ticket_DisplayTST_05_1_1A.xsd"/>
<xsd:import namespace="http://xml.amadeus.com/TTSTRR_05_1_1A" schemaLocation="Ticket_DisplayTSTReply_05_1_1A.xsd"/>
the wsdl and xsds are stored in the same folder.
I mean, the variable: gcWsdlFile points to the local file ?
ghWebService:CONNECT(" -WSDL '" + gcWsdlFile + "'").
Yes, it does!
It's gcNorwegianWSDL = "/export/home/folder/folder/folder/wsdl-file.wsdl".
3Mb of wsdl/xsd information is abnormal, very big.
Try to use another testing too like: http://www.soapui.org/
Yes I agree but it is the way it is. The wsdl file is supplied to us and there is little I can do to make it smaller.
I still don't understand why the difference is so big between my two machines...
the big difference is the file-system performances,
try this on both machines you will see the file-system diff
java SyncTest aaaaa
Jens,
How much memory does the Solaris machine have. It's possible the parsing of the WSDL/XSD file is increasing the size of the process to the point where it's affecting the performance of the entire machine.
Michael
8 gigabytes. There are several process run on the server thought. Mainly Apache 2 and WebSpeed.
According to vmstat there should be free memory.
kthr memory page disk faults cpu
r b w swap free re mf pi po fr de sr m0 m1 m2 m3 in sy cs us sy id
0 0 0 24989184 6125248 127 396 23 144 144 0 1 2 1 1 0 5789 14186 7449 2 1 97
0 0 0 24403080 5574040 221 528 0 497 497 0 0 0 0 0 0 7567 15300 9690 3 1 96
Thanks!
This makes it even trickier though. Since the server seems to be ALOT faster than my computer. (Thank god for that since it's about 20 times more expensive).
(I ran several times and got similar results).
Server
=======================================================
Your tests might show results similar to the following:
=======================================================
Poor:
Desktops: 100-500 syncs/second
Good server: >1.000 syncs/second
Fast server: 4.000-6.000 syncs/second
Ramdisk/gcj: >200.000 syncs/second
=======================================================
You are there -> 2316.7420814479638 syncs/second
Elapsed time (ms) = 442
Old Dell computer:
=======================================================
Your tests might show results similar to the following:
=======================================================
Poor:
Desktops: 100-500 syncs/second
Good server: >1.000 syncs/second
Fast server: 4.000-6.000 syncs/second
Ramdisk/gcj: >200.000 syncs/second
=======================================================
You are there -> 102.08354102282922 syncs/second
Elapsed time (ms) = 10031
=======================================================