Oracle Application Server Reports Services Publishing Reports to the Web 10g (9.0.4) Part Number B10314-01 |
|
The JDBC pluggable data source (PDS) enables you to access any JDBC sources, such as:
The JDBC PDS is installed by default with Oracle Reports to allow access to all of the JDBC supported data sources.
This chapter contains the following sections:
The jdbcpds.conf
file, located in the ORACLE_HOME
\reports\conf
directory, is the Oracle Reports JDBC PDS configuration file. This file is pre-configured for the Merant DataDirect drivers provided by Oracle. You need to add or modify relevant entries in the jdbcpds.conf
file to include any other JDBC drivers that you want to use.
Reports Builder displays a list of drivers in the JDBC Query Connection dialog box based on the entries in the jdbcpds.conf
file. Use this list to select specific drivers for your report's JDBC query.
Reports Builder reads and caches the entries in the jdbcpds.conf
when it is invoked. Restart Reports Builder to view the result of any changes made to the jdbcpds.conf
file, e.g., adding a new JDBC driver entry.
The jdbcpds.conf
file has two sections:
The following sample illustrates the contents of the jdbcpds.conf
file:
<!-- DTD section - Not to be modified --> <!DOCTYPE jdbcpds [ <!ELEMENT jdbcpds (driverInfo)> <!ELEMENT driverInfo (driver+)> <!ELEMENT driver (property*)> <!ATTLIST driver name CDATA #REQUIRED sourceDatabase (oracle | sqlserver | sybase | db2 | informix | odbc | other) "oracle" mainProtocol ( jdbc ) "jdbc" subProtocol CDATA #REQUIRED connectString CDATA #REQUIRED class CDATA #REQUIRED connection CDATA #REQUIRED loginTimeout CDATA "5" > <!ELEMENT property EMPTY> <!ATTLIST property name CDATA #REQUIRED value CDATA #REQUIRED > ]> <!-- Add or modify the following section for your driver information --> <!-- Following drivers are available out-of-box in 9iAS --> <jdbcpds> <driverInfo> <driver name = "oracleThin" sourceDatabase = "oracle" subProtocol = "oracle:thin" connectString = "mainProtocol:subProtocol:@databaseName" class= "oracle.jdbc.driver.OracleDriver" connection = "oracle.reports.plugin.datasource.jdbcpds. JDBCConnectionHandling"> </driver> <driver name = "oracle" sourceDatabase = "oracle" subProtocol = "oracle:oci8" connectString = "mainProtocol:subProtocol:@databaseName" class = "oracle.jdbc.driver.OracleDriver" connection = "oracle.reports.plugin.datasource.jdbcpds. JDBCConnectionHandling"> </driver> <driver name = "jdbc-odbc" sourceDatabase = "odbc" subProtocol = "odbc" connectString = "mainProtocol:subProtocol:databaseName" class = "sun.jdbc.odbc.JdbcOdbcDriver" connection = "oracle.reports.plugin.datasource.jdbcpds. JDBCConnectionHandling"> </driver> <driver name = "sqlserver-merant" sourceDatabase = "sqlserver" subProtocol = "merant:sqlserver" connectString = "mainProtocol:subProtocol://databaseName" class = "com.oracle.ias.jdbc.sqlserver.SQLServerDriver" connection = "oracle.reports.plugin.datasource.jdbcpds. JDBCConnectionHandling"> </driver> <driver name = "sybase-merant" sourceDatabase = "sybase" subProtocol = "merant:sybase" connectString = "mainProtocol:subProtocol://databaseName" class = "com.oracle.ias.jdbc.sybase.SybaseDriver" connection = "oracle.reports.plugin.datasource.jdbcpds. JDBCConnectionHandling" loginTimeout = "0"> </driver> <driver name = "db2-merant" sourceDatabase = "db2" subProtocol = "merant:db2" connectString = "mainProtocol:subProtocol://databaseName" class = "com.oracle.ias.jdbc.db2.DB2Driver" connection = "oracle.reports.plugin.datasource.jdbcpds. JDBCConnectionHandling" loginTimeout = "0"> </driver> <driver name = "informix-merant" sourceDatabase = "informix" subProtocol = "merant:informix" connectString = "mainProtocol:subProtocol://databaseName" class = "com.oracle.ias.jdbc.informix.InformixDriver" connection = "oracle.reports.plugin.datasource.jdbcpds. JDBCConnectionHandling"> </driver> </driverInfo> </jdbcpds>
Table 8-1 outlines the various attributes that can be associated with a driver.
When you submit your report's connection details, the connection information is combined with the driver's configuration information specified in the jdbcpds.conf
file. The resulting connection information is submitted to the database as a complete connection URL. Refer to Table 8-2, Table 8-3, Table 8-4, Table 8-5, and Table 8-6 for more information on sample connection information.
Figure 8-1 shows a list of all drivers configured in the jdbcpds.conf
file.
Drivers like SQL Server and Excel with JDBC-ODBC, Oracle JDBC Thin, and Oracle JDBC OCI (thick) are installed and configured with Oracle Reports. These drivers do not require any additional JAR files to be installed.
You can use SQL Server / Excel with the JDBC-ODBC driver. This entry is pre-configured in the jdbcpds.conf
file. Before you can use SQL Server or Excel with JDBC-ODBC, you need to create an ODBC data source. Refer to Windows help, for more information on how to create an ODBC data source.
Oracle provides a set of Merant DataDirect drivers (Version 3.2) that can be downloaded from OTN, (http://otn.oracle.com
). The driver configuration file, i.e., jdbcpds.conf
contains relevant entries for the Merant DataDirect drivers. Additionally, the JDBC Connect dialog (Table 8-1) lists the entries for the set of Merant DataDirect drivers provided by Oracle.
However, you need to install the appropriate JAR files and specify them in Oracle Reports specific classpath entries, in order to make them available to Reports Builder and OracleAS Reports Services
The drivers provided by Oracle for use with Oracle Application Server / Oracle Developer Suite are:
You can also install and configure a Custom Driver for use with Oracle Application Server and Oracle Developer Suite.
The following procedure outlines the generic steps involved in configuring the Merant DataDirect drivers. To configure specific Merant DataDirect drivers refer to the appropriate sections.
To configure the Merant DataDirect drivers:
REPORTS_CLASSPATH
to make the files available to Reports Builder and OracleAS Reports Services. Refer to the relevant driver in this section for information on the required JAR files.
REPORTS_CLASSPATH.
This variable is located in the registry for Windows users and in the reports.sh
file for Solaris users. Refer to the relevant driver in this section for an example.
classPath
attribute in the rwbuilder.conf
configuration file. Refer to the relevant driver in this section for an example.
classPath
attribute of the engine, in the Reports Server configuration file. Refer to the relevant driver in this section for an example
jdbcpds.conf
: Located in the ORACLE_HOME
\reports\conf
directory. Refer to Table 8-1 for more information on the parameters. Refer to the relevant driver in this section for an example.
Jar files required: YMutil.jar
, YMsybase.jar
, and YMbase.jar
.
REPORTS_CLASSPATH
to make the files available to Reports Builder and OracleAS Reports Services.
REPORTS_CLASSPATH.
This variable is located in the registry for Windows users and in the reports.sh
file for Solaris users.
Example: D:\sybase_installed\YMutil.jar;D:\sybase_ installed\YMsybase.jar;D:\sybase_installed\YMbase.jar;existing classpath entries
rwbuilder.conf
: Append the driver location to the engine classPath
attribute in the rwbuilder.conf
configuration file.
Example: <engine id="rwEng" class="oracle.reports.engine.EngineImpl" initEngine="1" maxEngine="1" minEngine="0" engLife="50" maxIdle="30" callbackTimeOut="60000" classPath="D:\sybase_ installed\YMutil.jar;D:\sybase_installed\YMsybase.jar;D:\sybase_ installed\YMbase.jar;"> ... </engine>
classPath
attribute of the engine in the Reports Server configuration file.
Example: <engine id="rwEng" class="oracle.reports.engine.EngineImpl" initEngine="1" maxEngine="1" minEngine="0" engLife="50" maxIdle="30" callbackTimeOut="60000" classPath="D:\sybase_ installed\YMutil.jar;D:\sybase_installed\YMsybase.jar;D:\sybase_ installed\YMbase.jar;"> ... </engine>
jdbcpds.conf
: Located in the ORACLE_HOME
\reports\conf
directory. Refer to Table 8-1 for more information on the required parameters.
Example: <driver name = "sybase-merant" sourceDatabase = "sybase" subProtocol = "merant:sybase" connectString = "mainProtocol:subProtocol://databaseName" class = "com.oracle.ias.jdbc.sybase.SybaseDriver" connection = "oracle.reports.plugin.datasource.jdbcpds. JDBCConnectionHandling" loginTimeout = "0"> </driver>
JAR files required: YMutil.jar
, YMdb2.jar
,and YMbase.jar
REPORTS_CLASSPATH
to make the files available to Reports Builder and OracleAS Reports Services.
REPORTS_CLASSPATH
. This variable is located in the registry for Windows users and in the reports.sh
file for Solaris users.
Example: D:\db2_installed\YMutil.jar;D:\db2_installed\YMdb2.jar;D:\db2_ installed\YMbase.jar;existing classpath entries
classPath
attribute in the rwbuilder.conf
configuration file.
Example: <engine id="rwEng" class="oracle.reports.engine.EngineImpl" initEngine="1" maxEngine="1" minEngine="0" engLife="50" maxIdle="30" callbackTimeOut="60000" classPath="D:\db2_ installed\YMutil.jar;D:\db2_installed\YMdb2.jar;D:\db2_ installed\YMbase.jar"> ... </engine>
classPath
attribute of the engine in the Reports Server configuration file.
Example: <engine id="rwEng" class="oracle.reports.engine.EngineImpl" initEngine="1" maxEngine="1" minEngine="0" engLife="50" maxIdle="30" callbackTimeOut="60000" classPath="D:\db2_ installed\YMutil.jar;D:\db2_installed\YMdb2.jar;D:\db2_ installed\YMbase.jar"> ... </engine>
jdbcpds.conf
: Located in the ORACLE_HOME
\reports\conf
directory. Refer to Table 8-1 for more information on the parameters.
Example: <driver name = "db2-merant" sourceDatabase = "db2" subProtocol = "merant:db2" connectString = "mainProtocol:subProtocol://databaseName" class = "com.oracle.ias.jdbc.db2.DB2Driver" connection = "oracle.reports.plugin.datasource.jdbcpds. JDBCConnectionHandling" loginTimeout = "0"> </driver>
.jar
files in your Oracle Application Server and Oracle Developer Suite directory.
Jar files required: YMutil.jar,YMsqlserver.jar,and YMbase.jar
REPORTS_CLASSPATH
to make the files available to Reports Builder and OracleAS Reports Services.
REPORTS_CLASSPATH.
This variable is located in the registry for Windows users and in the reports.sh
file for Solaris users.
Example: D:\sqlserver_installed\YMutil.jar;D:\sqlserver_ installed\YMsqlserver.jar;D:\sqlserver_installed\YMbase.jar;existing classpath entries
classPath
attribute in the rwbuilder.conf
configuration file.
Example: <engine id="rwEng" class="oracle.reports.engine.EngineImpl" initEngine="1" maxEngine="1" minEngine="0" engLife="50" maxIdle="30" callbackTimeOut="60000" classPath="D:\sqlserver_ installed\YMutil.jar;D:\sqlserver_ installed\YMsqlserver.jar;D:\sqlserver_installed\YMbase.jar;"> ... </engine>
classPath
attribute of the engine in the Reports Server configuration file.
Example: <engine id="rwEng" class="oracle.reports.engine.EngineImpl" initEngine="1" maxEngine="1" minEngine="0" engLife="50" maxIdle="30" callbackTimeOut="60000" classPath="D:\sqlserver_ installed\YMutil.jar;D:\sqlserver_ installed\YMsqlserver.jar;D:\sqlserver_installed\YMbase.jar;"> ... </engine>
jdbcpds.conf
: Located in the ORACLE_HOME
\reports\conf
directory. Refer to Table 8-1 for more information on the parameters.
Example: <driver name = "sqlserver-merant" sourceDatabase = "sqlserver" subProtocol = "merant:sqlserver" connectString = "mainProtocol:subProtocol://databaseName" class = "com.oracle.ias.jdbc.sqlserver.SQLServerDriver" connection = "oracle.reports.plugin.datasource.jdbcpds. JDBCConnectionHandling"> </driver>
JAR files required: YMutil.jar
, YMinformix.jar
, and YMbase.jar
REPORTS_CLASSPATH
to make the files available to Reports Builder and OracleAS Reports Services.
REPORTS_CLASSPATH.
This variable is located in the registry for Windows users and in the reports.sh
file for Solaris users.
Example: D:\informix_installed\YMutil.jar;D:\informix_ installed\YMinformix.jar;D:\informix_installed\YMbase.jar;existing classpath entries
classPath
attribute in the rwbuilder.conf
configuration file.
Example: <engine id="rwEng" class="oracle.reports.engine.EngineImpl" initEngine="1" maxEngine="1" minEngine="0" engLife="50" maxIdle="30" callbackTimeOut="60000" classPath="D:\informix_ installed\YMutil.jar;D:\informix_installed\YMinformix.jar;D:\informix_ installed\YMbase.jar"> ... </engine>
classPath
attribute of the engine in the Reports Server configuration file.
Example: <engine id="rwEng" class="oracle.reports.engine.EngineImpl" initEngine="1" maxEngine="1" minEngine="0" engLife="50" maxIdle="30" callbackTimeOut="60000" classPath="D:\informix_ installed\YMutil.jar;D:\informix_installed\YMinformix.jar;D:\informix_ installed\YMbase.jar"> ... </engine>
jdbcpds.conf
: Located in the ORACLE_HOME
\reports\conf
directory. Refer to Table 8-1 for more information on the parameters.
Example: <driver name = "informix-merant"
sourceDatabase = "informix" subProtocol = "merant:informix" connectString = "mainProtocol:subProtocol://databaseName" class = "com.oracle.ias.jdbc.informix.InformixDriver" connection = "oracle.reports.plugin.datasource.jdbcpds. JDBCConnectionHandling"></driver>
Any driver that is not provided by Oracle must be installed and configured:
REPORTS_CLASSPATH
to make the files available to Reports Builder and OracleAS Reports Services.
Jar files required: Refer to the relevant driver documentation.
REPORTS_CLASSPATH
. This variable is located in the registry for Windows users and in the reports.sh
file for Solaris users.
Example: driver location\1st jar file;driver location\2nd jar file2;existing classpath entries
rwbuilder.conf
: Append the driver location to the engine classPath
attribute in the rwbuilder.conf
configuration file.
Example: <engine id="rwEng" class="oracle.reports.engine.EngineImpl" initEngine="1" maxEngine="1" minEngine="0" engLife="50" maxIdle="30" callbackTimeOut="60000" classPath="driver location\1st jar file;driver location\2nd jar file;"> ... </engine>
classPath
attribute of the engine in the Reports Server configuration file.
Example: <engine id="rwEng" class="oracle.reports.engine.EngineImpl" initEngine="1" maxEngine="1" minEngine="0" engLife="50" maxIdle="30" callbackTimeOut="60000" classPath="driver location\1st jar file;driver location\2nd jar file;"> ... </engine>
jdbcpds.conf
: Located in the ORACLE_HOME
\reports\conf
directory. Add relevant driver configuration information to the jdbcpds.conf
file. Refer to Table 8-1 for more information on the required parameters.
Example: <driver name = "<driver name>" sourceDatabase = "<sourceDatabase>" subProtocol = "<subProtocol>" connectString = "mainProtocol:subProtocol://databaseName" class = "<driver class name>" connection ="<connection handling class"> </driver>
After configuring the relevant JDBC drivers, you can define and run a JDBC query using either SQL or a stored procedure.
To define a JDBC query:
SELECT * FROM DEPARTMENT;
Enter the complete call syntax of your database's stored procedure. For example:
TestProc(40)
For more information on the call syntax, refer to your database documentation.
JDBC PDS submits the calling statement to the driver as specified, to invoke the stored procedure.
p_jdbcpds:
jdbcpds.conf
file.
connectString
driver attribute (Table 8-1) defined in the jdbcpds.conf
file
Text description of the illustration jdbcpds_querysnpsht.gif
Table 8-2, Table 8-3, Table 8-4, Table 8-5, and Table 8-6 lists sample connection information for use with the pre-installed drivers.
Property | Value |
---|---|
Username |
|
Password |
|
Database |
where |
Property | Value |
---|---|
Username |
N/A |
Password |
This password is set at the time of establishing an ODBC connection. |
Database |
where |
When you run a report having a JDBC query (Reports Server or rwrun
engine), use the sign-on parameter to submit the connection information for the JDBC data source. This sign-on parameter is defined for your JDBC query in the design time.
For example, if your report has a JDBC query to a Sybase data source, a JDBC query to a DB2 data source, and a SQL query to an Oracle data source, then the request could be defined as:
http://your ias server:port//reports/rwservlet?report=my.rdf&userid=user/pwd@oracledb &desformat-pdf&destype=cache&p_sybasepds=sybaseuser/pw@sybasehost:port &p_db2pds=db2user/pwd@db2host:port
where:
p_sybasepds
is the sign-on parameter associated with the sybase JDBC query.
p_db2pds
is the sign-on parameter associated with the DB2 JDBC query defined in the report at design time.
userid
is the value for connecting the SQL query to the Oracle database. You do not need to specify the userid
if your report does not have a SQL query or a REF cursor query.
The default sign-on parameter name p_jdbcpds
will be used if you have not specified a name in the JDBC query dialog while designing the report.
This section lists:
Table 8-7, Table 8-8, and Table 8-9 lists troubleshooting information related to the JDBC PDS.
Use the detailed trace information (ORACLE_HOME
\reports\logs\
) generated by Oracle Reports to debug your JDBC query.
The trace information generated is helpful to find out the following:
See Example 8-1 for a sample design-time trace output.
See Example 8-2 for a sample run-time trace output.
Connection handling trace showing final connect string [2003/4/7 5:41:38:686] Debug 50103 (jdbcpds): handleConnectButtonEvent : start [2003/4/7 5:41:38:686] Debug 50103 (jdbcpds): handleConnectButtonEvent : subProtocol :sybase-merant [2003/4/7 5:41:38:686] Debug 50103 (jdbcpds): handleConnectButtonEvent : connection class :oracle.reports.plugin.datasource.jdbcpds.JDBCConnectionHandling [2003/4/7 5:41:38:696] Debug 50103 (jdbcpds): handleConnectButtonEvent : combine string :jdbc:merant:sybase://server1.us.oracle.com:1300 [2003/4/7 5:41:38:696] Debug 50103 (jdbcpds): JDBCDataSource : setJDBCQueryType: sybase [2003/4/7 5:41:41:350] Debug 50103 (jdbcpds): JDBCUIEventHandler : handleConnectEvent : Valid Connection com.oracle.ias.jdbc.sybase.SybaseConnection@56fc16 [2003/4/7 5:41:41:350] Debug 50103 (jdbcpds): JDBCUIEventHandler : handleConnectEvent : END com.oracle.ias.jdbc.sybase.SybaseConnection@56fc16 Design time metadata of query [2003/3/31 6:35:46:363] Debug 50103 (jdbcpds): JDBCUIEventHandler : handleOKEvent : Serialize XML<jdbcpds DTDVersion=" 1.0"><JDBCQuery>jdbcpdspkg.proc_with_ param(1,2,3,4,5)</JDBCQuery><QueryDefinition>1</QueryDefinition><driverType>orac le</driverType><connectionClass>oracle.reports.plugin.datasource.jdbcpds.JDBCCon nectionHandling</connectionClass><SignOnParameter>P_ JDBCPDS</SignOnParameter><jdbcElements><elementname = "EMPNO" type = "2" typeName = "NUMBER" columnSize = "4" columnScale = "0" /><element name = "ENAME" type = "12" typeName ="VARCHAR2" columnSize = "10" columnScale = "0" /><element name = "JOB" type = "12" typeName = "VARCHAR2" columnSize = "9" columnScale ="0" /><element name = "MGR" type = "2" typeName = "NUMBER" columnSize = "4" columnScale = "0" /><element name = "HIREDATE" type = "93" typeName = "DATE" columnSize = "16" columnScale = "0" /><element name = "SAL" type = "2" typeName = "NUMBER" columnSize = "7" columnScale= "2" /><element name = "COMM" type = "2" typeName = "NUMBER" columnSize = "7" columnScale = "2" /><element name = "DEPTNO" type = "2" typeName = "NUMBER" columnSize = "2" columnScale = "0" /></jdbcElements><referenceColumns></referenceColumns></jdbcpds> [2003/3/31 6:35:46:383] Debug 50103 (jdbcpds): JDBCUIEventHandler :handleOKEvent END
[2003/3/18 5:45:17:707] Debug 50103 (jdbcpds): JDBCDataSource : startRuntime method : START Describing the JDBC Query: [2003/3/18 5:45:17:707] Debug 50103 (jdbcpds): JDBCDataSource : describe : START [2003/3/18 5:45:17:707] Debug 50103 (jdbcpds): applyXML: Extract the Serilzed XML containing Query Meta Data <jdbcpds DTDVersion=" 1.0"><JDBCQuery>select * from emp</JDBCQuery><QueryDefinition>0</QueryDefinition><driverType>oracle</driverTyp e><connectionClass>oracle.reports.plugin.datasource.jdbcpds.JDBCConnectionHandli ng</connectionClass>... ConnectionHandling At Runtime: [2003/3/18 5:45:17:737] Debug 50103 (jdbcpds): JDBCDataSource : startRuntime : Create a new connection and handle it [2003/3/18 5:45:17:737] Debug 50103 (jdbcpds): JDBCExecuteQuerySource : handleConnection : START [2003/3/18 5:45:17:778] Debug 50103 (jdbcpds): JDBCExecuteQuerySource : handleConnection : set driver [2003/3/18 5:45:17:778] Debug 50103 (jdbcpds): JDBCExecuteQuerySource : handleConnection : Check if Connection for the sign on parameter is pooled [2003/3/18 5:45:17:778] Debug 50103 (jdbcpds): JDBCExecuteQuerySource :handleConnection : connection available in pool [2003/3/18 5:45:17:778] Debug 50103 (jdbcpds): handleConnection : END [2003/3/18 5:45:17:778] Debug 50103 (jdbcpds): JDBCDataSource : startRuntime : END Runtime execution of jdbc query [2003/3/31 6:36:2:836] Debug 50103 (jdbcpds): JDBCDataSource : execute : run Query [2003/3/31 6:36:2:836] Debug 50103 (jdbcpds): JDBCExecuteQuerySource : getOutputFromDatabase : START [2003/3/31 6:36:2:836] Debug 50103 (jdbcpds): JDBCExecuteQuerySource : getOutputFromDatabase: start Query stringto be submitted jdbcpdspkg.proc_with_param(1,2,3,4,5) [2003/3/31 6:36:2:836] Debug 50103 (jdbcpds): JDBCExecuteQuerySource : getOutputFromDatabase : check connection [2003/3/31 6:36:2:836] Debug 50103 (jdbcpds): JDBCExecuteQuerySource : getOutputFromDatabase : QSource Id: 1 [2003/3/31 6:36:2:836] Debug 50103 (jdbcpds): JDBCExecuteQuerySource: executeOracleProcedure:Start [2003/3/31 6:36:2:836] Debug 50103 (jdbcpds): JDBCExecuteQuerySource: executeOracleProcedure:Procedure to be submitted { call jdbcpdspkg.proc_with_param(?,?,?,?,?,?) } [2003/3/31 6:36:2:836] Debug 50103 (jdbcpds): JDBCExecuteQuerySource: executeOracleProcedure: Set parameters for the procedure call [2003/3/31 6:36:2:836] Debug 50103 (jdbcpds): JDBCExecuteQuerySource: executeOracleProcedure: execute procedure [2003/3/31 6:36:2:847] Debug 50103 (jdbcpds): JDBCDataSource : execute : query execution over andresulset object is oracle.jdbc.driver.OracleResultSetImpl@751a9e [2003/3/31 6:36:2:847] Debug 50103 (jdbcpds): JDBCDataSource : execute : END Running Report trace with Result set info 2003/4/7 5:26:6:996] Debug 50103 (jdbcpds): JDBCDataSource : execute : replace lexical columns withactual string for the query [2003/4/7 5:26:6:996] Debug 50103 (jdbcpds): JDBCDataSource : execute : run Query [2003/4/7 5:26:6:996] Debug 50103 (jdbcpds): JDBCExecuteQuerySource : getOutputFromDatabase : START [2003/4/7 5:26:6:996] Debug 50103 (jdbcpds): JDBCExecuteQuerySource : getOutputFromDatabase: start Query stringto be submitted select * from reports [2003/4/7 5:26:7:6] Debug 50103 (jdbcpds): JDBCExecuteQuerySource : getOutputFromDatabase : check connection [2003/4/7 5:26:7:6] Debug 50103 (jdbcpds): JDBCExecuteQuerySource : getOutputFromDatabase : QSource Id: 4 [2003/4/7 5:26:7:6] Debug 50103 (jdbcpds): JDBCExecuteQuerySource : getOutputFromDatabase : Query source is SQL query [2003/4/7 5:26:7:6] Debug 50103 (jdbcpds): JDBCExecuteQuerySource:executeQuery Start [2003/4/7 5:26:7:6] Debug 50103 (jdbcpds): executeQuery prepareStatement select * from reports [2003/4/7 5:26:7:6] Debug 50103 (jdbcpds): executeQuery : bind parameters set for the query [2003/4/7 5:26:7:6] Debug 50103 (jdbcpds): executeQuery : JDBC Query executed [2003/4/7 5:26:7:387] Debug 50103 (jdbcpds): JDBCExecuteQuerySource : getOutputFromDatabase : Query result col 0 test col 1 10 [2003/4/7 5:26:7:387] Debug 50103 (jdbcpds): JDBCExecuteQuerySource:executeQuery Start [2003/4/7 5:26:7:387] Debug 50103 (jdbcpds): executeQuery prepareStatement select * from reports [2003/4/7 5:26:7:387] Debug 50103 (jdbcpds): executeQuery : bind parameters set for the query [2003/4/7 5:26:7:387] Debug 50103 (jdbcpds): executeQuery : JDBC Query executed [2003/4/7 5:26:7:767] Debug 50103 (jdbcpds): JDBCDataSource : execute : query execution over andresulset object is com.oracle.ias.jdbc.base.BaseResultSet@56c3cf [2003/4/7 5:26:7:767] Debug 50103 (jdbcpds): JDBCDataSource : execute : END
Oracle Reports has exposed the PDS API and also contains an RSDK tutorial (http://otn.oracle.com/products/reports/apis/index.html
) that describes in detail how to implement or customize your own PDS. Using this API, you can implement an unlimited number of PDSs to access any kind of data sources that you have.
The main tasks you must perform to add your PDS are:
Register your PDS with the preferences file to make it available to Reports Builder and OracleAS Reports Services.
File | Location | Operating System |
---|---|---|
|
|
Windows |
|
|
Unix |
The preferences file should reference the factory class implementation of either Oracle Reports or your custom class file. Reports Builder displays the relevant PDS icon only if the factory class is registered:
Reports.PluggableDataSourceFactories = ("oracle.reports.plugin.datasource.xmlpds.XMLDataSourceFactory", "oracle.reports.plugin.datasource.jdbcpds.JDBCDataSourceFactory", "oracle.reports.plugin.datasource.textpds.TextDataSourceFactory", "oracle.reports.plugin.datasource.myPDS.myPDSDataSourceFactory", "oracle.dss.pds.bibeans.xrpds.XRPDSFactory", "oracle.dss.pds.snapi.expresspds.ExpressPDSFactory")
To add your PDS:
Reports.PluggableDataSourceFactorie
s.
Reports.PluggableDataSourceFactories = ("pluginClassname"[, "pluginClassname"]...)
pluginClassname
is the name of the factory class containing the required implementation.
Note:
Refer to the Oracle Reports SDK on OTN, ( |
For more information on how to configure the jdbcpds.conf
file, refer to the JDBC Configuration File section.
Specify the path to your PDS JAR files. This makes all the relevant classes available to Reports Builder and Reports Server.
Prefix the path of all dependent JAR files to the Oracle Reports environment variable REPORTS_CLASSPATH
. This variable is located in the registry for Windows users and in the reports.sh
file for Solaris users.
D:\mypds.jar;existing classpath entries
Add the JAR file location to the engine classPath
attribute in the rwbuilder.conf
configuration file.
<engine id="rwEng" class="oracle.reports.engine.EngineImpl" initEngine="1" maxEngine="1" minEngine="0" engLife="50" maxIdle="30" callbackTimeOut="60000" classPath="d:\mypds.jar;"> ... </engine>
Append the jar file location to the classPath
attribute in the Reports Server configuration file.
<engine id="rwEng" class="oracle.reports.engine.EngineImpl" initEngine="1" maxEngine="1" minEngine="0" engLife="50" maxIdle="30" callbackTimeOut="60000" classPath="d:\mypds.jar;"> ...
</engine>
Refer to the Custom Driver section for more information on how to install the driver's JAR files.
|
![]() Copyright © 2003 Oracle Corporation. All Rights Reserved. |
|