#1 2014-04-08 16:49:48

mat
Member
Registered: 2014-01-30

Fehler beim Speichern von Berichten mit Vorfilter

Sobald ich einen Listen-Bericht mit Vorfilter parametrisiere kann ich diesen nicht mehr speichern.
Ist das ein Bug?

Hier der Stacktrace:

net.datenwerke.gxtdto.client.servercommunication.exceptions.ServerCallFailedException: Error while committing the transaction<br>    at net.datenwerke.gf.service.gwtstacktrace.CatchStacktraceInterceptor.mapException(CatchStacktraceInterceptor.java:74)<br>    at net.datenwerke.gf.service.gwtstacktrace.CatchStacktraceInterceptor.invoke(CatchStacktraceInterceptor.java:47)<br>    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)<br>    at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:52)<br>    at net.datenwerke.rs.tsreportarea.server.tsreportarea.TsDiskRpcServiceImpl$$EnhancerByGuice$$c9d3e7a3.updateReferenceAndReport(&lt;generated&gt;)<br>    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br>    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)<br>    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)<br>    at java.lang.reflect.Method.invoke(Method.java:606)<br>    at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:561)<br>    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:208)<br>    at net.datenwerke.rs.tsreportarea.server.tsreportarea.TsDiskRpcServiceImpl$$EnhancerByGuice$$c9d3e7a3.CGLIB$processCall$32(&lt;generated&gt;)<br>    at net.datenwerke.rs.tsreportarea.server.tsreportarea.TsDiskRpcServiceImpl$$EnhancerByGuice$$c9d3e7a3$$FastClassByGuice$$ef04265c.invoke(&lt;generated&gt;)<br>    at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228)<br>    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)<br>    at net.datenwerke.security.service.security.aop.SecurityCheckInterceptor.invoke(SecurityCheckInterceptor.java:110)<br>    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)<br>    at net.datenwerke.gf.service.gwtstacktrace.CatchStacktraceInterceptor.invoke(CatchStacktraceInterceptor.java:38)<br>    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)<br>    at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:52)<br>    at net.datenwerke.rs.tsreportarea.server.tsreportarea.TsDiskRpcServiceImpl$$EnhancerByGuice$$c9d3e7a3.processCall(&lt;generated&gt;)<br>    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248)<br>    at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)<br>    at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)<br>    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)<br>    at net.datenwerke.rs.tsreportarea.server.tsreportarea.TsDiskRpcServiceImpl$$EnhancerByGuice$$c9d3e7a3.CGLIB$service$49(&lt;generated&gt;)<br>    at net.datenwerke.rs.tsreportarea.server.tsreportarea.TsDiskRpcServiceImpl$$EnhancerByGuice$$c9d3e7a3$$FastClassByGuice$$ef04265c.invoke(&lt;generated&gt;)<br>    at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228)<br>    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)<br>    at net.datenwerke.security.service.security.aop.SecurityCheckInterceptor.invoke(SecurityCheckInterceptor.java:110)<br>    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)<br>    at net.datenwerke.gf.service.gwtstacktrace.CatchStacktraceInterceptor.invoke(CatchStacktraceInterceptor.java:38)<br>    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)<br>    at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:52)<br>    at net.datenwerke.rs.tsreportarea.server.tsreportarea.TsDiskRpcServiceImpl$$EnhancerByGuice$$c9d3e7a3.service(&lt;generated&gt;)<br>    at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:263)<br>    at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:178)<br>    at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91)<br>    at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:62)<br>    at com.google.inject.persist.PersistFilter.doFilter(PersistFilter.java:89)<br>    at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163)<br>    at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)<br>    at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118)<br>    at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)<br>    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)<br>    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)<br>    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)<br>    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)<br>    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)<br>    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)<br>    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)<br>    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)<br>    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)<br>    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)<br>    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)<br>    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)<br>    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)<br>    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)<br>    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)<br>    at java.lang.Thread.run(Thread.java:744)<br>Caused by: javax.persistence.RollbackException: Error while committing the transaction<br>    at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:92)<br>    at com.google.inject.persist.jpa.JpaLocalTxnInterceptor.invoke(JpaLocalTxnInterceptor.java:87)<br>    at net.datenwerke.security.service.security.aop.SecurityCheckInterceptor.invoke(SecurityCheckInterceptor.java:110)<br>    at net.datenwerke.gf.service.gwtstacktrace.CatchStacktraceInterceptor.invoke(CatchStacktraceInterceptor.java:38)<br>    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br>    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)<br>    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)<br>    at java.lang.reflect.Method.invoke(Method.java:606)<br>    at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:561)<br>    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:208)<br>    at net.datenwerke.security.service.security.aop.SecurityCheckInterceptor.invoke(SecurityCheckInterceptor.java:110)<br>    at net.datenwerke.gf.service.gwtstacktrace.CatchStacktraceInterceptor.invoke(CatchStacktraceInterceptor.java:38)<br>    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248)<br>    at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)<br>    at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)<br>    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)<br>    at net.datenwerke.security.service.security.aop.SecurityCheckInterceptor.invoke(SecurityCheckInterceptor.java:110)<br>    at net.datenwerke.gf.service.gwtstacktrace.CatchStacktraceInterceptor.invoke(CatchStacktraceInterceptor.java:38)<br>    ... 25 more<br>Caused by: javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not execute statement<br>    at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1387)<br>    at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1310)<br>    at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:80)<br>    ... 42 more<br>Caused by: org.hibernate.exception.SQLGrammarException: could not execute statement<br>    at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:82)<br>    at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49)<br>    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125)<br>    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:110)<br>    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:136)<br>    at org.hibernate.engine.jdbc.batch.internal.NonBatchingBatch.addToBatch(NonBatchingBatch.java:58)<br>    at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3067)<br>    at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3509)<br>    at org.hibernate.action.internal.EntityInsertAction.execute(EntityInsertAction.java:88)<br>    at org.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:377)<br>    at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:369)<br>    at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:286)<br>    at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:339)<br>    at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:52)<br>    at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1234)<br>    at org.hibernate.envers.synchronization.AuditProcess.doBeforeTransactionCompletion(AuditProcess.java:158)<br>    at org.hibernate.envers.synchronization.AuditProcessManager$1.doBeforeTransactionCompletion(AuditProcessManager.java:62)<br>    at org.hibernate.engine.spi.ActionQueue$BeforeTransactionCompletionProcessQueue.beforeTransactionCompletion(ActionQueue.java:699)<br>    at org.hibernate.engine.spi.ActionQueue.beforeTransactionCompletion(ActionQueue.java:321)<br>    at org.hibernate.internal.SessionImpl.beforeTransactionCompletion(SessionImpl.java:613)<br>    at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.beforeTransactionCommit(JdbcTransaction.java:105)<br>    at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.commit(AbstractTransactionImpl.java:175)<br>    at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:75)<br>    ... 42 more<br>Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table &#39;reportserver.rs_filter_2_include_val_a&#39; doesn&#39;t exist<br>    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)<br>    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)<br>    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)<br>    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)<br>    at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)<br>    at com.mysql.jdbc.Util.getInstance(Util.java:386)<br>    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052)<br>    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4098)<br>    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4030)<br>    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2490)<br>    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2651)<br>    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2677)<br>    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2134)<br>    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2434)<br>    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2352)<br>    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2337)<br>    at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeUpdate(NewProxyPreparedStatement.java:147)<br>    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:133)<br>    ... 60 more<br>

