Connecting to MS SQL database fails due to an 'Unable to get information from SQL Server' Error

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

このページの内容は、Jira アプリケーションでサポートされていないプラットフォームに関連しています。したがって、アトラシアンは、そのためのサポートの提供を保証できません 。この資料は情報提供のみを目的としているため、お客様自身の責任でご使用ください。

症状

The JIRA application is unable to start.

The following error appears in the log file:

2010-09-20 15:11:18,678 main ERROR [jira.appconsistency.db.DatabaseConsistencyCheck] There was a SQL exception checking for database driver correctness. Skipping.
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Unable to get information from SQL Server: localhost.)
	at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:855)
	at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
	at org.ofbiz.core.entity.transaction.JNDIFactory.getJndiConnection(JNDIFactory.java:212)
	at org.ofbiz.core.entity.transaction.JNDIFactory.getConnection(JNDIFactory.java:140)
	at org.ofbiz.core.entity.TransactionFactory.getConnection(TransactionFactory.java:99)
	at org.ofbiz.core.entity.ConnectionFactory.getConnection(ConnectionFactory.java:53)

原因

When using a named instance, jTDS sends a UDP packet to the server over port 1434 to the SQL Browser Service to find the port that it can used to connect to the instance. It appears that this UDP request is not being replied to in time (if at all). This is usually because the SQL Browser service is not running. This is documented in Sourceforge's jTDS documentation:

On SQL Server 2005 the SQL Browser service must be running on the server host as the instance name lookup port UDP 1434 is hosted by this service on SQL Server 2005 rather than the SQL Server itself. The default install does not configure the SQL Browser service to start automatically so you must do it manually.

ソリューション

  1. Ensure that the SQL Browser service is running on your database server.
  2. Verify connectivity to your database with help of the JIRA Configuration Tool provided in JIRA versions 4.1 and above.
  3. Ensure that JDBC URL in server.xml is configured properly.

Alternatively, you can connect directly to the port used by the named instance. However, from Microsoft's documentation:

By default, when enabled, both named instances and SQL Server Express are configured to use dynamic ports, that is, an available port is assigned when SQL Server starts. If you want, a specific port can be assigned to an instance of SQL Server. When connecting, clients can specify a specific port; but if the port is dynamically assigned, the port number can change anytime SQL Server is restarted, so the correct port number is unknown to the client.

Thus, enabling the SQL Browser service is the more desirable option.

Last modified on Mar 30, 2016

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.