Efficient and affordable software for Macintosh - Maker of MaxBulk Mailer, eMail extractor, eMail Checker, e-Mail Bounce Handler

Home

Products

Downloads

News

Store

Support

Forums

Forums


 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 
MBM and mlm script

 
Post new topic   Reply to topic    Maxprog Forum Index -> MaxBulk Mailer
Author Message
Chris



Joined: 15 Mar 2007
Posts: 8

PostPosted: Wed Nov 12, 2008 6:19 pm    Post subject: MBM and mlm script Reply with quote

Hi
I just managed to dynamically update my mlm mysql db with my payment processor (e-junkie). But using remote lists with MBM is very very slow. I have about 10'000 entries and so, it seems that this can't be handled smoothly in MBM. From the server log I also can see the following:

Code:
Wed Nov 12 18:36:27 2008] [error] [client xxx.xxx.xxx.xxx] ModSecurity: Multipart parser init failed: Multipart: Multiple boundary parameters in C-T. [hostname "www.xxx.com"] [uri "/mlm/mlm.php"] [unique_id "SRsUG9kaNBQAAAVSO3YAAAAY"]



What's the meaning of this?

In MBM (and also directly in a webbrowser) the lists can't be loaded.
Back to top
stanbusk
Site Admin


Joined: 28 Dec 2005
Posts: 2375

PostPosted: Wed Nov 12, 2008 8:07 pm    Post subject: Reply with quote

Actually I did not design MLM with lists that size in mind. To load big list we would have to implement compression I think and perhaps get the list as a download. Did you try the getlist command with the option to get the list as a download?
Back to top
Chris



Joined: 15 Mar 2007
Posts: 8

PostPosted: Wed Nov 12, 2008 8:53 pm    Post subject: Reply with quote

I tried setting the exec_timout to 240s but it still does not work.
I think a better idea would be to have two tables in mysql:
1. a list table so it first fetches the lists only
2. a client_list table to load the clients afterward from the selected list(s).

That way you don't have to cycle through all fields, only the needed ones.

The mlm integration was one reason I upgraded to MBM6, so I hope this can be sorted out.

Downloading the list would not be a great thing, as I want to automate the whole process. I can download a list directly from e-junkie, so this would not be an alternative (even this one works perfectly and in just a second).

The question is: why does the lists command take so much time and getlist is finished in a few seconds?
Back to top
Chris



Joined: 15 Mar 2007
Posts: 8

PostPosted: Wed Nov 12, 2008 9:41 pm    Post subject: Reply with quote

I now made a test and set the $count variable to 2 (instead of mysql_num_rows) to get the first two lists.
It needed about 1.5min to get 3400 subscribers. This means I have to wait about 360s or 6min for all lists.

But even I set the timeout to 600s, I get an internal server error after about 5min. So, there is no way around it.

Is there any way to speed it up (e.g. drop some information like table last update or total subscribers? Will this affect MBM if I just set a dummy value to these variables (eg. $totalsubscribers = 0)?
Back to top
Chris



Joined: 15 Mar 2007
Posts: 8

PostPosted: Wed Nov 12, 2008 10:02 pm    Post subject: Reply with quote

OK, I have found the critical thing is getting the Table last update time. When I drop this (or just setting a dummy date string), the information is fetched withing seconds! Right now, It works perfectly, but it would be great to see when the information was updated. At the moment I can live with this restriction, but maybe you will find some time to further look in this.
As a side note: if an update string will be fetched, it would be a good thing to not have 1 time for all lists but to show the individual last list update times.
Back to top
stanbusk
Site Admin


Joined: 28 Dec 2005
Posts: 2375

PostPosted: Thu Nov 13, 2008 12:18 pm    Post subject: Reply with quote

Not sure I understand your last post...
Back to top
Chris



Joined: 15 Mar 2007
Posts: 8

PostPosted: Thu Nov 13, 2008 8:45 pm    Post subject: Reply with quote

The problematic (slow down) code is the following, so I simply removed it. The code is found in the ShowListNamesFromDB() function:

Code:
/*if ( $resdate = @mysql_db_query( $dbname, "SELECT UPDATE_TIME FROM INFORMATION_SCHEMA.TABLES WHERE table_name='$tbname'" ) ) {
   if ( @mysql_num_rows( $resdate ) > 0 ) {
      $rowdate = @mysql_fetch_array( $resdate );
      $tablelastupdate = $rowdate[0];
   }
                      
}*/


Then I just added a dummy date string:
Code:
$tablelastupdate = "2008-11-12 21:59:34";


That way, my lists with about 10'000 entries are loaded withing seconds.

Clear now?
Back to top
stanbusk
Site Admin


Joined: 28 Dec 2005
Posts: 2375

PostPosted: Fri Nov 14, 2008 10:00 am    Post subject: Reply with quote

Ok, it is clear. It looks like a mySQL bug, don't you think? That code has no loop and doesn't iterate afaik thru the table records...
Back to top
Chris



Joined: 15 Mar 2007
Posts: 8

PostPosted: Mon Nov 17, 2008 8:19 am    Post subject: Reply with quote

I think you are probably right that the problem is mySQL. But the code actually DOES iterate over the table rows. I tried to move it out of the loop but this hasn't helped. So, it does seem to be a "bug" in mySQL or maybe with the version my ISP is using. Maybe the only solution for me would be to add a timestamp field to the table whenever a record is created. That way I also will get back the exact time when the list has changed (and not an overall time when the last change to the table has been made).

Thanks for your help so far
Chris
Back to top
Display posts from previous:   
Post new topic   Reply to topic    Maxprog Forum Index -> MaxBulk Mailer All times are GMT
Page 1 of 1

 


Powered by phpBB © 2001, 2005 phpBB Group
captcha mod by phpbb-security.com

Home

Products

Downloads

News

Store

Support

Forums


Maxprog ® - MAX Programming, LLC - © 2001-2006 - All Rights reserved
Company Info | Site Map | Legal Notice | Privacy Policy | Jobs