Snitz Forums 2000
Snitz Forums 2000
Home | Profile | Register | Active Topics | Members | Search | FAQ
Username:
Password:
Save Password
Forgot your Password?

 All Forums
 Snitz Forums 2000 DEV-Group
 DEV Discussions (General)
 E-mail component stress on subscriptions.
 New Topic  Topic Locked
 Printer Friendly
Author Previous Topic Topic Next Topic  

Deleted
deleted

4116 Posts

Posted - 29 January 2003 :  10:55:56  Show Profile
One of the sites I'm dealing with uses subscriptions. It is on a shared server and has a variety of e-mail components. Latey, with the increase in number of members and posts, we faced timeouts. We disabled higher level subscriptions (also deleted existing records) and put some performance statistics.

The statistics show, even with a couple of e-mails sent out, the post_info.asp took a lot of time to complete. It even reached 100+ seconds (measured with the forum timer). It is very annoying.

We have the following components (as shown by v3.4.03):
ASPEmail
ASPMail
ASPQEmail
CDONTS
CDOSYS
JMail
SA-Smtp Mail

Now, a couple of questions:
1) Can the stress be caused by other sites on the server using that specific component?
2) Does anyone has info on performance on these components?
3) Did anybody used the BCC approach and has the code to share with me?
4) Any ideas to prevent this and/or improve the performance?

We don't want to disable them, they are very usefull to pull people back to community...

Stop the WAR!

HuwR
Forum Admin

United Kingdom
20600 Posts

Posted - 29 January 2003 :  11:10:55  Show Profile  Visit HuwR's Homepage
try searching here Bozden, you will find that is why we don't have subscriptions here, it was killing posting, to alleviate the problem I wrote a dll, but have not had chance to update it since we upgraded the forum to 3.4.

I think you will find the BCC approach to be fraught with problems, many mail servers will simply reject the emails.

Go to Top of Page

Deleted
deleted

4116 Posts

Posted - 29 January 2003 :  11:46:20  Show Profile
I already know the talks around here, also in dev-team only area and recently gone through them to find some ideas. Dave Maxwell was working on a BCC'ed version for an older version but left that after your explanations on Spam detectors.

I know that some of you are against these e-mails, as a forum application is designed to be "regularly visited", but for small and medium sized forums it is very important. I have some forums that I don't visit ten times a day but just whenever a post is done on them.

The non-BCC approach does also have problems with Spam detectors as they are configurable nowadays. For example this is a mail header from a "reply to a topic" post:


...
X-RBL-Warning: SPAMHEADERS: This E-mail has headers consistent with spam [4000020e].
X-Declude-Sender: he@thewebsite.com [***.***.***.***]
X-Note: This E-mail was scanned by Declude JunkMail (www.declude.com) for spam.
X-Spam-Tests-Failed: SPAMHEADERS
X-RCPT-TO: <me@myserver.com>
Status: U
X-UIDL: 2861



What I don't know is the DLL mechanism on the server. Can 2-3 mails per post cause that much stress? Can it be that the webserver has too many websites on it?

This is what I collected as statistics. As you see in 33.6 hours only 192 e-mails (all e-mails including registration and member-to-merber ones) got sent...

Statistics Start____________: 1/28/2003 1:58:55 AM 
Now_________________________: 1/29/2003 11:36:18 AM 
Minutes passed______________: 2018 

Execution time for this page: 0.22 
Maximum execution time______: 41.32813 on page /forum/post_info.asp 

Total users_________________: 977 
Average users per minute____: 0.484 
Current users_______________: 25 
Max users___________________: 35 

Total E-Mails_______________: 192 
Average E-Mails per minute__: 0.095 
Max E-Mails per minute______: 0.333 


Stop the WAR!
Go to Top of Page

HuwR
Forum Admin

United Kingdom
20600 Posts

Posted - 29 January 2003 :  12:47:23  Show Profile  Visit HuwR's Homepage
quote:

