Reply
Frequent Visitor
Posts: 2
Registered: ‎03-20-2017
Accepted Solution

OLE DB provider 'MSOLAP.5' cannot be instantiated - Error: 80040154 Class not registered

Hi,

 

I'm sitting with an issue that I'm unable to solve.

I have implemented an On-Premises gateway on my dev server, configured it under "Manage Gateways" and created a new data source to a SSAS multidimensional database on the server.

 

I'm able to add a new dataset and select and connect to the revevant cube and it succeeds. I'm then and to see the list of measures, dimensions and their columns but when I select anything, I get the below error:

 

We reached the data gateway, but the gateway can't access the on-premises data source.
Please try again later or contact support. If you contact support, please provide these details.

Error Code: DM_GWPipeline_Gateway_DataSourceAccessError

 

When I open the diagnostics logs, I can see the following message:

 

[0]Microsoft.PowerBI.DataMovement.Pipeline.Diagnostics.OleDbCreateRowsetFailedException: Error creating OLE DB row set.

GatewayPipelineErrorCode=DM_GWPipeline_Gateway_DataSourceAccessError --->
[1]Microsoft.PowerBI.DataMovement.Pipeline.Diagnostics.OleDbProviderInstantiationException: OLE DB provider 'MSOLAP.5' cannot be instantiated.

GatewayPipelineErrorCode=DM_GWPipeline_UnknownError
ProviderName=MSOLAP.5 --->
Inner exception chain: System.Runtime.InteropServices.COMException
<pi>System.Runtime.InteropServices.COMException (0x80040154): Retrieving the COM class factory for component with CLSID {308FF259-8671-4DF4-B66C-9851BFACF446} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

 

Does anyone have an idea what cause this or where I can start troubleshooting it?

 


Accepted Solutions
Highlighted
Frequent Visitor
Posts: 2
Registered: ‎03-20-2017

Re: OLE DB provider 'MSOLAP.5' cannot be instantiated - Error: 80040154 Class not registered

Hi,

 

This issue was related to these specific errors I found in the Diagnostic Gateway logs.

 

OLE DB provider 'MSOLAP.5' cannot be instantiated

COMException (0x80040154)

80040154 Class not registered

 

I managed to resolve this by deregistering the 32-bit versions

“C:\Program Files (x86)\Microsoft Analysis Services\AS OLEDB\110\msolap110.dll”

“C:\Program Files (x86)\Microsoft Analysis Services\AS OLEDB\120\msolap120.dll”

 

and registering the 64 bit version.

“C:\Program Files\Microsoft Analysis Services\AS OLEDB\120\msolap120.dll”

 

This fixed my issue.

View solution in original post


All Replies
Super Contributor
Posts: 2,678
Registered: ‎07-17-2016

Re: OLE DB provider 'MSOLAP.5' cannot be instantiated - Error: 80040154 Class not registered

Hi @Halfloaf82_ZA,

 

According to this article, you should be able to follow steps below to troubleshoot this issue.Smiley Happy

 

Within Show details, you will see an error code of DM_GWPipeline_Gateway_DataSourceAccessError.

If the underlying error message is similar to the following, this means that the account you are using for the data source is not a server admin for that Analysis Services instance.

The 'CONTOSO\account' value of the 'EffectiveUserName' XML for Analysis property is not valid.

If the underlying error message is similar to the following, it could mean that the service account for Analysis Services may be missing the token-groups-global-and-universal (TGGAU) directory attribute.

The user name or password is incorrect.

Domains with Pre-Windows 2000 compatibility access will have the TGGAU attribute enabled. However, most newly created domains will not enable this attribute by default. You can read more about this here.

You can confirm this by doing the following.

  1. Connect to the Analysis Services machine within SQL Server Management Studio. Within the Advanced connection properties, include EffectiveUserName for the user in question and see if this reproduces the error.

  2. You can use the dsacls Active Directory tool to validate whether the attribute is listed. This is tool is normally found on a domain controller. You will need to know what the distinguished domain name is for the account and pass that to the tool.

    dsacls "CN=John Doe,CN=UserAccounts,DC=contoso,DC=com"
    

    You want to see something similar to the following in the results.

        Allow BUILTIN\Windows Authorization Access Group
                                      SPECIAL ACCESS for tokenGroupsGlobalAndUniversal
                                      READ PROPERTY
    

