Java API を使用したデータ・グリッド・アプリケーションの開発

カタログ・サーバーに接続したり、ObjectGrid インスタンスを取得したり、ObjectMap API を使用したりすることができます。

開始する前に

ユーザー・インターフェースで単純データ・グリッドを作成する必要があります。詳しくは、単純データ・グリッドの作成を参照してください。

サンプル・データ・グリッド・アプリケーション・ウォークスルー

  1. ClientClusterContext インスタンスを取得することによって、カタログ・サービスに 接続します。

    指定すべきカタログ・サーバーが、作成した単純データ・グリッドの ユーザー・インターフェースのページに表示されます。「データ・グリッド」 > 「単純データ・グリッド」 > my_simple_data_gridをクリックし、 「カタログ・サービス」フィールドにある値を使用します。

    カタログ・サーバーに 接続するには、ObjectGridManager API の connect メソッドを使用します。 使用する connect メソッドが必要とするのは、hostname:port という形式のカタログ・サーバー・エンドポイントのみです。hostname:port 値のリストをコンマで区切って、複数のカタログ・サーバー・エンドポイントを示すことができます。以下のコード・スニペットは、カタログ・サーバーへの接続方法 と ClientClusterContext インスタンスの取得方法を示します。

    ClientClusterContext ccc = ObjectGridManagerFactory.getObjectGridManager().connect("myXC10.myhost.com:2809", null, null);

    connect メソッドは、接続が成功するまで リスト内の各アプライアンスに接続しようとします。他のアプライアンスの 1 つが応答しなければ、自動フェイルオーバーが提供されます。

    カタログ・サーバーへの 接続が成功すれば、connect メソッド は ClientClusterContext インスタンスを戻します。この ClientClusterContext インスタンス は、ObjectGridManager API から ObjectGrid を取得するのに必要です。
  2. ObjectGrid インスタンスを取得します。

    ObjectGrid インスタンスを 取得するには、ObjectGridManager API の getObjectGrid メソッドを使用します。 getObjectGrid メソッドは、ClientClusterContext インスタンスと、 データ・グリッド・インスタンスの名前との両方を必要とします。ClientClusterContext インスタンスは、カタログ・サーバーへの接続中に取得されます。 データ・グリッド・インスタンスの名前は、 ユーザー・インターフェースで作成した単純データ・グリッドの名前です。 以下のコード・スニペットは、ObjectGridManager API の getObjectGrid メソッドを呼び出すことによってデータ・グリッドを取得する方法を示します。

    ObjectGrid grid = ObjectGridManagerFactory.getObjectGridManager().getObjectGrid(ccc, “my_simple_data_grid");
  3. 必要なセキュリティー資格情報を設定します。
    クライアント・セキュリティー構成を作成するほか、 アプリケーションに提供するユーザー名とパスワードを使用して資格情報生成プログラムを作成します。使用するユーザー名と パスワードには、アプライアンス上のデータ・グリッドにアクセスするための 権限が必要です。権限があるユーザーの作成について詳しくは、ユーザーおよびグループの管理を参照してください。
    		// Creates a ClientSecurityConfiguration object using the specified file
    		ClientSecurityConfiguration clientSC = ClientSecurityConfigurationFactory.getClientSecurityConfiguration();
    		clientSC.setSecurityEnabled(true);
    		// Creates a CredentialGenerator using the passed-in user and password.
    		CredentialGenerator credGen = new UserPasswordCredentialGenerator(username,password);
    		clientSC.setCredentialGenerator(credGen);
    		return clientSC;
  4. Session インスタンスを取得します。

    取得した ObjectGrid インスタンス から、Session を取得することができます。Session インスタンスは、ObjectMap インスタンスの取得とトランザクション区分の実行のために必要です。 以下のコード・スニペットは、ObjectGrid API の getSession メソッドを 呼び出すことによって Session インスタンスを取得する方法を示します。

    Session sess = grid.getSession();
  5. ObjectMap インスタンスを取得します。

    Session を取得した後、Session API の getMap メソッドを呼び出すことによって、Session インスタンスから ObjectMap インスタンスを取得することができます。getMap メソッドに渡す マップ・インスタンス名は、ユーザー・インターフェースで作成したデータ・グリッドと同じ名前です。 以下のコード・スニペットは、Session API の getMap メソッドを呼び出すことによって ObjectMap を取得する方法を示します。

    ObjectMap map1 = sess.getMap("my_simple_data_grid");
    前の例は、データ・グリッドにちなんで名前が付けられるデフォルト・マップ・インスタンスを 使用しています。次の例のように、新規マップ名を 指定することもできます。
    ObjectMap map2 = sess.getMap("my_simple_data_grid.CT.P");  
    ObjectMap map3 = sess.getMap("my_new_map.NONE");
    my_simple_data_grid.CT.P マップは作成時除去と ペシミスティック・ロックを使用するマップです。 my_new_map.NONE マップには、除去もロック設定もありません。詳しくは、動的マップの構成オプションを参照してください。
  6. ObjectMap メソッドを使用します。

    ObjectMap インスタンスを 取得した後、ObjectMap API を使用できます。ObjectMap インターフェースはトランザクション・マップであり、Session API の begin メソッドおよび commit メソッドを使用することによるトランザクション区分を必要とすることに注意してください。 アプリケーションに明示的なトランザクション区分がない場合、ObjectMap 操作は自動コミット・トランザクションで実行します。

    以下のコード・スニペットは、自動コミット・トランザクションでの ObjectMap API の使用方法を示しています。

    map1.insert(key1, value1);

    使用する鍵は、java.lang.String または Integer といった 既存の Java 型にできます。値は、任意の直列化可能オブジェクト・タイプから構成できます。

    以下の コード・スニペットは、明示的なトランザクション区分がある場合の ObjectMap API の使用方法を示しています。

    sess.begin();
    map1.insert(key1, value1);
    sess.commit();