Functions of an Adapter

The server uses adapters to access data sources. The server can receive two types of requests from the client: SQL or WebFOCUS®.

When the server receives requests from the client, it passes them to the adapter in a standard format. The adapter takes the request, transforms it into the native data manipulation language (DML), and then issues calls to the data source using its API. In this way, the adapter insulates the server from details of the data source. An application can issue SQL statements, issue WebFOCUS® commands, or call stored procedures.

Adapters are available for many data sources. Every adapter is specifically designed for the data source that it accesses, and, as a result, is able to translate between SQL or WebFOCUS and the DML of the data source. Adapters provide solutions to product variations, including product differences in syntax, functionality, schema, data types, catalogs, data representations, message processing, and answer set retrieval.

Read/Write Considerations

If the adapter has read/write capabilities, it inserts the data from an application to the data source.

In order to do so, proper privileges must be granted to the application ID the adapter uses to connect to the data source. For most SQL data sources, the typical set of GRANTs that allow the adapter to write is accumulated in the CONNECT, RESOURCE roles. Always consult vendor documentation for the exact set of privileges.

How an Adapter Works

The adapter manages the communication between the data interface and the data source, passing data management requests to the data source and returning either answer sets or messages to the requestor.

To perform these functions, the adapter:

  1. Translates the request to the applicable DML.
  2. Attaches to the targeted data source, using standard attachment calls. The adapter then passes the request to the data source.
  3. The data source processes the request.
  4. The results or error conditions are returned to the client application for further processing.

Processing SQL Requests

A server can be configured to behave in different ways upon receipt of SQL requests from a client application. A server handles SQL requests for data in the following ways, as illustrated in the diagram:

  • Direct Passthru. When Direct Passthru is enabled, the server passes SQL requests directly to the specified RDBMS for processing. The name of the targeted RDBMS (the database engine) is supplied in the server profile or, in some cases, by the client application. A Full-Function or Hub Server can operate temporarily in Direct Passthru mode when invoked by a client application. The user is responsible for activating and deactivating Direct Passthru as needed.
  • SQL Processing. When the database engine is not set in the server profile or supplied by a client application, Direct Passthru is not enabled. Instead, a Hub or Full-Function Server invokes its default behavior: it accepts the incoming SQL request and verifies that it is valid. Then the server determines if it can process the incoming SQL request:
    • If the request meets certain requirements, the server passes it directly to the RDBMS for processing. This is called Automatic Passthru.
    • If the syntax of the request does not conform to the syntax of the RDBMS, the server translates the request into internal DML and passes it to the adapter. The adapter generates adapter-specific DML and passes the request to the RDBMS for processing. This is called SQL translation.

Processing ibi WebFOCUS Requests

When the server receives a WebFOCUS request, it passes it to the adapter. The adapter analyzes the request and generates DBMS-specific DML for those parts of the request that have DML equivalents. As WebFOCUS is a more robust language than DML, some parts of the request may not have such equivalents. The adapter then passes the generated DML to the DBMS for processing. When the answer set is returned by the DBMS, WebFOCUS processes those parts of the request that the adapter could not pass to the DBMS.

Throughout this manual there are descriptions of some useful features that are not supported by SQL syntax but are supported by WebFOCUS syntax.

For complete information about the WebFOCUS language, see the following manuals:

  • Creating Reports With ibi™ WebFOCUS® Language
  • Describing Data With ibi™ WebFOCUS® Language
  • ibi™ WebFOCUS® Developing Reporting Applications

Relational and Non-Relational Adapters

Adapters can retrieve answer sets from both relational and non-relational data sources. Since the architectures of relational and non-relational data structures vary, the relational and non-relational adapters adjust for these differences. For example, relational adapters are designed to handle data sources that contain data in rows and columns in tables, while non-relational adapters are designed to accommodate the architecture of each distinct data source, for instance, a hierarchical or network data source, or a sequential or indexed file system.

The following table lists key features of relational and non-relational adapters:

 Feature

