SQL Server Browser Conflicts With Ignition Gateway

I’m following the steps to connect a Microsoft SQL 2019 Express data base to Ignition and I’ve been having an issue with the Ignition Gateway and SQL Server Browser.

When I enable SQL Server browser as per the instructions using SQL Server Configuration Manager, the gateway acts strange. If I click on the configuration tab for the gateway, it prompts me to log in again, I log in, and then it goes to a page that says “Internal error”. If I reload the web page, the typical web page for “Page cannot be reach” for Microsoft Edge shows up.

If I right-click “stop” SQL Server browser, the Gateway still gets a typical web page connection error. I can then go into Services and right-click “start” the gateway (it must stop when I turn on SQL Server Browser), and then I am able to connect again like normal.

I’m running Windows 10 64 bit, Java 11.0.3, and Ignition 8.0.2.

Pretty sure Microsoft Edge now doesn’t like it if you go to IP addresses/local host. Does this happen if you use Firefox or Chrome?

Do you see anything in your wrapper logs? C:/Program Files/Inductive Automation/Ignition/logs/wrapper.log

I have no problems running it on MS Edge, the issue is only if the SQL Server Browser is running. It actually seems to stop the Ignition Gateway service, which means it’s not going to work no matter which browser I use I’d imagine. I’ll give Chrome a go anyway.

I’ll check out the logs and see if I can find anything, thanks.

Just SQL Server Browser, not SQL Server? I was going to say if these are both on the same machine maybe you’re asking too much ram wise, but I think SQL Server Browser uses that much, where SQL Server would.

Right here, if the SQL Server Brower is running, I ultimately can’t connect to Ignition Gateway despite being fine before it was running. I then stop the server browser, start the Ignition Gateway in services (below), and I have a connection again:

They are both on the same PC, though it has 8GB of RAM and seems to be only using 4 - 4.5GB. Processor is i5@3.2GHz and it hardly has to work, showing roughly 4% utilization.

So I was playing around with it some more, and disabled my database connection I was trying to set up (in Ignition DB Connection page). With that disabled, I was able to run the SQL Server Browser and retain my connection to the gateway. The second I enabled my database connection, I got the internal error:

Upon reloading the page, I got the typical “Hmm…can’t reach this page. local host refused to connect.” page for MS Edge. So the server browser alone doesn’t cause the issue, but the a combo of both the server browser AND a faulted DB connection.

The faulted message was this:

Blockquotejava.sql.SQLException: Cannot create PoolableConnectionFactory (The connection to the host localhost, named instance SQLEXPRESS failed. Error: “java.net.SocketTimeoutException: Receive timed out”. Verify the server and instance names and check that no firewall is blocking UDP traffic to port 1434. For SQL Server 2005 or later, verify that the SQL Server Browser Service is running on the host.)
at org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:2385)
at org.apache.commons.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2110)
at org.apache.commons.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1563)
at com.inductiveautomation.ignition.gateway.datasource.DatasourceImpl.getConnectionInternal(DatasourceImpl.java:257)
at com.inductiveautomation.ignition.gateway.datasource.DatasourceImpl.runTest(DatasourceImpl.java:211)
at com.inductiveautomation.ignition.gateway.datasource.DatasourceManagerImpl$FaultedDatasourceRetryer.lambda$newRetryRunnable$0(DatasourceManagerImpl.java:1016)
at com.inductiveautomation.ignition.common.execution.impl.BasicExecutionEngine$TrackedTask.run(BasicExecutionEngine.java:565)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.base/java.util.concurrent.FutureTask.runAndReset(Unknown Source)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: The connection to the host localhost, named instance SQLEXPRESS failed. Error: “java.net.SocketTimeoutException: Receive timed out”. Verify the server and instance names and check that no firewall is blocking UDP traffic to port 1434. For SQL Server 2005 or later, verify that the SQL Server Browser Service is running on the host.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:228)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.getInstancePort(SQLServerConnection.java:5911)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.primaryPermissionCheck(SQLServerConnection.java:2347)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:2083)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1950)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1162)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:735)
at org.apache.commons.dbcp2.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:53)
at org.apache.commons.dbcp2.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:291)
at org.apache.commons.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:2395)
at org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:2381)
… 12 more
8.0.2 (b2019060511)
Azul Systems, Inc. 11.0.3

This is what made me look back through the manual to see if I missed anything, and then noticed that the server browser wasn’t running, and now here I am, I can’t get the server browser running to troubleshoot my DB connection.

As far as I can see the instance and database names are correct, and I have the firewall off so I don’t think it would be blocking traffic…