Vediamo se posso aiutarti cosi.
prima ti scrivo i punti che secondo me sono importanti per migliorare il tuo codice.

1. La classe Db2connection deve essere dichiarata all'interno della classe e non nella Sub connection.
2. per assicurarti che la connessione sia avvenuta con successo puoi usare la proprietà della classe Db2Connection.State che ti indica lo stato attuale della connessione.
Open.
Close.
Broken
ecec...
3. nell'istruzione Try Cath ti consiglio di utilizzare l'eccezzione della classe che stai utilizzando cosi hai modo di controllare l'errore che non ti permette di aprire una connessione oppure di estrapolare dei dati.

Ti posto il codice cosi come lo farei io ipotizzando che sia all'interno di una classe FORM1 spero possa esserti utile.

codice:
Public Class Form1
    
   Dim strConnection as string
   Dim con as DB2Connection
   Dim cmd as DB2Command
   Dim adp as DB2DataAdapter
   Dim ds as Dataset


Public Sub Con()

     strConnetction = "Server=server_name;DSN=name;UID=xxxx;PWD=yyyyy;"

    con = new Db2Connection
    con1.connectionstring =  strConnection 
    cmd = new DB2command
    cm1.connection = con

      Try

        con.Open()
        ''' se vuoi visualizzare lo stato della connessione 
        msgbox(con.state.tostring)

      Catch ex As Db2Exception
        '' se vuoi visualizzare l'errore
        msgbox(ex.message)
       End Try

End Sub


Public Sub Estrai()

  Try
    adp = new DB2DataAdapter("Select * From USER_LIST ",con)

    ds = new Dataset()
   
    adp.fill(ds,"USER_LIST")

    '' se nel form hai un datagridview per visualizzare i dati
     
       datagridview1.datasource = ds.Table("USER_LIST")

  Catch ex As Db2Exception
        '' se vuoi visualizzare l'errore
        msgbox(ex.message)
       End Try

    

End Sub


End Class

fammi sapere se funziona.