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.trustStore
にdriver.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つのハンドルで同時操作が可能なため、マルチスレッド・アプリケーションの表にアクセスするには単一のハンドルで十分です。複数のハンドルを作成してもパフォーマンス上の利点はなく、余分なリソース・オーバーヘッドが発生します。