SSL enabled DB2 database using ssma tool is failing

Anonymous
2022-06-07T14:06:35.273+00:00

Hi Team,
as part of migrating my DB2 database to Azure SQL server I am using SSMA for DB2 v9.0,
It is connecting to the database without SSL enabled connections but when I am trying to connect to SSL enabled database I am getting very generic error as below:

"An internal network library error has occurred. A network level syntax error has occurred."

the SSMA log shows as below:

[Error: Generic] [16876/9] [2022-06-07 19:28:55]: Exception: Connection to DB2 failed.
An internal network library error has occurred. A network level syntax error has occurred.
site: Microsoft.SSMA.Framework.Generic.DbUtilities.SsmaDbConnection Connect(Microsoft.SSMA.Framework.Db2Mf.Base.Db2MfConnection.Db2MfConnectionParameters, System.Security.SecureString)
source: Microsoft.SSMA.Framework.Db2Mf.Base
at Microsoft.SSMA.Framework.Db2Mf.Base.Db2MfConnection.Db2MfConnectionFactory.Connect(Db2MfConnectionParameters connectionParameters, SecureString password)
at Microsoft.SSMA.Framework.Db2Mf.Generic.Db2MfObjectCollector.Db2MfObjectCollector.ConnectToDb2Mf(IProjectPreferencesProvider projectPreferences, String xmlConnectionParameters, SecureString password, IDbConnection implicitConnection, IUIProgressBarProvider progressBarProvider)
at Microsoft.SSMA.Framework.Db2Mf.Generic.Db2MfObjectCollector.Db2MfObjectCollector.CollectData(String connectionParameters, SecureString password, XMetabase existingMetabase, ICollectionContext context, IDbConnection implicitConnection, XNode filter)
at Microsoft.SSMA.Framework.Generic.Collectors.Default.DefaultObjectCollector.CollectData(String connectionParameters, SecureString password, ICollectionContext context)
at Microsoft.SSMA.Framework.Generic.SSMAWorkspace.MetabaseSsmaWorkspaceItem.Connect(String connectionParameters, SecureString password)
[Error: Generic] [16876/9] [2022-06-07 19:28:55]: Inner Exception #1: An internal network library error has occurred. A network level syntax error has occurred.
site: Void .ctor(System.Data.OleDb.OleDbConnectionString, System.Data.OleDb.OleDbConnection)
source: Microsoft DB2 OLE DB Provider
error code: -2147217900
at System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection)
at System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions)
at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource1 retry, DbConnectionOptions userOptions)
at System.Data.ProviderBase.DbConnectionInternal.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
at System.Data.OleDb.OleDbConnection.Open()
at Microsoft.SSMA.Framework.Generic.DbUtilities.SsmaDbConnection.Open()
at Microsoft.SSMA.Framework.Db2Mf.Base.Db2MfConnection.Db2MfConnectionFactory.Connect(Db2MfConnectionParameters connectionParameters, SecureString password)
[Error: Gui] [16876/9] [2022-06-07 19:28:59]: LowLevelAdapter.ReadSource : Read Source error: Microsoft.SSMA.Framework.Db2Mf.Base.Db2MfConnection.EstablishingDb2MfConnectionException: Connection to DB2 failed.
An internal network library error has occurred. A network level syntax error has occurred. ---> System.Data.OleDb.OleDbException: An internal network library error has occurred. A network level syntax error has occurred.
at System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection)
at System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions)
at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource1 retry, DbConnectionOptions userOptions)
at System.Data.ProviderBase.DbConnectionInternal.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
at System.Data.OleDb.OleDbConnection.Open()
at Microsoft.SSMA.Framework.Generic.DbUtilities.SsmaDbConnection.Open()
at Microsoft.SSMA.Framework.Db2Mf.Base.Db2MfConnection.Db2MfConnectionFactory.Connect(Db2MfConnectionParameters connectionParameters, SecureString password)
--- End of inner exception stack trace ---
at Microsoft.SSMA.Framework.Db2Mf.Base.Db2MfConnection.Db2MfConnectionFactory.Connect(Db2MfConnectionParameters connectionParameters, SecureString password)
at Microsoft.SSMA.Framework.Db2Mf.Generic.Db2MfObjectCollector.Db2MfObjectCollector.ConnectToDb2Mf(IProjectPreferencesProvider projectPreferences, String xmlConnectionParameters, SecureString password, IDbConnection implicitConnection, IUIProgressBarProvider progressBarProvider)
at Microsoft.SSMA.Framework.Db2Mf.Generic.Db2MfObjectCollector.Db2MfObjectCollector.CollectData(String connectionParameters, SecureString password, XMetabase existingMetabase, ICollectionContext context, IDbConnection implicitConnection, XNode filter)
at Microsoft.SSMA.Framework.Generic.Collectors.Default.DefaultObjectCollector.CollectData(String connectionParameters, SecureString password, ICollectionContext context)
at Microsoft.SSMA.Framework.Generic.SSMAWorkspace.MetabaseSsmaWorkspaceItem.Connect(String connectionParameters, SecureString password)
at Microsoft.SSMA.GUI.Product.Db2MfToMsSql.LowLevel.AppConnectToSourceDb2Mf.ConnectToSourceStart(Object guiContext)
[Error: Gui] [16876/9] [2022-06-07 19:28:59]: Exception: Connection to DB2 failed.
An internal network library error has occurred. A network level syntax error has occurred.
site: Microsoft.SSMA.Framework.Generic.DbUtilities.SsmaDbConnection Connect(Microsoft.SSMA.Framework.Db2Mf.Base.Db2MfConnection.Db2MfConnectionParameters, System.Security.SecureString)
source: Microsoft.SSMA.Framework.Db2Mf.Base
at Microsoft.SSMA.Framework.Db2Mf.Base.Db2MfConnection.Db2MfConnectionFactory.Connect(Db2MfConnectionParameters connectionParameters, SecureString password)
at Microsoft.SSMA.Framework.Db2Mf.Generic.Db2MfObjectCollector.Db2MfObjectCollector.ConnectToDb2Mf(IProjectPreferencesProvider projectPreferences, String xmlConnectionParameters, SecureString password, IDbConnection implicitConnection, IUIProgressBarProvider progressBarProvider)
at Microsoft.SSMA.Framework.Db2Mf.Generic.Db2MfObjectCollector.Db2MfObjectCollector.CollectData(String connectionParameters, SecureString password, XMetabase existingMetabase, ICollectionContext context, IDbConnection implicitConnection, XNode filter)
at Microsoft.SSMA.Framework.Generic.Collectors.Default.DefaultObjectCollector.CollectData(String connectionParameters, SecureString password, ICollectionContext context)
at Microsoft.SSMA.Framework.Generic.SSMAWorkspace.MetabaseSsmaWorkspaceItem.Connect(String connectionParameters, SecureString password)
at Microsoft.SSMA.GUI.Product.Db2MfToMsSql.LowLevel.AppConnectToSourceDb2Mf.ConnectToSourceStart(Object guiContext)
[Error: Gui] [16876/9] [2022-06-07 19:28:59]: Inner Exception #1: An internal network library error has occurred. A network level syntax error has occurred.
site: Void .ctor(System.Data.OleDb.OleDbConnectionString, System.Data.OleDb.OleDbConnection)
source: Microsoft DB2 OLE DB Provider
error code: -2147217900
at System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection)
at System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions)
at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource1 retry, DbConnectionOptions userOptions)
at System.Data.ProviderBase.DbConnectionInternal.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
at System.Data.OleDb.OleDbConnection.Open()
at Microsoft.SSMA.Framework.Generic.DbUtilities.SsmaDbConnection.Open()
at Microsoft.SSMA.Framework.Db2Mf.Base.Db2MfConnection.Db2MfConnectionFactory.Connect(Db2MfConnectionParameters connectionParameters, SecureString password)

Thanks in advance
Kind Regards
Alok

Azure SQL Database
SQL Server Migration Assistant
SQL Server Migration Assistant
A Microsoft tool designed to automate database migration to SQL Server from Access, DB2, MySQL, Oracle, and SAP ASE.
568 questions
{count} vote

Accepted answer
  1. Alberto Morillo 34,671 Reputation points MVP Volunteer Moderator
    2022-06-07T14:23:51.503+00:00

    Please make use of the connection string mode. You can use Data Access Tool that ships with the Microsoft OLE DB Provider for DB2 to generate the connection string. SSMA can connect to a DB2 server using SSL but it depends of the configuration of the OLEDB provider that it uses for the connection. You may want to provide "Certificate Common Name" to enable SSL/TLS in the provider.

    1 person found this answer helpful.

1 additional answer

Sort by: Most helpful
  1. Anonymous
    2022-06-08T06:21:03.56+00:00

    Hi Albertomorillo,
    Thanks for your assistance I made the working connection string by adding

    Certificate Common Name

    clause and the final connection string is as below:

    Provider=DB2OLEDB;User ID=useName;Password=password;Initial Catalog=DB_Name;Network Transport Library=TCPIP;Host CCSID=37;PC Code Page=1252;Network Address=server_NAME;Network Port=Port_Nmmbr;Default Schema=schemaName;Units of Work=RUW;DBMS Platform=DB2/MVS;Use Early Metadata=False;Defer Prepare=False;DateTime As Char=False;Rowset Cache Size=0;Binary CodePage=0;Datetime As Date=False;AutoCommit=True;Authentication=Server_Encrypt_UsrPwd;Certificate Common Name=DigiCert Global Root CA;Decimal As Numeric=False;Allow Null Chars=False;LoadBalancing=False;Persist Security Info=False;Cache Authentication=False;Connection Pooling=False;Literal Replacement=False;

    Kind Regards
    Alok Srivastava

    1 person found this answer helpful.

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.