Nathan,
Thanks for the tests and the illustrations.
This would confirm to me that I would probably only use XMLSERVICE when desiring to use the CGI REST layer which has seemed quite fast in my testing so far.
Over QZDSAOINIT I would probably just stick to the existing .Net/OLEDB or ODBC drivers.
Regards,
Richard Schoen
RJS Software Systems Inc.
Where Information Meets Innovation
Document Management, Workflow, Report Delivery, Forms and Business Intelligence
Email: richard@xxxxxxxxxxxxxxx
Web Site:
http://www.rjssoftware.com
Tel: (952) 736-5800
Fax: (952) 736-5801
Toll Free: (888) RJSSOFT
------------------------------
message: 3
date: Sat, 4 Aug 2012 22:07:35 -0700 (PDT)
from: Nathan Andelin <nandelin@xxxxxxxxx>
subject: Re: [WEB400] XMLSERVICE with .Net
From: Joe Pluta
Nathan seems?to think (and I would agree) that you can skip the stored
procedure?entirely and just call the program that the stored procedure calls.
Thanks for getting my back, Joe. This thread motivated me to download the source code for XMLSERVICE, which is a library of several source files and members. I reviewed the code for the XMLCGI and XMLSERVICE programs, and several others.
It looks like XMLCGI uses an SQL CLI interface for calling the stored procedures rather than calling the procedures directly. But I'd bet that QZDASOINIT also uses some sort of SQL interface for calling the stored procedures too.
At any rate, we end up comparing:
.Net App <==> DB Driver <==> QZDASOINIT <==> SQL Interface <==> Stored Procedures
.Net App <==> REST Web Service <==> Apache Server <==> XMLCGI <==> SQL Interface <==> Stored Procedures
-----
Since the 2nd interface includes an HTTP Server in the middle, should we ASS-U-ME that it carries more overhead on the server? I don't think so!
For starters, I added all the CPU time consumed by the HTTP Server Jobs and my RPG program which also uses an SQL CLI interface to generate SQL result sets, reads them, and generates a CSV formatted response.
Then I used Visual Foxpro and an IBM i Access 7.1 DB Driver to download the same files, and tracked the CPU time consumed by the QZDASOINIT Job.
Guess which interface consumed more CPU?
The QZDASOINIT Job actually consumed 32% more CPU time. It evidently has MORE overhead.
Notwithstanding, we're only talking about 88 milliseconds (CGI Interface) vs. 116 milliseconds (QZDASOINIT) to generate and output a formatted stream of 2,249 records, for example.
-Nathan.
As an Amazon Associate we earn from qualifying purchases.