merge transaction script to the 2.0 migration script.
        ${INSTALL} -m 755 ${LCAS_PLUGIN_LIB} ${PREFIX}/lib/modules
        ln -sf liblcas_lb.so ${PREFIX}/lib/modules/lcas_lb.mod
 
-       for f in dbsetup.sql dbsetup-migrate2transactions.sql index.conf.template; do \
+       for f in dbsetup.sql index.conf.template; do \
                ${INSTALL} -m 644 ${top_srcdir}/config/"glite-lb-$$f" ${PREFIX}/etc; \
        done
+       ${INSTALL} -m 755 ${top_srcdir}/config/glite-lb-migrate_db2version20 ${PREFIX}/etc
 
        ${INSTALL} -m 755 ${top_srcdir}/config/startup ${PREFIX}/etc/init.d/glite-lb-bkserverd
 
 
+++ /dev/null
-alter table jobs engine=innodb;
-alter table users engine=innodb;
-alter table events engine=innodb;
-alter table short_fields engine=innodb;
-alter table long_fields engine=innodb;
-alter table states engine=innodb;
-alter table status_tags engine=innodb;
-alter table server_state engine=innodb;
-alter table acls engine=innodb;
-alter table notif_registrations engine=innodb;
-alter table notif_jobs engine=innodb;
 
 fi
 
 
+# convert for transactions (if very old DB)
+cat <<EOF | mysql -u lbserver $DB_NAME
+ALTER TABLE jobs ENGINE=innodb;
+ALTER TABLE users ENGINE=innodb;
+ALTER TABLE events ENGINE=innodb;
+ALTER TABLE short_fields ENGINE=innodb;
+ALTER TABLE long_fields ENGINE=innodb;
+ALTER TABLE states ENGINE=innodb;
+ALTER TABLE status_tags ENGINE=innodb;
+ALTER TABLE server_state ENGINE=innodb;
+ALTER TABLE acls ENGINE=innodb;
+ALTER TABLE notif_registrations ENGINE=innodb;
+ALTER TABLE notif_jobs ENGINE=innodb;
+EOF
+
+
 # add new columns
 mysql -u lbserver $DB_NAME -e "ALTER TABLE jobs ADD proxy bool not null"
 mysql -u lbserver $DB_NAME -e "ALTER TABLE jobs ADD server bool not null"
 
 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
+#include <syslog.h>
 #include <errno.h>
 #include <time.h>
 #include <assert.h>
                        /* Check non-indexed event conditions */
                        if ( convert_event_head(ctx, res+2, out+i) || edg_wll_get_event_flesh(ctx, n, out+i) )
                        {
-                               free(res[1]);
-                               free(res[2]);
-                               memset(out+i, 0, sizeof(*out));
-                               glite_lbu_FreeStmt(&sh);
-                               goto cleanup;
+                               char    *et,*ed, *dbjob;
+
+                       /* Most likely sort of internal inconsistency. 
+                        * Must not be fatal -- just complain
+                        */
+                               edg_wll_Error(ctx,&et,&ed);
+
+                               dbjob = res[2];
+                               fprintf(stderr,"%s event %d: %s (%s)\n",dbjob,n,et,ed);
+                               syslog(LOG_WARNING,"%s event %d: %s (%s)",dbjob,n,et,ed);
+                               free(et); free(ed);
+                               edg_wll_ResetError(ctx);
+
+                               goto fetch_cycle_cleanup;
                        }
 
                        if ( !match_flesh_conditions(out+i,event_conditions) || check_strict_jobid(ctx,out[i].any.jobId) )