Forum Discussion

ManxShred's avatar
ManxShred
Frequent Visitor
8 years ago
Solved

Scale out deployment on March 2018 PBIRS

I am having major problems trying to get a scale out configuration of Power BI SSRS March update.

 

I have installed SSRS on 2 servers pointing to a single database, and added the 2nd server to the cluster.  We setup a load balancer on our F5 device and a A-record in DNS pointing to this IP.  I have set the machine key, hostname and urlroot values in the rs config file, and I have set all the other values as per these docs:

 

https://docs.microsoft.com/en-us/sql/reporting-services/install-windows/configure-a-native-mode-report-server-scale-out-deployment

 

https://docs.microsoft.com/en-us/sql/reporting-services/report-server/configure-a-report-server-on-a-network-load-balancing-cluster#SpecifyingVirtualServerName

 

When we first start the services we can view all the reports deployed.  This works perfectly fine for a about 9 minutes, when the reports just start to return a blank screen below the menu bars.

The only error message I can find is in the RSPowerBI log file :

"|ERROR|722|GetPbixReportMetadataAsync RSPortal returned error code Forbidden for catalogItem cb1f87ed-3e3e-4bef-a7ea-dc0186710ad9. Check Portal logs."

There are no other errrors in any logs.

 

The only other message I can find is in the system logs in event viewer.  The source is LSA (LsaSrv): "A logon cache entry for user <DOMAIN/SERVICE ACCOUNT> was the oldest entry and was removed. The timestamp of this entry was 4/14/2018 16:44:52."  This is the service account the SSRS is running under.

 

Does anyone have any ideas what could be causing this?  I have tried so many different things, but I just keep getting this behavior where the reports work for a while, then suddenly you just get a blank screen.

Thanks

  • We eventually found the cause of this issue with the help of the MS support team.

     

    We also needed to set the <ReportServerUrl> value in the RSReportServer.config file, which is found in the <UI> node.

    This must be configured to be the same value as in the "Web Service URL" in the RS Configuration Manger.

     

    So if you have 2 servers, SSRS1 and SSRS2, with a NLB named Reporting, you would set the <ReportServerUrl> to http://SSRS1/ReportServer or http://SSRS2/ReportServer on SSRS1 and SSRS2 respectively.

     

    The issue was caused by the way SSRS works, where it can call itself.  Since we configured the NLB, it was calling "Reporting", which would go out via the network to the NLB then back to the server.  After a period of time, this look would time out or switch to the other server in the NLB and cause SSRS to stop working.  Setting this value routes these internal calls to the local server.

3 Replies

  • ManxShred's avatar
    ManxShred
    Frequent Visitor

    We eventually found the cause of this issue with the help of the MS support team.

     

    We also needed to set the <ReportServerUrl> value in the RSReportServer.config file, which is found in the <UI> node.

    This must be configured to be the same value as in the "Web Service URL" in the RS Configuration Manger.

     

    So if you have 2 servers, SSRS1 and SSRS2, with a NLB named Reporting, you would set the <ReportServerUrl> to http://SSRS1/ReportServer or http://SSRS2/ReportServer on SSRS1 and SSRS2 respectively.

     

    The issue was caused by the way SSRS works, where it can call itself.  Since we configured the NLB, it was calling "Reporting", which would go out via the network to the NLB then back to the server.  After a period of time, this look would time out or switch to the other server in the NLB and cause SSRS to stop working.  Setting this value routes these internal calls to the local server.

    • pbx's avatar
      pbx
      Helper V

      Your configuration is going to break if the following conditions are true (which may happen more frequently than we may think):

       

      1. You want to use an SSL-only configuration
      2. Your SSRS1, SSRS2 server names are not internet routable
      3. You need to use a third party CA, which doesn't like having non-internet routable names in SAN

      For the above reasons we have added entries into the hosts files of each server so that the report server URL points to the IP of the server, so once connections are initated within the server, they do not go to the other node.

      • cbailiss's avatar
        cbailiss
        Advocate II

        Thanks, had the same problem and this solution worked for us too.

         

        Microsoft, please take note, this information must  be included in the documentation as setting up scale-out configuration at the moment involves a frustrating troubleshooting process!