Ich habe folgendes Programm geschrieben, um eine Anfrage an DB2 v9.0 zu stellen:
Doch als Ergebnis bekomme ich stets 0.0 heraus. Wenn ich die selbe Anfrage in der Kommandozeile eingebe, erhalte ich als Antwort 47.04. Also kann es jedenfalls nicht an der Query liegen.
Kann mir vielleicht jemand sagen, wo mein Fehler liegt?
Code:
import java.sql.*;
public class TestClient {
public static void main(String[] args) {
float result = getHitRatio("IBMDEFAULTBP");
System.out.println("aktuelle Hit Ratio: " + result);
}
public static float getHitRatio (String bufferPoolName)
{
String db2Driver = "COM.ibm.db2.jdbc.app.DB2Driver";
Connection con = null;
float bufferPoolSize = 0.0f;
try {
Class.forName(db2Driver);
con = DriverManager.getConnection("jdbc:db2:SAMPLE");
String query = "SELECT TOTAL_HIT_RATIO_PERCENT "
+ "FROM SYSIBMADM.BP_HITRATIO "
+ "WHERE BP_NAME='" + bufferPoolName + "'";
Statement st = con.createStatement();
ResultSet rs = st.executeQuery(query);
if (rs.next()) {
bufferPoolSize = Float.parseFloat(rs.getString(1));
}
} catch (ClassNotFoundException cnfe) {
// do nothing
} catch (SQLException sqle) {
// do nothing
} finally {
if (con != null) {
try {
con.close();
} catch (SQLException sqle) {
// do nothing
}
}
}
return bufferPoolSize;
}
}
Doch als Ergebnis bekomme ich stets 0.0 heraus. Wenn ich die selbe Anfrage in der Kommandozeile eingebe, erhalte ich als Antwort 47.04. Also kann es jedenfalls nicht an der Query liegen.
Kann mir vielleicht jemand sagen, wo mein Fehler liegt?