Relational Adapters

Non-Relational Adapters

DEFINE (virtual field) in Master File

Yes

Yes

Access Control

Yes

Yes

Transaction Management Commands

Yes

No

Relational and non-relational adapters:

  • Allow the data source to perform the work required to join, sort, and aggregate data. Therefore, the volume of data source-to-server communication is reduced, resulting in better response times for users. The adapter tries to optimize the queries as best it can.
  • Communicate with the data source through DML statements. You can view these DML statements with traces provided by the trace facilities. These traces are helpful for debugging your procedure or for adapter performance analysis. Note that traces:
    • Are common for all relational adapters.
    • Vary for non-relational adapters to accommodate the differences in data structures and DML calls.
  • Support both DEFINE (virtual) fields and DBA.
  • Relational adapters include a variety of COMMIT, connection, and thread control commands that enable Database Administrators to control the opening and closing of connections and choose when to commit or rollback transactions. This level of transaction control is not supported by non-relational adapters. In Full-Function Server mode, COMMIT/ROLLBACK will be propagated to all relational data sources local to the server. If the hub is active, a COMMIT will be issued against remote data servers as well. All PREPARE handles are cleared (this is a Broadcast COMMIT).

To address these similarities and differences, this manual contains:

  • General components with information that is common to all adapters, as well as information that is common either to all relational or to all non-relational adapters.
  • Customized components with information that applies to specific adapters.

Supported Adapters

For specific information about supported releases and platforms, see the following table, which summarizes this information:

Adapter Windows UNIX z/OS IBM i

(formerly i5/OS)

Amazon Athena

Yes

Yes

Yes

Yes

Amazon AWS® S3

Yes

Yes

Yes

Yes

Apache® Drill™

Yes

Yes

Yes

Yes

Apache Hive®

Yes

Yes

Yes

Yes

Apache Impala® (formerly Cloudera Impala)

Yes

Yes

Yes

Yes

Apache Parquet

Yes

Yes

 

 

Apache Phoenix®

Yes

Yes

 

Yes

Amazon Redshift Yes Yes  

 

Apache Solr Yes Yes Yes Yes
Apache Spark®

Yes

Yes

Yes

Yes

C-ISAM®

Yes

Yes

 

 

CICS® Transactions

Yes

Yes

Yes

Yes

Db2/Db2 Warehouse

Yes

Yes

Yes

Yes

ESRI® ArcGIS®

Yes

Yes

Yes

Yes

EXASol®

Yes

Yes

 

 

Excel®

Yes

Yes

Yes

Yes

Excel (via ODBC)

Yes

 

 

 

Facebook™

Yes

Yes

Yes

Yes

Fixed-format and Delimited Files

Yes

Yes

Yes

Yes

Generic JDBC

Yes

Yes

Yes

Yes

Generic ODBC

Yes

 

 

 

Generic OLE DB Yes    
Git®

Yes

Yes

Yes

Yes

Google® Analytics

Yes

Yes

Yes

Yes
Google BigQuery

Yes

Yes

 

 

Google Cloud Storage Yes Yes Yes Yes
Google Drive Yes Yes Yes Yes
Google Mail

Yes

Yes

Yes

Yes

Google Sheets

Yes

Yes

Yes

Yes

Greenplum®

Yes

Yes

Yes

Yes

H2®

Yes

Yes

Yes

Yes

Hyperstage PG

Yes

Yes

Yes

Yes

ibi™ FOCUS® Yes

Yes 

Yes

Yes

ibi™ WebFOCUS® Client

Yes

Yes 

Yes

Yes

ibi™ WebFOCUS® Reporting Server - Remote Servers

Yes

Yes

Yes

Yes

IBM i Access

Yes

Yes

 

 

IMS

 

 

 

Yes

IMS Transactions

Yes

Yes

Yes

Yes

Informix®

Yes

Yes

 

 

iWay Adapter Framework (IWAF)

Yes

Yes

Yes

 

Jethro®

Yes

