# Problem mit Anfrage an DB2



## Wargod (12. Sep 2007)

Ich habe folgendes Programm geschrieben, um eine Anfrage an DB2 v9.0 zu stellen:


```
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?


----------



## SlaterB (12. Sep 2007)

wie kann man nur Exceptons abfangen, sie dann aber nicht ausgeben


cnfe.printStackTrace();

sqle.printStackTrace();

!!


----------



## tuxedo (12. Sep 2007)

Jepp, da wird wohl eine Exception geworfen die dank "// do nothing" im verborgenen bleibt. 

Also Stracktrace anschauen und checken wo der Fehler liegt und "// do nothing" ganz schnell und für immer aus dem Hirn streichen.

- Alex


----------

