I'm trying to use IXSSO COM library (CissoQueryClass) to query Index
Server from ASP.NET because I heard that it was the fastest solution,
even despite the COM interop.
My test starts out with very promising results, but quickly (within a
few seconds) drops to 0 RPS. It will squeeze out 1 or 2 RPS now and
then, but is essentially dead for the rest of the 5 minute load test.
(Using Application Center Test, simple brower script, 20 simultaneous
clients.)
If I wait a minute after I stop the test, the server appears to return
to normal.
During the test, I'm getting these errors:
[COMException (0x8004181f): Service is too busy. ]
Cisso.CissoQueryClass.CreateRecordset(String pwszSequential) +0
When I run this same query using OleDB, it works fine for the entire 5
minute test. Below is the code I'm using. Any help would be
appreciated.
RMD
CissoQueryClass q = new CissoQueryClass();
CissoUtilClass util = new CissoUtilClass();
DataTable dt = new DataTable();
OleDbDataAdapter da = new OleDbDataAdapter();
q.Query = @"$contents ""Nine Inch Nails""";
q.SortBy = "rank[d]";
q.Columns = "rank, MetaContentName, MetaArtistName";
q.Catalog = "query://MyServer/MyCatalog";
q.MaxRecords = 1000;
q.LocaleID = util.ISOToLocaleID("EN-US");
Recordset rs = (Recordset)q.CreateRecordset("nonsequential");
da.Fill(dt, rs);
for(int i =0; i<dt.Rows.Count; i++)
{
context.Response.Write("(" + dt.Rows[i][0].ToString() + ") "
+dt.Rows[i][1].ToString() + " by " + dt.Rows[i][2].ToString() +
"<br>");
}
|