2011-08-10 15 views
0

私はMS SQLデータベースに接続するJavaプログラムを持っています。プログラムの動作日食を通じて実行しているとき、私はAIXを通してそれを実行するとは完全には、しかし、私はエラーを取得する:telnetで外部データベースに接続

ます。java.sql.SQLException:ネットワークエラーにIOException:リモートホストが試み接続操作を拒否しました。

サーバにpingできますが、サーバにtelnetで接続できません。私はまた、私のWindowsデスクトップからtelnetすることができません。

私は接続するためにJTDSを使用しています:ここで

String connectionString = "jdbc:jtds:sqlserver://"+dropez_ip_address+"/"+dropez_db_name; 
ResultSet rs = null; 
Statement stmt = null; 

try{ 

    Class.forName("net.sourceforge.jtds.jdbc.Driver"); 
    Connection conn = DriverManager.getConnection(connectionString, dropez_db_username, dropez_db_password); 

    stmt = conn.createStatement(); 
}catch(Exception e){} 

は問題に関してのjTDSからいくつかのドキュメントがあるが、私はまだ問題を解決することはできませんよ。

Why do I get java.sql.SQLException: "Network error IOException: Connection refused: connect" when trying to get a connection? 

The "Connection refused" exception is thrown by jTDS when it is unable to connect to the server. There may be a number of reasons why this could happen: 

    - The server name is misspelled or the port number is incorrect. 
    - SQL Server is not configured to use TCP/IP. Either enable TCP/IP from SQL Server's Network Utility app or have jTDS connect via named pipes (see the URL format for information on how to do this). 
    - There is a firewall blocking port 1433 on the server. 

To check whether TCP/IP is enabled and the port is not blocked you can use "telnet 1433". Until telnet doesn't connect, jTDS won't either. If you can't figure out why, ask your network administrator for help. 
+0

あなたは「私は成功し、サーバをpingが、サーバにtelnetすることはできませんよできるとはどういう意味ですか私もからtelnetで接続することはできませんよ。 telnetがインストールされていないか、そのtelnetを使用する権限がないか、telnetを試みても何も起こらないということですか? – Hoons

+0

Telnetはこれとは関係ありません。 Telnet経由でデータベースに接続していません。あなたのデータベースサーバーはあなたのアプリからのSQL Serverポート(1433)での接続を許可していません。これはおそらくネットワーク構成やファイアウォール構成の問題であり、ソフトウェアの問題ではありません。 – Joe

答えて

0

あなたのSQL Serverデータベースおそらくそれを可能にするために、TCP/IPプロトコルが有効になっていません:のMicrosoft SQL Serverの2005年から

  1. - >構成ツール、 「Microsoft SQL Server Configuration Manager」を開きます。

  2. [SQL Server 2005ネットワーク構成]を展開し、[プロトコル]をクリックします。

  3. [TCP/IP]を右クリックし、[有効にする]をクリックします。プロトコルのアイコンが変更され、プロトコルが有効になっていることが示されます。 SQL Server 2008の

SQL Server 2008 Network Configuration

+0

SQL Server 2008を使用していますが、SQL Server Configuration Managerを開くと、SQL Native Client 10.0の設定 - >エイリアスの下にデータベースがあり、プロトコルが 'tcp'であり、変更が必要ありません。 – Mike

+0

@Mike SQL Server 2008でそれを確認するためのスクリーンショットを追加しました。 – Marcelo

+0

データベースが私のものではなくホスティングサービスから提供されるため、これらのオプションはありませんか? – Mike

2

ポート1433でtelnetできない場合は、マシンとサーバーの中間のどこかのファイアウォールによってブロックされます。これはJava関連の問題ではありません。

「それはEclipseでは完全に実行されますが、AIXではなく」と言うと、約2台の異なるコンピュータを使用していますか?もしそうなら、eclipseのものはファイアウォールされていません。あなたがアプリを配備したものはブロックされます。

でも、javaとは関係ありません。 TCP-IPモデルのレベル3エラー(TCPレイヤー)です。

よろしく、 ステファン

+0

はい、プログラムはデスクトップ上で実行しますが、AIXサーバーから実行すると実行されません。 – Mike

+0

したがって、AIXサーバー上のファイアウォールで、telnetポート上の発信接続やネットワーク上の他のルールをブロックする可能性があります。 – Snicolas

関連する問題