Your session has ended. Please use the button below to login again.

  • 7015584
  • 26-Aug-2014
  • 26-Aug-2014

Environment

Novell Service Desk 7.0.3
Microsoft Windows 2008 R2 Enterprise
MySQL 5.6.19

Situation

Purpose

Installing NSD 7.0.3 on Windows Server 2008 R2 Enterprise Edition using MySQL 5.6.19 as database

Symptom

Installation process complete as expected, database schema can be successfully extended and NSD can be accessed as Admin once the entire process is completed, however, after the server is restarted, NSD is not accessible anymore and prompt the following error once the credential are submitted:

Application Exception:
java.lang.reflect.InvocationTargetException

Your session has ended. Please use the button below to login again.




Resolution

Edit the following MySQL configuration file:

C:\ProgramData\MySQL\MySQL Server 5.6\my.ini

and insert the following line under the [mysqld] section:

binlog_format = 'MIXED'

This will set the MySQL binary log format from STATEMENT to MIXED which is required for NSD to work properly.

Restart the server, or both the LiveTime and MySQL services, and you should be able to successfully login.

Cause

The default binary log format for MySQL 5.6.19 is set to STATEMENT while NSD 7.0.3 needs to have it set to MIXED to work properly.

If you wish to verify your current binary log format on MySQL 5.6.19 you can start the MySQL 5.6 Command Line client and enter the following command:

mysql> show variables like 'binlog_format';

that should return the following:

+---------------+-----------+
|
Variable_name | Value |
+
---------------+-----------+
|
binlog_format | MIXED |
+---------------+-----------+

Additional Information

To be sure that you are experiencing the issue described in this document, once you get the error during the login, you can check the LiveTime.log file that should show the following:

