本記事では CData サポート担当からこんなことを聞かれたらどこを確認すべきか?という観点で、よく頂くお問合せ内容をご紹介します。
記事はこちら →CData JDBC Driver for Elasticsearch は、Java Web アプリケーションに簡単に統合して利用することができます。本記事では、Jetty でドライバーをコネクションプールとして設定することで、効率的にElasticsearch データをアプリケーションで連携利用する方法を説明します。Jetty でJNDI resource for Elasticsearch を設定します。
次の手順で、Jetty とElasticsearch の接続を確立します。
Jetty ベースでJNDI モジュールを有効化します。JNDI を有効化するコマンドラインは以下の通り:
java -jar ../start.jar --add-to-startd=jndi
<Configure id='elasticsearchdemo' class="org.eclipse.jetty.webapp.WebAppContext">
<New id="elasticsearchdemo" class="org.eclipse.jetty.plus.jndi.Resource">
<Arg><Ref refid="elasticsearchdemo"/></Arg>
<Arg>jdbc/elasticsearchdb</Arg>
<Arg>
<New class="cdata.jdbc.elasticsearch.ElasticsearchDriver">
<Set name="url">jdbc:elasticsearch:</Set>
<Set name="Server">127.0.0.1</Set>
<Set name="Port">9200</Set>
<Set name="User">admin</Set>
<Set name="Password">123456</Set>
</New>
</Arg>
</New>
</Configure>
接続するには、Server およびPort 接続プロパティを設定します。 認証には、User とPassword プロパティ、PKI (public key infrastructure)、またはその両方を設定します。 PKI を使用するには、SSLClientCert、SSLClientCertType、SSLClientCertSubject、およびSSLClientCertPassword プロパティを設定します。
本製品は、認証とTLS/SSL 暗号化にX-Pack Security を使用しています。TLS/SSL で接続するには、Server 値に'https://' を接頭します。Note: PKI を 使用するためには、TLS/SSL およびクライアント認証はX-Pack 上で有効化されていなければなりません。
接続されると、X-Pack では、設定したリルムをベースにユーザー認証およびロールの許可が実施されます。
Web xml でリソースを設定します:
jdbc/elasticsearchdb
javax.sql.DataSource
Container
これで、java:comp/env/jdbc/elasticsearchdb へのルックアップでElasticsearch データにアクセスできます:
InitialContext ctx = new InitialContext();
DataSource myelasticsearch = (DataSource)ctx.lookup("java:comp/env/jdbc/elasticsearchdb");
ここでは、シンプルなコネクションプーリングシナリオでのドライバーの接続について説明しました。追加での連携ケースについては、Jetty ドキュメントのWorking with Jetty JNDI 参照してください。