いくつかのレコードをデータベースに挿入し、いくつかのレコードを読み戻すための非常にシンプルなGUIアプリを作成しようとしています(特別なことは何もありません。3行のテーブルが1つだけで、リレーションはありません)。起源...
package EntryProg;
import java.sql.*;
import com.microsoft.sqlserver.jdbc.*;
public class CourseDataEntryHandler
{
private Connection connect;
private CallableStatement callState;
private ResultSet rSet;
private SQLServerDataSource dSource;
public CourseDataEntryHandler()
{
rSet = null;
callState = null;
dSource = new SQLServerDataSource();
dSource.setUser(REDACTED);
dSource.setPassword(REDACTED);
dSource.setServerName(REDACTED);
dSource.setPortNumber(REDACTED);
dSource.setDatabaseName(REDACTED);
dSource.setEncrypt(true);
dSource.setTrustServerCertificate(true);
try
{
ここでエラー
connect = dSource.getConnection();
終了エラー
}
catch (SQLServerException e)
{
//TODO Figure out how to handle -- logging for now, console
do
{
System.out.println(e.getErrorCode());
System.out.println(e.getMessage());
System.out.println(e.getSQLState());
e = (SQLServerException) e.getNextException();
} while (e != null);
System.out.println("END");
System.out.println();
}
}
次のエラーが発生します...
(コード)0
(メッセージ)SQLServerが応答を返しませんでした。接続が閉じられました。
(状態)08S01
ユーザー、パス、サーバー名、ポート、DB名がすべて正確であることを確認しました。ユーザー名を無効なユーザー名に変更すると、「ログインできませんでした」というエラーが報告されるので、サーバーにアクセスしていることがわかります。
一度は完全に接続できなかったので、「接続が多すぎる」問題ではないことを知っています。現在サーバーにログインしているのはSQLManagementStudio経由の私だけだからです。ログアウトしても機能しないので、接続の問題ではありません。
アプリケーションユーザーには、データリーダー/データライターの権限もあります。(それが重要な場合は、Eclipseを使用しています。sqljdbc4.jarライブラリを参照しています)。
これのトラブルシューティングをどこに行けばいいのか途方に暮れています。どんな助けでも大歓迎です。
更新の編集 -接続文字列を試し、DriverManager.getConnection(connString)を使用して接続を設定しましたが、どちらも機能しませんでした。結果は同じです。また、SQL Server 2008 r2は、私が使用しているSQLServerのバージョンです。
編集 私は接続をテストするための簡単なC#プログラムを作成しました。接続が.netで正常に機能することを確認してください。残念ながら、このプロジェクトにはJavaを使用する必要があります(これはクラスで自分で行うことを選択したプロジェクトであり、要件のみです。それはJavaにあるのですか...教師は何が起こっているのか見当がつかない)。