ストアへの接続

ストア操作を実行するには、クライアント・コードとストア間にネットワーク接続を確立する必要があります。提供する必要のある2つの情報があります。

  1. ストア内のノードをホストするマシンのホスト名、ポート番号およびストア名を指定します。(ストアは多くのホストから構成されるため、複数のホスト/ポートのペアから選択する必要があります。)

    KVDriver.Create()を使用してKVDriverオブジェクトを作成します。次に、driver.GetStore()を使用してストア情報を取得し、それをKVStore変数に格納します。

  2. プロキシ・サーバーのパスを指定します。デフォルトでは、これは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#ドライバはプロキシ・サーバーを自動的に管理します。これにより、アプリケーションの起動時にプロキシ・サーバーが起動され、アプリケーションの停止時に停止されます。

プロキシは、80009000の間でランダムに選択されたポートをリスニングします。デフォルトのポート範囲は、Dictionary変数にPROXY_PORT_RANGE_START値およびPROXY_PORT_RANGE_END値を追加することでオーバーライドできます。

注意:

前述の例では、プロキシ・サーバーはアプリケーションによって管理されます。ドライバに依存しないプロキシ・サーバーを起動する場合は、プロキシ・サーバーの使用方法を参照してください。独立して実行されるプロキシ・サーバーに接続するには、プロキシ・サーバーへの接続を参照してください。

安全なストアを使用している場合、構成には保護されたストアにログインするためのユーザー名も含まれている必要があります。これは、次のいずれかの方法で指定できます。

  1. dict.Add(Options.STORE_SECURITY_FILE, “path_to_the_security_file”);

    “path_to_the_security_file”は、ストアへのログインに使用されるセキュリティ・ファイルを識別します。

  2. dict.Add(Options.STORE_USER_NAME, “user_name_to_login”);

    “user_name_to_login”は、ストアの認証時に使用されるユーザー名を指定します。