From 8b4af9601902470c20c7a0694daccd4aa1569395 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Franti=C5=A1ek=20Dvo=C5=99=C3=A1k?= Date: Mon, 16 Apr 2007 14:20:37 +0000 Subject: [PATCH] Retry registrations too (little shorter period than dumps). --- org.glite.jp.client/examples/glite-jp-importer.sh | 2 +- org.glite.jp.client/src/jpimporter.c | 21 +++++++++++++++++++-- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/org.glite.jp.client/examples/glite-jp-importer.sh b/org.glite.jp.client/examples/glite-jp-importer.sh index abf991a..4d2f737 100644 --- a/org.glite.jp.client/examples/glite-jp-importer.sh +++ b/org.glite.jp.client/examples/glite-jp-importer.sh @@ -73,7 +73,7 @@ JP_PID=$! trap "kill $JP_PID; exit 0" SIGINT while [ 1 ]; do - $PREFIX/sbin/glite-lb-purge $GLITE_LB_EXPORT_PURGE_ARGS -l -m $GLITE_LB_EXPORT_BKSERVER + $PREFIX/sbin/glite-lb-purge $GLITE_LB_EXPORT_PURGE_ARGS -l -m $GLITE_LB_EXPORT_BKSERVER -s for file in $GLITE_LB_EXPORT_DUMPDIR/*; do if [ -s $file ]; then diff --git a/org.glite.jp.client/src/jpimporter.c b/org.glite.jp.client/src/jpimporter.c index 6ce64fa..cf88a06 100644 --- a/org.glite.jp.client/src/jpimporter.c +++ b/org.glite.jp.client/src/jpimporter.c @@ -392,12 +392,29 @@ static int reg_importer(void) struct _jpelem__RegisterJob in; struct _jpelem__RegisterJobResponse empty; int ret; + static int readnew = 1; char *msg = NULL, *fname = NULL, *aux; + if ( readnew ) ret = edg_wll_MaildirTransStart(reg_mdir, &msg, &fname); + else ret = edg_wll_MaildirRetryTransStart(reg_mdir, (time_t)30, (time_t)500, &msg, &fname); + if ( !ret ) { + readnew = !readnew; + if ( readnew ) ret = edg_wll_MaildirTransStart(reg_mdir, &msg, &fname); + else ret = edg_wll_MaildirRetryTransStart(reg_mdir, (time_t)30, (time_t)500, &msg, &fname); + if ( !ret ) { + readnew = !readnew; + return 0; + } + } + + if ( ret < 0 ) { + dprintf("[%s] edg_wll_MaildirTransStart: %s (%s)\n", name, strerror(errno), lbm_errdesc); + if ( !debug ) syslog(LOG_ERR, "edg_wll_MaildirTransStart: %s (%s)", strerror(errno), lbm_errdesc); + return -1; + } - ret = edg_wll_MaildirTransStart(reg_mdir, &msg, &fname); if ( ret < 0 ) { dprintf("[%s] edg_wll_MaildirTransStart: %s (%s)\n", name, strerror(errno), lbm_errdesc); if ( !debug ) syslog(LOG_ERR, "edg_wll_MaildirTransStart: %s (%s)", strerror(errno), lbm_errdesc); @@ -420,7 +437,7 @@ static int reg_importer(void) ret = soap_call___jpsrv__RegisterJob(soap, jpps, "", &in, &empty); if ( (ret = check_soap_fault(soap, ret)) ) break; } while (0); - edg_wll_MaildirTransEnd(reg_mdir, fname, ret? LBMD_TRANS_FAILED: LBMD_TRANS_OK); + edg_wll_MaildirTransEnd(reg_mdir, fname, ret? LBMD_TRANS_FAILED_RETRY: LBMD_TRANS_OK); free(fname); free(msg); return 1; -- 1.8.2.3