3

クラウドデータベースとの接続プーリングを試行しています。私が理解しているところから、クラウドデータベースは、max_connections = 6というデフォルトのパラメータでプールに接続します。max_connections code私の質問は、接続プールのように動作するか私は確認して行う方法ですクラウド - 接続プーリング

val client: CloudantClient = ClientBuilder.account(<accountdetails>) 
.username(<my user name>) 
.password(<my password>).maxConnections(20) 
.build() 
println("creating database") 
val db: Database = client.database("exampledb", false) 
println("created"); 

:必要なコードスニペットは、私は、次の初期化とアッカ-HTTPを使用してScalaで書かれた作業アプリケーションを持っているライン130

でありますからの基本的なget関数を意図して、例の学生のデータベースを言うことができます。

答えて

2

java.netHttpURLConnectionを置き換えない限り、akka-httpがここに影響を与えるとは思いません。 CloudantClientjava.net.HttpURLConnectionクラスを使用してCloudantデータベースと通信します。 HttpURLConnectionの実装は、デフォルトではJVMによって提供され、依存関係を追加した場合はOkHttpによって提供されます。 documentation for connection poolingによれば、オプションのOkHttpクライアントを使用しているかどうかに応じて動作が変わります。 maxConnections methodは、OkHttp依存関係を使用している場合にのみ、接続プールのサイズを変更します。デフォルトのHttpURLConnectionの場合、プールサイズはJVMプロパティーによって設定されます。

this documentationごとに、java-cloudantクライアントのログを有効にすることができます。接続がプールから作成されるか、またはプールからリースされるかどうかを検証する場合は、プールの使用がクライアントコードに対してトランスペアレントであるため、基になるHttpURLConnectionのログが必要です。デフォルトのHttpURLConnectionのログ文字列の詳細については、たとえばthis answerを参照してください。

プールが機能しているかどうかに関心がある場合は、this issueに関するディスカッションを参照してください。デフォルトのJVM実装は、非常に短いアイドル時間の後にプールからの接続をパージします。

+0

ご回答いただきありがとうございます。申し訳ありませんが、あなたを完全に理解していませんでした。したがって、Okhttp依存関係が含まれていない場合、接続プーリングは機能しませんか? また、私はこのリンクを見ました:https://gitlab.com/Guy1394/java-cloudant/tree/117-url-encode-session#connectoptionsそして私が「リソース共有」についてのセクションで理解しているところから、私は思います接続プーリングが機能するはずです。そうじゃない? お返事ありがとうございます – Tarun

+0

OkHttpを含まない場合でも接続プールが機能しますが、有効になっているかどうか、またプールの大きさはJVMプロパティ 'http.maxConnections'と' http.keepAlive'によって制御されています参照](http://docs.oracle.com/javase/8/docs/technotes/guides/net/http-keepalive.html))では、 'ClientBuilder.maxConnections'メソッドではありません。 – ricellis

+0

また、あなたが提供したgitlabのリンクは古いバージョンのフォークです。公式のJavaクラウドレポは[こちら](https://github.com/cloudant/java-cloudant)で、javadocへのリンクが含まれています。 – ricellis

関連する問題