小编Sye*_*din的帖子

尝试从Select创建一个表 - SqL Server 2008抛出错误

嗨,我正在尝试使用内部选择语句创建一个表...

例如:

CREATE TABLE JmxMonSer AS (SELECT * FROM services WHERE monitoring_enabled = 1);
Run Code Online (Sandbox Code Playgroud)

但不断收到错误:

关键字"AS",严重级15附近的语法错误

请指教

sql-server create-table sql-server-2008

0
推荐指数
2
解决办法
4万
查看次数

如何确保只启动一个线程

情况是,我必须确保当我尝试getConnection时只创建一个RecoveryThread,如果它在PrimaryData Source上的getConnection失败,那么我的代码是:

public Connection getConnection() throws SQLException {
        if (isFailedOver()) {
            try {
                return failoverDataSource.getConnection();
            } catch (SQLException e) {
                throwBigError();
            }
        }
        Connection connection = null;
        try {
            connection = dataSource.getConnection();
            return connection;
        }
        catch (SQLException unexpected) {
            return requestFailover();
        }
    }

    private Connection requestFailover() throws SQLException {
        this.dbFailoverMutex.requestFailover();
        DBFailoverRecoveryService recoveryService = new DBFailoverRecoveryService(this.dbFailoverMutex,this.dataSource);
        Thread recoveryServiceThread = new Thread(recoveryService, "DBFailover Recovery Service");
        recoveryServiceThread.start();
        try {
            return failoverDataSource.getConnection();
        } catch (SQLException e) {
            throwBigError();
        }
        return null;
    }
Run Code Online (Sandbox Code Playgroud)

如果有两个不同的线程尝试getConnection,这可能最终调用requestFailover()方法两次,当它被调用两次时,这将最终创建两个recoveryService线程,我该怎么做以确保永远不会发生?

在此先感谢您的帮助.

java multithreading countdownlatch

0
推荐指数
1
解决办法
279
查看次数