\r
package org.onap.dmaap.datarouter.provisioning.beans;\r
\r
+import com.att.eelf.configuration.EELFLogger;\r
+import com.att.eelf.configuration.EELFManager;\r
import java.io.IOException;\r
import java.io.OutputStream;\r
import java.sql.Connection;\r
import java.sql.Types;\r
import java.text.ParseException;\r
import java.util.Iterator;\r
-import org.apache.log4j.Logger;\r
-import org.onap.dmaap.datarouter.provisioning.utils.DB;\r
+import org.onap.dmaap.datarouter.provisioning.utils.ProvDbUtils;\r
import org.onap.dmaap.datarouter.provisioning.utils.RLEBitSet;\r
\r
+\r
/**\r
* The representation of a Log Record, as retrieved from the DB. Since this record format is only used to replicate\r
* between provisioning servers, it is very bare-bones; e.g. there are no field setters and only 1 getter.\r
*/\r
public class LogRecord extends BaseLogRecord {\r
\r
- /**\r
- * Print all log records whose RECORD_IDs are in the bit set provided.\r
- *\r
- * @param os the {@link OutputStream} to print the records on\r
- * @param bs the {@link RLEBitSet} listing the record IDs to print\r
- * @throws IOException\r
- */\r
- private static Logger intlogger = Logger.getLogger("org.onap.dmaap.datarouter.provisioning.beans");\r
-\r
- public static void printLogRecords(OutputStream os, RLEBitSet bs) throws IOException {\r
- final String sql = "select * from LOG_RECORDS where RECORD_ID >= ? AND RECORD_ID <= ?";\r
- DB db = new DB();\r
- try (Connection conn = db.getConnection()) {\r
- Iterator<Long[]> iter = bs.getRangeIterator();\r
- try (PreparedStatement ps = conn.prepareStatement(sql)) {\r
- while (iter.hasNext()) {\r
- Long[] n = iter.next();\r
- ps.setLong(1, n[0]);\r
- ps.setLong(2, n[1]);\r
- try (ResultSet rs = ps.executeQuery()) {\r
- while (rs.next()) {\r
- LogRecord lr = new LogRecord(rs);\r
- os.write(lr.toString().getBytes());\r
- }\r
- ps.clearParameters();\r
- }\r
- }\r
- }\r
- } catch (SQLException e) {\r
- intlogger.error("SQLException: " + e.getMessage());\r
- }\r
- }\r
-\r
+ private static EELFLogger intlogger = EELFManager.getInstance().getLogger("InternalLog");\r
private final String type;\r
- private final String feedFileid;\r
+ private final String feedFileID;\r
private final String remoteAddr;\r
private final String user;\r
private final int status;\r
- private final int subid;\r
- private final String fileid;\r
+ private final int subID;\r
+ private final String fileID;\r
private final int result;\r
private final int attempts;\r
private final String reason;\r
- private final long record_id;\r
+ private final long recordId;\r
private final long clength2;\r
private final String fileName;\r
\r
- public LogRecord(ResultSet rs) throws SQLException {\r
+ /**\r
+ * LogRecord constructor.\r
+ * @param rs ResultSet from SQL statement\r
+ * @throws SQLException in case of SQL error\r
+ */\r
+ private LogRecord(ResultSet rs) throws SQLException {\r
super(rs);\r
this.type = rs.getString("TYPE");\r
- this.feedFileid = rs.getString("FEED_FILEID");\r
+ this.feedFileID = rs.getString("FEED_FILEID");\r
this.remoteAddr = rs.getString("REMOTE_ADDR");\r
this.user = rs.getString("USER");\r
this.status = rs.getInt("STATUS");\r
\r
- this.subid = rs.getInt("DELIVERY_SUBID");\r
- this.fileid = rs.getString("DELIVERY_FILEID");\r
+ this.subID = rs.getInt("DELIVERY_SUBID");\r
+ this.fileID = rs.getString("DELIVERY_FILEID");\r
this.result = rs.getInt("RESULT");\r
\r
this.attempts = rs.getInt("ATTEMPTS");\r
this.reason = rs.getString("REASON");\r
\r
- this.record_id = rs.getLong("RECORD_ID");\r
+ this.recordId = rs.getLong("RECORD_ID");\r
this.clength2 = rs.getLong("CONTENT_LENGTH_2");\r
this.fileName = rs.getString("FILENAME");\r
}\r
\r
+ /**\r
+ * LogRecord Constructor from string array.\r
+ * @param pp string array of LogRecord attributes\r
+ * @throws ParseException in case of parse error\r
+ */\r
public LogRecord(String[] pp) throws ParseException {\r
super(pp);\r
this.type = pp[8];\r
- this.feedFileid = pp[9];\r
+ this.feedFileID = pp[9];\r
this.remoteAddr = pp[10];\r
this.user = pp[11];\r
this.status = Integer.parseInt(pp[12]);\r
\r
- this.subid = Integer.parseInt(pp[13]);\r
- this.fileid = pp[14];\r
+ this.subID = Integer.parseInt(pp[13]);\r
+ this.fileID = pp[14];\r
this.result = Integer.parseInt(pp[15]);\r
\r
this.attempts = Integer.parseInt(pp[16]);\r
this.reason = pp[17];\r
\r
- this.record_id = Long.parseLong(pp[18]);\r
+ this.recordId = Long.parseLong(pp[18]);\r
this.clength2 = (pp.length == 21) ? Long.parseLong(pp[19]) : 0;\r
this.fileName = pp[20];\r
}\r
\r
+ /**\r
+ * Print all log records whose RECORD_IDs are in the bit set provided.\r
+ *\r
+ * @param os the {@link OutputStream} to print the records on\r
+ * @param bs the {@link RLEBitSet} listing the record IDs to print\r
+ * @throws IOException in case of I/O error\r
+ */\r
+ public static void printLogRecords(OutputStream os, RLEBitSet bs) throws IOException {\r
+ Iterator<Long[]> iter = bs.getRangeIterator();\r
+ try (Connection conn = ProvDbUtils.getInstance().getConnection();\r
+ PreparedStatement ps = conn.prepareStatement(\r
+ "select * from LOG_RECORDS where RECORD_ID >= ? AND RECORD_ID <= ?")) {\r
+ while (iter.hasNext()) {\r
+ Long[] nxt = iter.next();\r
+ ps.setLong(1, nxt[0]);\r
+ ps.setLong(2, nxt[1]);\r
+ try (ResultSet rs = ps.executeQuery()) {\r
+ while (rs.next()) {\r
+ LogRecord lr = new LogRecord(rs);\r
+ os.write(lr.toString().getBytes());\r
+ }\r
+ ps.clearParameters();\r
+ }\r
+ }\r
+ } catch (SQLException e) {\r
+ intlogger.error("PROV0001 printLogRecords: " + e.getMessage(), e);\r
+ }\r
+ }\r
+\r
public long getRecordId() {\r
- return record_id;\r
+ return recordId;\r
}\r
\r
@Override\r
public String toString() {\r
return\r
- sdf.format(getEventTime()) + "|"\r
- + "LOG|"\r
- + getPublishId() + "|"\r
- + getFeedid() + "|"\r
- + getRequestUri() + "|"\r
- + getMethod() + "|"\r
- + getContentType() + "|"\r
- + getContentLength() + "|"\r
- + type + "|"\r
- + feedFileid + "|"\r
- + remoteAddr + "|"\r
- + user + "|"\r
- + status + "|"\r
- + subid + "|"\r
- + fileid + "|"\r
- + result + "|"\r
- + attempts + "|"\r
- + reason + "|"\r
- + record_id + "|"\r
- + clength2\r
- + "\n";\r
+ sdf.format(getEventTime()) + "|"\r
+ + "LOG|"\r
+ + getPublishId() + "|"\r
+ + getFeedid() + "|"\r
+ + getRequestUri() + "|"\r
+ + getMethod() + "|"\r
+ + getContentType() + "|"\r
+ + getContentLength() + "|"\r
+ + type + "|"\r
+ + feedFileID + "|"\r
+ + remoteAddr + "|"\r
+ + user + "|"\r
+ + status + "|"\r
+ + subID + "|"\r
+ + fileID + "|"\r
+ + result + "|"\r
+ + attempts + "|"\r
+ + reason + "|"\r
+ + recordId + "|"\r
+ + clength2\r
+ + "\n";\r
}\r
\r
@Override\r
ps.setString(1, type);\r
super.load(ps); // loads fields 2-8\r
if (type.equals("pub")) {\r
- ps.setString(9, feedFileid);\r
+ ps.setString(9, feedFileID);\r
ps.setString(10, remoteAddr);\r
ps.setString(11, user);\r
ps.setInt(12, status);\r
ps.setNull(15, Types.INTEGER);\r
ps.setNull(16, Types.INTEGER);\r
ps.setNull(17, Types.VARCHAR);\r
- ps.setLong(18, record_id);\r
+ ps.setLong(18, recordId);\r
ps.setNull(19, Types.BIGINT);\r
ps.setString(20, fileName);\r
} else if (type.equals("del")) {\r
ps.setNull(10, Types.VARCHAR);\r
ps.setString(11, user);\r
ps.setNull(12, Types.INTEGER);\r
- ps.setInt(13, subid);\r
- ps.setString(14, fileid);\r
+ ps.setInt(13, subID);\r
+ ps.setString(14, fileID);\r
ps.setInt(15, result);\r
ps.setNull(16, Types.INTEGER);\r
ps.setNull(17, Types.VARCHAR);\r
- ps.setLong(18, record_id);\r
+ ps.setLong(18, recordId);\r
ps.setNull(19, Types.BIGINT);\r
ps.setString(20, fileName);\r
} else if (type.equals("exp")) {\r
ps.setNull(10, Types.VARCHAR);\r
ps.setNull(11, Types.VARCHAR);\r
ps.setNull(12, Types.INTEGER);\r
- ps.setInt(13, subid);\r
- ps.setString(14, fileid);\r
+ ps.setInt(13, subID);\r
+ ps.setString(14, fileID);\r
ps.setNull(15, Types.INTEGER);\r
ps.setInt(16, attempts);\r
ps.setString(17, reason);\r
- ps.setLong(18, record_id);\r
+ ps.setLong(18, recordId);\r
ps.setNull(19, Types.BIGINT);\r
ps.setString(20, fileName);\r
} else if (type.equals("pbf")) {\r
- ps.setString(9, feedFileid);\r
+ ps.setString(9, feedFileID);\r
ps.setString(10, remoteAddr);\r
ps.setString(11, user);\r
ps.setNull(12, Types.INTEGER);\r
ps.setNull(15, Types.INTEGER);\r
ps.setNull(16, Types.INTEGER);\r
ps.setNull(17, Types.VARCHAR);\r
- ps.setLong(18, record_id);\r
+ ps.setLong(18, recordId);\r
ps.setLong(19, clength2);\r
ps.setString(20, fileName);\r
} else if (type.equals("dlx")) {\r
ps.setNull(10, Types.VARCHAR);\r
ps.setNull(11, Types.VARCHAR);\r
ps.setNull(12, Types.INTEGER);\r
- ps.setInt(13, subid);\r
+ ps.setInt(13, subID);\r
ps.setNull(14, Types.VARCHAR);\r
ps.setNull(15, Types.INTEGER);\r
ps.setNull(16, Types.INTEGER);\r
ps.setNull(17, Types.VARCHAR);\r
- ps.setLong(18, record_id);\r
+ ps.setLong(18, recordId);\r
ps.setLong(19, clength2);\r
ps.setString(20, fileName);\r
}\r
}\r
\r
- public static void main(String[] a) throws IOException {\r
- LogRecord.printLogRecords(System.out, new RLEBitSet(a[0]));\r
+ public static void main(String[] args) throws IOException {\r
+ LogRecord.printLogRecords(System.out, new RLEBitSet(args[0]));\r
}\r
}\r