第2章 Oracle NoSQL Database向けの開発

目次

KVStoreハンドル
KVStoreConfigクラス
認証APIの使用
SSLの構成
ストアの認証
失効したログイン資格証明の更新
無認可アクセス

Oracle NoSQL DatabaseのKVStore内のデータには、製品に含まれているJava APIを使用してアクセスします。Oracle NoSQL Databaseアプリケーションの作成に使用できる2種類のプログラミング例があります。表APIを使用する方法と、キー/値ペアAPIを使用する方法です。表APIは、キー/値ペアAPIにはない重要な機能(2次索引など)を提供するため、顧客の大半は表APIを使用する必要があります。しかし、現在のリリースでは、ラージ・オブジェクトを表APIで表に挿入することはできません。ただし、LOB APIを表APIと併用して使用することはできます。

使用するAPIに関係なく、指定されたクラスおよびメソッドを使用することで、ストアへのデータの書込み、データの取得およびデータの削除を実行できます。これらのAPIを使用して一貫性と永続性の保証を定義できます。すべての操作が成功するか、いずれも成功しないかのどちらかになるよう、ストアに対する一連の操作を自動的に実行することもできます。

この本の後半で、ストアのアクセスに使用するJava APIとその概念について説明します。このマニュアルでは、表APIについて説明します。キー/値APIを使用する場合は、『Oracle NoSQL Database Key/Value APIスタート・ガイド』を参照してください。

注意

Oracle NoSQL DatabaseはJava 7を使用してテストされるため、Oracle NoSQL DatabaseはそのバージョンのJavaでのみ使用します。

KVStoreハンドル

ストア・アクセスを行うには、KVStoreハンドルを取得する必要があります。KVStoreハンドルの取得は、KVStoreFactory.getStore()メソッドを使用します。

KVStoreハンドルを取得する場合、KVStoreConfigオブジェクトを指定する必要があります。このオブジェクトによって、アクセス先のストアの重要なプロパティを識別します。KVStoreConfigクラスについては、この章の次の項で説明しますが、このクラスを使用して最低次のものを識別する必要があります。

  • ストアの名前。ここで指定する名前は、ストアをインストールしたときに使用した名前と同一である必要があります。

  • 1つ以上のヘルパー・クラスのネットワーク・アクセス情報。これらは、現在ストアに属しているノードのネットワーク名とポート情報です。複数のノードは、文字列の配列を使用して識別できます。1つでも複数でも使用できます。数が多いことによる影響はありません。1つの場合は選択されたホストが一時的にダウンする可能性があるので、複数の使用をお薦めします。

KVStoreConfigクラス・オブジェクト以外に、KVStoreFactory.getStore()PasswordCredentialsクラス・オブジェクトを指定することもできます。これは、認証を要求するように構成されているストアを使用している場合に実行します。詳細は、「認証APIの使用」を参照してください。

認証を要求しないストアの場合は、次のようにストア・ハンドルを取得します。

package kvstore.basicExample;

import oracle.kv.KVStore;
import oracle.kv.KVStoreConfig;
import oracle.kv.KVStoreFactory;

...

String[] hhosts = {"n1.example.org:5088", "n2.example.org:4129"};
KVStoreConfig kconfig = new KVStoreConfig("exampleStore", hhosts);
KVStore kvstore = KVStoreFactory.getStore(kconfig); 

KVStoreConfigクラス

KVStoreConfigクラスは、KVStoreハンドルのプロパティを記述するのに使用されます。ほとんどのプロパティはオプションであり、必須のものは、クラス・インスタンスの作成時に指定します。

KVStoreConfigを使用して指定できるプロパティは次のとおりです。

  • 一貫性

    一貫性は、レプリカ・ノードから読み取られたレコードがマスター・ノードに格納されている同じレコードと同一であることを表すプロパティです。詳細は、「一貫性保証」を参照してください。

  • 永続性

    永続性は、マスター・ノードで実行される書込み操作が、マスター・ノードに障害が起きたり、異常終了した場合でも失われないことを表すプロパティです。詳細は、「永続性保証」を参照してください。

  • ヘルパー・ホスト

    ヘルパー・ホストは、ストア内のノードにアクセスする場所を識別するホスト名とポートのペアです。複数のホストは、文字列の配列を使用して識別できます。通常、アプリケーション開発者はストアのデプロイヤまたは管理者からこれらのホスト名/ポートのペアを取得します。次に例を示します。

    String[] hhosts = {"n1.example.org:3333", "n2.example.org:3333"};
  • リクエスト・タイムアウト

    KVStoreハンドルが操作の完了を待つ、タイムアウトまでの時間を構成します。

  • ストア名

    ストアの名前を識別します。

  • パスワード資格証明およびオプションとして再認証ハンドラ

    次の認証に関する項を参照してください。