By: Mohana Jeyatharan user 17 Feb 2022 at 10:58 p.m. CST

4 Responses
Mohana Jeyatharan gravatar
Hi Gluu Support Team, Have been using your java scim client library for user creation, deletion etc in the test protection mode. I understanding concurrency/multi threading is supported in these scim client libraries from gluu vrsion 4.1 onwards. Thus I want to know whether I dont have to set any system properties explcitly and the scim client library default values will be used to manage concurrency? Will the default be sufficient to yield good performance under heavy load? The only change is that I have to do the following: Check RPT connection pooling is enabled in oxTrust. Login to oxTrust and go to Configuration > JSON Configuration. Scroll down to rptConnectionPoolUseConnectionPooling and set the flag to true. To finish press Save configuration at the bottom of the page. Is that correct? Ref:https://gluu.org/docs/gluu-server/4.2/user-management/scim2/, Sec:HTTP connections and concurrent support

By Jose Gonzalez staff 18 Feb 2022 at 7:17 a.m. CST

Jose Gonzalez gravatar
Hi there, When you do `ScimClientFactory.getClient(...`, the client instance obtained can be used to execute operations only in the same single thread, that is, not well suited for concurrency You have to set a value for `httpclient.multithreaded` so that the instance can be safely shared among multiple threads Regarding `httpclient.multithreaded.maxtotal`, `httpclient.multithreaded.maxperroute`, and `httpclient.multithreaded.validateafterinactivity` they have default values that should work fine in most cases so there is no need to set them. RPT connection pooling needs to be enabled in oxTrust only if you are using UMA protection mode, not necessary in test mode.

By Mohana Jeyatharan user 21 Feb 2022 at 7:32 a.m. CST

Mohana Jeyatharan gravatar
Hi Jose, Thanks for your reply. So understand that i can use default values without any explicit settings as you have mentioned. i have to only set httpclient.multithreaded as a system variable. Then the rpt connection pooling has to be set only if i am using UMA for the Scim end point protection. Bsically these settings are to support concurrency within a given scim client instance. wondering what would be the impact as far as Scim api triggering/calling is concerned if this concurrency is not supported at the scim client spplication? Probably some performace degradation.

By Jose Gonzalez staff 21 Feb 2022 at 9:06 a.m. CST

Jose Gonzalez gravatar
Your understanding is correct. When you don't set httpclient.multithreaded at the client side, if an operation is invoked while other is still running you will get an exception related to networking (this is assuming both operations have been issued by the same client instance obtained by `getClient`). If you are concerned about performance and your expectations are high, you would like to try Gluu on [docker](https://gluu.org/docs/gluu-server/4.3/installation-guide/install-docker/) or [kubernetes](https://gluu.org/docs/gluu-server/4.2/installation-guide/install-kubernetes/), and use a database other than LDAP. Also, Gluu 4.3 provides experimental support for MySQL.

By Mohana Jeyatharan user 22 Feb 2022 at 2:01 a.m. CST

Mohana Jeyatharan gravatar
Hi Jose, Thanks for your detailed explainations on the need for this concurrency framwork in the client side. Will add concurrency basic support in. Yes, we are interedsted in good performance too. Ok sure will look into the docker and kubernetes versions of Gluu. Noted on the MySql. Not yet full fledged support on this I assume. Couchbased external DB probably more product level support will be redered I guess. Thank you.