-/*
- *
- * Bacula Director Job processing routines
- *
- * Kern Sibbald, October MM
- *
- * Version $Id$
- */
/*
Bacula® - The Network Backup Solution
many others, a complete list can be found in the file AUTHORS.
This program is Free Software; you can redistribute it and/or
modify it under the terms of version two of the GNU General Public
- License as published by the Free Software Foundation plus additions
- that are listed in the file LICENSE.
+ License as published by the Free Software Foundation and included
+ in the file LICENSE.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
(FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich,
Switzerland, email:ftf@fsfeurope.org.
*/
+/*
+ *
+ * Bacula Director Job processing routines
+ *
+ * Kern Sibbald, October MM
+ *
+ * Version $Id$
+ */
#include "bacula.h"
#include "dird.h"
/*
* Open database
*/
- Dmsg0(150, "Open database\n");
+ Dmsg0(100, "Open database\n");
jcr->db=db_init_database(jcr, jcr->catalog->db_name, jcr->catalog->db_user,
jcr->catalog->db_password, jcr->catalog->db_address,
jcr->catalog->db_port, jcr->catalog->db_socket,
jcr->catalog->db_name);
if (jcr->db) {
Jmsg(jcr, M_FATAL, 0, "%s", db_strerror(jcr->db));
+ db_close_database(jcr, jcr->db);
}
goto bail_out;
}
}
generate_job_event(jcr, "JobInit");
+ Dsm_check(1);
return true;
bail_out:
jcr->my_thread_id = pthread_self();
pthread_detach(jcr->my_thread_id);
- sm_check(__FILE__, __LINE__, true);
+ Dsm_check(1);
Dmsg0(200, "=====Start Job=========\n");
set_jcr_job_status(jcr, JS_Running); /* this will be set only if no error */
control_jcr = (JCR *)self->data;
+ Dsm_check(1);
Dmsg1(800, "job_monitor_watchdog %p called\n", self);
foreach_jcr(jcr) {
pthread_cond_destroy(&jcr->term_wait);
jcr->term_wait_inited = false;
}
+ if (jcr->db_batch && jcr->db_batch != jcr->db) {
+ db_close_database(jcr, jcr->db_batch);
+ }
+ jcr->db_batch = NULL;
if (jcr->db) {
db_close_database(jcr, jcr->db);
jcr->db = NULL;
}
- if (jcr->db_batch) {
- db_close_database(jcr, jcr->db_batch);
- jcr->db_batch = NULL;
- }
if (jcr->stime) {
Dmsg0(200, "Free JCR stime\n");
free_pool_memory(jcr->stime);
}
-/* Set storage override */
+/* Set storage override. Releases any previous storage definition */
void set_rwstorage(JCR *jcr, USTORE *store)
{
if (!store) {
}
-/* Set storage override */
+/* Set storage override. Remove all previous storage */
void set_rstorage(JCR *jcr, USTORE *store)
{
STORE *storage;
if (!store->store) {
return;
}
+ if (jcr->rstorage) {
+ free_rstorage(jcr);
+ }
if (!jcr->rstorage) {
jcr->rstorage = New(alist(10, not_owned_by_alist));
}
}
-/* Set storage override */
+/* Set storage override. Remove all previous storage */
void set_wstorage(JCR *jcr, USTORE *store)
{
STORE *storage;
if (!store->store) {
return;
}
+ if (jcr->wstorage) {
+ free_wstorage(jcr);
+ }
if (!jcr->wstorage) {
jcr->wstorage = New(alist(10, not_owned_by_alist));
}