Managing Ports
CData Virtuality Server に接続するには、ネットワーク通信に使用する ポートを知ることが重要です。セキュアな環境で、すべてのネットワーク・トラフィックがファイアウォール対応でなければならない場合は特にそうです。間違ったポートに接続しようとしたり、ポートがファイアウォールを通してアクセスできない場合、問題が発生する可能性があります。
CData Virtuality Server はいくつかのデフォルトポートと共に出荷されます。Linux の場合は%pathToDVserver%/standalone/configuration/dvserver-standalone.xml の下部に、Windows の場合は%pathToDVserver%standalone/configuration の下部にあります。以下はその例です:
<
socket
-binding-group
name
=
"standard-sockets"
default-interface
=
"public"
port-offset
=
"${jboss.socket.binding.port-offset:0}"
>
<
socket
-binding
name
=
"management-http"
interface
=
"management"
port
=
"${jboss.management.http.port:9990}"
/>
<
socket
-binding
name
=
"management-https"
interface
=
"management"
port
=
"${jboss.management.https.port:9993}"
/>
<
socket
-binding
name
=
"ajp"
port
=
"${jboss.ajp.port:8009}"
/>
<
socket
-binding
name
=
"http"
port
=
"${jboss.http.port:8080}"
/>
<
socket
-binding
name
=
"https"
port
=
"${jboss.https.port:8443}"
/>
<
socket
-binding
name
=
"txn-recovery-environment"
port
=
"4712"
/>
<
socket
-binding
name
=
"txn-status-manager"
port
=
"4713"
/>
<
socket
-binding
name
=
"dv-jdbc"
port
=
"31000"
/>
<
socket
-binding
name
=
"dv-jdbc-ssl"
port
=
"31001"
/>
<
socket
-binding
name
=
"dv-odbc"
port
=
"35432"
/>
<
socket
-binding
name
=
"dv-odbc-ssl"
port
=
"35433"
/>
<
outbound
-socket-binding
name
=
"mail-smtp"
>
<
remote
-destination
host
=
"localhost"
port
=
"25"
/>
</
outbound
-socket-binding>
</
socket
-binding-group>
スニペットが示唆するように、さまざまな目的のためにいくつかのポートがあります。主なものはJDBC接続とODBC接続です。例えば、CData Virtuality Studio はJDBC またはJDBC over SSL接続を使用しますが、Tableau はODBC 接続を必要とします。セキュアなODBC 接続の構成については、このページを参照してください。また、CData Virtuality Server をホストするマシンで、ソケットバインディングが競合する可能性のあるサービスやプログラムが実行されていないことを確認してください。例えば、すでにプロセスが実行されていて、そのプロセスがポート 9990 を使用している場合、このポート経由でサーバーに接続できないことがあります。さらに悪いことに、すでに使用中のソケットがサーバーの起動を妨げることがあります。
Ensure no process other than the CData Virtuality Server uses one of the ports from dvserver-standalone.xml and ensure that the ports are open and no firewall blocks communication with the Server!
Port Offset
コンフリクトがある場合は、CData Virtuality Server の該当するポートまたは他のプロセスのポートを変更します。あるいは、port-offset
プロパティを使用して、使用されているすべてのポートを特定の値だけインクリメントすることもできます。オフセットを0
から10000
に設定すると、Server はポート41000
(JDBC), 41001
(JDBC over SSL), 45432
(ODBC)などを使用するようになります。これはコンフリクトを防ぐ簡単な方法ですが、ファイアウォールのルールを注意深く調整し、可能な変更についてドキュメントを確認する必要があります。
Configuring Proxy Settings
HTTP プロキシサーバーを使用する環境に CData Virtuality Server をデプロイした場合、CData Virtuality Server はこのプロキシを使用するように構成する必要があります。これもdvserver-standalone.xmlファイルで行います。CData Virtuality Server が通信するプロキシのIP アドレスとポート、および 直接コンタクトするホストのリストを指定できます(プロキシ干渉なし)。</extensions>の終了タグを見つけ、その直後にConfigurationを配置します:
...
</
extensions
>
<
system
-properties property
name
=
"http.proxyHost"
value
=
"ProxyIP"
/>
<
system
-properties property
name
=
"http.proxyPort"
value
=
"ProxyPort"
/>
<
system
-properties property
name
=
"http.nonProxyHosts"
value
=
"ListOfHostsThatAreDirectlyContacted"
/>
http.nonProxyHosts
の値は、直接通信される複数のホスト('|
' で区切られる)のリストを含むことができることに注意してください:例えば、value="localhost|clr.mycomp.org|*.mycomp.local"
の場合、 '*
' はワイルドカードを表します。 安全なプロキシ接続を構成するために、 https.proxyHost
と https.proxyPort
という名前のプロパティもあります。
Enabling ODBC over SSL Connections
安全なODBC接続を有効にするには、Javaキーストアにインポートされた証明書が必要です。このキーストアを指定し、ODBC over SSL接続のソケットバインディングを追加するには、dvserver-standalone.xmlファイルに数行を追加します。デフォルトのポートと同様に、必要に応じてファイアウォールルールを有効にし、他のプロセスですでに使用されているポートを指定しないでください。
証明書がない場合は、組み込みJava SDKに同梱されているkeytoolツールを使って作成することができます。%dvDir%/JDK/binサブフォルダにあります。以下のコードは、新しい証明書を作成し、指定したキーストアに保存します:
- Linuxで自己署名証明書を作成します:
keytool -genkey -
alias
teiid -keyalg RSA -validity 365 -keystore %pathToStore%
/server
.keystore -storetype JKS
- Windows での自己署名証明書の作成:
keytool -genkey -
alias
teiid -keyalg RSA -validity 365 -keystore %pathToStore%\server.keystore -storetype JKS
証明書を取得したら、dvserver-standalone.xmlで以下のセクションを検索し、%pathToKeystoreFile%
および%keystorePassword%
のプレースホルダを適宜置き換えます:
<
transport
name
=
"odbc-ssl"
socket-binding
=
"dv-odbc-ssl"
protocol
=
"pg"
>
<
authentication
security-domain
=
"dv-security"
/>
<
ssl
mode
=
"enabled"
ssl-protocol
=
"SSLv3"
>
<
keystore
name
=
"%pathToKeystoreFile%"
password
=
"%keystorePassword%"
/>
</
ssl
>
</
transport
>