点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好
我从6.3升级到6.7,并在控制台中收到很多mysql错误,这些错误与我自己的项目完全无关:
我要重现的步骤是:1->在6.3中打开项目,执行全部清理设置->蚂蚁初始化->验证一切正常2->切换到6.7代码库。 安装程序全部清除->做ant updatesystem -DconfigFile = ...
在更新系统中,这些异常已经堆积起来,但是在运行hybris时也会出现。
有什么办法解决这个问题吗?
[java]线程" TaskExecutor-master-34-TriggerTask [8796093121462]"中的异常。de.hybris.platform.persistence.hjmp.HJMPException:org.springframework.jdbc.BadSqlGrammarException:query; 错误的SQL语法[]; 嵌套异常是com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:" where子句"中的未知列"密封"
[java]位于de.hybris.platform.persistence.GenericBMPBean $ GenericItemEntityState.storeChanges(GenericBMPBean.java:1624)
[java]位于de.hybris.platform.persistence.GenericBMPBean.ejbStore(GenericBMPBean.java:313)
[java]位于de.hybris.platform.persistence.framework.RemoteInvocationHandler.performOutsideTx(RemoteInvocationHandler.java:186)
[java]位于de.hybris.platform.persistence.framework.RemoteInvocationHandler.performOther(RemoteInvocationHandler.java:161)
[java] de.hybris.platform.persistence.framework.RemoteInvocationHandler.invoke(RemoteInvocationHandler.java:104)
[java] com.sun.proxy。$ Proxy109.setProperty(来源不明)
[java]位于de.hybris.platform.persistence.ExtensibleItemEJBImpl.setProperty(ExtensibleItemEJBImpl.java:88)
[java]位于de.hybris.platform.jalo.ExtensibleItem $ 1.compute(ExtensibleItem.java:287)
[java]位于de.hybris.platform.jalo.Item $ CachedSetter.set(Item.java:874)
[java]位于de.hybris.platform.jalo.ExtensibleItem.setProperty(ExtensibleItem.java:289)
[java]位于de.hybris.platform.jalo.ExtensibleItem.setProperty(ExtensibleItem.java:233)
[java]位于de.hybris.platform.task.impl.DefaultTaskService.markTaskFailed(DefaultTaskService.java:1470)
[java]位于de.hybris.platform.task.impl.DefaultTaskService.processTask(DefaultTaskService.java:1418)
[java]位于de.hybris.platform.task.impl.DefaultTaskService.process(DefaultTaskService.java:1296)
[java]位于de.hybris.platform.task.impl.DefaultTaskService.processInTenant(DefaultTaskService.java:1265)
[java] de.hybris.platform.task.impl.DefaultTaskService $ 5.run(DefaultTaskService.java:1133)
[java],位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[java],位于java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:624)
[java]位于java.lang.Thread.run(Thread.java:748)
[java]位于de.hybris.platform.core.threadregistry.RegistrableThread.internalRun(RegistrableThread.java:144)
[java]位于de.hybris.platform.core.threadregistry.RegistrableThread.run(RegistrableThread.java:134)
[java]原因:org.springframework.jdbc.BadSqlGrammarException:查询; 错误的SQL语法[]; 嵌套异常是com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:" where子句"中的未知列"密封"
[java] org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:231)
[java] org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)
[java] at de.hybris.platform.jdbcwrapper.DataSourceImpl.translateToDataAccessException(DataSourceImpl.java:1030)
[java] ...另外21个
[java]原因:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:" where子句"中的未知列"密封"
[java]位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
[java]位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
[java]位于sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[java],位于java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[java]位于com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
[java]位于com.mysql.jdbc.Util.getInstance(Util.java:386)
[java] com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052)
[java]位于com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3609)
[java]位于com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3541)
[java]位于com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2002)
[java]位于com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2163)
[java] com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2624)
[java]位于com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2127)
[java]位于com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2427)
[java]位于com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2345)
[java]位于com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2330)
[java]位于de.hybris.platform.jdbcwrapper.PreparedStatementImpl.executeUpdate(PreparedStatementImpl.java:313)
[java] de.hybris.platform.persistence.GenericBMPBean $ GenericItemEntityState.storeChanges(GenericBMPBean.java:1601)
[java] ...还有20个
[java]嵌套例外:
[java] org.springframework.jdbc.BadSqlGrammarException:查询; 错误的SQL语法[]; 嵌套异常是com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:" where子句"中的未知列"密封"
[java] org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:231)
[java] org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)
[java] at de.hybris.platform.jdbcwrapper.DataSourceImpl.translateToDataAccessException(DataSourceImpl.java:1030)
[java]位于de.hybris.platform.persistence.GenericBMPBean $ GenericItemEntityState.storeChanges(GenericBMPBean.java:1624)
[java]位于de.hybris.platform.persistence.GenericBMPBean.ejbStore(GenericBMPBean.java:313)
[java]位于de.hybris.platform.persistence.framework.RemoteInvocationHandler.performOutsideTx(RemoteInvocationHandler.java:186)
[java]位于de.hybris.platform.persistence.framework.RemoteInvocationHandler.performOther(RemoteInvocationHandler.java:161)
[java] de.hybris.platform.persistence.framework.RemoteInvocationHandler.invoke(RemoteInvocationHandler.java:104)
[java] com.sun.proxy。$ Proxy109.setProperty(来源不明)
[java]位于de.hybris.platform.persistence.ExtensibleItemEJBImpl.setProperty(ExtensibleItemEJBImpl.java:88)
[java]位于de.hybris.platform.jalo.ExtensibleItem $ 1.compute(ExtensibleItem.java:287)
[java]位于de.hybris.platform.jalo.Item $ CachedSetter.set(Item.java:874)
[java]位于de.hybris.platform.jalo.ExtensibleItem.setProperty(ExtensibleItem.java:289)
[java]位于de.hybris.platform.jalo.ExtensibleItem.setProperty(ExtensibleItem.java:233)
[java]位于de.hybris.platform.task.impl.DefaultTaskService.markTaskFailed(DefaultTaskService.java:1470)
[java]位于de.hybris.platform.task.impl.DefaultTaskService.processTask(DefaultTaskService.java:1418)
[java]位于de.hybris.platform.task.impl.DefaultTaskService.process(DefaultTaskService.java:1296)
[java]位于de.hybris.platform.task.impl.DefaultTaskService.processInTenant(DefaultTaskService.java:1265)
[java] de.hybris.platform.task.impl.DefaultTaskService $ 5.run(DefaultTaskService.java:1133)
[java],位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[java],位于java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:624)
[java]位于java.lang.Thread.run(Thread.java:748)
[java]位于de.hybris.platform.core.threadregistry.RegistrableThread.internalRun(RegistrableThread.java:144)
[java]位于de.hybris.platform.core.threadregistry.RegistrableThread.run(RegistrableThread.java:134)
[java]原因:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:" where子句"中的未知列"密封"
[java]位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
[java]位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
[java]位于sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[java],位于java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[java]位于com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
[java]位于com.mysql.jdbc.Util.getInstance(Util.java:386)
[java] com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052)
[java]位于com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3609)
[java]位于com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3541)
[java]位于com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2002)
[java]位于com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2163)
[java] com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2624)
[java]位于com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2127)
[java]位于com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2427)
[java]位于com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2345)
[java]位于com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2330)
[java]位于de.hybris.platform.jdbcwrapper.PreparedStatementImpl.executeUpdate(PreparedStatementImpl.java:313)
[java] de.hybris.platform.persistence.GenericBMPBean $ GenericItemEntityState.storeChanges(GenericBMPBean.java:1601)
[java] ...还有20个
我只能猜测,但是看来您有很多在后台运行的cronjob,任务或业务流程。
为避免异常,您可以:
使用
ant updatesystem -DdryRun = true ...
生成必要的DDL和DML脚本,并在停止混合信号的情况下直接在数据库上执行它们或将
task.engine.loadonstartup = false
添加到您的local.properties
或ant命令(ant updatestystem -Dtask.engine .loadonstartup = false ...
)以避免执行更新时发生任何后台任务。如果列
sealed
已添加到tasks
表中,我还将再次检查生成的sql脚本(通过dryRun = true
生成) 。 缺少的列是堆栈跟踪的根本原因。 文件update_master_schema.sql
应该包含以下内容:至少根据我的经验,您只进行了一次产品升级。
在理想的环境中,您每年需要进行一次升级,因此差距不会太大,从而减少了总体工作量。
对我来说,您必须在生产中执行与测试环境中相同的步骤。 您可以跳几个版本,但是这样做很冒险。 我已经做到了,我认为在5.4到5.7之间,我们遇到了一些必须手动修复的怪异错误。 制作每个版本的时间更长,但更安全。
嗨,
您能够解决该问题。 我在平台升级中遇到了相同的问题,希望了解您是否已解决它,以及是否有任何要解决的步骤。 感谢您的帮助。
谢谢。
一周热门 更多>