[2014-07-30 09:49:51,341]ERROR 60934[http-nio-8700-exec-10] (Defaults.java:318) - An error occurred when inserting the default preferences: could not get or update next value
org.hibernate.exception.GenericJDBCException: could not get or update next value
    at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:140)
    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:128)
    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
    at org.hibernate.engine.TransactionHelper$1Work.doWork(TransactionHelper.java:64)
    at org.hibernate.engine.transaction.Isolater$JdbcDelegate.delegateWork(Isolater.java:249)
    at org.hibernate.engine.transaction.Isolater.doIsolatedWork(Isolater.java:70)
    at org.hibernate.engine.TransactionHelper.doWorkInNewTransaction(TransactionHelper.java:74)
    at org.hibernate.id.MultipleHiLoPerTableGenerator$1.getNextValue(MultipleHiLoPerTableGenerator.java:216)
    at org.hibernate.id.enhanced.OptimizerFactory$LegacyHiLoAlgorithmOptimizer.generate(OptimizerFactory.java:350)
    at org.hibernate.id.MultipleHiLoPerTableGenerator.generate(MultipleHiLoPerTableGenerator.java:213)
    at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:122)
    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)
    at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56)
    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)
    at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50)
    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
    at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:705)
    at org.hibernate.impl.SessionImpl.save(SessionImpl.java:693)
    at org.hibernate.impl.SessionImpl.save(SessionImpl.java:689)
    at com.livetime.core.EditingContext.insertObject(EditingContext.java:174)
    at com.livetime.core.init.Defaults.insertTimeZones(Defaults.java:1635)
    at com.livetime.core.init.Defaults.setup(Defaults.java:151)
    at com.livetime.core.init.Defaults.setup(Defaults.java:130)
    at com.livetime.Application.initializeApplication(Application.java:680)
    at com.DatabaseConnectionSetup.saveConnectionDetails(DatabaseConnectionSetup.java:427)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at com.webobjects.foundation.NSKeyValueCoding$ValueAccessor$1.methodValue(NSKeyValueCoding.java:636)
    at com.webobjects.foundation.NSKeyValueCoding$_MethodBinding.valueInObject(NSKeyValueCoding.java:1134)
    at com.webobjects.foundation.NSKeyValueCoding$DefaultImplementation.valueForKey(NSKeyValueCoding.java:1324)
    at com.webobjects.appserver.WOComponent.valueForKey(WOComponent.java:1736)
    at com.webobjects.foundation.NSKeyValueCoding$Utility.valueForKey(NSKeyValueCoding.java:447)
    at com.webobjects.foundation.NSKeyValueCodingAdditions$DefaultImplementation.valueForKeyPath(NSKeyValueCodingAdditions.java:212)
    at com.webobjects.appserver.WOComponent.valueForKeyPath(WOComponent.java:1804)
    at com.webobjects.appserver._private.WOKeyValueAssociation.valueInComponent(WOKeyValueAssociation.java:50)
    at com.webobjects.appserver._private.WOSubmitButton.invokeAction(WOSubmitButton.java:70)
    at er.extensions.foundation.ERXPatcher$DynamicElementsPatches$SubmitButton.invokeAction(ERXPatcher.java:202)
    at com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
    at com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
    at com.webobjects.appserver._private.WOConditional.invokeAction(WOConditional.java:86)
    at com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
    at com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
    at com.webobjects.appserver._private.WOConditional.invokeAction(WOConditional.java:86)
    at com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
    at com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
    at com.webobjects.appserver._private.WOConditional.invokeAction(WOConditional.java:86)
    at com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
    at com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
    at com.webobjects.appserver._private.WOConditional.invokeAction(WOConditional.java:86)
    at com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
    at com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
    at com.webobjects.appserver._private.WOConditional.invokeAction(WOConditional.java:86)
    at com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
    at com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
    at com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:1079)
    at er.extensions.components.ERXComponent.invokeAction(ERXComponent.java:168)
    at com.webobjects.appserver._private.WOComponentReference.invokeAction(WOComponentReference.java:127)
    at com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
    at com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
    at er.extensions.components._private.ERXWOForm.invokeAction(ERXWOForm.java:218)
    at com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
    at com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
    at com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:1079)
    at er.extensions.components.ERXComponent.invokeAction(ERXComponent.java:168)
    at com.webobjects.appserver._private.WOComponentReference.invokeAction(WOComponentReference.java:127)
    at com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
    at com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
    at com.webobjects.appserver._private.WOConditional.invokeAction(WOConditional.java:86)
    at com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
    at com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
    at com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:1079)
    at er.extensions.components.ERXComponent.invokeAction(ERXComponent.java:168)
    at com.webobjects.appserver.WOSession.invokeAction(WOSession.java:1357)
    at com.webobjects.appserver.WOApplication.invokeAction(WOApplication.java:1745)
    at er.extensions.appserver.ajax.ERXAjaxApplication.invokeAction(ERXAjaxApplication.java:119)
    at er.extensions.appserver.ERXApplication.invokeAction(ERXApplication.java:1988)
    at er.extensions.appserver.ERXComponentRequestHandler._dispatchWithPreparedPage(ERXComponentRequestHandler.java:157)
    at er.extensions.appserver.ERXComponentRequestHandler._dispatchWithPreparedSession(ERXComponentRequestHandler.java:235)
    at er.extensions.appserver.ERXComponentRequestHandler._dispatchWithPreparedApplication(ERXComponentRequestHandler.java:268)
    at er.extensions.appserver.ERXComponentRequestHandler._handleRequest(ERXComponentRequestHandler.java:302)
    at er.extensions.appserver.ERXComponentRequestHandler.handleRequest(ERXComponentRequestHandler.java:378)
    at com.webobjects.appserver.WOApplication.dispatchRequest(WOApplication.java:1687)
    at er.extensions.appserver.ERXApplication.dispatchRequestImmediately(ERXApplication.java:2109)
    at er.extensions.appserver.ERXApplication.dispatchRequest(ERXApplication.java:2074)
    at com.livetime.Application.dispatchRequest(Application.java:525)
    at com.webobjects.jspservlet._WOApplicationWrapper.servletDispatchRequest(_WOApplicationWrapper.java:131)
    at com.webobjects.jspservlet.WOServletAdaptor._handleRequest(WOServletAdaptor.java:727)
    at com.webobjects.jspservlet.WOServletAdaptor.doPost(WOServletAdaptor.java:695)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1600)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.sql.SQLException: Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging. InnoDB is limited to row-logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTED.
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4096)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4028)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2490)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2651)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2683)
    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2144)
    at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2310)
    at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:76)
    at org.hibernate.id.MultipleHiLoPerTableGenerator.doWorkInCurrentTransaction(MultipleHiLoPerTableGenerator.java:157)
    at org.hibernate.engine.TransactionHelper$1Work.doWork(TransactionHelper.java:61)
    ... 104 more
[2014-07-30 09:50:34,771] WARN104364[http-nio-8700-exec-3] (Application.java:443) - Attempt to access 'LoginPage' failed - no such page, redirecting to login
[2014-07-30 09:50:35,957] WARN105550[http-nio-8700-exec-5] (Application.java:443) - Attempt to access 'LoginPage' failed - no such page, redirecting to login
[2014-07-30 09:50:37,470] WARN107063[http-nio-8700-exec-9] (Application.java:443) - Attempt to access 'LoginPage' failed - no such page, redirecting to login