#1 2022-03-18 07:32:19

cpo
Member
Registered: 2022-03-18

Fehler durch MS-SQL Abfrage bei Datentyp datetimeoffset

Moin,

wir haben kürzlich die OVA des ReportServer 4 Enterprise in Test genommen. Dabei ist aufgefallen, dass es zu unten angegebener Fehlermeldung kommt, wenn wir versuchen eine SQL Abfrage auf eine MS-SQL 2016 Datenbank mit Tabellentyp datetimeoffset(X) ausführen.
Ein CAST innerhalb der Reportserverabfrage funktioniert, doch ein Direktaufruf des Feldes schlägt fehl.

Details

Version: RS4.0.0-6057 (2022-03-01-11-53-40)
Java Version:  BellSoft OpenJDK 64-Bit Server VM 11.0.14+9-LTS (11)
Applikationsserver: Apache Tomcat/9.0.59
JDBC Connector: mssql-jdbc-10.2.0.jre11.jar


08:30:49.337 WARN  n.d.r.c.s.r.ReportExecutorServiceImpl - Could not map -155 to a java class
java.lang.IllegalArgumentException: Could not map -155 to a java class
    at net.datenwerke.rs.base.service.dbhelper.DatabaseHelper.mapSQLTypeToJava(DatabaseHelper.java:413) ~[reportserver.jar:na]
    at net.datenwerke.rs.base.service.reportengines.table.output.object.TableDefinition.fromResultSetMetaData(TableDefinition.java:106) ~[reportserver.jar:na]
    at net.datenwerke.rs.base.service.datasources.table.impl.TableDBDataSource.open(TableDBDataSource.java:271) ~[reportserver.jar:na]
    at net.datenwerke.rs.base.service.reportengines.table.TableReportEngine.createReport(TableReportEngine.java:275) ~[reportserver.jar:na]
    at net.datenwerke.rs.base.service.reportengines.table.TableReportEngine.doExecuteNormal(TableReportEngine.java:200) ~[reportserver.jar:na]
    at net.datenwerke.rs.base.service.reportengines.table.TableReportEngine.doExecuteNormal(TableReportEngine.java:155) ~[reportserver.jar:na]
    at net.datenwerke.rs.base.service.reportengines.table.TableReportEngine.doExecute(TableReportEngine.java:86) ~[reportserver.jar:na]
    at net.datenwerke.rs.core.service.reportmanager.engine.ReportEngine.execute(ReportEngine.java:144) ~[reportserver.jar:na]
    at net.datenwerke.rs.core.service.reportmanager.ReportExecutorServiceImpl.execute(ReportExecutorServiceImpl.java:239) ~[reportserver.jar:na]
    at net.datenwerke.rs.core.service.reportmanager.ReportExecutorServiceImpl.execute(ReportExecutorServiceImpl.java:154) ~[reportserver.jar:na]
    at net.datenwerke.rs.core.service.reportmanager.ReportExecutorServiceImpl.execute(ReportExecutorServiceImpl.java:144) ~[reportserver.jar:na]
    at net.datenwerke.rs.core.service.reportmanager.ReportExecutorServiceImpl.execute(ReportExecutorServiceImpl.java:138) ~[reportserver.jar:na]
    at net.datenwerke.rs.base.service.reportengines.table.TableReportUtilsImpl.getReturnedColumns(TableReportUtilsImpl.java:194) ~[reportserver.jar:na]
    at net.datenwerke.rs.base.service.reportengines.table.TableReportUtilsImpl.getReturnedPlainColumns(TableReportUtilsImpl.java:148) ~[reportserver.jar:na]
    at net.datenwerke.rs.base.server.table.TableReportUtilityServiceImpl.loadColumnDefinition(TableReportUtilityServiceImpl.java:356) ~[reportserver.jar:na]
    at net.datenwerke.rs.base.server.table.TableReportUtilityServiceImpl$$EnhancerByGuice$$71a5b04b.CGLIB$loadColumnDefinition$3(<generated>) ~[reportserver.jar:na]
    at net.datenwerke.rs.base.server.table.TableReportUtilityServiceImpl$$EnhancerByGuice$$71a5b04b$$FastClassByGuice$$4f53653d.invoke(<generated>) ~[reportserver.jar:na]
    at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228) ~[guice-4.2.3.jar:na]
    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:76) ~[guice-4.2.3.jar:na]
    at net.datenwerke.security.service.security.aop.SecurityCheckInterceptor.invoke(SecurityCheckInterceptor.java:112) ~[reportserver.jar:na]
    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:78) ~[guice-4.2.3.jar:na]
    at net.datenwerke.gf.service.gwtstacktrace.CatchStacktraceInterceptor.invoke(CatchStacktraceInterceptor.java:38) ~[reportserver.jar:na]
    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:78) ~[guice-4.2.3.jar:na]
    at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:54) ~[guice-4.2.3.jar:na]
    at net.datenwerke.rs.base.server.table.TableReportUtilityServiceImpl$$EnhancerByGuice$$71a5b04b.loadColumnDefinition(<generated>) ~[reportserver.jar:na]
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
    at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
    at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:587) ~[gwt-servlet-2.8.2.jar:na]
    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:333) ~[gwt-servlet-2.8.2.jar:na]
    at net.datenwerke.rs.base.server.table.TableReportUtilityServiceImpl$$EnhancerByGuice$$71a5b04b.CGLIB$processCall$9(<generated>) ~[reportserver.jar:na]
    at net.datenwerke.rs.base.server.table.TableReportUtilityServiceImpl$$EnhancerByGuice$$71a5b04b$$FastClassByGuice$$4f53653d.invoke(<generated>) ~[reportserver.jar:na]
    at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228) ~[guice-4.2.3.jar:na]
    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:76) ~[guice-4.2.3.jar:na]
    at net.datenwerke.security.service.security.aop.SecurityCheckInterceptor.invoke(SecurityCheckInterceptor.java:112) ~[reportserver.jar:na]
    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:78) ~[guice-4.2.3.jar:na]
    at net.datenwerke.gf.service.gwtstacktrace.CatchStacktraceInterceptor.invoke(CatchStacktraceInterceptor.java:38) ~[reportserver.jar:na]
    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:78) ~[guice-4.2.3.jar:na]
    at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:54) ~[guice-4.2.3.jar:na]
    at net.datenwerke.rs.base.server.table.TableReportUtilityServiceImpl$$EnhancerByGuice$$71a5b04b.processCall(<generated>) ~[reportserver.jar:na]
    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:303) ~[gwt-servlet-2.8.2.jar:na]
    at net.datenwerke.rs.base.server.table.TableReportUtilityServiceImpl$$EnhancerByGuice$$71a5b04b.CGLIB$processCall$10(<generated>) ~[reportserver.jar:na]
    at net.datenwerke.rs.base.server.table.TableReportUtilityServiceImpl$$EnhancerByGuice$$71a5b04b$$FastClassByGuice$$4f53653d.invoke(<generated>) ~[reportserver.jar:na]
    at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228) ~[guice-4.2.3.jar:na]
    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:76) ~[guice-4.2.3.jar:na]
    at net.datenwerke.security.service.security.aop.SecurityCheckInterceptor.invoke(SecurityCheckInterceptor.java:112) ~[reportserver.jar:na]
    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:78) ~[guice-4.2.3.jar:na]
    at net.datenwerke.gf.service.gwtstacktrace.CatchStacktraceInterceptor.invoke(CatchStacktraceInterceptor.java:38) ~[reportserver.jar:na]
    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:78) ~[guice-4.2.3.jar:na]
    at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:54) ~[guice-4.2.3.jar:na]
    at net.datenwerke.rs.base.server.table.TableReportUtilityServiceImpl$$EnhancerByGuice$$71a5b04b.processCall(<generated>) ~[reportserver.jar:na]
    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:373) ~[gwt-servlet-2.8.2.jar:na]
    at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62) ~[gwt-servlet-2.8.2.jar:na]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:681) ~[servlet-api.jar:4.0.FR]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) ~[servlet-api.jar:4.0.FR]
    at net.datenwerke.rs.base.server.table.TableReportUtilityServiceImpl$$EnhancerByGuice$$71a5b04b.CGLIB$service$25(<generated>) ~[reportserver.jar:na]
    at net.datenwerke.rs.base.server.table.TableReportUtilityServiceImpl$$EnhancerByGuice$$71a5b04b$$FastClassByGuice$$4f53653d.invoke(<generated>) ~[reportserver.jar:na]
    at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228) ~[guice-4.2.3.jar:na]
    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:76) ~[guice-4.2.3.jar:na]
    at net.datenwerke.security.service.security.aop.SecurityCheckInterceptor.invoke(SecurityCheckInterceptor.java:112) ~[reportserver.jar:na]
    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:78) ~[guice-4.2.3.jar:na]
    at net.datenwerke.gf.service.gwtstacktrace.CatchStacktraceInterceptor.invoke(CatchStacktraceInterceptor.java:38) ~[reportserver.jar:na]
    at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:78) ~[guice-4.2.3.jar:na]
    at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:54) ~[guice-4.2.3.jar:na]
    at net.datenwerke.rs.base.server.table.TableReportUtilityServiceImpl$$EnhancerByGuice$$71a5b04b.service(<generated>) ~[reportserver.jar:na]
    at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:290) ~[guice-servlet-4.2.3.jar:na]
    at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:280) ~[guice-servlet-4.2.3.jar:na]
    at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:184) ~[guice-servlet-4.2.3.jar:na]
    at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:89) ~[guice-servlet-4.2.3.jar:na]
    at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) ~[guice-servlet-4.2.3.jar:na]
    at com.google.inject.persist.PersistFilter.doFilter(PersistFilter.java:94) ~[guice-persist-4.2.3.jar:na]
    at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) ~[guice-servlet-4.2.3.jar:na]
    at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:121) ~[guice-servlet-4.2.3.jar:na]
    at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:133) ~[guice-servlet-4.2.3.jar:na]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[catalina.jar:9.0.59]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[catalina.jar:9.0.59]
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) ~[catalina.jar:9.0.59]
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[catalina.jar:9.0.59]
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) ~[catalina.jar:9.0.59]
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) ~[catalina.jar:9.0.59]
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[catalina.jar:9.0.59]
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687) ~[catalina.jar:9.0.59]
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[catalina.jar:9.0.59]
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:359) ~[catalina.jar:9.0.59]
    at org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:433) ~[tomcat-coyote.jar:9.0.59]
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-coyote.jar:9.0.59]
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889) ~[tomcat-coyote.jar:9.0.59]
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743) ~[tomcat-coyote.jar:9.0.59]
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-coyote.jar:9.0.59]
    at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-util.jar:9.0.59]
    at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-util.jar:9.0.59]
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-util.jar:9.0.59]
    at java.base/java.lang.Thread.run(Thread.java:829) ~[na:na]

Vielen Dank schonmal für Hinweise, was wir anpassen müssen...

Mfg
Christian

Last edited by cpo (2022-03-18 07:38:28)

Offline

#2 2022-03-21 14:49:59

eduardo
Administrator
Registered: 2016-11-01
Website

Re: Fehler durch MS-SQL Abfrage bei Datentyp datetimeoffset

Hallo Christian,

wir haben das Problem im Ticket RS-5623 gefixed. Das wird in der nächsten RS-Version verfügbar sein (4.1.0) und auch in der nächsten 3.1.0-LTS-Version.

Viele Grüße
Eduardo

Offline

Board footer

Powered by FluxBB