...
Usage: PBS_EXEC/libexec/pbs_db_utility <install_db | upgrade_db | init_db_env>
Parameters:
install_db: Create and initialize the dataservice instance.
upgrade_db: Upgrade the database.init
PBS_EXEC/libexec/pbs_db_env
...
.sh
Description: This script will intitialize the environment with information related to database installation path.
PBS_EXEC/include/pbs_db.h
...
pbs_db_obj_info_t: Wrapper object structure. It contains a pointer to one of the several database structures. Most of the database manipulation/query functions take this structure as a parameter. Depending on the contained structure type, an appropriate internal database manipulation/query function is eventually called. This allows keeping the interface simpler and generic.
Code Block | language | c
---|
struct pbs_db_obj_info { int pbs_db_obj_type; /* identifies the contained object type */ union { pbs_db_job_info_t *pbs_db_job; /* map database job structure to C */ pbs_db_jobscr_info_t *pbs_db_jobscr; /* map database job script to C */ pbs_db_resv_info_t *pbs_db_resv; /* map database resv structure to C */ pbs_db_svr_info_t *pbs_db_svr; /* map database server structure to C */ pbs_db_que_info_t *pbs_db_que; /* map database queue structure to C */ pbs_db_node_info_t *pbs_db_node; /* map database node structure to C */ pbs_db_sched_info_t *pbs_db_sched; /* map database scheduler structure to C */ pbs_db_mominfo_time_t *pbs_db_mominfo_tm; /* map database mominfo_time structure to C */ } pbs_db_un; }; typedef struct pbs_db_obj_info pbs_db_obj_info_t; /* Structure used to map database job structure to C */ struct pbs_db_job_info { char ji_jobid[PBS_MAXSVRJOBID + 1]; /* job identifier */ INTEGER ji_state; /* INTEGERernal copy of state */ INTEGER ji_substate; /* job sub-state */ INTEGER ji_svrflags; /* server flags */ INTEGER ji_ordering; /* special scheduling ordering */ INTEGER ji_priority; /* INTEGERernal priority */ BIGINT ji_stime; /* time job started execution */ BIGINT ji_endtBdry; /* estimate upper bound on end time */ char ji_queue[PBS_MAXQUEUENAME + 1]; /* name of current queue */ char ji_destin[PBS_MAXROUTEDEST + 1]; /* dest from qmove/route */ INTEGER ji_un_type; /* job's queue type */ INTEGER ji_exitstat; /* job exit status from MOM */ BIGINT ji_quetime; /* time entered queue */ BIGINT ji_rteretry; /* route retry time */ INTEGER ji_fromsock; /* socket job coming over */ BIGINT ji_fromaddr; /* host job coming from */ char ji_4jid[8]; /* extended job save data */ char ji_4ash[8]; /* extended job save data */ INTEGER ji_credtype; /* credential type */ INTEGER ji_qrank; /* sort key for db query */ BIGINT ji_savetm; /* job save time */ BIGINT ji_creattm; /* job create time */ pbs_db_attr_list_t attr_list; /* list of attributes */ }; typedef struct pbs_db_job_info pbs_db_job_info_t; /* Structure used to map database resv structure to C */ struct pbs_db_resv_info { char ri_resvid[PBS_MAXSVRJOBID + 1]; /* reservation identifier */ char ri_queue[PBS_MAXQUEUENAME + 1]; /* queue used by reservation */ INTEGER ri_state; /* internal copy of state */ INTEGER ri_substate; /* substate of resv state */ INTEGER ri_type; /* "reservation" or "reservation job"*/ BIGINT ri_stime; /* left window boundry */ BIGINT ri_etime; /* right window boundry */ BIGINT ri_duration; /* reservation duration */ INTEGER ri_tactive; /* time reservation became active */ INTEGER ri_svrflags; /* server flags */ INTEGER ri_fromsock; /* resv from sock */ BIGINT ri_fromaddr; /* resv from sock addr */ BIGINT ri_creattm; /* resv create time on db */ BIGINT ri_savetm; /* resv save time on db */ pbs_db_attr_list_t attr_list; /* list of attributes */ }; typedef struct pbs_db_resv_info pbs_db_resv_info_t; /* Structure used to map database server structure to C */ struct pbs_db_svr_info { INTEGER sv_numjobs; /* number of job owned by server */ INTEGER sv_numque; /* nuber of queues managed */ BIGINT sv_jobidnumber; /* next number to use in new jobid */ BIGINT sv_creattm; /* time of server db create */ BIGINT sv_savetm; /* time of server db update */ pbs_db_attr_list_t attr_list; /* list of attributes */ }; typedef struct pbs_db_svr_info pbs_db_svr_info_t; /* Structure used to map database scheduler structure to C */ struct pbs_db_sched_info { char sched_name[PBS_MAXSCHEDNAME+1]; /* sched name */ BIGINT sched_creattm; /* sched create time on db */ BIGINT sched_savetm; /* sched save time on db */ pbs_db_attr_list_t attr_list; /* list of attributes */ }; typedef struct pbs_db_sched_info pbs_db_sched_info_t; /* Structure used to map database queue structure to C */ struct pbs_db_que_info { char qu_name[PBS_MAXQUEUENAME +1]; /* queue name */ INTEGER qu_type; /* queue type: exec, route */ BIGINT qu_ctime; /* time queue created */ BIGINT qu_mtime; /* time queue last modified */ pbs_db_attr_list_t attr_list; /* list of attributes */ }; typedef struct pbs_db_que_info pbs_db_que_info_t; /* Structure used to map database node structure to C */ struct pbs_db_node_info { char nd_name[PBS_MAXSERVERNAME+1]; /* vnode's name */ INTEGER nd_index; /* global node index */ BIGINT mom_modtime; /* node config update time */ char nd_hostname[PBS_MAXSERVERNAME+1]; /* node hostname */ INTEGER nd_state; /* state of node */ INTEGER nd_ntype; /* node type */ char nd_pque[PBS_MAXSERVERNAME+1]; /* queue to which it belongs */ BIGINT nd_creattm; /* node create time */ BIGINT nd_svtime; /* node save time */ pbs_db_attr_list_t attr_list; /* list of attributes */ }; typedef struct pbs_db_node_info pbs_db_node_info_t; /* Structure used to map database mominfo_time structure to C */ struct pbs_db_mominfo_time { BIGINT mit_time; /* time of the host to vnode map */ INTEGER mit_gen; /* generation of the host to vnode map */ }; typedef struct pbs_db_mominfo_time pbs_db_mominfo_time_t; /* Structure used to map database job script to C */ struct pbs_db_jobscr_info { char ji_jobid[PBS_MAXSVRJOBID + 1]; /* job identifier */ TEXT script; /* job script */ }; typedef struct pbs_db_jobscr_info pbs_db_jobscr_info_t; |
...