WEB开发网
开发学院数据库DB2 在 DB2 for Linux, UNIX and Windows 中使用管道加... 阅读

在 DB2 for Linux, UNIX and Windows 中使用管道加载数据

 2010-04-27 00:00:00 来源:WEB开发网   
核心提示:动机在 UNIX 和 Linux 环境中,您可以使用 mkfifo 命令来创建管道,在 DB2 for Linux, UNIX and Windows 中使用管道加载数据,然后,您可以通过 DB2 LOAD 命令来使用管道,IBM Data Movement Tool 演示了这一概念, pipeload.zip 下载

动机

在 UNIX 和 Linux 环境中,您可以使用 mkfifo 命令来创建管道。然后,您可以通过 DB2 LOAD 命令来使用管道。但是,Windows 操作系统不允许您使用类似于 mkfifo 的外部命令来创建指定管道。在 Windows 中,您需要通过 Windows API 来创建指定管道,并且该管道的作用域仅限于创建它时所处的会话。此外,使用 Java 创建的指定管道不能与 Windows shell 交互,因此不能由 DB2 LOAD 命令使用。

本文 下载 部分提供了 pipeload.zip 文件的下载链接,其中的示例代码可帮助您解决此问题。使用该示例代码,您可以创建供 DB2 LOAD 命令使用的 Windows 管道。为此,您将创建一些 Java Native Interface (JNI) 包装器,它们可通过 C 程序调用 Windows API 以创建和使用指定管道。然后,您可以使用 Java 程序将数据发送给 Windows 管道。

示例代码概述

从较高的层面来说,示例代码使用 Java 驱动程序(TestPipe.java 或 TestUnixPipe.java)将数据发送给指定管道。然后,db2load.sql 通过单独命令 shell 中的管道来使用数据。IBM Data Movement Tool 演示了这一概念。

pipeload.zip 下载 文件中各主要文件的描述如下:

Pipe.c — 使用 Windows APIs 创建、使用和关闭 Windows 指定管道的 C 代码。

Pipes.java — 为 Pipe.c 中使用的所有 Windows 本地方法声明包装器的 Java Native Interface (JNI)。

1 2 3 4 5 6  下一页

Tags:DB for Linux

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接