SQL Server 2008に接続するとローカルマシンで開発するときに問題なく動作します。SQL Server 2008 r2からの応答なしでJDBC接続がハングする
package oata;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import sun.applet.Main;
public class Sql {
public static final String SQLDRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
protected Connection conn = null;
private String ip = "";
private int port = 0;
private String databaseName = "";
private String db_userid = "";
private String db_password = "";
public void callDb(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException, SQLException{
System.out.println("Initialising variables");
ip = args[0];
port = Integer.parseInt(args[1]);
databaseName = args[2];
db_userid = args[3];
db_password = args[4];
try{
Log logger = LogFactory.getLog(Main.class);
System.out.println("Opening logger...");
logger.debug("opening driver " + SQLDRIVER);
System.out.println("Creating connection instance...");
Class.forName(SQLDRIVER).newInstance();
System.out.println("Driver Manager.getConnection...");
conn = DriverManager.getConnection(getDBURL(), db_userid, db_password);
System.out.println("Connection prepare statement...");
PreparedStatement ps = conn.prepareStatement("select * from nstupersonal");
System.out.println("Executing query...");
ResultSet rs = ps.executeQuery();
while(rs.next()){
System.out.println(rs.getString("StudentId"));
}
}catch(Exception e){
System.out.println(e.getMessage());
}
conn.close();
}
private String getDBURL(){
String url = "";
try {
url = "jdbc:sqlserver://" + ip
+":" + port +";databaseName="+
databaseName + ";user=" + db_userid + ";password="+db_password;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return url;
}
}
実行しますコードです:ここで
はコードです。コンソールでは文字通り、プロダクションでハングアップします。それは常にSQL Server 2008でハングアップするようだが、他のすべての顧客のために本番環境で正常に動作する。 ...
SQL Serverの1433でTCP/IPが有効になっており、管理コンソールでリモート接続がtrueに設定されていることを許可します。
javaの任意のアイデアIPアドレス、ポートdbnameはユーザのパスワード
-jar? SQLドライバが間違っていますか?私はあるsqljdbc4.jar
結果のコマンドプロンプトがある...
初期化変数 オープニング・ロガー... ドライバーManager.getConnection ...例外がスローされません取得し
を使用してい
おかげで、
D
どこがハングしますか?より多くのロギングステートメントを挿入して、ハングする行を追跡できますか? – beny23
System outとthrowメッセージを持つようにコードを更新しましたが、例外はスローされません。 – david99world