Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

COM+ Services, ADO, Clustered Invironment.

Posted on 2002-07-27
5
Medium Priority
?
472 Views
Last Modified: 2013-11-15
I'm having problem with COM+ Services failing after three or four days running with an application using ADO in a clustered invironment.  

This happens every 3 to 4 days and when we fail it over, it works for 3 to 4 more days..  What happens is ADO can't connect to the SQL server that is on the same machine as the application.  I'm using a trusted connection string to connect to SQL using OLEDB.  This cluster has around 200GB total storage on an array.  Can anyone help me here.  Am I doing something wrong in my C++ app connecting to ADO?

Error found in Event Viewer.
======================================
The COM+ Services DLL (comsvcs.dll) was unable to load because allocation of thread local storage failed.

Process Name: CDE.exe
Error Code = 0x80070008 : Not enough storage is available to process this command.
COM+ Services Internals Information:
File: .\comsvcs.cpp, Line: 289
======================================

I'm #import "location\\ado...etc.." (no_namespace)
I'm not where the code is so I don't know off hand the full location of the ADO DLL, but it's in the code.

I'm using GetRows get get my data..

Using SafeArrays to hold my data as I use it..

I'm kind of throwing these things out there, just in case I don't know something about Clusters and using these different things together causing problems or not.
0
Comment
Question by:Chizl
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
5 Comments
 
LVL 4

Author Comment

by:Chizl
ID: 7182371
BTW..  I don't need COM+, not even developed to use COM+, just seems to be there for Win2K..   If I can turn that off and use ADO direct, that would work for me just as well.
0
 
LVL 22

Expert Comment

by:ambience
ID: 7184402
a problem with releasing resources ?
0
 
LVL 4

Author Comment

by:Chizl
ID: 7185565
Shouldn't be..   I'm doing a

oRS.Release()
and
oConn.Release()

after every connection.   I'm only in the connection for a few milliseconds.   One function opens the connection, executes the SQL statement, then uses GetRows, closes recordset, closes connection, then releases both.  

The application running this execution is a winsock app.  It's still running strong far after COM+ dies and SQL connections are failing.
0
 
LVL 22

Accepted Solution

by:
ambience earned 2000 total points
ID: 7187029
I had such a problem fairly long ago, but it ended up being due to memory leaks, and stragely enough WinNT 4.0 didnt seem to have it but only on Win2k the service used to crash after 30 odd hours or so.

Maybe you should check if the application is leaking memory, possible case can be results returned by GetRows. I am failing to recall the link but there is a mention somewhere that COM+ can hadle such crashes and re-start the service after it has crashed etc.

maybe this is of some help..
0
 
LVL 4

Author Comment

by:Chizl
ID: 7188809
Yea, I had talked to Microsoft yesterday and that is what they thought it may be.  There was a leak and it was because of the location of my CoInit..().

The CoInit was called each time a transaction came in, before using ADO, then CoUninit was called.

I moved CoInit to be called on startup of the application and CoUninit on the closing of the application, and the memory leak went away.

Thanx for the help though..  Guess I will give you the points..  hehe  Easy 500 huh?
0

Featured Post

Prepare for your VMware VCP6-DCV exam.

Josh Coen and Jason Langer have prepared the latest edition of VCP study guide. Both authors have been working in the IT field for more than a decade, and both hold VMware certifications. This 163-page guide covers all 10 of the exam blueprint sections.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

A Bare Metal Image backup allows for the restore of an entire system to a similar or dissimilar hardware. They are highly useful for migrations and disaster recovery. Bare Metal Image backups support Full and Incremental backups. Differential backup…
The Delta outage: 650 cancelled flights, more than 1200 delayed flights, thousands of frustrated customers, tens of millions of dollars in damages – plus untold reputational damage to one of the world’s most trusted airlines. All due to a catastroph…
The goal of the video will be to teach the user the concept of local variables and scope. An example of a locally defined variable will be given as well as an explanation of what scope is in C++. The local variable and concept of scope will be relat…
The viewer will be introduced to the technique of using vectors in C++. The video will cover how to define a vector, store values in the vector and retrieve data from the values stored in the vector.

636 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question