2009-07-21 47 views
3

SQL ServerへのJDBC接続文字列を設定する必要があります。 この質問はC# ADO.Net connection questionに似ています。これはJDBC接続文字列に固有です。SQL ServerクラスタのJDBC接続文字列

通常、JDBC文字列の形式は "jdbc:sqlserver:// {host}:{port}"です。 SQLサーバクラスタの場合、クラスタ名はvvv \ iii({仮想サーバ} {インスタンス名})です。

vvv \ iii文字列をサーバー名として使用する場合、「新しいデータソースからSQL Serverへ」ウィザードを使用してODBC接続をセットアップすることは問題ありません。しかし、JDBC接続文字列には特定のホストとポートが必要です。

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

答えて

7

「名前付きおよび複数のSQL Serverインスタンス」のMicrosoft Technet pageに記載されているように、JDBC文字列内で「instanceName」プロパティを使用できることが判明しました。

:何私の場合で働いていたことは、仮想サーバのVVVとデータベースのインスタンス名IIIについては、以下の文字列だった "JDBC:のSQLServer:// VVV; instanceNameの= III"

+0

私は自分の答えを受け入れることを嫌いですが、これまでのところ最高のものです;-) – pythonquick

0

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

2

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

ではなく、この JDBC //サーバー/ db_nameの名前付きインスタンスに接続するときに、悲しいこと... JDBC接続文字列は次のようになりますこと

:// server_name:1433/db_name; instance = instance_name

デフォルトのデータベース "/ db_name"はオプションです。除外されている場合、接続はSQL Serverログインに割り当てられた既定のデータベースを使用します。

0

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

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

MSSQLクラスタに接続するためのセットアップにRailoデータソースをしようとしているときに、私はこの問題に遭遇した:

だから私のデータソース定義は次のようになります。

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

関連する問題