ストアへの接続
ストア操作を実行するには、クライアント・コードとストア間にネットワーク接続を確立する必要があります。提供する必要のある2つの情報があります。
-
ストア内のノードをホストするマシンのホスト名、ポート番号およびストア名を指定します。(ストアは多くのホストから構成されるため、複数のホスト/ポートのペアから選択する必要があります。)
KVDriver.Create()
を使用してKVDriver
オブジェクトを作成します。次に、driver.GetStore()
を使用してストア情報を取得し、それをKVStore
変数に格納します。 -
プロキシ・サーバーのパスを指定します。デフォルトでは、これはC#ドライバ・パッケージの内部の
lib/java
ディレクトリにあります。PROXY_CLASSPATH
は、jarファイルの場所を指す必要があります。この値を格納するためにDictionary
変数が作成され、パラメータとしてKVDriver.Create()
で使用されます。
たとえば、MyNoSQLStoreという名前のOracle NoSQL Databaseストアがあり、そのノードがn1.example.orgのポート5000で実行されているとします。その後、次のようにしてストアに接続します。
using oracle.kv.client;
using oracle.kv.client.config;
using oracle.kv.client.option;
...
static void Main(string[] args) {
Dictionary<Option, object> dict = new Dictionary<Option, object>();
//the relative path to the jar files.
//In this example, 4.5.12 is used for driver version. Replace it with the version you are using.
dict.Add(Options.PROXY_CLASSPATH, "..\\..\\..\\packages\\Oracle.nosql.driver.4.5.12\\lib\\java\\*");
//Connecting to the NoSQL Database
IKVDriver driver = KVDriver.Create("nosql://n1.example.org:5000/MyNoSQLStore", dict);
//If you store is running on the localhost, the host name, port number, and store name need not be specified. Below is an example:
//IKVDriver driver = KVDriver.Create(dict);
//Fetch store details from the NoSQL Database
IKVStore store = driver.GetStore();
}
PROXY_MANAGED
は、デフォルトでtrueに設定されます。デフォルト値は、Dictionary
変数にPROXY_MANAGED
値を追加することでオーバーライドできます。前述の例では、PROXY_MANAGED
は指定されておらず、C#ドライバはプロキシ・サーバーを自動的に管理します。これにより、アプリケーションの起動時にプロキシ・サーバーが起動され、アプリケーションの停止時に停止されます。
プロキシは、8000
と9000
の間でランダムに選択されたポートをリスニングします。デフォルトのポート範囲は、Dictionary
変数にPROXY_PORT_RANGE_START
値およびPROXY_PORT_RANGE_END
値を追加することでオーバーライドできます。
注意:
前述の例では、プロキシ・サーバーはアプリケーションによって管理されます。ドライバに依存しないプロキシ・サーバーを起動する場合は、プロキシ・サーバーの使用方法を参照してください。独立して実行されるプロキシ・サーバーに接続するには、プロキシ・サーバーへの接続を参照してください。
安全なストアを使用している場合、構成には保護されたストアにログインするためのユーザー名も含まれている必要があります。これは、次のいずれかの方法で指定できます。
-
dict.Add(Options.STORE_SECURITY_FILE, “path_to_the_security_file”);
“path_to_the_security_file”
は、ストアへのログインに使用されるセキュリティ・ファイルを識別します。 -
dict.Add(Options.STORE_USER_NAME, “user_name_to_login”);
“user_name_to_login”
は、ストアの認証時に使用されるユーザー名を指定します。