public HashMap<String, String> getCustomerDetails(String acctNo, SCESession mySession){ ITraceInfo trace = mySession.getTraceOutput(); dataSource = (BasicDataSource)mySession.getProperty(DATASRC_IVR_DB); HashMap<String, String> returnhash = new HashMap<String, String>(); //trace.writeln(ITraceInfo.TRACE_LEVEL_INFO, "Account number :"+acctNo.substring(acctNo.length()-4) ); try { //logger.debug(callId+" The input is:"+hm); start=System.currentTimeMillis(); trace.writeln(ITraceInfo.TRACE_LEVEL_INFO, "Start Time of GET_CUSTOMER_DETAILS="+start); con=dataSource.getConnection(); trace.writeln(ITraceInfo.TRACE_LEVEL_INFO, "Data source connection established"); proc = con.prepareCall("{ call GET_CUSTOMER_DETAILS(?, ?, ?, ?, ?, ?, ?, ?, ?) }"); if(acctNo !=null && !acctNo.trim().isEmpty()){ proc.setString(1, acctNo); }else{ proc.setNull(1, OracleTypes.VARCHAR); } proc.registerOutParameter(2, Types.VARCHAR); proc.registerOutParameter(3, Types.VARCHAR); proc.registerOutParameter(4, Types.VARCHAR); proc.registerOutParameter(5, Types.VARCHAR); proc.registerOutParameter(6, Types.VARCHAR); proc.registerOutParameter(7, Types.VARCHAR); proc.registerOutParameter(8, Types.INTEGER); proc.registerOutParameter(9, Types.VARCHAR); try { if(!QueryTimeout.equalsIgnoreCase(NO)) proc.setQueryTimeout(Integer.parseInt(QueryTimeout)); else proc.setQueryTimeout(_2s); } catch (NumberFormatException e) { proc.setQueryTimeout(_2s); } trace.writeln(ITraceInfo.TRACE_LEVEL_DEBUG,"Time out="+QueryTimeout); proc.execute(); returnhash.put(ERROR_CODE, proc.getString(8)); returnhash.put(ERROR_MSG, proc.getString(9)); if(returnhash.get(ERROR_MSG).equalsIgnoreCase(DB_SUCCESS_MSG) || returnhash.get(ERROR_CODE).equalsIgnoreCase(DB_SUCCESS_CODE)){ returnhash.put(ACCOUNT_NUMBER, acctNo); //returnhash.put(PHONE_NUMBER, rs.getString(2)); returnhash.put(PROD_CODE, proc.getString(2)); returnhash.put(PRODUCT_TYPE, proc.getString(3)); returnhash.put(NATIONALITY, proc.getString(4)); returnhash.put(CUSTOMER_CAT, proc.getString(5)); returnhash.put(SERVICE_STATUS, proc.getString(6)); returnhash.put(CURR_PLAN, proc.getString(7)); trace.writeln(ITraceInfo.TRACE_LEVEL_INFO,ACCOUNT_NUMBER+":"+ acctNo); trace.writeln(ITraceInfo.TRACE_LEVEL_INFO,PROD_CODE+":" + proc.getString(2)); trace.writeln(ITraceInfo.TRACE_LEVEL_INFO,PRODUCT_TYPE+":" + proc.getString(3)); trace.writeln(ITraceInfo.TRACE_LEVEL_INFO,NATIONALITY+":" + proc.getString(4)); trace.writeln(ITraceInfo.TRACE_LEVEL_INFO,CUSTOMER_CAT+":" + proc.getString(5)); trace.writeln(ITraceInfo.TRACE_LEVEL_INFO,SERVICE_STATUS+":" + proc.getString(6)); trace.writeln(ITraceInfo.TRACE_LEVEL_INFO,CURR_PLAN+":" + proc.getString(7)); trace.writeln(ITraceInfo.TRACE_LEVEL_INFO,ERROR_CODE+":"+proc.getString(8)); trace.writeln(ITraceInfo.TRACE_LEVEL_INFO,ERROR_MSG+":"+proc.getString(9)); }else{ trace.writeln(ITraceInfo.TRACE_LEVEL_DEBUG, "No records found"); } end=System.currentTimeMillis(); trace.writeln(ITraceInfo.TRACE_LEVEL_INFO, "end Time of GET_CUSTOMER_DETAILS="+end); trace.writeln(ITraceInfo.TRACE_LEVEL_INFO, "Total Time of GET_CUSTOMER_DETAILS="+(end-start)+"ms"); } catch (SQLException e) { returnhash.put(ERROR_CODE, "03"); returnhash.put(ERROR_MSG, e.getMessage()); trace.writeln(ITraceInfo.TRACE_LEVEL_ERROR, "SQL Exception"+e); e.printStackTrace(); } finally{ try{ closeResult(rs); closeCallableStmt(proc); closeConnection(con); }catch(SQLException e){ returnhash.put(ERROR_CODE, "03"); returnhash.put(ERROR_MSG, e.getMessage()); trace.writeln(ITraceInfo.TRACE_LEVEL_ERROR, "SQL Exception while closing the Connection "+e); } if(trace != null){ trace = null; } if(dataSource != null){ dataSource = null; } } return returnhash; } |