1

I am consistently seeing a 3+ second delay when opening a connection to a Unidata server via OpenAsync and the ADO.NET provider by Rocket.

What can I do to diagnose this delay?

trevster344
  • 491
  • 2
  • 14

1 Answers1

0

I use jdbc and odbc connections all the time, and three seconds just ain't right.

You can start by breaking things down into client, network, server.

On the client, is it the same if you use an IP address vs hostname? If different, then DNS delay. Do you have any antivirus or other software that might be delaying connections? Can you turn that off, or do a test from a freshly configured machine?

For network, can you ping the unidata server in millseconds? Are there firewalls in the way? Can you install wireshark and filter packets by destination? Is there a delay when you ssh? Is the server configured with LDAP/AD, or local authentication - could be connecting to another server to authenticate?

On the server, you can turn on uniobjects logging, then restart unirpcd. Do you have something in your LOGIN/UOLOGIN that is hanging up the remote connection?

$cat $UDTHOME/serverdebug udcs 9 /tmp/udcs.log

Ian McGowan
  • 3,461
  • 3
  • 18
  • 23
  • My connection is over the internet through a firewall. Firewall seems to be operating fine as a lot of our other software runs very quickly through it. I believe it is isolated to the configuration of Unidata as other processes run fast. SSH is fast. Unidata is installed on a Linux server running CentOS. No other source of authentication outside the firewall and the operating system. No LDAP/AD. How do I enable uniobjects debugging? – trevster344 Jun 16 '20 at 20:30
  • The LOGIN is a PQ but it is instannt via putty so I'm not sure it's causing any delay. – trevster344 Jun 16 '20 at 20:35
  • This is where I see the 3 seconds confirmed, when I trace the connection via uniobjects debugging. `6/16/2020 3:44:36 PM:ThreadID: ThreadID: 3 Thread Name : lHostToNetworkOrder:426397849 6/16/2020 3:44:39 PM:ThreadID: ThreadID: 3 Thread Name : lReturnCode in UciConnection::U2Login(): 0` – trevster344 Jun 16 '20 at 20:45
  • I am using UniObjects for Java `session.connect(host, user, pass, acct);`, so maybe not 100% comparable, but where you specify an account (database) in the connection, can you try logging in to $UDTHOME/demo to rule out anything in your applications logic? If that takes 3 seconds, then it rules out anything in your account. – Ian McGowan Jun 17 '20 at 22:37
  • Same result on the demo account. I have contacted a support provider and am working it out with them. I'll post my results here soon. – trevster344 Jun 17 '20 at 22:53