Liberty での MongoDB 接続の構成

MongoDB を使用するアプリケーションは、 Libertyで実行できます。 MongoDB インスタンスにアクセスするために、アプリケーションは、サーバー用に構成した MongoDB Java™ ドライバーおよびデータ・ソースを使用します。

MongoDB (「humongous (巨大な)」という語に由来) は、拡張が容易で高性能なオープン・ソースの NoSQL データベースです。

安定化されたフィーチャー: mongodb-2.0 フィーチャーは安定化されました。 このフィーチャーがサポートする MongoDB Java ドライバーのバージョン 2.10.0 から 2.14.2 は、サービスが終了しました。 mongodb-2.0 フィーチャーを使用する代わりに、 Mongo の CDI プロデューサーを作成してください。 CDI プロデューサーは、ユーザーの要件を満たすどの Mongo のバージョンも使用できます。

始めに

MongoDB Java ドライバーのバージョン 2.10.0 から 2.14.2 のみがサポートされます。 SSL のための最小は 2.11.0、証明書認証のための最小は 2.12.0 です。

このタスクについて

アプリケーションが MongoDBを使用できるようにするには、 MongoDB Java ドライバー用の共有ライブラリーと、 Libertyserver.xml ファイル内の共有ライブラリーへのライブラリー参照を構成します。 アプリケーションは、アプリケーションから直接、または server.xml ファイル内の mongodb-2.0 フィーチャーおよび mongoDB インスタンス構成を介して、 MongoDB にアクセスできます。

手順

  1. アプリケーションおよび Liberty ランタイムがアクセスできる場所に MongoDB Java ドライバーをインストールします。

    例えば、 MongoDB ドライバーの .jar ファイルを Liberty_profile_root/usr/servers/server_name/lib ディレクトリーに配置します。

  2. Liberty サーバーの server.xml ファイル内の MongoDB ドライバー .jar ・ファイルの共有ライブラリーを構成します。
    <library id="MongoLib">
       <file name="${server.config.dir}/lib/mongo.jar" />
    </library>
  3. アプリケーションから直接アクセスするか、 mongodb-2.0 フィーチャーを使用して、アプリケーションが MongoDBにアクセスできるようにします。
    • アプリケーションから MongoDB への直接アクセスを可能にします。
      1. server.xml ファイルの application エレメントで共有ライブラリーのライブラリー参照を構成します。
        <application ...>
           <classloader commonLibraryRef="MongoLib"/>
        </application>
        これで、アプリケーションは MongoDB API に 直接アクセスできるようになります。 アプリケーションがランタイム注入エンジンを使用するようにしたい場合は、続けて次のステップを実行してください。
    • server.xml ファイルで mongodb-2.0 フィーチャー、mongo、および mongoDB エレメントを構成します。
      1. mongodb-2.0 フィーチャーを server.xml ファイルに追加します。
        <featureManager>
           <feature>mongodb-2.0</feature>
           <feature>jndi-1.0</feature>
        </featureManager>
        JNDI フィーチャーは、リソースの検索に JNDI を使用 する場合のみ必要です。 リソース・インジェクションを使用する場合は必要ありません。
      2. 前のステップで作成された共有ライブラリーへの参照を持つ mongo エレメント を構成します。
        <mongo id="mongo" libraryRef="MongoLib" />
      3. mongoDB エレメントを構成します。
        <mongoDB jndiName="mongo/testdb" mongoRef="mongo" databaseName="db-test" />

        JNDI 名を構成すると、アプリケーションまたは Liberty ランタイムが MongoDB インスタンスを検索できるようになります。

      4. アプリケーションが MongoDB にアクセスできるようにします。

        以下の例は、JNDI 検索とリソース注入の両方を示しています。

        public class TestServlet extends HttpServlet {
              @Resource(name = "mongo/testdb")
              protected DB db;
              ...
           protected void doGet(HttpServletRequest request,
                 HttpServletResponse response) throws ServletException, IOException {
           // Alternatively use InitialContext lookup
              DB lookup = (DB) new InitialContext().lookup("java:comp/env/mongo/testdb");
        ...
      5. JNDI 検索を使用する場合は、 アプリケーションの web.xml ファイルにリソース環境参照を追加します。
        <resource-env-ref>
           <resource-env-ref-name>mongo/testdb</resource-env-ref-name>
           <resource-env-ref-type>com.mongodb.DB</resource-env-ref-type>
        </resource-env-ref>

次の作業

アプリケーションから MongoDB を使用できるかテストします。

MongoDB エレメントについて詳しくは、 MongoDB Integration 2.0を参照してください。