Yes

Yes

Yes

JSON

Yes

Yes

Yes

Yes

LDAP

Yes

Yes

Yes

Yes

MariaDB®

Yes

Yes

Yes

Yes

Microfocus C-ISAM Yes Yes    
Microsoft® Access®

Yes

 

 

 

Microsoft Azure® Synapse Analytics (formerly Microsoft Azure SQL Data Warehouse)

Yes

Yes

Yes

Yes*

Microsoft Dynamics® 365

Yes

Yes

Yes

Yes*

Microsoft Graph Yes Yes Yes Yes
Microsoft SharePoint®

Yes

Yes

Yes

Yes

Microsoft SharePoint Drive

Yes

Yes

Yes

Yes

Microsoft SQL Server Analysis Services (SSAS)/ Azure Analysis Services

Yes

 

 

 

Microsoft SQL Server Analysis Services (SSAS) Tabular Model

Yes

 

 

Yes*

Microsoft SQL Server / Azure SQL Database JDBC

 

Yes

Yes

Yes

Microsoft SQL Server / Azure SQL Database ODBC

Yes

Yes

 

 

Microsoft SQL Server / Azure SQL Database OLE DB

Yes

 

 

 
MySQL®

Yes

Yes

Yes

Yes

Netezza®

Yes

Yes

Yes

Yes

OData

Yes

Yes

Yes

Yes

Oracle®

Yes

Yes

 

 

PostgreSQL®

Yes

Yes

Yes

Yes*

Presto®

Yes

Yes

Yes

Yes

Query/400

 

 

 

Yes

REST

Yes

Yes

Yes

Yes

Salesforce.com®

Yes

Yes

Yes

Yes

SAP Hana® DB

Yes

Yes

Yes

Yes

Slack Yes Yes Yes Yes
Snowflake®

Yes

Yes

Yes

Yes

Sybase® ASE

Yes

Yes

 

 

Sybase IQ Yes Yes    
Teradata®

Yes

Yes

 

 

TIBCO® Data Virtualization (JDBC) Yes Yes Yes Yes
Twitter®

Yes

Yes

Yes

Yes

Vertica®

Yes

Yes

 

Yes

VSAM

 

 

Yes

 

Web Services

Yes

Yes

Yes

Yes

Words Analysis

Yes

Yes

Yes

Yes

XML

Yes

Yes

Yes

Yes

* The underlying databases for these adapters do not necessarily run directly on the IBM i platform (formerly known as i5/OS). However, they may be configured and accessed.

Functionally Stabilized Adapters

The following adapters are functionally stabilized.

Adapter Windows UNIX z/OS

IBM i

(formerly i5/OS)

1010data

Yes

Yes

 

 

Adabas®

 

Yes

 

 

Apache Kafka®

Yes

Yes

Yes

Yes

CA IDMS® /DB

 

 

Yes

 

CA IDMS /SQL

 

 

Yes

 

Caché®

Yes

Yes

Yes

Yes

CICS Transactions for Natural 

Yes

Yes

Yes

Yes

Couchbase Yes Yes    
DATACOM®/DB

 

 

Yes

 

ElasticSearch®

Yes

Yes

Yes

Yes

Essbase

Yes

Yes

 

 

Informix CISAM

 

Yes

 

 

JD Edwards® EnterpriseOne

Yes

Yes

Yes

Yes

JD Edwards World

 

 

 

Yes

Lawson

Yes

Yes

Yes

Yes

Lotus Notes®

Yes

Yes

Yes

Yes

Model 204

 

 

Yes

 

MongoDB Yes Yes    
PeopleSoft®

Yes

Yes

 

 

Progress®

Yes

Yes

 

 

RServe

Yes

Yes

Yes

Yes

RStat Complied Models

Yes

Yes

Yes

Yes

SAP ERP

Yes

Yes

 

 

SAP® BW®

Yes

Yes

 

 

Supra     Yes  
TIBCO ModelOps  Yes Yes Yes Yes