This is just for people who come here via search on how to set metrics in OracleConnection, I spend great deal of time on this, so might help someone.
After you get your "connection" this should work:
DatabaseMetaData dmd = connection.getMetaData();
Connection metaDataConnection = null;
if(dmd != null)
metaDataConnection = dmd.getConnection();
if(!(metaDataConnection instanceof OracleConnection))
log.error("Connection is not instance of OracleConnection, returning");
return; /* Not connection u want */
OracleConnection oraConnection = (OracleConnection)metaDataConnection;
String metrics = new String[END_TO_END_STATE_INDEX_MAX]; // Do the rest below...
It works for me for OracleConnection, but I face diff issue when setting metrics:
short zero = 0;
After proxying connection via my method where I set metrics few times, I get:
java.sql.SQLRecoverableException: No more data to read from socket
But I think it has to do with some Spring wiring inits or connection pool.