NoSQLHandleの作成

アプリケーションで、Oracle NoSQL Databaseプロキシへの接続となるNoSQLHandleを作成します。このNoSQLHandleを使用して、Oracle NoSQL Database表にアクセスし、Oracle NoSQL Database操作を実行できます。NoSQLHandleをインスタンス化するには、NoSQLHandleConfigクラスの参照をNoSQLHandleFactory.CreateNoSQLHandleメソッドに渡します。NoSQLHandleConfigクラスをインスタンス化するために、Oracle NoSQL DatabaseプロキシURLをパラメータ化されたコンストラクタとして指定します。

Oracle NoSQL Databaseサーバーで、非セキュア・モードまたはセキュア・モードでプロキシを構成できます。アプリケーションではNoSQLHandleConfigクラスを使用して、ハンドルが使用するセキュリティ構成情報を指定できます。非セキュア・アクセスの場合は、引数なしのコンストラクタを使用してStoreAccessTokenProviderクラスのインスタンスを作成します。セキュア・アクセスの場合は、パラメータ化されたコンストラクタを使用して、StoreAccessTokenProviderクラスのインスタンスを作成します。StoreAccessTokenProviderクラスの参照をNoSQLHandleConfigクラスに提供して、適切な接続を確立します。

非セキュア・プロキシに接続するNoSQLHandleを作成する例を次に示します。

// Service URL of the proxy
String endpoint = "http://localhost:5000";

// Create a default StoreAccessTokenProvider for accessing the proxy
StoreAccessTokenProvider provider = new StoreAccessTokenProvider();

// Create a NoSQLHandleConfig
NoSQLHandleConfig config = new NoSQLHandleConfig(endpoint);

// Setup authorization provider using StoreAccessTokenProvider
config.setAuthorizationProvider(provider);

// Create NoSQLHandle using the information provided in the config
NoSQLHandle handle = NoSQLHandleFactory.createNoSQLHandle(config);

セキュア・プロキシに接続するNoSQLHandleを作成する例を次に示します。

// Service URL of the secure proxy
String endpoint = "https://localhost:5000";

// Username of kvstore
String userName = "driver_user";

// Password of the driver user
String password = "DriverPass@@123";

//Construct StoreAccessTokenProvider with username and password
StoreAccessTokenProvider provider = 
    new StoreAccessTokenProvider(userName, password.toCharArray());

// Create a NoSQLHandleConfig
NoSQLHandleConfig config = new NoSQLHandleConfig(endpoint);

// Setup authorization provider using StoreAccessTokenProvider
config.setAuthorizationProvider(provider);

// Create NoSQLHandle using the information provided in the config
NoSQLHandle handle = NoSQLHandleFactory.createNoSQLHandle(config);

セキュア・アクセスの場合、StoreAccessTokenProviderのパラメータ化されたコンストラクタは次の引数を使用します。

  • usernameは、kvstoreのユーザー名です。
  • passwordは、kvstoreユーザーのパスワードです。

ノート:

クライアント・ドライバ・プログラムでは、JVM環境パラメータjavax.net.ssl.trustStoredriver.trustファイルのパスを含めて、セキュアな接続が動作するようにする必要があります。driver.trustは、プロキシが構成され、起動されたときに配布する必要があります。このファイルは、クライアント・ドライバがプロキシ・サーバーのIDを認証して、安全な接続を確立できるようにします。

ユーザーは、セキュアなプロキシにアクセスするために、javaドライバのdriver.trustファイルを生成する必要があります。セキュリティ・ガイドOracle NoSQL Databaseプロキシの証明書と秘密キーの生成を参照してください。

クライアント・プログラムにdriver.trustファイルを追加する例を次に示します。

java -Djavax.net.ssl.trustStore=driver.trust -cp .:/lib/nosqldriver.jar Example

ハンドルには、メモリーとネットワーク・リソースが関連付けられています。このため、アプリケーションがハンドルの使用を終了したら、NoSQLHandle.closeメソッドを起動してリソースを解放します。

ネットワーク・アクティビティ、リソース割当ておよび割当て解除のオーバーヘッドを最小限に抑えるには、ハンドルの作成と終了を繰り返さないようにすることをお薦めします。たとえば、操作ごとにハンドルを作成して終了すると、大量のリソース割当てのオーバーヘッドが発生し、アプリケーションのパフォーマンスが低下します。1つのハンドルで同時操作が可能なため、マルチスレッド・アプリケーションの表にアクセスするには単一のハンドルで十分です。複数のハンドルを作成してもパフォーマンス上の利点はなく、余分なリソース・オーバーヘッドが発生します。