Welcome to Knowage Q&A, where you can ask questions and receive answers from other members of the community.
+1 vote
1 view
Knowage Studio BIRT Reports viewer returns empty data when using external Dataset with JNDI Multi schema attribute. Is this a known bug?
Environment Knowage version 7.2 , Linux , Firefox
in Data Set by (230 points)
Hello,

can you attach the logs of the error please?

thanks,
Marco

Hi,

I have provided below the error that occurs in the console. It says the "Datasource is multischema, but User profile object is not provided". this occurs Only when we are using external data set in the knowage studio Birt report, the multischema user profile attribute is not getting passed, so it is unable for the correct JNDI URL to connect to the database. Any help on how to pass the profile attribute via knowage BIRT report when using external dataset would be greatly appreciated. Thank you

it.eng.spagobi.sdk.datasets.impl.DataSetsSDKServiceImpl.executeDataSet:349 - Error while retrieving SDKEngine list
it.eng.spagobi.utilities.exceptions.SpagoBIRuntimeException: An error occurred while creating connection
    at it.eng.spagobi.tools.dataset.common.dataproxy.JDBCDataProxy.load(JDBCDataProxy.java:103)
    at it.eng.spagobi.tools.dataset.bo.ConfigurableDataSet.loadData(ConfigurableDataSet.java:141)
    at it.eng.spagobi.tools.dataset.bo.AbstractDataSet.loadData(AbstractDataSet.java:888)
    at it.eng.spagobi.tools.dataset.bo.VersionedDataSet.loadData(VersionedDataSet.java:285)
    at it.eng.spagobi.sdk.datasets.impl.DataSetsSDKServiceImpl.executeDataSet(DataSetsSDKServiceImpl.java:340)
    at it.eng.spagobi.sdk.datasets.stub.DataSetsSDKServiceSoapBindingImpl.executeDataSet(DataSetsSDKServiceSoapBindingImpl.java:46)
    at it.eng.spagobi.sdk.datasets.stub.DataSetsSDKServiceSoapBindingSkeleton.executeDataSet(DataSetsSDKServiceSoapBindingSkeleton.java:181)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)
    at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)
    at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)
    at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
    at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
    at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
    at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)
    at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
    at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
    at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:660)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:798)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:808)
    at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2161)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)
Caused by: it.eng.spagobi.utilities.engines.SpagoBIEngineRuntimeException: Cannot get connection to datasource
    at it.eng.spagobi.tools.datasource.bo.DataSource.getConnectionByUserProfile(DataSource.java:203)
    at it.eng.spagobi.tools.datasource.bo.DataSource.getConnection(DataSource.java:190)
    at it.eng.spagobi.tools.dataset.common.dataproxy.JDBCDataProxy.load(JDBCDataProxy.java:101)
    ... 44 more
Caused by: it.eng.spagobi.utilities.assertion.NullReferenceException: Datasource is multischema, but User profile object is not provided
    at it.eng.spagobi.utilities.assertion.Assert.assertNotNull(Assert.java:39)
    at it.eng.spagobi.tools.datasource.bo.DataSource.getJNDIRunTime(DataSource.java:229)
    at it.eng.spagobi.tools.datasource.bo.DataSource.getConnectionByUserProfile(DataSource.java:197)
    ... 46 more

2 Answers

0 votes

Hi

Did you manage to use multischema datasource in Knowage Birt Studio ?

I have the same issue and really need to make this work.

Datasets get the correct output columns from knowage server, but there is no data.

[ajp-nio-10.10.1.5-8009-exec-88] 08 avr. 2022 15:21:24,734 ERROR it.eng.spagobi.sdk.datasets.impl.DataSetsSDKServiceImpl.executeDataSet:349 - Error while retrieving SDKEngine list
it.eng.spagobi.utilities.exceptions.SpagoBIRuntimeException: An error occurred while creating connection
        at it.eng.spagobi.tools.dataset.common.dataproxy.JDBCDataProxy.load(JDBCDataProxy.java:103)
        at it.eng.spagobi.tools.dataset.bo.ConfigurableDataSet.loadData(ConfigurableDataSet.java:149)
        at it.eng.spagobi.tools.dataset.bo.AbstractDataSet.loadData(AbstractDataSet.java:888)
        at it.eng.spagobi.tools.dataset.bo.VersionedDataSet.loadData(VersionedDataSet.java:285)
        at it.eng.spagobi.sdk.datasets.impl.DataSetsSDKServiceImpl.executeDataSet(DataSetsSDKServiceImpl.java:340)
        at it.eng.spagobi.sdk.datasets.stub.DataSetsSDKServiceSoapBindingImpl.executeDataSet(DataSetsSDKServiceSoapBindingImpl.java:46)
        at it.eng.spagobi.sdk.datasets.stub.DataSetsSDKServiceSoapBindingSkeleton.executeDataSet(DataSetsSDKServiceSoapBindingSkeleton.java:181)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)
        at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)
        at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)
        at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
        at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
        at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
        at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)
        at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
        at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:652)
        at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.apache.catalina.filters.CorsFilter.handleNonCORS(CorsFilter.java:363)
        at org.apache.catalina.filters.CorsFilter.doFilter(CorsFilter.java:169)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:201)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:544)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
        at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:698)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:364)
        at org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:526)
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:831)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1629)
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:748)
Caused by: it.eng.spagobi.utilities.engines.SpagoBIEngineRuntimeException: Cannot get connection to datasource
        at it.eng.spagobi.tools.datasource.bo.DataSource.getConnectionByUserProfile(DataSource.java:203)
        at it.eng.spagobi.tools.datasource.bo.DataSource.getConnection(DataSource.java:190)
        at it.eng.spagobi.tools.dataset.common.dataproxy.JDBCDataProxy.load(JDBCDataProxy.java:101)
        ... 48 more
Caused by: it.eng.spagobi.utilities.assertion.NullReferenceException: Datasource is multischema, but User profile object is not provided
        at it.eng.spagobi.utilities.assertion.Assert.assertNotNull(Assert.java:39)
        at it.eng.spagobi.tools.datasource.bo.DataSource.getJNDIRunTime(DataSource.java:229)
        at it.eng.spagobi.tools.datasource.bo.DataSource.getConnectionByUserProfile(DataSource.java:197)
        ... 50 more


by (3.2k points)
0 votes
OK so I found out that when previewing report from birt studio you won't get the user schema profile attribute.

But uploading report design to knowage server, you will see data output when executing document.
by (3.2k points)
...