30日間の無料評価版をお試しいただけます。

バージョン9.8.1から、JNDIデータソース接続はデフォルトで無効化されています。これは高度なシステム構成オプションを設定することで復元することができます。
手順はこちらをご参照ください。

様々なデータソース接続と合わせて、YellowfinではJNDI(Java Naming and Directory Interface)データソースを作成することができます。このタイプの接続は様々な用途に利用され、異なる環境(開発、統合、テスト、本番など)間でのアプリケーション移行や、外部のディレクトリサービスへの接続に使用されます。


JNDIデータソースへの接続は、Yellowfin外で設定します。これには、すべてのデータベース設定が定義されているTomcatの外部構成ファイルで、データベースへの接続を参照しなくてはいけません。

今回の例では、「classicmodels」という名前のMySQLデータベースを使用して、JNDI接続を確立します。



  • ステップ1:コンテキストの設定

上記のMySQLデータベースへJNDIデータソースの接続を確立するためには、以下のコンテンツに従いリソースXML要素を作成します。


<Resource
name="jdbc/classicmodels"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/classicmodels"
username="root"
password="root"
/>



この要素を、「context.xml」ファイルのルート要素<Context>内に追加します。context.xmlファイルは、以下の2箇所に配置することができます(存在しない場合は作成します)。

    • ウェブアプリケーションのMETA-INFディレクトリ内:JNDIデータソースはアプリケーション自体でのみ利用可能なため、他のアプリケーションと共有することができません。また、これによりシステム構成はアプリケーションに依存します。Yellowfinアプリケーションの場合、コンテキストは「appserver/conf/Catalina/localhost/ROOT.xml」に配置しなくてはいけません。
    • $CATALINA_BASE/confディレクトリ内:JNDIデータソースがすべてのウェブアプリケーションで利用でき、あらゆるアプケーションから独立するため、こちらに配置するのが好ましいです。


  • ステップ2:web.xmlの構成

web.xmlファイル(appserver/webapps/ROOT/WEB-INF/web.xml)に、以下の設定を追加します。


<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/classicmodels</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>



これは、特定の名前空間「jdbc/classicmodels」下でアプリケーションがJNDIデータソースを利用できるようにするために必要な設定です。


  • ステップ3:YellowfinでJNDIデータソース接続を作成

jdbc/classicmodelsの例を使用し、java:comp/envを介してコンテキストを参照することで、構成済みのJNDIデータソースを検索することができます。

例:

java:comp/env/jdbc/classicmodels