def process (self): try: reticLog.logInfo(self.logList, "( " + self.name + " ) Message processed on sink : " + self.name) return 0 except: errorMessage = traceback.format_exception_only(sys.exc_info()[0],sys.exc_info()[1])[0] reticLog.logError(self.logList, "( " + self.name + " ) Error during message processing in sink : " + self.name) reticLog.logError(self.logList, "( " + self.name + " ) " + errorMessage) return 1
def getMsg (self, message): try: reticLog.logInfo(self.logList, "( " + self.name + " ) Retrieving message for sink : " + self.name) # Re-initialize msg to get new message self.msg = '' self.msg = message reticLog.logInfo(self.logList, "( " + self.name + " ) Message retrieved in sink : " + self.name) return 0 except: errorMessage = traceback.format_exception_only(sys.exc_info()[0],sys.exc_info()[1])[0] reticLog.logError(self.logList, "( " + self.name + " ) Error during message retrieval in sink : " + self.name) reticLog.logError(self.logList, "( " + self.name + " ) " + errorMessage) return 1
def __init__ (self, args, logger): try: self.args = args self.msg = '' self.logList = logger self.name = args['name'] self.dbFactoryArg = args['dbFactroyArg'] self.inputFormat = args['inputFormat'] self.delimiter = args['delimiter'] self.hasHeader = args['hasHeader'] #self.replaceEmptyFieldBy = args['replaceEmptyFieldBy'] if not self.args.has_key('autoCommit'): self.autocommit = False #session pool self.session = None self.nbThreads = int(args['nbThreads']) if self.nbThreads == 0: self.nbThreads = 1 if args.has_key('retries'): self.retries = int(args['retries']) else: self.retries = 5 #self.curArgs = {} #self.curArgs['cursorName'] = 'cursor1' self.metadata = {} self.fieldNames = [] self.fieldLength = [] if self.inputFormat == 'delimited': if self.args.has_key('fieldNames'): self.fieldNames = args['fieldNames'] elif self.inputFormat == 'fixedLength': if self.args.has_key('fieldNames') and self.args.has_key('fieldLength'): self.fieldNames = args['fieldNames'] self.fieldLength = args['fieldLength'] #here, for multithread updating database, speed up here self.connection = dbFactory.dbFactory(args['dbFactroyArg'], self.logList) #for i in range(self.nbThreads): self.session = self.makeSession(self.connection) self.parallelize = 'n' self.nbQueriesParal = 10 ######################################################## #this is for future optimization, may not be needed if args.has_key('parallelize'): self.parallelize = args['parallelize'] if args.has_key('nbQueriesParal'): self.nbQueriesParal = int(args['nbQueriesParal']) except KeyError: reticLog.logError(self.logList, "( " + self.name + " ) Error during SQLSink initialization") reticLog.logError(self.logList, "( " + self.name + " ) Parameter " + str(sys.exc_info()[1]) + " is missing in sink definition" ) sys.exit(1) except: errorMessage = traceback.format_exception_only(sys.exc_info()[0],sys.exc_info()[1])[0] reticLog.logError(self.logList, "( " + self.name + " ) Unknown error during initialization in sink") reticLog.logError(self.logList, "( " + self.name + " ) " + errorMessage) sys.exit(1)