Hi Robert,
opps I remember. I add it to the cvs for the next release.
Thanks!
-Martin
On Mon, Feb 09, 2004 at 04:14:54PM -0800, Robert L Mathews wrote:
> I realize this may be a little late to get into 1.2, but here it is
> anyway. It wraps much of PostMaster.pl in an eval{} block so that if the
> database isn't available (for example), an incoming message won't be
> immediately bounced.
>
> This patch is against CVS; I haven't been using the CVS version of OTRS,
> but I have been using a nearly identical patch against 1.1.3 for several
> months without any trouble (with several hundred tickets a day), and it
> has prevented several bounces during database upgrades, etc.
>
> Note that although it looks like it changes a lot, it really changes
> hardly anything -- most of the "changes" are just fixing the indentation.
>
>
> diff -c PostMaster.pl.orig PostMaster.pl
> *** PostMaster.pl.orig Wed Oct 29 13:07:41 2003
> --- PostMaster.pl Mon Feb 9 15:20:08 2004
> ***************
> *** 65,113 ****
> $Opts{'q'} = '';
> }
>
> ! # --
> ! # create common objects
> ! # --
> ! my %CommonObject = ();
> ! $CommonObject{ConfigObject} = Kernel::Config->new();
> ! $CommonObject{LogObject} = Kernel::System::Log->new(
> ! LogPrefix => 'OTRS-PM',
> ! %CommonObject,
> ! );
> ! $CommonObject{DBObject} = Kernel::System::DB->new(%CommonObject);
> ! # debug info
> ! if ($Opts{'d'}) {
> ! $CommonObject{LogObject}->Log(
> ! Priority => 'debug',
> ! Message => 'Global OTRS email handle (PostMaster.pl)
> started...',
> );
> ! }
> ! # get email from SDTIN
> ! my @Email = <STDIN>;
> ! if ([EMAIL PROTECTED]) {
> ! $CommonObject{LogObject}->Log(
> ! Priority => 'error',
> ! Message => 'Got not email on STDIN!',
> );
> ! exit (1);
> ! }
> ! # common objects
> ! $CommonObject{PostMaster} = Kernel::System::PostMaster->new(
> ! %CommonObject,
> ! Email => [EMAIL PROTECTED],
> ! Trusted => $Opts{'t'},
> ! Debug => $Opts{'d'},
> ! );
> ! $CommonObject{PostMaster}->Run(
> ! Queue => $Opts{'q'},
> ! );
> !
> ! # debug info
> ! if ($Opts{'d'}) {
> ! $CommonObject{LogObject}->Log(
> ! Priority => 'debug',
> ! Message => 'Global OTRS email handle (PostMaster.pl) stoped.',
> );
> }
> # --
> exit (0);
> --- 65,129 ----
> $Opts{'q'} = '';
> }
>
> ! # Wrap the majority of the script in an "eval" block so that any
> unexpected
> ! # (but possibly transient) fatal errors (such as the database being
> ! # unavailable) can be trapped without causing a bounce.
> ! eval {
> ! # --
> ! # create common objects
> ! # --
> ! my %CommonObject = ();
> ! $CommonObject{ConfigObject} = Kernel::Config->new();
> ! $CommonObject{LogObject} = Kernel::System::Log->new(
> ! LogPrefix => 'OTRS-PM',
> ! %CommonObject,
> );
> ! $CommonObject{DBObject} = Kernel::System::DB->new(%CommonObject);
> ! # debug info
> ! if ($Opts{'d'}) {
> ! $CommonObject{LogObject}->Log(
> ! Priority => 'debug',
> ! Message => 'Global OTRS email handle (PostMaster.pl)
> started...',
> ! );
> ! }
> ! # get email from SDTIN
> ! my @Email = <STDIN>;
> ! if ([EMAIL PROTECTED]) {
> ! $CommonObject{LogObject}->Log(
> ! Priority => 'error',
> ! Message => 'Got not email on STDIN!',
> ! );
> ! exit (1);
> ! }
> ! # common objects
> ! $CommonObject{PostMaster} = Kernel::System::PostMaster->new(
> ! %CommonObject,
> ! Email => [EMAIL PROTECTED],
> ! Trusted => $Opts{'t'},
> ! Debug => $Opts{'d'},
> );
> ! $CommonObject{PostMaster}->Run(
> ! Queue => $Opts{'q'},
> );
> +
> + # debug info
> + if ($Opts{'d'}) {
> + $CommonObject{LogObject}->Log(
> + Priority => 'debug',
> + Message => 'Global OTRS email handle (PostMaster.pl)
> stoped.',
> + );
> + }
> + }; # end of eval block
> +
> + if ($@)
> + {
> + # Some kind of unexpected problem occurred (for example, database
> + # unavailable). Return an EX_TEMPFAIL error to cause the mail
> program
> + # to requeue the message instead of immediately bouncing it; see
> + # sysexits.h. (Most mail programs will retry an EX_TEMPFAIL delivery
> + # for about four days, then bounce the message.)
> + exit 75;
> }
> +
> # --
> exit (0);
>
>
>
> --
> Robert L Mathews, Tiger Technologies http://www.tigertech.net/
>
> "Ignorance more frequently begets confidence than does knowledge."
> -- Darwin
>
> _______________________________________________
> OTRS mailing list: dev - Webpage: http://otrs.org/
> Archive: http://lists.otrs.org/pipermail/dev
> To unsubscribe: http://lists.otrs.org/cgi-bin/listinfo/dev
Martin Edenhofer
--
((otrs.de)) :: OTRS GmbH :: Norsk-Data-Str. 1 :: 61352 Bad Homburg
http://www.otrs.de/ :: Manage your communication!
_______________________________________________
OTRS mailing list: dev - Webpage: http://otrs.org/
Archive: http://lists.otrs.org/pipermail/dev
To unsubscribe: http://lists.otrs.org/cgi-bin/listinfo/dev