Superior Data Integration and Conversion
Querying DB2 relational databases as XML just got a whole lot easier. With XML Pipeline Server™, developers treat relational data in DB2 tables and views as XML, making querying, publishing, reporting – and even updating – relational data a snap.
The XML Pipeline Server runs on any Java platform, and is easily embeddable into almost any Java program. The XML Pipeline Server™ supports multiple versions of DB2 database including:
- DB2 V9.5 for Linux, UNIX, and Windows
- DB2 V9.1 for Linux, UNIX, and Windows
- DB2 V9.1 for z/OS
- DB2 UDB v8.x for Linux, UNIX, and Windows
- DB2 UDB v8.1 for z/OS
- DB2 UDB V5R2, V5R3, V5R4 for iSeries
Efficient Query Execution
DB2 relational databases often hold massive amounts of data, so the XML Pipeline Server™ uses a very efficient way to query them – but hides this from the query author.
- To the XML Pipeline Server, a table looks like an XML document
- To the DB2 relational database, a XML Pipeline Server XQuery looks like efficient SQL
Data is not extracted in order to query it; instead, the XML Pipeline Server™ generates SQL and executes that SQL on the server, enabling developers to retrieve just the data needed to construct the results for a given XML Pipeline Server XQuery.
One key advantage of XML Pipeline Server™ is that it decomposes XQuery and translates it to SQL. The benefits of such a translation, of course, are enormous, especially in terms of the performance and efficiency with which XQuery applications will run. Once converted to SQL, XML Pipeline Server pushes the query to the DB2 database server for execution. In the database environment, the SQL is able to take advantages of the DB2 database’s indexes and primary key/foreign key relationships, speeding data access and retrieval.
Other products are unable to convert XQuery to SQL, leaving them with no choice but to fetch the entire table from the DB2 database and return it to the client side, for conversion, in its entirety, to XML. This might work fine with trivial queries or very small relational tables, but it is not an approach that scales, or even one that offers reasonable performance for real-world data integration and aggregation.
Query results are returned to XML Pipeline Server as tabular data for conversion to XML. Once converted to XML, XML Pipeline Server uses data streaming and document projection technologies to focus on only those elements and attributes that are relevant to the query, minimizing in-memory processing. This approach allows for fast and efficient processing of very large XML documents (1 gigabyte and larger!). Relational joins and other complex query structures pose no problem for the XML Pipeline Server processor.
Easy DB2 Database Connectivity
With XML Pipeline Server, configuring and connecting to an DB2 server is easy. The XML Pipeline Server integrated development environment quickly defines server configurations and connects to that server, using a simple dialog box like the one shown here:
And it’s easy to create and reuse default database connections, too. Even without an XML IDE like XML Pipeline Server, defining DB2 database connections is easily accomplished using the XML Pipeline Server API for Java (XQJ), whose interfaces are implemented by XML Pipeline Server. Developers simply need to define data source and connection expressions in the Java application, as shown in the following code sample:
Transparent Access to DB2 Relational Data as XML
Once developers have connected to an DB2 relational data source, XML Pipeline Server makes it easy to automatically create XQuery code. Using XML Pipeline Server, for example, just drag and drop a table from the File Explorer window, exposing all the tables from that tablespace as potential data sources. Next, drag the desired table to query and drop it on the XQuery Source tab – XML Pipeline Server automatically creates perfect XQuery code based on the chosen table. These easy steps are summarized in the following illustration:
And when done building and testing XQuery code, XML Pipeline Server quickly generates Java code that can be embedded in a Java application!