Thanks for the response Mark. That is doubtfully the cause of the crash on my
system, as it will occur even if there are no marked/undelivered messages in the
database when maintenance is run... I will hang on to your script though :)

/eli

> I had similar problems, but I think it may have related to the number of
> messages returned. I had something like 40,000 to purge, and I don't think
> the query was returning.
> 
> From memory, if I changed all but 100 customers to state=002 and then ran
> purge, it worked. But this was a real pain so I ended up writing a perl
> program to do it.
> 
> 
> #!/usr/bin/perl
> use DBI;
> 
> $db_dbmailauth = DBI->connect($DBMAILAUTH_DBHOST, $DBMAILAUTH_DBUSER,
> $DBMAILAUTH_DBPASS);
> $db_dbmailstore = DBI->connect($DBMAILSTORE_DBHOST, $DBMAILSTORE_DBUSER,
> $DBMAILSTORE_DBPASS);
> 
> print "Getting message list (status=003) \n";
> 
> my $query = $db_dbmailstore->prepare("select message_idnr from messages
> where status=003 order by message_idnr limit 50000");
>    $query->execute || print "error was ".$db_dbmailstore->errstr;
>    $query->bind_columns( undef, \($message_idnr) );
> 
> print "DELETING THE FOLLOWING MESSAGES\n";
> 
> while ($query->fetch) {
>     print "+ $message_idnr \n";
> 
>     #print "    - messageblks \n";
>     my $query2 = $db_dbmailstore->prepare("delete from messageblks where
> message_idnr='$message_idnr' ");
>        $query2->execute || die "error was ".$db_dbmailstore->errstr;
> 
>     #print "    - message \n";
> 
>     my $query2 = $db_dbmailstore->prepare("delete from messages where
> message_idnr='$message_idnr' ");
>        $query2->execute || die "error was ".$db_dbmailstore->errstr;
> 
>     ##print "    - message_headers \n";
>     #
>     #my $query2 = $db_dbmailstore->prepare("delete from message_headers
> where message_idnr='$message_idnr' ");
>     #   $query2->execute || die "error was ".$db_dbmailstore->errstr;
>     
> }
> 
> 
> Crude but effective. Ignore mail headers, that¹s part of our webmail
> interface we're working on.
> 
> /Mark
> 
> 
> 
> -- 
CAUTION: Repeated use of finger can cause a system to become overloaded, which 
can cause it to stop responding.
--Infinite wisdom from the font that is ISS 6.2.1

Reply via email to