job_start_timestamp) if err: raise Exception("Can't get logs of job {}: {}".format( DS_JOB_NAME, err)) print("Reading logs") event_id = log_event.eventId while True: log_detail, err = dsapi.DSGetLogEntry(hjob, event_id) if err: raise Exception("Can't get details for eventId = {}: {}".format( event_id, err)) print("[{}][{}][{}]: {}".format( log_detail.eventId, log_detail.type, log_detail.username, dsapi.charPointerToList(log_detail.fullMessage))) log_event, err = dsapi.DSFindNextLogEntry(hjob) if err: break event_id = log_event.eventId print("Closing the job") dsapi.DSCloseJob(hjob) hjob = None print("Closing the project") dsapi.DSCloseProject(hproj) hproj = None
(dsapi.DSJ_LINKSQLSTATE, 'DSJ_LINKSQLSTATE'), (dsapi.DSJ_LINKDBMSCODE, 'DSJ_LINKDBMSCODE'), (dsapi.DSJ_LINKDESC, 'DSJ_LINKDESC'), (dsapi.DSJ_LINKSTAGE, 'DSJ_LINKSTAGE'), (dsapi.DSJ_INSTROWCOUNT, 'DSJ_INSTROWCOUNT'), (dsapi.DSJ_LINKEXTROWCOUNT, 'DSJ_LINKEXTROWCOUNT')] for infoType, infoName in infoTypes_list: res, err = dsapi.DSGetLinkInfo(hjob, DS_JOB_STAGE_NAME, DS_JOB_STAGE_LINK_NAME, infoType) if err: print("{}. Can't get the link infoo: {}".format(infoName, err)) else: if infoName == 'DSJ_LINKLASTERR': print("{} = {}".format( infoName, dsapi.charPointerToList(res.fullMessage))) else: print("{} = {}".format(infoName, res)) print("Closing the job") dsapi.DSCloseJob(hjob) hjob = None print("Closing the project") dsapi.DSCloseProject(hproj) hproj = None dsapi.DSUnloadLibrary() except Exception as e: print("Runtime error: {}".format(str(e)))