3

SQLServerへのJDBC接続文字列を設定する必要があります。この質問は、 C#ADO.Net接続の質問に似ています。これは、JDBC接続文字列に固有のものです。

JDBC文字列の通常の形式は、「jdbc:sqlserver:// {host}:{port}」です。これで、SQLサーバークラスターのクラスター名はvvv \ iii({仮想サーバー} {インスタンス名})になります。

サーバー名としてvvv\iii文字列を使用する場合は、「SQLServerへの新しいデータソース」ウィザードを使用してODBC接続を設定することに問題はありません。ただし、JDBC接続文字列には特定のホストとポートが必要なようです。

JDBC接続文字列をSQLServerクラスターに作成する方法はありますか?

4

5 に答える 5

7

Microsoft Technetページの「名前付きおよび複数のSQLServerインスタンス」のセクションに記載されているように、JDBC文字列内で「instanceName」プロパティを使用できることがわかりました。私の場合に機能したのは、仮想サーバーvvvとデータベースインスタンス名iiiの次の文字列でした。

"jdbc:sqlserver:// vvv; instanceName = iii"

于 2009-07-22T03:55:15.010 に答える
2

クラスタまたはスタンドアロン環境でSQLServerという名前のインスタンスを使用する場合、各SQLServerインスタンスには起動時に動的にポート番号が割り当てられます。SQL Serverブラウザサーバーは、各インスタンスへの要求を処理します。これは、サーバーを再起動するたびに、各インスタンスで使用されるポート番号が変更される可能性があるためです。サーバーの再起動時に最初に起動するインスタンスには1433が割り当てられますが、2つのインスタンスがある場合、そのうちの1つが常に1433を取得するという保証はありません。インスタンスの起動にかかる起動時間と回復時間に影響する検証可能なものがいくつかあります。これは毎回変わる可能性があります。

それは悲しいことです...名前付きインスタンスに接続する場合、jdbc接続文字列は次のようになります。jdbc:sqlserver:// server_name / db_name; instance = instance_name

このjdbc:sqlserver:// server_name:1433 / db_name; instance=instance_nameではなく

デフォルトのデータベース「/db_name」はオプションであることに注意してください。除外された場合、接続はSQLServerログインに割り当てられたデフォルトのデータベースを使用します。

于 2013-09-27T22:15:57.820 に答える
0

クラスタリソースには、ホスト名とリスニングポートがあります。j dbc:sqlserver://{virtualserver}:1433(またはデフォルトのリスニングポートをリッスンしていない場合は適切なリスニングポート)を使用します。

于 2009-07-21T16:26:09.623 に答える
0

マーク・スチュワートの発言にコメントしたい のですが、評判が足りません。私のソースは/db_nameについて言及しておらず、それを機能させることもできません。おそらく、インスタンス名が混乱している別のケースですか?

于 2013-12-04T09:55:31.977 に答える
0

クラスタがこれを決定するので、ポート定義をオフのままにしてください。

したがって、私のデータソース定義は次のようになります。

jdbc:sqlserver://sqlcluster_hostname\instancename;DATABASENAME=databasename;sendStringParametersAsUnicode=false;SelectMethod=direct

RailoデータソースをセットアップしてMSSQLクラスターに接続しようとしたときに、この問題が発生しました。

少しトピックから外れています...標準のRailoデータソースMSSQLドライバーオプションは、ポートフィールドを空のままにするとポートを「-1」に設定しますが、「0」に設定すると、ポート定義が完全に削除され、すべてが機能します。ただし、最善の方法は、「その他-JDBCドライバー」を選択して、上記のようにJDBC接続文字列を完全に定義することです。

于 2014-02-07T03:20:02.883 に答える