import java.sql.PreparedStatement;\r
import java.sql.ResultSet;\r
import java.sql.SQLException;\r
-import java.sql.Statement;\r
import java.sql.Types;\r
import java.text.ParseException;\r
import java.util.Iterator;\r
-\r
+import org.apache.log4j.Logger;\r
import org.onap.dmaap.datarouter.provisioning.utils.DB;\r
import org.onap.dmaap.datarouter.provisioning.utils.RLEBitSet;\r
\r
/**\r
- * The representation of a Log Record, as retrieved from the DB. Since this record format is only used\r
- * to replicate between provisioning servers, it is very bare-bones; e.g. there are no field setters and only 1 getter.\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
* @author Robert Eby\r
* @version $Id: LogRecord.java,v 1.7 2014/03/12 19:45:41 eby Exp $\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 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
- Connection conn = null;\r
- try {\r
- conn = db.getConnection();\r
- try(Statement stmt = conn.createStatement()) {\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
+ 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
- e.printStackTrace();\r
- } finally {\r
- if (conn != null)\r
- db.release(conn);\r
+ intlogger.error("SQLException: " + e.getMessage());\r
}\r
}\r
\r
private final String reason;\r
private final long record_id;\r
private final long clength2;\r
+ private final String fileName;\r
\r
public LogRecord(ResultSet rs) throws SQLException {\r
super(rs);\r
\r
this.record_id = rs.getLong("RECORD_ID");\r
this.clength2 = rs.getLong("CONTENT_LENGTH_2");\r
+ this.fileName = rs.getString("FILENAME");\r
}\r
\r
public LogRecord(String[] pp) throws ParseException {\r
this.reason = pp[17];\r
\r
this.record_id = Long.parseLong(pp[18]);\r
- this.clength2 = (pp.length == 20) ? Long.parseLong(pp[19]) : 0;\r
+ this.clength2 = (pp.length == 21) ? Long.parseLong(pp[19]) : 0;\r
+ this.fileName = pp[20];\r
}\r
\r
public long getRecordId() {\r
ps.setNull(17, Types.VARCHAR);\r
ps.setLong(18, record_id);\r
ps.setNull(19, Types.BIGINT);\r
+ ps.setString(20, fileName);\r
} else if (type.equals("del")) {\r
ps.setNull(9, Types.VARCHAR);\r
ps.setNull(10, Types.VARCHAR);\r
ps.setNull(17, Types.VARCHAR);\r
ps.setLong(18, record_id);\r
ps.setNull(19, Types.BIGINT);\r
+ ps.setString(20, fileName);\r
} else if (type.equals("exp")) {\r
ps.setNull(9, Types.VARCHAR);\r
ps.setNull(10, Types.VARCHAR);\r
ps.setString(17, reason);\r
ps.setLong(18, record_id);\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(10, remoteAddr);\r
ps.setNull(17, Types.VARCHAR);\r
ps.setLong(18, record_id);\r
ps.setLong(19, clength2);\r
+ ps.setString(20, fileName);\r
} else if (type.equals("dlx")) {\r
ps.setNull(9, Types.VARCHAR);\r
ps.setNull(10, Types.VARCHAR);\r
ps.setNull(17, Types.VARCHAR);\r
ps.setLong(18, record_id);\r
ps.setLong(19, clength2);\r
+ ps.setString(20, fileName);\r
}\r
}\r
\r