Can 2-3 mails per post cause that much stress?


No, but 20 to 30 can, it really depends on a few other factors. but esentially, the mail components are only designed to send one or two emails at a time, so if you make a post and there are 10 people subscribed, you have to wait for the mail component to send them first, and they are all pretty slow at doing it. ASpemail if you have the paid version has a seperate queueing component which would help, but you would need to see if it was available.

having a lot of sites obviously won't help, but is not necesarily the problem, there are only half a dozen sites on this server, and we had the same problems.
Go to Top of Page

Deleted
deleted

4116 Posts

Posted - 29 January 2003 :  19:11:26  Show Profile
I checked that server for installed components and ran some test. I found ASPQMail is there, I tested it with 10 messages with and without Queue, with same object values set once send 10 times, and with different objects created/deleted. Nothing much changed, sending of 10 simple messages took 10s, 28s, 11s, 13s in four test. Because the server is a remote one and I wanted to test it in real-time conditions the differences are acceptable I think.

So, we can assume 1-2 seconds per e-mail. This does not explain 40-100+ seconds spent for a single post where 2-3 users are subscribed, but your statement about 30+ subscriptions stands as a rock...

I think, I found another issue with Snitz code:
Ref: http://www.serverobjects.com/comp/AspQmail.htm

ASPQMail uses the following syntax to enable the Queued processing:

Mailer.QMessage = true


But Snitz uses:

objNewMail.QMessage = 1


According to VBS documentation TRUE=-1, so that code never turns the queue on.

Can you confirm that?

Also with ASPQMail there is an option for deferred processing, but it did not work, actually it sent the message immediately and the timeframe reached 38 sec, 34s and 34 sec in three consequitive tests. So I assume it is ASPMAIL not ASPQMAIL that is running or it is not correctly setup.

Actually this is from the header:
quote:

X-mailer: AspMail 4.0 4.03 (SMT4068056)



Here is my test code (portion of all) for this (for reference):

	datStart = now
	datSend = dateadd("s",300,datStart)
	datSend = formatdatetime(datSend,2) & " " & formatdatetime(datSend,4)
	response.write "Send time = " & datSend & "<br>"
	for i=1 to 10
		response.write "Sending #" & i & "<br>"
		response.flush
		Set obj = Server.CreateObject("SMTPsvg.Mailer")
		obj.QMessage = True
		obj.QTime = datSend
		obj.FromName = "xxxx xxxx"
		obj.FromAddress = "xxxx@xxxx.xxx"
		obj.RemoteHost = "mail.xxxx.xxx"
		obj.AddRecipient "yyyy yyyy", "yyyy@yyy.yyy"
		obj.BodyText = "Test Message"
		obj.Subject = "Test #" & i & " at " & now & " - Reply to a posting"
		on error resume next '## Ignore Errors
		obj.SendMail
		If Err <> 0 Then 
			Err_Msg = Err_Msg & "<li>Error: " & Err.Description & "</li>"
		End if
		on error goto 0
		Set obj = nothing
	next
	datEnd = now
	response.write datEnd & "<br>"
	response.write "Duration = " & abs(datediff("s",datStart,datEnd)) & "<br>"



Stop the WAR!
Go to Top of Page

Doug G
Support Moderator

USA
6493 Posts

Posted - 29 January 2003 :  20:37:58  Show Profile
It seems to me, if you are willing to throw away email erro processing JMail has an asynchronous mode (or something similar) where control returns immediately to the asp code. If that's so, perhaps that will work for you.

Also, the not free JMail has a process where you can put your mail list in a DB file, pass the db table to JMail, and go on about your business while it sends to all the recipients in background.

======
Doug G
======
Computer history and help at www.dougscode.com
Go to Top of Page

Deleted
deleted

4116 Posts

