Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.Statement;
- import com.microsoft.sqlserver.jdbc.SQLServerDriver;
- public class Main {
- private static final String JDBC_URL_TEMPLATE = "jdbc:sqlserver://mssql-2016.mw.lab.eng.bos.redhat.com;DatabaseName=%s";
- private static final String DATABASE_NAME_TEMPLATE = "dballo%02d";
- public static void main(String[] args) throws Exception {
- DriverManager.registerDriver(new SQLServerDriver());
- for (int i = 0; i < 30; i++) {
- String database = String.format(DATABASE_NAME_TEMPLATE, i);
- String user = database;
- String password = database;
- String jdbcUrl = String.format(JDBC_URL_TEMPLATE, database);
- try (Connection conn = DriverManager.getConnection(jdbcUrl, user, password)) {
- boolean before = isReadCommitedSnapshotOn(conn, database);
- if (!before)
- enableReadCommitedSnapshot(conn);
- boolean after = isReadCommitedSnapshotOn(conn, database);
- System.out.println("Database: " + database + ", value: " + before + ", " + (before ? "not changed" : "changed to " + after));
- }
- }
- }
- private static boolean isReadCommitedSnapshotOn(Connection connection, String database) throws Exception {
- try (Statement stmt = connection.createStatement()) {
- try (ResultSet result = stmt.executeQuery("SELECT is_read_committed_snapshot_on FROM sys.databases WHERE name = '" + database + "'")) {
- result.next();
- return result.getBoolean(1);
- }
- }
- }
- private static void enableReadCommitedSnapshot(Connection connection) throws Exception {
- try (Statement stmt = connection.createStatement()) {
- stmt.execute("ALTER DATABASE CURRENT SET READ_COMMITTED_SNAPSHOT ON WITH ROLLBACK IMMEDIATE;");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement