Hi,

Im having a problem which I believe is being caused by a deficiency in my datasource driver to handle multiple connections.
If I have a simple report and pass it a jdbc connection I have no problem at all. When I try to add a subreport which uses the existing connection I get the following problems:

Code:
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is net.sf.jasperreports.engine.JRException: Unable to get next record.
	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:408)
	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:350)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


root cause 

net.sf.jasperreports.engine.JRException: Unable to get next record.
	net.sf.jasperreports.engine.JRResultSetDataSource.next(JRResultSetDataSource.java:96)
	net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:715)
	net.sf.jasperreports.engine.fill.JRBaseFiller.next(JRBaseFiller.java:932)
	net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:130)
	net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:730)
	net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:632)
	net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:63)
	net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:402)
	org.springframework.web.servlet.view.jasperreports.AbstractJasperReportsView.fillReport(AbstractJasperReportsView.java:591)
	org.springframework.web.servlet.view.jasperreports.AbstractJasperReportsView.renderMergedOutputModel(AbstractJasperReportsView.java:514)
	org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:248)
	org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1055)
	org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:819)
	org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:728)
	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:396)
	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:350)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
To try and combat this I want to be able to pass a seperate jdbc datasource as a connection to the Master Report which will be passed to the subreport.
In Jasper this shouldn't be much of a problem - simply setting a new Parameter in the master report with a type of java.sql.Connection and passing it as a connection parameter to the subreport.

My question is how do I get Spring to pass a new connection to the Jasper Report?

My current servlet.xml snippet looks like this:

Code:
<bean id="dataSource" class="com.tandem.t4jdbc.SQLMXDataSource">
        <property name="url" value="jdbc:t4sqlmx://100.0.0.20:61000/:"/>
	<property name="user" value="USER"/>
	<property name="password" value="PASSWORD"/>
</bean>

<bean id="subReportDataSource" class="com.tandem.t4jdbc.SQLMXDataSource">
	<property name="url" value="jdbc:t4sqlmx://100.0.0.20:61000/:"/>
	<property name="user" value="USER"/>
	<property name="password" value="PASSWORD"/>
</bean>

<bean id="simpleReportCompile" class="org.springframework.web.servlet.view.jasperreports.JasperReportsPdfView">
	<property name="url">
		<value>/WEB-INF/reports/ECMReport.jrxml</value>
	</property>
	<property name="jdbcDataSource">
    	        <ref bean="dataSource"/>
        </property>
	<property name="subReportUrls">
	        <map>
		        <entry key="ECMReportDistList">
				<value>/WEB-INF/reports/ECMReportDistList.jrxml</value>
			</entry>
		</map>
	</property>
</bean>
There is no property I can find which would fit the bill - I need to pass the subReportDataSource to the Jasper Report somehow as a Parameter.
Can anyone help with this?