@Override public void activate(String module, String rpc, String version, String mode) throws SvcLogicException { String deactivateSql = "UPDATE SVC_LOGIC SET active = 'N' WHERE module = ? AND rpc = ? AND mode = ?"; String activateSql = "UPDATE SVC_LOGIC SET active = 'Y' WHERE module = ? AND rpc = ? AND mode = ? AND version = ?"; ArrayList<String> args = new ArrayList<>(); args.add(module); args.add(rpc); args.add(mode); try { dbSvc.writeData(deactivateSql, args, null); args.add(version); dbSvc.writeData(activateSql, args, null); } catch (Exception e) { throw new SvcLogicException("Could not activate graph", e); } }
public void delete(String module, String rpc, String version, String mode) throws SvcLogicException { String deleteGraphSql = "DELETE FROM SVC_LOGIC WHERE module = ? AND rpc = ? AND version = ? AND mode = ?"; ArrayList<String> args = new ArrayList<>(); args.add(module); args.add(rpc); args.add(version); args.add(mode); try { dbSvc.writeData(deleteGraphSql, args, null); } catch (Exception e) { throw new SvcLogicException("Could not delete object from database", e); } }
public static void saveOutgoingRequest( String requestId, String serviceInstanceId, String targetUrl, String request) { try { init(); if (!outgoingEnabled) return; if (serviceInstanceId == null || serviceInstanceId.trim().length() == 0) serviceInstanceId = "NA"; int seqnum = getLastSequenceNumber("OUTGOING_MESSAGE", requestId) + 1; String now = df.format(new Date()); String sql = "INSERT INTO OUTGOING_MESSAGE (\n" + " request_id, sequence_number, service_instance_id, target_url, request, start_time)\n" + "VALUES (?, ?, ?, ?, ?, ?)"; ArrayList<String> data = new ArrayList<>(); data.add(requestId); data.add(String.valueOf(seqnum)); data.add(serviceInstanceId); data.add(targetUrl); data.add(request); data.add(now); dbLibService.writeData(sql, data, null); } catch (Exception e) { LOG.warn("Failed to save outgoing request for request-id: " + requestId, e); } }
@Override public boolean logDeviceInteraction(String instanceId, String requestId, String creationDate, String logText) { String queryString = "INSERT INTO "+ Constants.DEVICE_INTERFACE_LOG_TABLE_NAME+"("+ Constants.SERVICE_INSTANCE_ID_FIELD_NAME+","+ Constants.REQUEST_ID_FIELD_NAME+","+ Constants.CREATION_DATE_FIELD_NAME+","+ Constants.LOG_FIELD_NAME+") "; queryString += "values(?,?,?,?)"; ArrayList<String> argList = new ArrayList<>(); argList.add(instanceId); argList.add(requestId); argList.add(creationDate); argList.add(logText); try { dbLibService.writeData(queryString, argList, schema); } catch (SQLException e) { logger.error("Logging Device interaction failed - "+ queryString); throw new DataAccessException(e); } return true; }
public static void saveIncomingResponse(String requestId, int httpResponseCode, String response) { try { init(); if (!incomingEnabled) return; int seqnum = getLastSequenceNumber("INCOMING_MESSAGE", requestId); if (seqnum == 0) { LOG.warn("Failed to save response for request-id: " + requestId + ": Request record not found in INCOMING_MESSAGE"); return; } String now = df.format(new Date()); String sql = "UPDATE INCOMING_MESSAGE SET http_response_code = ?, response = ?,\n" + " duration = timestampdiff(MICROSECOND, start_time, ?) / 1000\n" + "WHERE request_id = ? AND sequence_number = ?"; ArrayList<String> data = new ArrayList<>(); data.add(String.valueOf(httpResponseCode)); data.add(response); data.add(now); data.add(requestId); data.add(String.valueOf(seqnum)); dbLibService.writeData(sql, data, null); } catch (Exception e) { LOG.warn("Failed to save response for request-id: " + requestId, e); } }
@Override public void update(String key, Map<TransactionConstants.TRANSACTION_ATTRIBUTES, String> updateColumns) throws APPCException { ArrayList<String> values = new ArrayList<>(); StringBuilder queryBuilder = new StringBuilder("UPDATE TRANSACTIONS SET "); for (Map.Entry<TransactionConstants.TRANSACTION_ATTRIBUTES, String> entry : updateColumns.entrySet()) { queryBuilder.append(entry.getKey().getColumnName() + " = ? ,"); values.add(entry.getValue()); } queryBuilder.deleteCharAt(queryBuilder.lastIndexOf(",")); queryBuilder.append(WHERE + TRANSACTION_ID.getColumnName() + " = ?"); values.add(appcInstanceId + "~" + key); String query = queryBuilder.toString(); try { dbLibService.writeData(query, values, SCHEMA); } catch (SQLException e) { logger.error("Error in updating records " + e); throw new APPCException(ERROR_ACCESSING_DATABASE, e); } if (logger.isTraceEnabled()) { logger.trace("Transaction data updated successfully"); } }
public static void saveOutgoingResponse(String requestId, int httpResponseCode, String response) { try { init(); if (!outgoingEnabled) return; int seqnum = getLastSequenceNumber("OUTGOING_MESSAGE", requestId); if (seqnum == 0) { LOG.warn("Failed to save outgoing response for request-id: " + requestId + ": Request record not found in OUTGOING_MESSAGE"); return; } String now = df.format(new Date()); String sql = "UPDATE OUTGOING_MESSAGE SET http_response_code = ?, response = ?,\n" + " duration = timestampdiff(MICROSECOND, start_time, ?) / 1000\n" + "WHERE request_id = ? AND sequence_number = ?"; ArrayList<String> data = new ArrayList<>(); data.add(String.valueOf(httpResponseCode)); data.add(response); data.add(now); data.add(requestId); data.add(String.valueOf(seqnum)); dbLibService.writeData(sql, data, null); } catch (Exception e) { LOG.warn("Failed to save outgoing response for request-id: " + requestId, e); } }
public void activate(SvcLogicGraph graph) throws SvcLogicException { String deactivateSql = "UPDATE SVC_LOGIC SET active = 'N' WHERE module = ? AND rpc = ? AND mode = ?"; String activateSql = "UPDATE SVC_LOGIC SET active = 'Y' WHERE module = ? AND rpc = ? AND mode = ? AND version = ?"; ArrayList<String> args = new ArrayList<>(); args.add(graph.getModule()); args.add(graph.getRpc()); args.add(graph.getMode()); try { dbSvc.writeData(deactivateSql, args, null); args.add(graph.getVersion()); dbSvc.writeData(activateSql, args, null); } catch (Exception e) { throw new SvcLogicException("Could not activate graph", e); } }
private QueryStatus executeSqlWrite(String key, SvcLogicContext ctx) throws SvcLogicException { QueryStatus retval = QueryStatus.SUCCESS; DbLibService dblibSvc = getDbLibService(); if (dblibSvc == null) { return (QueryStatus.FAILURE); } String sqlStmt = resolveCtxVars(key, ctx); LOG.debug("key = [" + key + "]; sqlStmt = [" + sqlStmt + "]"); try { if (!dblibSvc.writeData(sqlStmt, null, null)) { retval = QueryStatus.FAILURE; } } catch (Exception e) { LOG.error("Caught SQL exception", e); retval = QueryStatus.FAILURE; } return (retval); }
public static void saveIncomingRequest( String requestId, String serviceInstanceId, String requestHost, String request) { try { init(); if (!incomingEnabled) return; if (serviceInstanceId == null || serviceInstanceId.trim().length() == 0) serviceInstanceId = "NA"; int seqnum = getLastSequenceNumber("INCOMING_MESSAGE", requestId) + 1; String now = df.format(new Date()); String sql = "INSERT INTO INCOMING_MESSAGE (\n" + " request_id, sequence_number, service_instance_id, request_host, request, start_time)\n" + "VALUES (?, ?, ?, ?, ?, ?)"; ArrayList<String> data = new ArrayList<>(); data.add(requestId); data.add(String.valueOf(seqnum)); data.add(serviceInstanceId); data.add(requestHost); data.add(request); data.add(now); dbLibService.writeData(sql, data, null); } catch (Exception e) { LOG.warn("Failed to save incoming request for request-id: " + requestId, e); } }
@Override public void markTransactionsAborted(String appcInstanceId) { if (logger.isTraceEnabled()) { logger.trace("marking in progress transactions to aborted"); } final String updateQuery = "UPDATE " + TransactionConstants.TRANSACTIONS + " SET " + STATE.getColumnName() + " = '" + RequestStatus.ABORTED.name() + "'," + END_TIME.getColumnName() + " = ? " + WHERE + TRANSACTION_ID.getColumnName() + " LIKE '" + appcInstanceId + "%' AND " + STATE.getColumnName() + " in (?,?)"; if (logger.isDebugEnabled()) { logger.debug("Update query " + updateQuery + " appc-instance-id " + appcInstanceId); } ArrayList<String> arguments = new ArrayList<>(); arguments.add(dateToStringConverterMillis(Instant.now())); arguments.add(RequestStatus.ACCEPTED.name()); arguments.add(RequestStatus.RECEIVED.name()); try { dbLibService.writeData(updateQuery, arguments, SCHEMA); } catch (SQLException e) { String message = "In progress transactions couldn't be marked aborted on server start up"; logger.error(message); throw new RuntimeException(message); } if (logger.isTraceEnabled()) { logger.trace("In progress transactions marked aborted"); } }
if (!dblibSvc.writeData(query, arguments, null)) { return mapQueryStatus(QueryStatus.FAILURE);
"values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; try { dbLibService.writeData(STORE_DATE_QUERY, prepareArguments(record), SCHEMA); } catch (SQLException e) { logger.error("Error on storing record " + record.toString(), e);
/** * Stores Artifact received from SDC into APP-C database * @param artifact - SDC Artifact object * @throws APPCException */ public void storeSDCArtifact(SDCArtifact artifact) throws APPCException { if(logger.isDebugEnabled()){ logger.debug("Entering storeSDCArtifact with : " + artifact.toString()); } try { initializeDBLibService(); ArrayList<String> arguments = prepareArguments(artifact); dbLibService.writeData(INSERT_QUERY,arguments,SCHEMA); } catch (SQLException e) { logger.error("Error storing artifact in database : " +artifact.toString(),e); throw new APPCException(e.getMessage(),e); } if(logger.isDebugEnabled()){ logger.debug("Exiting storeSDCArtifact"); } }
Integer version = getNextInternalVersion(artifact.getArtifactName()); arguments.add(version.toString()); dbLibService.writeData(INSERT_QUERY_WITH_INT_VER,arguments,SCHEMA); } else { // duplicate logger.debug(String.format("Artifact of type '%s' already deployed for resource_type='%s' and resource_version='%s'", logger.debug("Inserting SDC Reference data: " +reference.toString()); ArrayList<String> arguments = prepareReferenceArguments(reference); dbLibService.writeData(SDC_REF_INSERT_QUERY,arguments,SCHEMA); }else{ logger.debug("Artifact reference already exists for: " +reference.toString());