Previous Thread:   After update WIN Server 2000 to 2003 no query results

8/17/2005 10:44:22 AM    "Server too busy" when using IXSSO
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>");  
  
}



8/17/2005 10:50:11 AM    Re: "Server too busy" when using IXSSO
Also, FYI, I tried this same code in an ASP.NET page with AspCompat =  
  
true, with the same results... so I don't think it's a threading issue.  
  
Ideas?

8/17/2005 11:19:01 AM    Re: "Server too busy" when using IXSSO
For those of you who are interested, the problem appears to have been a  
  
COM refcount issue. Adding a try/finally block with the following code  
  
solved the issue:  
  
finally  
  
{  
  
Marshal.ReleaseComObject(rs); //Recordset  
  
Marshal.ReleaseComObject(q); //Query  
  
Marshal.ReleaseComObject(util); //Utils  
  
rs = null;  
  
q = null;  
  
util = null;  
  
}