I'm having trouble adding an Oracle database as a data source in the enterprise gateway. The error message I get is below:
Unable to connect: We encountered an error while trying to connect to SERVER_NAME. Details: "Cannot connect to the mashup data source. See error details for more information."Hide details
Activity ID: | 03e50d90-a4ee-4a5a-96c5-7dfe93a5ef4f |
Request ID: | 522f1644-0873-dd0c-719c-9d06e3972ddf |
Cluster URI: | https://wabi-us-north-central-redirect.analysis.windows.net |
Status code: | 400 |
Error Code: | DM_GWPipeline_Gateway_MashupDataAccessError |
Time: | Wed May 04 2016 14:48:55 GMT-0400 (Eastern Daylight Time) |
Version: | 13.0.1100.480 |
Underlying error code: | -2147467259 |
Underlying error message: | The provider being used is deprecated: 'System.Data.OracleClient requires Oracle client software version 8.1.7 or greater.'. Please visit https://go.microsoft.com/fwlink/p/?LinkID=272376 to install the offical provider. |
DM_ErrorDetailNameCode_UnderlyingHResult: | -2147467259 |
Microsoft.Data.Mashup.ValueError.Reason: | DataSource.Error |
I can confirm that I have the latest ODAC components installed on both the client machine and the server where the enterprise gateway is installed. I have also tested connecting to the data source through Power BI Desktop and it works just fine.
Any ideas? Thanks.
Solved! Go to Solution.
Hi @dimazaid, I managed to solve this by using the Oracle service name found in tnsnames.ora instead of using the full hostname.
So instead of putting "HOSTNAME" in the "Server" field, all I had to do was put in the service name. For reference, the syntax of a tnsnames.ora entry is:
SERVICENAME =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TYPE)(HOST = HOSTNAME)(PORT = PORTNUM))
(CONNECT_DATA =
(SERVICE_NAME = SERVICENAME)
)
)
Thanks, I forgot to mark this one as solved!
hi @wonga,
Could you try using your own account to use the Gateway? and refresh again.
If that works, you should reinstall the oracle components in a way that ensures the service account for the Gateway has access to them.
Hi @dimazaid, I managed to solve this by using the Oracle service name found in tnsnames.ora instead of using the full hostname.
So instead of putting "HOSTNAME" in the "Server" field, all I had to do was put in the service name. For reference, the syntax of a tnsnames.ora entry is:
SERVICENAME =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TYPE)(HOST = HOSTNAME)(PORT = PORTNUM))
(CONNECT_DATA =
(SERVICE_NAME = SERVICENAME)
)
)
Thanks, I forgot to mark this one as solved!