C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: Androidから外部SQLServerへ接続するには#2


(過去ログ 94 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■56005 / inTopicNo.1)  Androidから外部SQLServerへ接続するには#2
  
□投稿者/ トンボン (1回)-(2010/12/22(Wed) 11:36:22)

分類:[Java] 

みなさま
こんにちは、初めて投稿させていただきます。どうぞよろしくお願いいたします。
タイトルの件について、私も同じ悩みをこの2週間位まったく解決できません。
ご存知の方解決方法ありませんでしょうか?

---以下 勝手にplotoffice様の内容を引用させていただきました。----------------------------
元キャッシュURLhttp://webcache.googleusercontent.com/search?q=cache:sNBy-5bsIhUJ:oshiete1.watch.impress.co.jp/qa6269786.html+com.microsoft.sqlserver.jdbc.SQLServerException:+%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%81%8C+SSL&cd=9&hl=ja&ct=clnk&gl=jp


Androidから外部SQLServerへ接続するには・・

現在、SQLServerを作成可能で、外部からアクセス可能なレンタルサーバを
使って、Windowsアプリを作り運用しています。

そこで、最近話題のAndroidを搭載している携帯やタブレットが多数登場し、
私も、Android携帯から、レンタルサーバのSQLServerにアクセスするアプリ
を開発したいと思いまして、開発をしているのですが、下記のエラーが出て
ぜんぜん前に進みませんでした。

いろいろと調べていくうちに、「Microsoft SQL Server 2005 JDBC Driver」
が、Ver1.2からSSLに対応したということで、Ver1.0を使えば接続することが
分かり、接続することができました。

また、Ver1.2以上でも下記のようにすればOKだということでした。

http://msdn.microsoft.com/ja-jp/library/bb879949(SQL.90).aspx

・・なのですが、どうしてもうまくいきません。何がおかしいのでしょうか?
教えてください。よろしくお願いします。

【環境】
・Windows XP SP3
・eclipse Helios Service Release 1 上でAndroid2.2をエミュレーション
・レンタルサーバのSqlServerは2005と2008の両方が使用可能
・Microsoft SQL Server 2005 JDBC Driver Ver3 を使用
 プロジェクトの参照ライブラリーにsqljdbc4.jarを追加

【ソースコード】
import java.sql.*;
(中略)

public void onClick(Veiw v) {
//データベース名、ユーザー名、パスワード
String dbName = "aaaaaaaa";
String user = "uuuuuuu";
String pass = "ppppppppp";
String webip = "jdbc:sqlserver://xxxxx.xxxxx.xxx.xx:1433";

  try {
    //JDBCドライバを指定
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

    //接続開始
Connection conn = DriverManager.getConnection(webip + ";" +
"databaseName=" + dbName + ";" +
"encrypt=true; trustServerCertificate=false;" +
"user=" + user + ";" +
"password=" + pass + ";");
    (中略)
  } catch (Exception objEx) {
    // エラー
  }
}

【エラー】
上記コードのDriverManager.getConnectionのところで・・

com.microsoft.sqlserver.jdbc.SQLServerException:
The driver could not establish a secure connection to Sql Server
by using Secure Sockets Layer(SSL) encryption.
Error:
Unable to make Socket non Blocking

投稿日時 - 2010-10-23 13:53:55


引用返信 編集キー/
■56006 / inTopicNo.2)  Re[1]: Androidから外部SQLServerへ接続するには#2
□投稿者/ もりお (315回)-(2010/12/22(Wed) 12:16:23)
2010/12/22(Wed) 12:26:13 編集(投稿者)
No56005(トンボン さん)に返信

文章を読むと SSL 未対応の JDBC Driver Ver1.0 では Sql Server に接続可能で、
SSL 対応の JDBC Driver Ver1.2 以上では Sql Server に接続不可能ということでしょうか。
と、いうことは Sql Server への接続に際して、SSL は不使用ですよね。
> http://msdn.microsoft.com/ja-jp/library/bb879949(SQL.90).aspx
リンク先を読むと以下の文章が記述されており、ご掲示いただいたコードは SSL を使用するよう
になっています。
「encrypt プロパティが true に設定され、trustServerCertificate プロパティが false
に設定されている場合、Microsoft SQL Server JDBC Driver は SQL Server の
SSL 証明書を検証します。」

接続文字列から encrypt=true; trustServerCertificate=false; を除去してみてはいかが
でしょうか。

引用返信 編集キー/
■56010 / inTopicNo.3)  Re[2]: Androidから外部SQLServerへ接続するには#2
□投稿者/ トンボン (2回)-(2010/12/22(Wed) 14:01:09)
もりお様
ご回答どうもありがとうございます。
>
> 接続文字列から encrypt=true; trustServerCertificate=false; を除去してみてはいかが
> でしょうか。
上記の文字列を除去しても同じエラーがAndroidのエミュレータ画面に表示されます。「日本語訳」
<ドライバがSSL(Secure Sockets Layer)暗号化によるSQLServerへの安全な接続を確立できませんでした。エラー:"Socket closed"。>
どうぞよろしくお願いいたします。
引用返信 編集キー/
■56028 / inTopicNo.4)  (削除)
□投稿者/ -(2010/12/23(Thu) 13:33:03)
この記事は(管理者)削除されました
引用返信 編集キー/
■56050 / inTopicNo.5)  Re[4]: Androidから外部SQLServerへ接続するには#2
□投稿者/ トンボン (3回)-(2010/12/24(Fri) 10:35:20)
No56028 (上岡勇人 さん) に返信
> ■No56010 (トンボン さん) に返信
>>もりお様
>>ご回答どうもありがとうございます。
> >>
> >>接続文字列から encrypt=true; trustServerCertificate=false; を除去してみてはいかが
> >>でしょうか。
>>上記の文字列を除去しても同じエラーがAndroidのエミュレータ画面に表示されます。「日本語訳」
>><ドライバがSSL(Secure Sockets Layer)暗号化によるSQLServerへの安全な接続を確立できませんでした。エラー:"Socket closed"。>
>>どうぞよろしくお願いいたします。
>
> はいあはい。

未決です。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -