Retry registrations too (little shorter period than dumps).
authorFrantišek Dvořák <valtri@civ.zcu.cz>
Mon, 16 Apr 2007 14:20:37 +0000 (14:20 +0000)
committerFrantišek Dvořák <valtri@civ.zcu.cz>
Mon, 16 Apr 2007 14:20:37 +0000 (14:20 +0000)
org.glite.jp.client/examples/glite-jp-importer.sh
org.glite.jp.client/src/jpimporter.c

index abf991a..4d2f737 100644 (file)
@@ -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
index 6ce64fa..cf88a06 100644 (file)
@@ -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;