-/*
- *
- * Bacula Director -- newvol.c -- creates new Volumes in
- * catalog Media table from the LabelFormat specification.
- *
- * Kern Sibbald, May MMI
- *
- * This routine runs as a thread and must be thread reentrant.
- *
- * Basic tasks done here:
- * If possible create a new Media entry
- *
- * Version $Id$
- */
/*
Bacula® - The Network Backup Solution
- Copyright (C) 2000-2006 Free Software Foundation Europe e.V.
+ Copyright (C) 2000-2007 Free Software Foundation Europe e.V.
The main author of Bacula is Kern Sibbald, with contributions from
many others, a complete list can be found in the file AUTHORS.
(FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich,
Switzerland, email:ftf@fsfeurope.org.
*/
+/*
+ *
+ * Bacula Director -- newvol.c -- creates new Volumes in
+ * catalog Media table from the LabelFormat specification.
+ *
+ * Kern Sibbald, May MMI
+ *
+ * This routine runs as a thread and must be thread reentrant.
+ *
+ * Basic tasks done here:
+ * If possible create a new Media entry
+ *
+ * Version $Id$
+ */
#include "bacula.h"
#include "dird.h"
{
char name[MAXSTRING];
char num[20];
+ db_int64_ctx ctx;
+ POOL_MEM query(PM_MESSAGE);
+ char ed1[50];
/* See if volume already exists */
mr->VolumeName[0] = 0;
bstrncpy(name, pr->LabelFormat, sizeof(name));
- for (int i=pr->NumVols+1; i<(int)pr->NumVols+100; i++) {
+ ctx.value = 0;
+ Mmsg(query, "SELECT MAX(MediaId) FROM Media,POOL WHERE Pool.PoolId=%s",
+ edit_int64(pr->PoolId, ed1));
+ if (!db_sql_query(jcr->db, query.c_str(), db_int64_handler, (void *)&ctx)) {
+ Jmsg(jcr, M_WARNING, 0, _("SQL failed, but ignored. ERR=%s\n"), db_strerror(jcr->db));
+ ctx.value = pr->NumVols+1;
+ }
+ for (int i=(int)ctx.value+1; i<(int)ctx.value+100; i++) {
MEDIA_DBR tmr;
memset(&tmr, 0, sizeof(tmr));
sprintf(num, "%04d", i);
General:
17Sep07
+kes Modify new volume algorithm to use max MediaId for generating next
+ volume number rather than the count of Volumes. This should essentially
+ eliminate the failure rate if some volumes were deleted. Bug #921.
kes Begin implemention of Optimize Job Scheduling.
kes Implement restore callback that Dirk and I agreed on for bat
- restore. This fixes bug #928.
+ restore. This fixes bug #928. Restore of backup of zero files fails.
kes Fix SQL Catalog logging which broke with new db_escape_string
calling sequence.
14Sep07
kes Fix bacula_cats.def for new db_escape_string().
kes Increase size of name string when FD making connection to SD.
- May fix bug #953.
+ May fix bug #953. FD->SD connection failure.
13Sep07
kes Add code to help Dan debug 2drive-incremental-2disk test.
kes Add code to try to fix bug #908.