Posted - 29 January 2003 :  21:06:32  Show Profile
It seems that the e-mail server does not allow deferred e-mails processing. I used the JMail.DeferredDelivery (JMail v3.7) with no success. Here is the code if somebody makes use of it:


	case "jmail"
		Set objNewMail = Server.CreateObject("Jmail.smtpmail")
		objNewMail.DeferredDelivery = dateadd("s",300,now)
		objNewMail.ServerAddress = strMailServer
		objNewMail.AddRecipient strRecipients
		objNewMail.Sender = strSender
		objNewMail.Subject = strSubject
		objNewMail.body = strMessage
		objNewMail.priority = 3
		on error resume next '## Ignore Errors
		objNewMail.execute
		If Err <> 0 Then 
			Err_Msg = Err_Msg & "<li>Your request was not sent due to the following error: " & Err.Description & "</li>"
		End if


This case 10 e-mails took 10 seconds...

I found this from their knowledge base (http://www.dimac.net/websites/dimac/website/support/FAQ?ID=34):
quote:

JMail is not limited in any way of how manby concurrent calls it can handle. How ever the threading model of your component may impact the behaviour of JMail.

If JMail behaves slow it's because it does realtime SMTP comunication to your server.

A good thing to speedup jmail is to reuse th object without setting the "serverAddress" property. This cases Jmail to pool the smtp connection and makes it perform alot better under heavy loads.



Tried, but nothing changed in performance...

Stop the WAR!
Go to Top of Page

HuwR
Forum Admin

United Kingdom
20600 Posts

Posted - 29 January 2003 :  21:56:24  Show Profile  Visit HuwR's Homepage
quote:

Also with ASPQMail there is an option for deferred processing, but it did not work, actually it sent the message immediately and the timeframe reached 38 sec, 34s and 34 sec in three consequitive tests. So I assume it is ASPMAIL not ASPQMAIL that is running or it is not correctly setup.


It is installed by default when you install aspemail, but it only runs for 30 days if it is the free version.
Go to Top of Page

Deleted
deleted

4116 Posts

Posted - 29 January 2003 :  22:44:16  Show Profile
quote:
Originally posted by HuwR

quote:

Also with ASPQMail there is an option for deferred processing, but it did not work, actually it sent the message immediately and the timeframe reached 38 sec, 34s and 34 sec in three consequitive tests. So I assume it is ASPMAIL not ASPQMAIL that is running or it is not correctly setup.


It is installed by default when you install aspemail, but it only runs for 30 days if it is the free version.



Oh, well. This is why .Expires gives N/A? I thought it was registered!

Stop the WAR!
Go to Top of Page

Deleted
deleted

4116 Posts

Posted - 29 January 2003 :  23:06:52  Show Profile
quote:
Originally posted by Doug G

It seems to me, if you are willing to throw away email erro processing JMail has an asynchronous mode (or something similar) where control returns immediately to the asp code. If that's so, perhaps that will work for you.

Also, the not free JMail has a process where you can put your mail list in a DB file, pass the db table to JMail, and go on about your business while it sends to all the recipients in background.




I could not find info on this in the reference. I'll search it tomorrow...

Q:
Can I use a remote "trigger" to start an ASP page that does the mass-mail every hour? Somehing like a sitechecker?

Or I can use cgi, php etc to do the timed events?

Stop the WAR!
Go to Top of Page

Doug G
Support Moderator

USA
6493 Posts

Posted - 30 January 2003 :  02:38:33  Show Profile
You should probably know my memory, while good, is pretty short Somewhere I have some JMail documentation that I printed off their website a long time ago, if I can get these docs to surface I'll post what I find.

======
Doug G
======
Computer history and help at www.dougscode.com
Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Topic Locked
 Printer Friendly
Jump To:
Snitz Forums 2000 © 2000-2021 Snitz™ Communications Go To Top Of Page
This page was generated in 0.28 seconds. Powered By: Snitz Forums 2000 Version 3.4.07