Problem:
Browser returned 503 error like:
HTTP ERROR: 503
Problem accessing /qie/launcher.html. Reason:
Service Unavailable
Powered by Jetty://
Log file may contain something like this:
ERROR org.springframework.web.context.ContextLoader - Context initialization failed
Invocation of init method failed; nested exception is org.hibernate.exception.SQLGrammarException: could not execute native bulk manipulation query
or
Cannot open connection
Solution:
This is usually due to an incomplete/bad database configuration or a network failure connecting to the database server.
One cause is an invalid username and/or password.
Action1: Validate that the database username and password are correct. If the database username and/or password is different from the default (qie, qie), use the following in the startup arguments to change it:
-Dconnection.username=qie
-Dconnection.password=qie
Another cause is invalid dialect or missing database java arguments. In one case the customer intented to use the H2 database but had the following in the "Arguments":
-Dhibernate.dialect=com.qvera.qie.persistence.SQLServerDialectEx
In this case the above line should have been removed.
If the customer had wanted to connect to SQL Server instead then they should complete the database configuration by specifiying the following:
-Dconnection.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
-Dconnection.url=jdbc:sqlserver://localhost:1433;databaseName=qie
-Dhibernate.dialect=com.qvera.qie.persistence.SQLServer2014UnicodeDialect
Above we also selected the dialect that best matched the version of Sql Server they used. Which was 2014.
Optionally they could also add the following if the database user id and password needs to be changed:
-Dconnection.username=qie
-Dconnection.password=qie
Action2: Make sure the java arguments to the database are correct as mentioned above. For H2 they should be removed.
On MS SQL Server it may be an issue with how the database is mapped to the user.
Action 3: Validate the user mapping via SSMS
Another cause is that the DNS resolution to the database server is outdated or incorrect.
Action 4: Try configuring a JDBC connection via Squirrel SQL (or equivelent) or configure a ODBC TCP/IP connection. If it fails after validating that it is not one of the above problems, then it may be a DNS issue. On the QIE server you can try flushing the DNS like so:
Open a command prompt using Run as Administrator and execute this command: ipconfig /flushdns
For other OSes see http://www.wikihow.com/Flush-DNS
Otherwise get your network admin to review any servers that are used in DNS resolution between the QIE server and the database server.