May 25, 2012 at 6:11 pm
Hello,
I've done an install for 2008 Enterprise Eval. Thought everything was fine, but finding oddities.
So far, I've noticed that the port being used is 1434, though nothing else is using 1433.
Since I could connect fine, I kept moving forward and didn't worry about it.
Then I installed my app and the first part of the install was fine, after I told it to use port 143 but noticed it used Windows Auth. Midway thru the install, it installed a local SQL Server account and added the db. All that seemed fine, but the app cannot use the SQL Server account it added.
I'll see streaming errors:
2012/05/25 14:31:28 ERROR [STDERR] May 25, 2012 2:31:28 PM com.microsoft.sqlserver.jdbc.SQLServerConnection Prelogin
WARNING: ConnectionID:79201 Prelogin error: host localhost port 1434 Error reading prelogin response: Connection reset
2012/05/25 14:31:28 WARN [com.mchange.v2.resourcepool.BasicResourcePool] com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@7e4d0cec -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (10). Last acquisition attempt exception:
com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'cbpowers'.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:197)
at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:246)
at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:83)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:2529)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:1905)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:41)
at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:1893)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4575)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1400)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1045)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:817)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:700)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:842)
at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:134)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:148)
at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
I'm guessing everything is connected, but I figured I should first start with why it's not using the default port, then go from there...
thanks,
Chris
May 27, 2012 at 10:12 pm
UDP Port 1434 is used by SQL Server Browser - it is a service that runs on the server where SQL Server is installed and allows applications to find the port number for named instances of SQL Server. Normally, you would not explicitly use this port. It is automatically used by the SQL Client you are using to connect to the SQL Server database.
By default, a default instance of SQL Server listens to TCP port 1433. Named instances of SQL Server will listen on other ports. Normally, I would suggest that you do not specify the port number. Instead let SQL Browser tell your application what it is.
May 27, 2012 at 10:16 pm
UDP Port 1434 is used by SQL Server Browser - it is a service that runs on the server where SQL Server is installed and allows applications to find the port number for named instances of SQL Server. Normally, you would not explicitly use this port. It is automatically used by the SQL Client you are using to connect to the SQL Server database.
By default, a default instance of SQL Server listens to TCP port 1433. Named instances of SQL Server will listen on other ports. Normally, I would suggest that you do not specify the port number. Instead let SQL Browser tell your application what it is.
May 28, 2012 at 9:35 pm
Thanks for the info....
I know that I need to be using the default instance, not named instances. This is why it seems so odd that I'm not seeing SQL Server use 1433 (nothing is using 1433).
Here's what I see for 1434:
TCP 127.0.0.1:1434 0.0.0.0:0 LISTENING
[sqlservr.exe]
and
UDP [::]:1434 *:*
[sqlbrowser.exe]
I can have the app either try to figure out the port (defaults to 1433) or specify. If I specify 1434, it'll connect.
As long as it uses Windows Auth, things seem fine in the install, but when it tries to use a local account it sets up, problems seem to start:
May 28, 2012 11:07:52 PM com.microsoft.sqlserver.jdbc.SQLServerConnection Prelogin
WARNING: ConnectionID:10 Prelogin error: host localhost port 1434 Error reading prelogin response: Connection reset
I'll see this until the end of the install and then all the time in the app log.
May 29, 2012 at 9:25 am
TCP Port 1434 is typically used by the Dedicated Administrator Connection.
UDP Port 1434 is typically used by the SQL Browser Service.
There are no special teachers of virtue, because virtue is taught by the whole community.
--Plato
May 30, 2012 at 7:21 am
Great news - Fixed the issue.
While both the DB and app installs report to complete successfully, SQL Server doesn't enable tcp/ip (so it doesn't listen on 1433).
I'm still wondering what I missed during SQL Server install, or maybe it's just expected for someone to do this step (that I didn't do).
In any case, it's working.
Thanks.
May 30, 2012 at 7:29 am
That could be just a feature of the evaluation edition, its enabled by default on Standard and Enterprise Edition and disabled in SQL Express
May 30, 2012 at 7:58 am
SQLDBA360 (5/30/2012)
That could be just a feature of the evaluation edition, its enabled by default on Standard and Enterprise Edition and disabled in SQL Express
I can't attest to SQL 2008 but can tell you SQL 2008 R2 TCP/IP is disabled by default, no matter what the Edition. I am fairly sure SQL 2008 is the same but could be wrong.
The reason this is done is because you no longer have to manually enable remote connections like you did with SQL 2005. Simply enabling TCP enables remote connections with SQL 2008 and above.
Shawn Melton
Twitter: @wsmelton
Blog: wsmelton.github.com
Github: wsmelton
May 30, 2012 at 9:15 am
Good point about the eval edition...Didn't consider that.
thanks!
Viewing 9 posts - 1 through 8 (of 8 total)
You must be logged in to reply to this topic. Login to reply