mssqlserver
MS SQLServer
ちと情報が古いです。
SQL Serverのログインについて
SQL Server 2000の認証方法には、WindowsユーザーアカウントでログインするWindows認証と、DBに固有ユーザを設定するSQL Server認証という2種類の認証方法があります。Microsoftの純正JDBCドライバでは、SQL Server認証のみ使用可能です。(Windows認証可能なサードパーティ製品があるようです)。
「SQL Serverの信頼関係接続に関連付けられていません。」というエラーが出る場合は、SQL Server認証が無効になっています。Enterprise Managerで認証方法を混合モードに設定するとJDBC接続が可能になります。
saユーザについて
SQL Server認証を有効にするとsaユーザが有効になります。SQL Serverのsaユーザでログインしようとするワームが存在します。必ず最新のパッチを当て、SQL Server認証を使用する場合は必ずsaユーザにパスワードを設定してください。
複製した接続
マニュアルトランザクションモード中は、複製した接続を開始できません。 Cannot Start a Cloned Connection While in Manual Transaction Mode.
上記のSQLExceptionは、自動コミットがオフ(トランザクション有効)の時、Statementを閉じずに、同一のConnectionインスタンスからもう一つStatementをオープンしようとするとスローされる。
String url = "jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=test"; String u = "hoge"; String p = "hogehoge"; Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); Connection c = DriverManager.getConnection(url, u, p); c.setAutoCommit(false); Statement s1 = c.createStatement(); Statement s2 = c.createStatement(); // ここでSQLException
URLを以下のように修正する。ただし、わずかに実行効率が下がる。
jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=test;SelectMethod=cursor
Cannot Start a Cloned Connection While in Manual Transaction Mode
mssqlserver.txt · 最終更新: 2013/06/05 03:00 by nullpon