スキップしてメイン コンテンツに移動

JDBC でSQLserverに接続するとき(その2)

 前に試したときは、SQLserverが動いているサーバにJava7/8を入れていました。

TLS1.1が使えるSQLserverの入ったサーバに、TLS1.1を使えなくした別のサーバのJava7/8から接続できるのだろうか?と疑問になり再度試しました。

結果
 TLS1.1が使えるSQLserverの入ったサーバに対して
  別のサーバのJava7:接続可能
  別のサーバのJava8:接続可能
 TLS1.1が使えないSQLserverの入ったサーバに対して
  別のサーバのJava7:接続不可
  別のサーバのJava8:接続可能
でした。

JavaはWindowsのOS部分のTLS設定に影響されないのか。。。

===========忘れるだろうから試したコードを貼っておこう===========
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class Test1 {
    public static void main(String[] args) {

        final String URL = "jdbc:sqlserver://SQLサーバのIP:1433;"
            + "Database=master;integratedSecurity=false;"
            + "user=sa;password=P@ssw0rd";
//        final String SQL = "select @@version as version";
        final String SQL = "SELECT DISTINCT (encrypt_option) FROM sys.dm_exec_connections;";

        try (Connection conn = DriverManager.getConnection(URL);
            PreparedStatement ps = conn.prepareStatement(SQL)){

            try(ResultSet rs = ps.executeQuery()){
                        while (rs.next()) {
                               System.out.println(
                        rs.getString("encrypt_option"));
                }
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            System.out.println("処理が完了しました");
        }
    }
}

コメント

このブログの人気の投稿

LS220DのHDD交換

 BuffaloのNASであるLS220Dの赤色LEDが点滅していました。。。 HDD故障だそうです。 元から入っていたのは、東芝の1TB(TOSHIBA DT01ACA1)でした。 手元にWDの2TB(WD20EARS)、4TB(WD40EZRX)、6TB(WD60EZAZ)、SeaGateの4TB(ST4000DM000)、8TB(ST8000AS0002)が あったので、後日容量アップができるのでは、と思い入れてみました。 RAID再構築をクリックしてみたら・・・  WD   2TB:「指定したメソッドに対するパラメータが不正です。」   4TB:「指定したメソッドに対するパラメータが不正です。」   6TB:リビルド成功  SeaGate   4TB:「指定したメソッドに対するパラメータが不正です。」   8TB:「指定したメソッドに対するパラメータが不正です。」 という散々な結果でした。 何がダメなんだろう?と思い返してみると、WDの6TBだけは未使用の ものでした。 ほかのHDDは入れる前にパーティション情報をWindows上で消したけど、 もしかしてMBR領域(というかHDDの先頭セクタ0)になにか情報があると ダメなのかも。 ということで、Linux機にWD 4TB(/dev/sdb)をつないで、  sudo dd if=/dev/zero of=/dev/sdb bs=512 count=1  sudo sgdisk -Z /dev/sdb を実行してからLS220に入れました。 「破損」という表示になってしまいしたが、RAID再構築を押すと 再構築が始まった、、、、ぽい。

Windows Server 2016 にOracle11gをインストール

.Net3.5が要るらしい。 orz 一回目のインストールの際に「.Net3.5が必要」ってダイアログが山ほど出てきた。 .Net3.5が必要な場合のエラーダイアログはどうして「ダウンロードしてインストールせよ」なんだろう? 参考にした  http://otndnld.oracle.co.jp/easy/oracle11gr1/windows/pdf/SelfStudy_01_win.pdf だと、LISTNERの追加設定(?)が必要そうに書いてあるけど、やってみたら「すでに作成済み」ってなる。 それを信じて進めてみたらどうにもうまくいかない。。。 OracleDBをGUIで操作しよう、っていうのが間違いのようか気がする (逆にSQLserverをCLIでやるのは狂気の沙汰だと思う)。 一旦、アンインストールすることにして、スタートメニューにある「Universal Installer」 を実行してアンインストールしようとしたら「batファイルを実行せよ」というダイアログが。 ググりかたが悪かったのか、 「アンインストールはUniversal Installerからしかないぜ。その他の方法はどーなっても知らないぜHAHAHA」(意訳) と書いてるOracleさんしか見つからない。 どっちを信じたらとも思ったが、目の前のほうが正しいだろうという考えに従いそのバッチ を実行しました。(Universal Installerさんは何度やっても消そうともしてくれないし) バッチ実行後、しばらく放置したら終わったらしい。 Oracleさんがインストールされていたっぽいディレクトリもだいたい消えていた。 消えたよね?ってことで一度再起動してから、Oracle11gのインストールを再び実行。 エラーは出ずに無事終了。 (.Net3.5がインストール済みだったからかな??)  sqlplus / as sysdba は問題ない。でも、別PC(Linux機)からの接続はNG。  lsnrctl status コマンドの実行結果から、やはりlocalhost以外からの接続はLISTENしてない模様。 listener.oraをちょっと修正して、LISTNERサービスを再起動。  lsnrctl status を再度実行すると、IPアドレスの分も表示されたので、外部からも接続できるだろう...

VirtualBoxのUSBメモリからの起動

検索すると、USBメモリからの起動はできないような感じだけど、 UEFIブートだとできた。 手順 1.設定→システム→UEFIを有効化 2.設定→USB でUSBメモリを仮想から使えるようにする3.F12を押しつつ仮想を起動  ※ブートメニューが出てくるまで挫けずがんばる4.ブートメニューの「Boot Manager」に入って、USBメモリを選択 UEFIじゃないのは無理なのかも。