+++ /dev/null
-/*******************************************************************************\r
- * ============LICENSE_START==================================================\r
- * * org.onap.dmaap\r
- * * ===========================================================================\r
- * * Copyright © 2017 AT&T Intellectual Property. All rights reserved.\r
- * * ===========================================================================\r
- * * Licensed under the Apache License, Version 2.0 (the "License");\r
- * * you may not use this file except in compliance with the License.\r
- * * You may obtain a copy of the License at\r
- * * \r
- * * http://www.apache.org/licenses/LICENSE-2.0\r
- * * \r
- * * Unless required by applicable law or agreed to in writing, software\r
- * * distributed under the License is distributed on an "AS IS" BASIS,\r
- * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * * See the License for the specific language governing permissions and\r
- * * limitations under the License.\r
- * * ============LICENSE_END====================================================\r
- * *\r
- * * ECOMP is a trademark and service mark of AT&T Intellectual Property.\r
- * *\r
- ******************************************************************************/\r
-\r
-\r
-package com.att.research.datarouter.provisioning.beans;\r
-\r
-import java.io.IOException;\r
-import java.io.OutputStream;\r
-import java.sql.Connection;\r
-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 com.att.research.datarouter.provisioning.utils.DB;\r
-import com.att.research.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
- * @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
- * Print all log records whose RECORD_IDs are in the bit set provided.\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
- 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
- Statement stmt = conn.createStatement();\r
- Iterator<Long[]> iter = bs.getRangeIterator();\r
- 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
- ResultSet rs = ps.executeQuery();\r
- while (rs.next()) {\r
- LogRecord lr = new LogRecord(rs);\r
- os.write(lr.toString().getBytes());\r
- }\r
- rs.close();\r
- ps.clearParameters();\r
- }\r
- ps.close();\r
- stmt.close();\r
- } catch (SQLException e) {\r
- e.printStackTrace();\r
- } finally {\r
- if (conn != null)\r
- db.release(conn);\r
- }\r
- }\r
-\r
- private final String type;\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 result;\r
- private final int attempts;\r
- private final String reason;\r
- private final long record_id;\r
- private final long clength2;\r
-\r
- public LogRecord(ResultSet rs) throws SQLException {\r
- super(rs);\r
- this.type = rs.getString("TYPE");\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.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.clength2 = rs.getLong("CONTENT_LENGTH_2");\r
- }\r
- public LogRecord(String[] pp) throws ParseException {\r
- super(pp);\r
- this.type = pp[8];\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.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.clength2 = (pp.length == 20) ? Long.parseLong(pp[19]) : 0;\r
- }\r
-\r
- public long getRecordId() {\r
- return record_id;\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
- }\r
-\r
- @Override\r
- public void load(PreparedStatement ps) throws SQLException {\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(10, remoteAddr);\r
- ps.setString(11, user);\r
- ps.setInt (12, status);\r
- ps.setNull (13, Types.INTEGER);\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.setNull (19, Types.BIGINT);\r
- } else if (type.equals("del")) {\r
- ps.setNull (9, Types.VARCHAR);\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 (15, result);\r
- ps.setNull (16, Types.INTEGER);\r
- ps.setNull (17, Types.VARCHAR);\r
- ps.setLong (18, record_id);\r
- ps.setNull (19, Types.BIGINT);\r
- } else if (type.equals("exp")) {\r
- ps.setNull (9, Types.VARCHAR);\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.setNull (15, Types.INTEGER);\r
- ps.setInt (16, attempts);\r
- ps.setString(17, reason);\r
- ps.setLong (18, record_id);\r
- ps.setNull (19, Types.BIGINT);\r
- } else if (type.equals("pbf")) {\r
- ps.setString( 9, feedFileid);\r
- ps.setString(10, remoteAddr);\r
- ps.setString(11, user);\r
- ps.setNull (12, Types.INTEGER);\r
- ps.setNull (13, Types.INTEGER);\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 (19, clength2);\r
- } else if (type.equals("dlx")) {\r
- ps.setNull ( 9, Types.VARCHAR);\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.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 (19, clength2);\r
- }\r
- }\r
-\r
- public static void main(String[] a) throws IOException {\r
- LogRecord.printLogRecords(System.out, new RLEBitSet(a[0]));\r
- }\r
-}\r