How to update Microsoft SQL Server password when it has expired
問題
When using Microsoft SQL Server with an Atlassian application that uses database pooling (Confluence, JIRA, etc.), suddenly becomes unreachable without any configuration changes in the application.
The user interface may show an error such as:
com.atlassian.util.concurrent.LazyReference$InitializationException: java.lang.NullPointerException
at com.atlassian.util.concurrent.LazyReference.getInterruptibly(LazyReference.java:152)
However this error by itself is rather generic.
Check for the following in the log file (here from Confluence):
2013-01-04 12:34:01,872 WARN [Task-Thread-for-com.mchange.v2.async.ThreadPerTaskAsynchronousRunner@6c74ac85] [mchange.v2.resourcepool.BasicResourcePool] run com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@5693c09e -- 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 (30). Last acquisition attempt exception:
java.sql.SQLException: Login failed for user 'atlassian'. Reason: The password of the account has expired.
原因
SQL Server has 'Password Expiration' enabled and the database user's password has expired.
ソリューション
On the Microsoft SQL Server side, ensure the database user's credentials are valid. You may then need to update the database connection information. Depending on your product you will need to check
<confluence-home>/confluence.cfg.xml
<jira-home>/dbconfig.xml
<bamboo-Home>/bamboo.cfg.xml
<bitbucket-home>/shared/bitbucket.properties
<FISHEYE_HOME>/config.xml