search
Twitter Rss Feeds
MicrosoftArticlesForumsGroups
C# .NET
VB.NET
Visual Studio .NET
ADO.NET
Xml/Xslt
VB 6.0
.NET CF
GDI+
LINQ
Deployment
Security
FoxPro
Silverlight / WPF
Entity Framework
RIA Services

Web ProgrammingArticlesForumsGroups
JavaScript
ASP
ASP.NET
Web Services

Non-MicrosoftArticlesForumsGroups
NHibernate
Perl
PHP
Ruby
Java
Linux / Unix
Apple
Open Source

DatabasesArticlesForumsGroups
SQL Server
Access
Oracle
MySQL
Other Databases

OfficeArticlesForumsGroups
Microsoft Excel
Microsoft Word
Microsoft Powerpoint
Publisher
Money

Operating SystemsArticlesForumsGroups
Windows 7
Windows Server
Windows Vista
Windows XP
Windows Update
MAC
Linux / UNIX

Server PlatformsArticlesForumsGroups
Share Point
BizTalk
Site Server
Exhange Server
IIS
Transaction Server

Graphic DesignArticlesForumsGroups
Macromedia Flash
Adobe PhotoShop
Microsoft Expression

OtherArticlesForumsGroups
Subversion / CVS
Ask Dr. Dotnetsky
Active Directory
Networking
Uninstall Virus
Job Openings
Reviews
Search Engines
Resumes

 

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;  
  
}


Pete's Blog   |    Pete's Resume   |    Robbe's Blog   |    Robbe's Resume   |    Archive #2   |    Archive #3   |    Dotnetslackers   |    XmlPitStop   |    Advertise   |   Contact Us   |   Privacy   |   Copyright (c) 2000 - 2009 eggheadcafe.com  All rights reserved.