Link to home
Start Free TrialLog in
Avatar of RUA Volunteer2?
RUA Volunteer2?Flag for United States of America

asked on

XPSMTP Multithreading?

We've used the xpsmtp dll to automate the sending of html emails from within SQL Server 2000 and really like it.  We've noticed outgoing emails take about 30 seconds or so per message to transmit... which is fine for our purposes right now.  But we expect user volume for this system to grow in the coming weeks and are a little concerned about transmit times.  We're wondering, is there any way we could multithread it without destabalizing the server?
ASKER CERTIFIED SOLUTION
Avatar of Einstine98
Einstine98

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of RUA Volunteer2?

ASKER

Response from the creator of XPSMTP:

The XP is completely thread safe, this is a requirement for XP's since the SQL Server scheduler pre-empts to execute the entrypoint in the DLL.

This is also one of the reasons why you see the slowness, because the XP is fully stateless, the socket connection is created and teardown every invocation.

I have been experimenting with keep them around, but I never implemented in the version that is shipping, also because of security concerns when the socket is authenticated, I need to reset that as well.
Avatar of Einstine98
Einstine98

Thanks for the update, but the reality of it, emails out of SQL server should be used for "alerts" not as a full fledge email server... if you have a need for sending messages based on data in SQL server you should create an application that would use a normal mailing server... so the application would act as a middleware extracting your data and mailing it...
Avatar of Anthony Perkins
Also, while you may not have liked the response a "C" grade was not merited.  Please taje the time to re-read the EE Guidelines at:

What's the right grade to give?
https://www.experts-exchange.com/Databases/Microsoft_SQL_Server/help.jsp#hi73
My apologies... my understanding was that the grades themselves only mattered in that they were used as multipliers to adjust the total points awarded.  I should have read the grading guidlines prior to grading the answer.  I've read online about the grading system more now and I clearly should have awarded this answer a "B".  Is there a way I can change the issued grade?

My apologies to Einstine98... there was nothing "wrong" with the answer, it was absolutely correct.  I definitely didn't mean to offend.  I've just seen how much work goes into earning A grades on 500pt questions and felt that awarding 1000 points via the C was fair for a quick (though entirely valid) answer.  When I posted the question, we were working hard to find an answer that addressed what we were doing.  We were aware that using SQL Server to initiate emails was not at all ideal.  I didn't state this in my posted question though... so the response Einstine98 gave was completely appropriate.

In the end, the xpsmtp dll was a quick and convenient fix that has proven reliable (so far - and at low volume), despite its slow processing speed.  In the end, we went the conventional route and set up xp_sendmail using Outlook as the MAPI client (configured to send via POP rather than Exchange).  I had to write a little VB app to periodically open and close the Outlook client, as we have only been able to initiate xp_sendmail when the mail client is closed?!?

Anyway, I do appreciate Einstine98's response and will revise to a B grade if possible as soon as I figure out how.  In the future I will grade according to guidlines.
>>Is there a way I can change the issued grade?<<
Sure.  See here:

Can I get a grade changed?
https://www.experts-exchange.com/Databases/Microsoft_SQL_Server/help.jsp#hi18

And I thank you for your response, not everyone is as appreciative.
Thanks for you both but I don't do it for the points and I don't mind any grade you feel is appropriate... so, no offence taken! and I'm always glad to have helped!