1 package net.sf.jasperreports.mysql; 2 3 import java.sql.Connection ; 4 import java.sql.PreparedStatement ; 5 import java.sql.ResultSet ; 6 import java.sql.SQLException ; 7 import java.util.Date ; 8 9 13 public class StatusTask extends Task 14 { 15 private long pBytes_received; 16 private long pBytes_sent; 17 private long pCom_select; 18 private long pCom_insert; 19 private long pConnections; 20 21 private boolean firstUpdate = true; 22 private static final long TWO_TO_THE_32ND_POWER = 4294967296L; 23 24 30 public StatusTask(Database parent, Database destination) 31 { 32 super(parent, destination); 33 } 34 35 47 48 public void run() 49 { 50 try 51 { 52 String currentSource = parent.name; 54 55 Connection userConn = parent.getConnection(); 57 Connection repConn = destination.getConnection(); 58 59 PreparedStatement get_status = userConn.prepareStatement( 61 "SHOW STATUS LIKE ?;"); 62 PreparedStatement ins_status = repConn.prepareStatement("INSERT INTO status" 63 + 64 " VALUES (?,?,?,?,?,?,?,?);"); 65 66 long Bytes_received = 0; 68 long Bytes_sent = 0; 69 long Com_select = 0; 70 long Com_insert = 0; 71 long Connections = 0; 72 long Uptime = 0; 73 74 get_status.setString(1, "Bytes_received"); 76 ResultSet rBytes_received = get_status.executeQuery(); 77 if (rBytes_received.next()) 78 { 79 Bytes_received = rBytes_received.getLong("Value"); 80 rBytes_received.close(); 81 } 82 83 get_status.setString(1, "Bytes_sent"); 85 ResultSet rBytes_sent = get_status.executeQuery(); 86 if (rBytes_sent.next()) 87 { 88 Bytes_sent = rBytes_sent.getLong("Value"); 89 rBytes_sent.close(); 90 } 91 92 get_status.setString(1, "Com_select"); 94 ResultSet rCom_select = get_status.executeQuery(); 95 if (rCom_select.next()) 96 { 97 Com_select = rCom_select.getLong("Value"); 98 rCom_select.close(); 99 } 100 101 get_status.setString(1, "Com_insert"); 103 ResultSet rCom_insert = get_status.executeQuery(); 104 if (rCom_insert.next()) 105 { 106 Com_insert = rCom_insert.getLong("Value"); 107 rCom_insert.close(); 108 } 109 110 get_status.setString(1, "Connections"); 112 ResultSet rConnections = get_status.executeQuery(); 113 if (rConnections.next()) 114 { 115 Connections = rConnections.getLong("Value"); 116 rConnections.close(); 117 } 118 119 get_status.setString(1, "Uptime"); 121 ResultSet rUptime = get_status.executeQuery(); 122 if (rUptime.next()) 123 { 124 Uptime = rUptime.getLong("Value"); 125 rUptime.close(); 126 } 127 if (firstUpdate == false) 129 { 130 131 Date d = new Date (); 133 java.sql.Timestamp SQLdate = new java.sql.Timestamp ( 134 d.getTime()); 135 136 ins_status.setString(1, currentSource); 147 ins_status.setTimestamp(2, SQLdate); 148 long deltaBytesRecevied = Bytes_received - pBytes_received; 149 if (deltaBytesRecevied < 0) { 150 deltaBytesRecevied += TWO_TO_THE_32ND_POWER; 151 } 152 ins_status.setLong(3, deltaBytesRecevied); 153 long deltaBytesSent = Bytes_sent - pBytes_sent; 154 if (deltaBytesSent < 0) { 155 deltaBytesSent += TWO_TO_THE_32ND_POWER; 156 } 157 ins_status.setLong(4, deltaBytesSent); 158 long deltaSelect = Com_select - pCom_select; 159 if (deltaSelect < 0) { 160 deltaSelect += TWO_TO_THE_32ND_POWER; 161 } 162 ins_status.setLong(5, deltaSelect); 163 long deltaInsert = Com_insert - pCom_insert; 164 if (deltaInsert < 0) { 165 deltaInsert += TWO_TO_THE_32ND_POWER; 166 } 167 ins_status.setLong(6, deltaInsert); 168 long deltaConnections = Connections - pConnections; 169 if (deltaConnections < 0) { 170 deltaConnections += TWO_TO_THE_32ND_POWER; 171 } 172 ins_status.setLong(7, deltaConnections); 173 ins_status.setLong(8, Uptime); 174 ins_status.executeUpdate(); 176 ins_status.close(); 177 get_status.close(); 178 } else 180 { 181 firstUpdate = false; 182 } 183 pBytes_received = Bytes_received; 184 pBytes_sent = Bytes_sent; 185 pCom_select = Com_select; 186 pCom_insert = Com_insert; 187 pConnections = Connections; 188 189 } catch (SQLException e) 190 { 191 e.printStackTrace(); 192 System.out.println("Exception: " + e.getMessage()); 193 System.out.println("The Status Task did not complete."); 194 System.exit(1); 195 } 196 } 198 199 } 200 | Popular Tags |