To correct this issue, you will need to enable TGGAU on account used for the Analysis Services windows service.

Another possibility for user name or password incorrect

This error could also be caused if the Analysis Services server is in a different domain than the users and there is not a two-way trust established.

You will need to work with your domain administrators to verify the trust relationship between domains.

 

Regards

Frequent Visitor
Posts: 4
Registered: ‎03-23-2017

Re: OLE DB provider 'MSOLAP.5' cannot be instantiated - Error: 80040154 Class not registered

[ Edited ]

I am having this same issue.

 

@v-ljerr-msft the underlying error message the OP lists is not the same as the errrors your response says it is meant to solve.

In addition to the exact errors i'm getting that the OP listed, here's the contents of the "show details":

Couldn't load the data for this visual

We reached the data gateway, but the gateway can't access the on-premises data source.
Please try again later or contact support. If you contact support, please provide these details.

Error CodeDM_GWPipeline_Gateway_DataSourceAccessError
Activity ID7ff2deb4-0dea-4fa7-bb10-da4018f8c4d0
Correlation ID4c77ac17-2bf1-0481-e900-69b0baa2625e
Request IDeb146678-570a-4bfb-3f8f-80646df5fa1f
TimeThu Mar 23 2017 11:29:05 GMT-0800 (Alaskan Daylight Time)
Version13.0.1700.1501
Cluster URIhttps://wabi-west-us-redirect.analysis.windows.net

Frequent Visitor
Posts: 4
Registered: ‎03-23-2017

Re: OLE DB provider 'MSOLAP.5' cannot be instantiated - Error: 80040154 Class not registered

I am having the same issue.

 

@v-ljerr-msft I don't think the steps you posted here are the same issue. The underlying error messages are different.

Highlighted
Frequent Visitor
Posts: 2
Registered: ‎03-20-2017

Re: OLE DB provider 'MSOLAP.5' cannot be instantiated - Error: 80040154 Class not registered

Hi,

 

This issue was related to these specific errors I found in the Diagnostic Gateway logs.

 

OLE DB provider 'MSOLAP.5' cannot be instantiated

COMException (0x80040154)

80040154 Class not registered

 

I managed to resolve this by deregistering the 32-bit versions

“C:\Program Files (x86)\Microsoft Analysis Services\AS OLEDB\110\msolap110.dll”

“C:\Program Files (x86)\Microsoft Analysis Services\AS OLEDB\120\msolap120.dll”

 

and registering the 64 bit version.

“C:\Program Files\Microsoft Analysis Services\AS OLEDB\120\msolap120.dll”

 

This fixed my issue.

Frequent Visitor
Posts: 4
Registered: ‎03-23-2017

Re: OLE DB provider 'MSOLAP.5' cannot be instantiated - Error: 80040154 Class not registered

That fixed mine as well, thanks!

Frequent Visitor
Posts: 15
Registered: ‎06-07-2017

Re: OLE DB provider 'MSOLAP.5' cannot be instantiated - Error: 80040154 Class not registered

Hi , 

Can You explain what do you mean by 'deregistering' ? what exactly I need to do here? 

Frequent Visitor
Posts: 15
Registered: ‎06-07-2017

Re: OLE DB provider 'MSOLAP.5' cannot be instantiated - Error: 80040154 Class not registered

What did you do exactly? can you give additional info? 

 

Frequent Visitor
Posts: 4
Registered: ‎03-23-2017

Re: OLE DB provider 'MSOLAP.5' cannot be instantiated - Error: 80040154 Class not registered

In a command prompt running as admin you use the regsvr32 command.

 

To register a dll:

regsvr32 <pathToDLL>

 

To unregister a dll:

regsvr32 -u <pathToDLL>

 

Where <pathToDLL> is the paths mentioned in the earlier posts (or similiar depending on your machines operating system configuration).