Offline

#2 2014-04-09 08:17:49

Marcel Berger
InfoFabrik
Registered: 2012-03-14
Website

Re: Fehler beim Speichern von Berichten mit Vorfilter

Hallo Mat,

kannst Du in der reportserver Datenbank kontrollieren ob die Tabelle: RS_FILTER_2_INCLUDE_VAL_A vorhanden ist, denn die Fehlermeldung besagt, dass genau diese fehlt. Die Definition der Tabelle findest Du in der Datei
reportserver-RS2.1.6-5543-schema-MySQL5_CREATE.sql.

Viele Grüße

Marcel

Offline

#3 2014-04-09 09:51:58

mat
Member
Registered: 2014-01-30

Re: Fehler beim Speichern von Berichten mit Vorfilter

tatsächlich, beim anlegen der Tabelle bekomme ich eine SQL Fehlermeldung.

create table RS_FILTER_2_INCLUDE_VAL_A (
        REV integer not null,
        filter_id bigint not null,
        include_values varchar(255) not null,
        val_n integer not null,
        revtype tinyint,
        primary key (REV, filter_id, include_values, val_n)
    );
/* SQL Fehler (1071): Specified key was too long; max key length is 767 bytes */
/* Affected rows: 0  Gefundene Zeilen: 0  Warnungen: 0  Dauer von 0 of 1 query: 0,000 sec. */


Mit fehlt auch noch die rs_filter_2_exclude_val_a und evtl noch weitere. Das ist mir beim Schema anlegen nicht aufgefallen.
Vermutlich eine MySQL spezifische Limitierung der Key-Länge. Da muss ich mich erst mal schlau machen ob man das konfigurieren kann oder ob es Workarounds gibt.

Mat

Offline

#4 2014-04-09 10:14:21

mat
Member
Registered: 2014-01-30

Re: Fehler beim Speichern von Berichten mit Vorfilter

Mit der Kollation utf8_general_ci statt utf16_general_ci konnte ich die Tabelle samt PK jetzt anlegen.

Ich habe die Standard Kollation der Datenbank auf utf8_general_ci gestellt und das Schema nochmal drüber laufen lassen. Damit wurden die fehlenden Tabellen angelegt.
Neu angelegt wurden (mit utf8):
rs_filter_2_exclude_val_a
rs_filter_2_include_val_a
rs_list_uservariable_inst_vl_a
rs_script_report_2_ex_format_a

Speichern von Parametern scheint jetzt zu klappen.
Ich hoffe die Mischung von utf8 und utf16 macht nicht irgendwo Probleme. Evtl. sollte ich alle Tabellen auf utf8 Kollation stellen?!?

Grüße
Mat

Offline

#5 2014-04-09 10:51:32

Marcel Berger
InfoFabrik
Registered: 2012-03-14
Website

Re: Fehler beim Speichern von Berichten mit Vorfilter

Hallo Mat,

ich denke UTF8 reicht für die meisten Belange aus. Vielleicht hilft Dir dieser Link noch weiter: http://bugs.mysql.com/bug.php?id=68453


Viele Grüße
Marcel

Offline

Board footer

Powered by FluxBB