Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Hi, the on-premises gateway does take quite a lot of simultaneous database connections against our Oracle database when we refresh a dataflow residing in the Power BI Service or in the PowerApps/Power platform. It looks like it consumes about the same amount as the number of tables in the dataflow. Is there any way to limit this? I have tried to set DbConnectionPoolMaxSize=4 (the default was 256 i believe) in the following file on the gateway server
C:\Program Files\On-premises data gateway\Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.dll.config
in sections
<setting name="DbConnectionPoolMinSize" serializeAs="String">
<value>4</value>
</setting>
<setting name="DbConnectionPoolMaxSize" serializeAs="String">
<value>4</value>
</setting>
<setting name="DbConnectionStatefulPoolMaxSize" serializeAs="String">
<value>4</value>
</setting>
But the gateway still consumes 9 connections simultaneously.
If we start several refreshes against Oracle at the same time, we may easily end up starving our main business critical application for database connections.
Anyone who has more knowledge about this?
-Is it possible to set the DbConnectionPoolMaxSize?
-Is there a minimum value not possible to go under?
-Is this the right place or the right setting?
Eirik
Solved! Go to Solution.
I got answer from one of the developers (I blieve):
"Hi, it looks like the rate limiting factor here is the number of connections that Oracle will accept.
One thing that you can do is change the properties in this file to limit the number of concurrent connections:
Adjust gateway performance based on server CPU | Microsoft Docs
Change MashupDisableContainerAutoConfig to true
Then change MashupDefaultPoolContainerMaxCount to 1
Then restart the gateway.
This mitigation is extremely NOT recommended, you will see a performance impact for all requests, however it will serve as a rate limiter for # of connections to oracle.
Thanks,
Sheldon"
I have tried MashupDefaultPoolContainerMaxCount = 4, which in our case seemed to give a good balance between number of db connections and performance.
Eirik
That may only work if you have a single gateway and a single dataset and a single Oracle data source. The moment you use multiple gateway cluster members (as you should for BCP) and you have multiple Oracle data sources ( very likely) this becomes close to impossible to control. Better beef up your Oracle server.
I got answer from one of the developers (I blieve):
"Hi, it looks like the rate limiting factor here is the number of connections that Oracle will accept.
One thing that you can do is change the properties in this file to limit the number of concurrent connections:
Adjust gateway performance based on server CPU | Microsoft Docs
Change MashupDisableContainerAutoConfig to true
Then change MashupDefaultPoolContainerMaxCount to 1
Then restart the gateway.
This mitigation is extremely NOT recommended, you will see a performance impact for all requests, however it will serve as a rate limiter for # of connections to oracle.
Thanks,
Sheldon"
I have tried MashupDefaultPoolContainerMaxCount = 4, which in our case seemed to give a good balance between number of db connections and performance.
Eirik
For Power Apps questions you may go to Power Apps Community - Power Platform Community (microsoft.com).
Best Regards
Paul Zheng _ Community Support Team
Hi, this issue also pertains to dataflows in the Power BI Service, I have updated the original question.
Eric7
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
14 | |
6 | |
4 | |
3 | |
3 |
User | Count |
---|---|
15 | |
9 | |
6 | |
3 | |
3 |