Ich habe eine Instanz von MySQL 5.0.4.1 mit einer Anwendung, die in Hibernate geschrieben wurde. Auf einer der Seiten erhalte ich die folgende Fehlermeldung im Serverprotokoll:
Unbekannter Zeichensatzindex für das Feld '123' vom Server empfangen.
bei com.mysql.jdbc.Connection.getCharsetNameForIndex (Connection.java:1664)
bei com.mysql.jdbc.Field. (Feld .java: 144)
bei com.mysql.jdbc.MysqlIO.unpackField (MysqlIO.java:506)
bei com.mysql.jdbc.MysqlIO.getResultSet (MysqlIO.java:280)
bei com .mysql.jdbc.MysqlIO.sqlQueryDirect (MysqlIO.java:1319)
bei com.mysql.jdbc.MysqlIO.sqlQuery (MysqlIO.java:1218)
bei com.mysql.jdbc.Connection.execSQL (Anschluss .java: 2233)
bei com.mysql.jdbc.Connection.execSQL (Connection.java:2193)
bei com.mysql.jdbc.Connection.execSQL (Connection.java:2174)
bei com .mysql.jdbc.Connection.setAutoCommit (Connection.java:536)
bei org.apache.commons.dbcp.DelegatingConnection.setAutoCommit (DelegatingConnection.java:268)
bei org.apache.commons.dbcp.PoolingDataSource $ PoolGuardConnectionWrapper.setAutoCommit (PoolingDataSource.java:293)
bei org.hibernate.transaction.JDBCTransaction.toggleAutoCommit (JDBCTransaction.java:194)
bei org.hibe rnate.transaction.JDBCTransaction.rollbackAndResetAutoCommit (JDBCTransaction.java:186)
bei org.hibernate.transaction.JDBCTransaction.rollback (JDBCTransaction.java:162)
bei org.springframework.orm.hibernate3.HibernateTransactionManager.doRollback ( HibernateTransactionManager.java:603)
bei org.springframework.transaction.support.AbstractPlatformTransactionManager.processRollback (AbstractPlatformTransactionManager.java:579)
bei org.springframework.transaction.support.AbstractPlatformTransactionManager.rollback (AbstractPlatformTransactionManager.java:556)
bei org.springframework.transaction.interceptor.TransactionAspectSupport.doCloseTransactionAfterThrowing (TransactionAspectSupport.java:284)
bei org.springframework.transaction.interceptor.TransactionInterceptor.invoke (TransactionInterceptor.java:100)
bei org. springframework.aop.framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:170)
org.acegisecurity.intercept.method.aopalliance.MethodSecurityI nterceptor.invoke (MethodSecurityInterceptor.java:66)
bei org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:170)
bei org.acegisecurity.intercept.method.aopalliance.MethodSecurityInterceptor.invoke ( MethodSecurityInterceptor.java:66)
bei org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:170)
bei org.springframework.aop.framework.JdkDynamicAopProxy.invoke (JdkDynamicAopProxy.java:176)
bei $ Proxy6.getDataFromDatabase (unbekannte Quelle)
bei org.myCompany.myAction.load (Unbekannte Quelle)
bei sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Methode)
bei sun.reflect. NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39)
bei sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25)
bei java.lang.reflect.Method.invoke (Method.java:324)
bei org.apache.struts.actions.DispatchAction.dispatchMethod (DispatchAction.java:274)
bei org.apache.struts .actions.DispatchAction.execute (DispatchAction.java:194)
bei org.apache.struts.action.RequestProcessor.processActionPerform (RequestProcessor.java:419)
bei org.apache.struts.action.RequestProcessor.process (RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process (ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doGet (ActionServlet.java:414 )
bei javax.servlet.http.HttpServlet.service (HttpServlet.java:787)
bei javax.servlet.http.HttpServlet.service (HttpServlet.java:908)
bei org.apache.catalina .core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:247)
bei org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:193)
bei org.acegisecurity.util.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:264)
bei org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke (FilterSecurityInterceptor.java:107)
bei org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFil ter (FilterSecurityInterceptor.java:72)
bei org.acegisecurity.util.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:274)
bei org.acegisecurity.ui.ExceptionTranslationFilter.doFilter (ExceptionTranslationFilter.java:110)
bei org.acegisecurity.util.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:274)
bei org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter (AnonymousProcessingFilter.java:125)
bei org. acegisecurity.util.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:274)
bei org.acegisecurity.ui.AbstractProcessingFilter.doFilter (AbstractProcessingFilter.java:217)
bei org.acegisecurity.util.FilterChainProxy $ VirtualFilterChain. doFilter (FilterChainProxy.java:274)
bei org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter (HttpSessionContextIntegrationFilter.java:229)
bei org.acegisecurity.util.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:274)
bei org.acegisecurity.util.FilterChainProxy.doFilter ( FilterChainProxy.java:148)
bei org.acegisecurity.util.FilterToBeanProxy.doFilter (FilterToBeanProxy.java:98)
bei org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:213)
bei org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:193)
bei org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:280)
bei org.apache. catalina.core.StandardPipeline.invoke (StandardPipeline.java:509)
bei org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:218)
bei org.apache.catalina.core.StandardPipeline. invoke (StandardPipeline.java:509)
bei org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.jav a: 209)
bei org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:509)
bei com.iplanet.ias.web.connector.nsapi.NSAPIProcessor.process (NSAPIProcessor.java: 157)
bei com.iplanet.ias.web.WebContainer.service (WebContainer.java:579)
Dieser Fehler tritt in einer Produktionsumgebung auf, daher weiß ich nicht, welche Abfrage das Problem verursacht hat, aber ich weiß, dass keine meiner Tabellen eine Spalte mit dem Namen "123" hat. Haben Sie Vorschläge, was das Problem verursachen könnte?
Bearbeiten: Als Follow-up habe ich festgestellt, dass dieses Verhalten ein bekannter Fehler ist MySQL 5.0.4 , aber ich habe keine gute Lösung gefunden, da ich nicht die Möglichkeit habe, mySQL zu aktualisieren.
Könnte sein, dass der Zeichensatz für das Feld auf einen ungültigen Wert gesetzt wurde, führen Sie diese SQL auf dem Server aus, wobei das Problem den Tabellennamen ersetzt und die Spalte "Sortierung" den Zeichensatz für jedes varchar / char Feld anzeigt
%Vor%Sie können dann den Zeichensatz eines Feldes ändern, indem Sie Folgendes verwenden:
%Vor%