Hi all, I've been working on a DBD driver that queries IBM DB2 mainframe databases through an FTP server (due to protocol limitations this driver supports only SELECT statements). As far as I know, this should be the only open source driver able to allow it.
This module is implemented as a wrapper to a "sql throught ftp" feature that MVS systems (OS/390, z/OS, etc.) optionally support. This feature can be activated by customizing and executing a JCL located in the SEZADBRM library, as stated in the redbook "Communications Server for z/OS V1R2 TCP/IP Implementation Guide Volume 2: UNIX Applications" at page 226: "This function can be used to execute queries (SQL SELECTs) against DB2 objects. You must BIND the DBRM called EZAFTPMQ to the plan used by FTP, and GRANT execute privilege to PUBLIC. You may specify the name of the plan by the DB2PLAN statement in FTP.DATA. The default name is EZAFTPMQ. This FTP facility performs the SELECT operation only on the DB2 tables. The UPDATE,INSERT, and DELETE operations are not supported." This book is available online at: http://www.redbooks.ibm.com/redbooks/pdfs/sg245228.pdf I hope that someone besides me will find this driver useful and I would be glad if it was included in the official DBD driver collection on CPAN. Actually I've chosen MVS_FTPSQL as driver name and mvs_ftpsql_ as prefix. I'm also working on a Bundle::DBD::MVS_FTPSQL and a php version of this driver. I've asked today for a PAUSE account to upload the driver, in the meantime the documentation can be found here: http://www.clementebiondo.it/ and the driver here: http://www.clementebiondo.it/download.php Anyone who wants to test this driver is welcome, as well as any comment :-) Thank you, Clemente Biondo [EMAIL PROTECTED] Attached is the README file from the module. ========================== Start of Readme =========================== DBD::MVS_FTPSQL - DBI driver to query IBM DB2 mainframe databases through an IBM FTP server. SYNOPSIS require DBI; #DSN String that identifies the DB2 subsystem my $DSN = "hostname=...;ssid=..." ; #A mainframe account able to perform SELECTs my ($username, $password) = ('...','...'); my $dbh = DBI->connect( "dbi:MVS_FTPSQL:$DSN" ,$username ,$password ) or die "Cannot connect: " . $DBI::errstr; It connects to the DB2 subsystem $ssid of the mainframe whose hostname is $hostname. Refer to the DSN string section of this document for details on matching the configuration of the mainframe you want to connect to (in particular the attributes hostname, port and ssid). It could be a good idea to take also a look at the EXAMPLES section below. DESCRIPTION This module lets you submit SQL queries (that's it, only SELECTs) to an IBM mainframe of the s/390 family provided that the IBM z/OS Communications Server on the mainframe side was installed with the (optional) SQL query function enabled and you have a valid account for that system (you must have a writable home directory on the system and be able to submit queries via QMF). PREREQUISITES This driver relies on the following other perl modules: Carp DBI IO::File Net::FTP In order for this module to be of any use you need to have access to a mainframe that runs an ftp server configured for executing SQL query via FTP (see the support and documentation section of this README). INSTALLATION The recommended installation procedure is the automatic installation via the CPAN module: perl -MCPAN -e "install Bundle::DBD::MVS_FTPSQL" To install this module manually, run the following commands: perl Makefile.PL make make test make install SUPPORT AND DOCUMENTATION After installation, you can find documentation for this module with the perldoc command: perldoc DBD::MVS_FTPSQL For information about installing the SQL query function on the s/390 mainframe, refer to the IBM z/OS Communications Server - IP Configuration Guide. COPYRIGHT AND LICENCE Copyright (C) 2007 Clemente Biondo. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =========================== End of Readme ============================
