You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2012/04/17 14:41:11 UTC
svn commit: r1327072 -
/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/JMXBasicDataSource.java
Author: rmannibucau
Date: Tue Apr 17 12:41:10 2012
New Revision: 1327072
URL: http://svn.apache.org/viewvc?rev=1327072&view=rev
Log:
adding executeValidationQuery to the datasource MBean (thanks jlmonteiro for the idea)
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/JMXBasicDataSource.java
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/JMXBasicDataSource.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/JMXBasicDataSource.java?rev=1327072&r1=1327071&r2=1327072&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/JMXBasicDataSource.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/JMXBasicDataSource.java Tue Apr 17 12:41:10 2012
@@ -1,8 +1,12 @@
package org.apache.openejb.resource.jdbc;
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.sql.Statement;
import javax.management.Description;
import javax.management.MBeanServer;
import javax.management.ManagedAttribute;
+import javax.management.ManagedOperation;
import javax.management.ObjectName;
import org.apache.openejb.monitoring.DynamicMBeanWrapper;
import org.apache.openejb.monitoring.LocalMBeanServer;
@@ -181,4 +185,46 @@ public class JMXBasicDataSource {
public int getDefaultTransactionIsolation() {
return ds.getDefaultTransactionIsolation();
}
+
+ @ManagedOperation
+ @Description("Execute the validation query.")
+ public String executeValidationQuery() {
+ final String query = ds.getValidationQuery();
+ if (query == null || query.trim().isEmpty()) {
+ return "no validation query defined";
+ }
+
+ final Connection conn;
+ try {
+ conn = ds.getConnection();
+ } catch (SQLException e) {
+ return e.getMessage();
+ }
+
+ Statement statement = null;
+ try {
+ statement = conn.createStatement();
+ if (statement.execute(query)) {
+ return "OK";
+ }
+ return "KO";
+ } catch (SQLException e) {
+ return e.getMessage();
+ } finally {
+ if (statement != null) {
+ try {
+ statement.close();
+ } catch (SQLException e) {
+ // no-op
+ }
+ }
+ if (conn != null) {
+ try {
+ conn.close();
+ } catch (SQLException e) {
+ // no-op
+ }
+ }
+ }
+ }
}