I am trying to cross-query with Teradata and other DB sources. When I try, I get a MySQL error:
Invalid data source definition: Loading the TeraGSS Library Failed
I can query the Teradata connection singly just fine. I can create an ODBC connection to my Teradata host and use that for a cross-query, and that works fine too. I don't love that solution because I loose insight to my primary key information when I connect as generic ODBC.
How can I help trace down what is causing this error when cross-querying a native Teradata connection?
Assuming here that your Teradata client is installed/configured properly (which sounds like it is.)
Probably should take this to Quest Support, but before you do, here a a few things to try...
Latest version of TDP is 5.7, and 6.0 is on the verge (early July) of coming out. Should upgrade and see if the latest version takes care of this issue. I do know that there are some issues related to the mySQL driver that TDP uses, and this is important for cross-connect queries, because TDP uses mySQL under the covers to blend data for such queries.
Another thing that may help (since you asked about tracing down the error) is to turn on Execution Tracing within TDP... see snap below. All Toad products allow the end user to see what SQL and other commands the product generates behind the scenes as you accomplish things in the GUI. Seeing the SQL that might be triggering the error could give you some insight.
Thanks for the reply Gary. I wasn't aware of the trace logging, thanks for pointing that out. I was able to find the following in my ExceptionTrace.log file:
New exception: 6/24/2022 2:55:04 PM
MySql.Data.MySqlClient.MySqlException: Invalid data source definition: Loading the TeraGSS Library Failed
Stack trace:
Server stack trace:
at MySql.Data.MySqlClient.MySqlStream.ReadPacket()
at MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& affectedRow, Int64& insertedId)
at MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force)
at MySql.Data.MySqlClient.MySqlDataReader.NextResult()
at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
at MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery()
at Quest.Toad.Db.ProxyCommand.ExecuteNonQuery()
Exception rethrown at [0]:
at Quest.Toad.Util.Global.RethrowKeepingStackTrace(Exception e)
at Quest.Toad.Db.ProxyCommand.ExecuteNonQuery()
at Quest.Toad.Db.Connection.Execute(IDbConnection connection, String sql, Object[] parameter)
at Quest.Toad.LocalDB.Mapping.HUBCrossQueryMapping.MapDatabase(String databaseName, String xmlText)
at Quest.Toad.LocalDB.Mapping.HUBCrossQueryMapping.GenerateReference(StatementTableReference reference, Connection& newConnection, Object context, List`1 furtherReplacements)
at Quest.Toad.LocalStorage.CrossQueryMapping.MapStatement(IParserChunk chunk, String defaultSchema, Connection& newConnection, Object context)
at Quest.Toad.LocalDB.LocalDBConnection.SpecialExecute(SpecialExecuteContext context)
at Quest.Toad.Db.ScriptEngine.ExecuteSpecial(IDbConnection dbConnection, IParserChunk chunk, Statement sql, Object[] param, IConnection& otherConnection, IConnection& nextConnection)
I may have to contact Quest support, or my company IT, to figure this out. If anyone know how to decipher that stack trace it would be appreciated
If this is a known issue in 5.5, I'm afraid I may be stuck for a while. I work for a very large enterprise and they aren't exactly "fast" when it comes to releasing the latest versions.