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>