Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.
Hi,
I'm trying to write a script that can be used to disable/enable a gateway within a cluster, using a service principal. This script is to be called by other scripts performing maintenance on the servers that the gateway are installed on (applying Windows server updates for example).
The general process is this: disable gateway ==> wait until dataset refreshes running on gateway are finished (or until timeout) ==> apply updates, reboot server ==> enable gateway
Applying this process sequentially to different gateways in a cluster results in updates being applied with no downtime and no interrupted dataset refreshes (unless a refresh is too long and hits the timeout mentioned above).
My issue is that I'm not finding a way to do the parts in bold (disable/enable gateway) with both:
Here are the options that I've explored:
Any idea on how I can do this?
Are there better ways to automatically apply updates to gateway servers without interrupting dataset refreshes?
Define "interrupting". The standard procedure is that the Power BI service will award the refresh job to a different cluster member if the original one goes offline. So yes, there will be a delay, but not really an interruption.
I am not sure this gateway maintenance job should be automated at all. A lot of the Windows updates require a restart, and trying to update gateway versions automatically WILL result in tears, lots of tears.
So yes, by all means, apply the updates sequentially, but don't bother with taking cluster members offline etc.
By "interrupting" a dataset refresh I mean that if a gateway server is rebooted without making sure that no refreshes were running on it, this may result in failed refreshes.
Is there any way to take a gateway offline while making sure that all running refreshes on that gateway finish, other than what I described in my original post (disabling the gateway in its cluster, then waiting until all running refreshes are over) ?
I agree that gateway updates should probably not be applied automatically, but this wouldn't be used for that. It would mainly be used to automate Windows updates.
this may result in failed refreshes.
Do you have evidence? In my experience another cluster member completes the mashups without the requestor even noticing (apart from the longer than usual timing).
Someone else reported that behavior to me (and asked me to come up with a solution). I'll run some tests myself, maybe the person misunderstood what was happening.