HiRDB External Data Access Version 8

解説・手引書

3020-6-366-20

目　　次

前書き

変更内容

はじめに

1.　HiRDB External Data Accessとは

1.1　HiRDB External Data Accessの特長

1.2　アクセスの形態

1.3　システム構成

2.　システム構築の前に

2.1　外部表

2.2　データベースの設計

2.2.1　サーバを構成する表の種類を考慮したデータベース設計

2.2.2　ネットワーク環境を考慮したデータベース設計

2.3　性能の設計

2.3.1　外部表へのアクセス性能に関する考え方

2.3.2　外部表へのアクセスの性能設計に関連する機能

2.3.3　外部表へのアクセス性能のチューニング

2.3.4　外部表へのアクセス性能のチューニング方法

2.4　リソースの見積もり

2.4.1　メモリ所要量

2.4.2　ステータスファイルの容量

2.4.3　データディクショナリ用RDエリアの容量

2.4.4　データディクショナリ用RDエリアのインデクスの格納ページ数

3.　環境設定と運用

3.1　環境設定

3.1.1　環境設定上の注意事項

3.1.2　環境設定の概要

3.1.3　環境設定の手順

3.1.4　HiRDB External Data Accessに関連する定義ファイル

3.2　運用

3.2.1　外部サーバの運用開始と運用終了

3.2.2　外部サーバの追加・削除・変更

3.2.3　外部表のアクセス権限

3.2.4　HiRDB External Data Accessに関する運用コマンド

3.2.5　HiRDB External Data Accessの変更

4.　SQLによる外部表へのアクセス

4.1　HiRDB External Data Access固有のSQL

4.2　デ－タ型の対応関係

4.2.1　 HiRDBのデータ型との対応関係

4.2.2　 XDM/RD E2のデータ型との対応関係

4.2.3　 ORACLEのデータ型との対応関係

4.2.4　 DB2のデータ型との対応関係

4.3　外部表を利用する場合の制限

4.4　UAP開発時の注意事項

5.　障害対策

5.1　トラブルシュート情報

5.1.1　外部サーバで発生する障害

5.1.2　HiRDB障害時に外部サーバで行う対策

5.1.3　HiRDB External Data Accessで使用するトラブルシュート情報

5.2　外部サーバエラー情報

5.3　外部サーバインタフェーストレース情報

付録

付録A　ファイル構成

付録A.1　インストール後のファイル構成

付録A.2　運用時のファイル構成

索引

[他社商品名称に関する表示]

All Rights Reserved. Copyright (C) 2006, 2008, Hitachi, Ltd.

前書き

■ 対象製品

●適用OS：HP-UX 11.0，HP-UX 11i，HP-UX 11i V2(PA-RISC)

P-1B63-A181　 HiRDB External Data Access Version 8　 08-00
P-F1B63-A181R　 HiRDB External Data Access Adapter Version 8　 08-00
P-F1B63-A181D　 HiRDB External Data Access Adapter Version 8　 08-00

●適用OS：Solaris 8，Solaris 9，Solaris 10

P-9D63-A181　 HiRDB External Data Access Version 8　 08-00
P-F9D63-A181R　 HiRDB External Data Access Adapter Version 8　 08-00

●適用OS：AIX 5L V5.1，AIX 5L V5.2，AIX 5L V5.3

P-1M63-A181　 HiRDB External Data Access Version 8　 08-00
P-F1M63-A181R　 HiRDB External Data Access Adapter Version 8　 08-00
P-F1M63-A181D　 HiRDB External Data Access Adapter Version 8　 08-00

●適用OS：Red Hat Linux 7.1，Red Hat Linux 7.2，Red Hat Enterprise Linux AS 2.1，Red Hat Enterprise Linux AS 3(x86)，Red Hat Enterprise Linux ES 3(x86)，Red Hat Enterprise Linux AS 4(x86)，Red Hat Enterprise Linux ES 4(x86)，Red Hat Enterprise Linux AS 3(AMD64 & Intel EM64T)※，Red Hat Enterprise Linux AS 4(AMD64 & Intel EM64T)，Red Hat Enterprise Linux ES 4(AMD64 & Intel EM64T)

P-9S63-A181　 HiRDB External Data Access Version 8　 08-00
P-F9S63-A181R　 HiRDB External Data Access Adapter Version 8　 08-00

注※　動作環境としては，Intel EM64Tにだけ対応しています。

●適用OS：Windows 2000，Windows XP Professional，Windows XP x64 Edition，Windows Server 2003，Windows Server 2003 x64 Editions，Windows Server 2003 R2，Windows Server 2003 R2 x64 Editions，Windows Vista Business，Windows Vista Enterprise，Windows Vista Ultimate

P-2463-A184　 HiRDB External Data Access Version 8　 08-02
P-F2463-A184R　 HiRDB External Data Access Adapter Version 8　 08-02

これらのプログラムプロダクトのほかにもこのマニュアルをご利用になれる場合があります。詳細は「リリースノート」でご確認ください。
これらの製品は，ISO9001およびTickITの認証を受けた品質マネジメントシステムで開発されました。

■ 輸出時の注意

本製品を輸出される場合には，外国為替および外国貿易法ならびに米国の輸出管理関連法規などの規制をご確認の上，必要な手続きをお取りください。
なお，ご不明な場合は，弊社担当営業にお問い合わせください。

■ 商標類

ActiveXは，米国およびその他の国における米国Microsoft Corp.の商標です。
AIXは，米国における米国International Business Machines Corp.の登録商標です。
AMDは，Advanced Micro Devices, Inc.の商標です。
CORBAは，Object Management Groupが提唱する分散処理環境アーキテクチャの名称です。
DataStage，MetaBroker，MetaStageおよびQualityStageは，IBM Corporationの商標です。
DB2は，米国における米国International Business Machines Corp.の登録商標です。
日本国内においてのDCEの商標使用権は，OSFよりサブライセンスされています。
DNCWARE，ClusterPerfectは，東芝ソリューション株式会社の商標です。
gzipは，米国FSF(Free Software Foundation)が配布しているソフトウェアです。
HACMP/6000は，米国における米国International Business Machines Corp.の商標です。
HP-UXは，米国Hewlett-Packard Companyのオペレーティングシステムの名称です。
IBMは，米国における米国International Business Machines Corp.の登録商標です。
Intelは，Intel Corporationの会社名です。
Itaniumは，アメリカ合衆国および他の国におけるインテル コーポレーションまたはその子会社の登録商標です。
JBuilderは，Borland Software Corporationの米国およびその他の国における商標です。
Linuxは，Linus Torvaldsの米国およびその他の国における登録商標あるいは商標です。
Microsoftは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Microsoft Accessは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Microsoft Office Excelは，米国 Microsoft Corporation の商品名称です。
Motifは，Open Software Foundation,Inc.の商標です。
MS-DOSは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
NLSは，米国Hewlett-Packard Companyの商品名称です。
ODBCは，米国Microsoft Corp.が提唱するデータベースアクセス機構です。
OLEは，米国Microsoft Corp.が開発したソフトウェア名称です。
OLEは，Object Linking and Embeddingの略です。
ORACLEは，米国Oracle Corporationの登録商標です。
Oracleは，米国Oracle Corporation及びその子会社，関連会社の登録商標です。
Oracle8iは，米国Oracle Corporationの商標です。
Oracle9iは，米国Oracle Corporationの商標です。
Oracle 10gは，米国Oracle Corporationの商標です。
OS/390は，米国およびその他の国におけるInternational Business Machines Corporationの商標です。
PA-RISCは，米国Hewlett-Packard Companyの商標です。
POSIXは，the Institute of Electrical and Electronics Engineers, Inc. (IEEE)で制定された標準仕様です。
PowerBuilderは，米国法人Sybase,Inc.の登録商標です。
Red Hatは，米国およびその他の国でRed Hat, Inc.の登録商標若しくは商標です。
RISC System/6000は，米国における米国International Business Machines Corp. の登録商標です。
Sun，Sun Microsystems，Java，JDK，Solarisは，米国Sun Microsystems, Inc.の米国およびその他の国における商標または登録商標です。
TurboLinuxの名称及びロゴは，TurboLinux, Inc.の商標です。
TUXEDOは，米国UNIX System Laboratories, Inc.の商品名称です。
UNIFY2000は，米国Unify Corp.の商品名称です。
UNIXは，X/Open Company Limitedが独占的にライセンスしている米国ならびに他の国における登録商標です。
VERITASおよびVERITASロゴは，米国Symantec Corporationの登録商標です。
VERITAS NetBackupは，米国及びその他の国での米国Symantec Corporationの商標です。
VERITAS NetBackup BusinesServerは，米国及びその他の国での米国Symantec Corporationの商品名称です。
Visual Basicは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Visual C++は，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Visual Studioは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
WebLogicは，BEA Systems, Inc.の登録商標です。
Windowsは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Windows NTは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Windows Serverは，米国Microsoft Corporationの米国およびその他の国における登録商標です。
Windows Vistaは，米国Microsoft Corporationの米国及びその他の国における登録商標です。
X/Openは，X/Open Company Limited の英国ならびに他の国における登録商標です。
X Window Systemは，米国X Consortium,Inc.が開発したソフトウェアです。
イーサネットは，富士ゼロックス（株）の商品名称です。
プログラムプロダクト「P-9D63-A181，P-F9D63-A181R」には，米国 Sun Microsystems, Inc. が著作権を有している部分が含まれています。
プログラムプロダクト「P-9D63-A181，P-F9D63-A181R」には，UNIX System Laboratories, Inc. が著作権を有している部分が含まれています。

■ 発行

2006年6月（第1版）3020-6-366
2008年6月（第3版）3020-6-366-20

■ 著作権

All Rights Reserved. Copyright (C) 2006, 2008, Hitachi, Ltd.

変更内容

変更内容(3020-6-366-20)　HiRDB External Data Access Version 8

追加・変更内容 | 変更個所
機能の追加によるマニュアルの記述の変更はありません。 | －

単なる誤字・脱字などはお断りなく訂正しました。

変更内容(3020-6-366-10)　HiRDB External Data Access Version 8

追加・変更内容

機能の追加によるマニュアルの記述の変更はありません。

変更内容(3020-6-366)　HiRDB External Data Access Version 8

追加・変更機能

Solaris，Linux，Windows版のHiRDBでHiRDB External Data Access機能を使用できるようにしました。

外部表の更新ができるようにしました。

接続できる外部サーバとしてOracle 9i，Oracle 10gを追加しました。

Windows版の場合のインストール権限およびインストール後のファイル構成の情報を追加しました。

外部表を利用する場合の制限を変更しました。

UNIX版の場合のORACLEおよびDB2用のインストールディレクトリの情報を追加しました。

用語解説を「HiRDB Version 8 解説」マニュアルに集約したため，このマニュアルから削除しました。

変更内容(3000-6-284)　HiRDB External Data Access Version 7

追加・変更機能

外部サーバとしてORACLE 8i 8.1.7を使用できるようにしました。

外部表を含む結合処理で分散ネストループジョインをサポートしました。

外部サーバの変更手順に関する説明を変更しました。

HiRDB External Data Accessのバージョンアップによる変更手順の説明を追加しました。

外部サーバ上のデータ型とHiRDBのデータ型の対応関係を変更しました。

HiRDB Version 7の新しいデータ型（BINARY型，TIMESTAMP型）に対応しました。

はじめに

このマニュアルは，プログラムプロダクトHiRDB External Data Accessを利用するHiRDBの構築方法やHiRDB External Data Access機能の概要について説明したものです。HiRDB External Data Accessで使用するコマンドやシステム定義の詳細については，HiRDB Version 8の関連マニュアルに掲載しています。

対象読者

このマニュアルは，HiRDB External Data Accessを使用して，HiRDB/パラレルサーバから既存のデータベースにアクセスするためのシステムを構築・運用する方を対象にしています。

なお，このマニュアルを読み進めていく上では，通常のHiRDB/パラレルサーバのシステムの構築・運用ができる知識を持っている必要があります。

マニュアルの構成

このマニュアルは，次に示す章と付録から構成されています。

第１章　HiRDB External Data Accessとは

HiRDB External Data Accessの概要について説明しています。

第２章　システム構築の前に

システム構築を行う前に必要な基礎知識について説明しています。次の項目について説明しています。

・外部表

・データベースの設計

・性能の設計

・リソースの見積もり

第３章　環境設定と運用

HiRDB External Data Accessの環境設定とHiRDB External Data Accessに固有の運用方法について説明しています。

第４章　SQLによる外部表へのアクセス

SQLを使って外部表にアクセスするときの注意事項について説明しています。

第５章　障害対策

HiRDB External Data Accessでのトラブルシュートについて説明しています。

付録Ａ　ファイル構成

HiRDB External Data Accessのファイル構成について説明しています。

関連マニュアル

このマニュアルの関連マニュアルを次に示します。必要に応じてお読みください。

HiRDB（Windows用マニュアル）

HiRDB Version 8 解説（Windows(R)用）（3020-6-351）

HiRDB Version 8 システム導入・設計ガイド（Windows(R)用）（3020-6-352）

HiRDB Version 8 システム定義（Windows(R)用）（3020-6-353）

HiRDB Version 8 システム運用ガイド（Windows(R)用）（3020-6-354）

HiRDB Version 8 コマンドリファレンス（Windows(R)用）（3020-6-355）

HiRDB ファーストステップガイド（Windows(R)用）（3020-6-054）

HiRDB（UNIX用マニュアル）

HiRDB Version 8 解説（UNIX(R)用）（3000-6-351）

HiRDB Version 8 システム導入・設計ガイド（UNIX(R)用）（3000-6-352）

HiRDB Version 8 システム定義（UNIX(R)用）（3000-6-353）

HiRDB Version 8 システム運用ガイド（UNIX(R)用）（3000-6-354）

HiRDB Version 8 コマンドリファレンス（UNIX(R)用）（3000-6-355）

インナレプリカ機能 HiRDB Staticizer Option Version 8（3000-6-363）

HiRDB Version 8 ディザスタリカバリシステム　構築・運用ガイド（3000-6-364）

HiRDB ファーストステップガイド（UNIX(R)用）（3000-6-254）

HiRDB（Windows，UNIX共通マニュアル）

HiRDB Version 8 UAP開発ガイド（3020-6-356）

HiRDB Version 8 SQLリファレンス（3020-6-357）

HiRDB Version 8 メッセージ（3020-6-358）

HiRDB Version 8 セキュリティガイド（3020-6-359）

HiRDB Version 8 XDM/RD E2接続機能（3020-6-365）

HiRDB Version 8 バッチ高速化機能（3020-6-368）

HiRDBデータ連動機能 HiRDB Datareplicator Version 8（3020-6-360）

HiRDBデータ連動拡張機能 HiRDB Datareplicator Extension Version 8（3020-6-361）

データベース抽出・反映サービス機能 HiRDB Dataextractor Version 8（3020-6-362）

HiRDB 全文検索プラグイン HiRDB Text Search Plug-in Version 8（3020-6-375）

HiRDB XML拡張機能 HiRDB XML Extension Version 8（3020-6-376）

なお，本文中で使用しているHiRDB Version 8のマニュアル名は，（UNIX(R)用）または（Windows(R)用）を省略して表記しています。使用しているプラットフォームに応じてUNIX用またはWindows用のマニュアルを参照してください。

関連製品

VOS3 データマネジメントシステム XDM E2系 XDM/RD E2 SQLリファレンス（6190-6-656）

読書手順

このマニュアルは，次に示す表に従ってお読みいただくことをお勧めします。

目的 | 記載個所
HiRDB External Data Accessの概要を知りたい | 1，2章
システム構築・運用方法を知りたい | 1，2，3章，付録A
SQLを使用する際の注意事項について知りたい | 4章
障害の対処方法を知りたい | 5章

計算式の説明で使用する記号

計算式で使う記号を次に示します。

記号 | 意味
↑　↑ | 計算結果の値を小数点以下で切り上げることを示します。（例）↑34÷3↑の計算結果は「12」になります。
↓　↓ | 計算結果の値を小数点以下で切り下げることを示します。（例）↓34÷3↓の計算結果は「11」になります。

図中で使用する記号

このマニュアルで使用する記号を次のように定義します。

このマニュアルでの表記

このマニュアルでは製品名称および名称について次のように表記しています。ただし，それぞれのプログラムについての表記が必要な場合はそのまま表記しています。

製品名称または名称
表記

HiRDB/Single Server Version 8
HiRDB/シングルサーバ
HiRDBまたはHiRDBサーバ

HiRDB/Single Server Version 8(64)

HiRDB/Parallel Server Version 8
HiRDB/パラレルサーバ

HiRDB/Parallel Server Version 8(64)

HiRDB/Developer's Kit Version 8
HiRDB/Developer's Kit
HiRDBクライアント

HiRDB/Developer's Kit Version 8(64)

HiRDB/Run Time Version 8
HiRDB/Run Time

HiRDB/Run Time Version 8(64)

HiRDB Datareplicator Version 8
HiRDB Datareplicator

HiRDB Dataextractor Version 8
HiRDB Dataextractor

HiRDB Text Search Plug-in Version 8
HiRDB Text Search Plug-in

HiRDB XML Extension Version 8
HiRDB XML Extension

HiRDB Spatial Search Plug-in Version 3
HiRDB Spatial Search Plug-in

HiRDB Staticizer Option Version 8
HiRDB Staticizer Option

HiRDB LDAP Option Version 8
HiRDB LDAP Option

HiRDB Advanced Partitioning Option Version 8
HiRDB Advanced Partitioning Option

HiRDB Advanced High Availability Version 8
HiRDB Advanced High Availability

HiRDB Non Recover Front End Server Version 8
HiRDB Non Recover FES

HiRDB Disaster Recovery Light Edition Version 8
HiRDB Disaster Recovery Light Edition

HiRDB Accelerator Version 8
HiRDB Accelerator

HiRDB External Data Access Version 8
HiRDB External Data Access

HiRDB External Data Access Adapter Version 8
HiRDB External Data Access Adapter

HiRDB Adapter for XML - Standard Edition
HiRDB Adapter for XML

HiRDB Adapter for XML - Enterprise Edition

HiRDB Control Manager
HiRDB CM

HiRDB Control Manager Agent
HiRDB CM Agent

Hitachi TrueCopy
TrueCopy

Hitachi TrueCopy basic

TrueCopy

TrueCopy remote replicator

JP1/Automatic Job Management System 2
JP1/AJS2

JP1/Automatic Job Management System 2 - Scenario Operation
JP1/AJS2-SO

JP1/Cm2/Extensible SNMP Agent
JP1/ESA

JP1/Cm2/Extensible SNMP Agent for Mib Runtime

JP1/Cm2/Network Node Manager
JP1/NNM

JP1/Integrated Management - Manager
JP1/Integrated ManagementまたはJP1/IM

JP1/Integrated Management - View

JP1/Magnetic Tape Access
EasyMT

EasyMT

JP1/Magnetic Tape Library
MTguide

JP1/NETM/Audit - Manager
JP1/NETM/Audit

JP1/NETM/DM
JP1/NETM/DM

JP1/NETM/DM Manager

JP1/Performance Management
JP1/PFM

JP1/Performance Management Agent for HiRDB
JP1/PFM-Agent for HiRDB

JP1/Performance Management - Agent for Platform
JP1/PFM-Agent for Platform

JP1/Performance Management/SNMP System Observer
JP1/SSO

JP1/VERITAS NetBackup BS v4.5
NetBackup

JP1/VERITAS NetBackup v4.5

JP1/VERITAS NetBackup BS V4.5 Agent for HiRDB License
JP1/VERITAS NetBackup Agent for HiRDB License

JP1/VERITAS NetBackup V4.5 Agent for HiRDB License

JP1/VERITAS NetBackup 5 Agent for HiRDB License

OpenTP1/Server Base Enterprise Option
TP1/EE

Virtual-storage Operating System 3/Forefront System Product
VOS3/FS
VOS3

Virtual-storage Operating System 3/Leading System Product
VOS3/LS

Extensible Data Manager/Base Extended Version 2
XDM基本プログラムXDM/BASE E2
XDM/BASE E2

XDM/Data Communication and Control Manager 3
XDMデータコミュニケーションマネジメントシステムXDM/DCCM3
XDM/DCCM3

XDM/Relational Database
リレーショナルデータベースシステムXDM/RD
XDM/RD
XDM/RD

XDM/Relational Database Extended Version 2
リレーショナルデータベースシステムXDM/RD E2
XDM/RD E2

VOS3 Database Connection Server
DBコネクションサーバ

DB2 Universal Database for OS/390 Version 6
DB2

DNCWARE ClusterPerfect（Linux版）
ClusterPerfect

Microsoft(R) Office Excel
Microsoft ExcelまたはExcel

Microsoft(R) Visual C++(R)
Visual C++またはC++言語

Oracle 8i
ORACLE

Oracle 9i

Oracle 10g

Sun JavaTM System Directory Server
Sun Java System Directory Serverまたはディレクトリサーバ

HP-UX 11i V2 (IPF)
HP-UXまたはHP-UX (IPF)

HP-UX 11i V3 (IPF)

AIX 5L V5.1
AIX 5L
AIX

AIX 5L V5.2

AIX 5L V5.3

AIX V6.1
AIX V6.1

Red Hat Linux
Red Hat Linux
Linux

Red Hat Enterprise Linux
Red Hat Enterprise Linux

Red Hat Enterprise Linux AS 3 (IPF)
Linux (IPF)

Red Hat Enterprise Linux AS 4 (IPF)

Red Hat Enterprise Linux 5.1 Advanced Platform (Intel Itanium)

Red Hat Enterprise Linux 5.1 (Intel Itanium)

Red Hat Enterprise Linux AS 3(AMD64 & Intel EM64T)
Linux (EM64T)

Red Hat Enterprise Linux AS 4(AMD64 & Intel EM64T)

Red Hat Enterprise Linux ES 4(AMD64 & Intel EM64T)

Red Hat Enterprise Linux 5.1 Advanced Platform (AMD/Intel 64)

Red Hat Enterprise Linux 5.1 (AMD/Intel 64)

Red Hat Enterprise Linux AS 4(AMD64 & Intel EM64T)
Linux AS 4

Red Hat Enterprise Linux AS 4(x86)

Red Hat Enterprise Linux ES 4(AMD64 & Intel EM64T)
Linux ES 4

Red Hat Enterprise Linux ES 4(x86)

Red Hat Enterprise Linux 5.1 Advanced Platform (x86)
Linux 5.1

Red Hat Enterprise Linux 5.1 (x86)

Red Hat Enterprise Linux 5.1 Advanced Platform (AMD/Intel 64)

Red Hat Enterprise Linux 5.1 (AMD/Intel 64)

Red Hat Enterprise Linux 5.1 Advanced Platform (Intel Itanium)

Red Hat Enterprise Linux 5.1 (Intel Itanium)

turbolinux 7 Server for AP8000
Linux for AP8000

Microsoft(R) Windows NT(R) Workstation Operating System Version 4.0
Windows NT

Microsoft(R) Windows NT(R) Server Network Operating System Version 4.0

Microsoft(R) Windows(R) 2000 Professional Operating System
Windows 2000

Microsoft(R) Windows(R) 2000 Server Operating System

Microsoft(R) Windows(R) 2000 Datacenter Server Operating System

Microsoft(R) Windows(R) 2000 Advanced Server Operating System

Microsoft(R) Windows(R) 2000 Advanced Server Operating System
Windows 2000 Advanced Server

Microsoft(R) Windows Server(R) 2003, Standard Edition
Windows Server 2003 Standard Edition
Windows Server 2003

Microsoft(R) Windows Server(R) 2003, Enterprise Edition
Windows Server 2003 Enterprise Edition

Microsoft(R) Windows Server(R) 2003, Standard x64 Edition
Windows Server 2003 Standard x64 Edition

Microsoft(R) Windows Server(R) 2003, Enterprise x64 Edition
Windows Server 2003 Enterprise x64 Edition

Microsoft(R) Windows Server(R) 2003 R2, Standard Edition
Windows Server 2003 R2

Microsoft(R) Windows Server(R) 2003 R2, Enterprise Edition

Microsoft(R) Windows Server(R) 2003 R2, Standard x64 Edition

Microsoft(R) Windows Server(R) 2003 R2, Enterprise x64 Edition

Microsoft(R) Windows Server₍R) 2003 R2, Standard x64 Edition
Windows Server 2003 R2 x64 Editions

Microsoft(R) Windows Server(R) 2003 R2, Enterprise x64 Edition

64ビットバージョンMicrosoft(R) Windows Server(R) 2003, Enterprise Edition
Windows Server 2003 (IPF)

Microsoft(R) Windows Server(R) 2008 Standard
Windows Server 2008 Standard
Windows Server 2008

Microsoft(R) Windows Server(R) 2008 Enterprise
Windows Server 2008 Enterprise

Microsoft(R) Windows Server(R) 2003, Standard x64 Edition
Windows Server 2003 x64 Editions
Windows (x64)

Microsoft(R) Windows Server(R) 2003, Enterprise x64 Edition

Microsoft(R) Windows Server(R) 2003 R2, Standard x64 Edition

Microsoft(R) Windows Server(R) 2003 R2, Enterprise x64 Edition

Microsoft(R) Windows(R) XP Professional x64 Edition
Windows XP x64 Edition

64ビットバージョンMicrosoft(R) Windows Server(R) 2003, Enterprise Edition
Windows Server 2003 (IPF)
Windows(IPF)

Microsoft(R) Windows(R) XP Professional x64 Edition
Windows XP x64 Edition
Windows XP

Microsoft(R) Windows(R) XP Professional Operating System
Windows XP Professional

Microsoft(R) Windows(R) XP Home Edition Operating System
Windows XP Home Edition

Microsoft(R) Windows Vista(R) Home Basic
Windows Vista Home Basic
Windows Vista

Microsoft(R) Windows Vista(R) Home Premium
Windows Vista Home Premium

Microsoft(R) Windows Vista(R) Ultimate
Windows Vista Ultimate

Microsoft(R) Windows Vista(R) Business
Windows Vista Business

Microsoft(R) Windows Vista(R) Enterprise
Windows Vista Enterprise

シングルサーバ
SDS

システムマネジャ
MGR

フロントエンドサーバ
FES

ディクショナリサーバ
DS

バックエンドサーバ
BES

Windows Server 2003およびWindows Server 2008を総称してWindows Serverと表記します。また，Windows 2000，Windows XP，Windows Server，およびWindows Vistaを総称してWindowsと表記します。

TCP/IPが規定するhostsファイル（UNIXの場合/etc/hostsファイルも含む）をhostsファイルと表記します。hostsファイルとは通常，Windowsの場合は%windir%¥system32¥drivers¥etc¥hostsのことです。

このマニュアルで使用する略語

このマニュアルで使用する英略語の一覧を次に示します。

英略語 | 英 字 の 表 記
ACK | Acknowledgement
ADM | Adaptable Data Manager
ADO | ActiveX Data Objects
ADT | Abstract Data Type
AP | Application Program
API | Application Programming Interface
ASN.1 | Abstract Syntax Notation One
BES | Back End Server
BLOB | Binary Large Object
BMP | Basic Multilingual Plane
BOM | Byte Order Mark
CD-ROM | Compact Disc - Read Only Memory
CGI | Common Gateway Interface
CLOB | Character Large Object
CMT | Cassette Magnetic Tape
COBOL | Common Business Oriented Language
CORBA | Common ORB Architecture
CPU | Central Processing Unit
CSV | Comma Separated Values
DAO | Data Access Object
DAT | Digital Audio Taperecorder
DB | Database
DBM | Database Module
DBMS | Database Management System
DDL | Data Definition Language
DF for Windows NT | Distributing Facility for Windows NT
DF/UX | Distributing Facility / for UNIX
DIC | Dictionary Server
DLT | Digital Linear Tape
DML | Data Manipulate Language
DNS | Domain Name System
DOM | Document Object Model
DS | Dictionary Server
DTD | Document Type Definition
DTP | Distributed Transaction Processing
DWH | Data Warehouse
EUC | Extended UNIX Code
EX | Exclusive
FAT | File Allocation Table
FD | Floppy Disk
FES | Front End Server
FQDN | Fully Qualified Domain Name
FTP | File Transfer Protocol
GUI | Graphical User Interface
HBA | Host Bus Adapter
HD | Hard Disk
HTML | Hyper Text Markup Language
ID | Identification number
IP | Internet Protocol
IPF | Itanium(R) Processor Family
JAR | Java Archive File
Java VM | Java Virtual Machine
JDBC | Java Database Connectivity
JDK | Java Developer's Kit
JFS | Journaled File System
JFS2 | Enhanced Journaled File System
JIS | Japanese Industrial Standard code
JP1 | Job Management Partner 1
JRE | Java Runtime Environment
JTA | Java Transaction API
JTS | Java Transaction Service
KEIS | Kanji processing Extended Information System
LAN | Local Area Network
LDAP | Lightweight Directory Access Protocol
LIP | Loop Initialization Process
LOB | Large Object
LRU | Least Recently Used
LTO | Linear Tape-Open
LU | Logical Unit
LUN | Logical Unit Number
LVM | Logical Volume Manager
MGR | System Manager
MIB | Management Information Base
MRCF | Multiple RAID Coupling Feature
MSCS | Microsoft Cluster Server
NAFO | Network Adapter Fail Over
NAPT | Network Address Port Translation
NAT | Network Address Translation
NIC | Network Interface Card
NIS | Network Information Service
NTFS | New Technology File System
ODBC | Open Database Connectivity
OLAP | Online Analytical Processing
OLE | Object Linking and Embedding
OLTP | On-Line Transaction Processing
OOCOBOL | Object Oriented COBOL
ORB | Object Request Broker
OS | Operating System
OSI | Open Systems Interconnection
OTS | Object Transaction Service
PC | Personal Computer
PDM II E2 | Practical Data Manager II Extended Version 2
PIC | Plug-in Code
PNM | Public Network Management
POSIX | Portable Operating System Interface for UNIX
PP | Program Product
PR | Protected Retrieve
PU | Protected Update
RAID | Redundant Arrays of Inexpensive Disk
RD | Relational Database
RDB | Relational Database
RDB1 | Relational Database Manager 1
RDB1 E2 | Relational Database Manager 1 Extended Version 2
RDO | Remote Data Objects
RiSe | Real time SAN replication
RM | Resource Manager
RMM | Resource Manager Monitor
RPC | Remote Procedure Call
SAX | Simple API for XML
SDS | Single Database Server
SGML | Standard Generalized Markup Language
SJIS | Shift JIS
SNMP | Simple Network Management Protocol
SNTP | Simple Network Time Protocol
SQL | Structured Query Language
SQL/K | Structured Query Language / VOS K
SR | Shared Retrieve
SU | Shared Update
TCP/IP | Transmission Control Protocol / Internet Protocol
TM | Transaction Manager
TMS-4V/SP | Transaction Management System - 4V / System Product
UAP | User Application Program
UOC | User Own Coding
VOS K | Virtual-storage Operating System Kindness
VOS1 | Virtual-storage Operating System 1
VOS3 | Virtual-storage Operating System 3
WS | Workstation
WWW | World Wide Web
XDM/BASE E2 | Extensible Data Manager / Base Extended Version 2
XDM/DF | Extensible Data Manager / Distributing Facility
XDM/DS | Extensible Data Manager / Data Spreader
XDM/RD E2 | Extensible Data Manager / Relational Database Extended Version 2
XDM/SD E2 | Extensible Data Manager / Structured Database Extended Version 2
XDM/XT | Extensible Data Manager / Data Extract
XFIT | Extended File Transmission program
XML | Extensible Markup Language

パス名の表記

パス名の区切りは「¥」で表記しています。UNIX版HiRDBを使用している場合はマニュアル中の「¥」を「/」に置き換えてください。ただし，Windows版とUNIX版でパス名が異なる場合は，それぞれのパス名を表記しています。

HiRDB運用ディレクトリのパスを%PDDIR%と表記します。ただし，Windows版とUNIX版でパス名が異なるため，それぞれを表記する場合，UNIX版は$PDDIRと表記します。例を次に示します。

　　　Windows版：%PDDIR%¥CLIENT¥UTL¥

　　　UNIX版：$PDDIR/client/lib/

Windowsのインストールディレクトリのパスを%windir%と表記します。

ログの表記

●Windows版の場合

Windowsのイベントビューアで表示されるアプリケーションログをイベントログと表記します。イベントログは，次の方法で参照できます。

〈手順〉

1.［スタート］－［プログラム］－［管理ツール（共通）］－［イベントビューア］を選択します。

2.［ログ］－［アプリケーション］を選択します。

アプリケーションログが表示されます。「ソース」の列が「HiRDBSingleServer」または「HiRDBParallelServer」になっているのがHiRDBが出力したメッセージです。

なお，セットアップ識別子を指定してインストールした場合は，「HiRDBSingleServer」または「HiRDBParallelServer」にセットアップ識別子が付いた名称となります。

●UNIX版の場合

OSのログをsyslogfileと表記します。syslogfileは，/etc/syslog.confでログ出力先に指定しているファイルです。一般的には，次のファイルがsyslogfileとなります。

OS | ファイル
HP-UX | /var/adm/syslog/syslog.log
Solaris | /var/adm/messagesまたは/var/log/syslog
AIX | /var/adm/ras/syslog
Linux | /var/log/messages

Windowsの操作説明で使う表記

Windowsの操作説明で使う記号を次に示します。

記　号 | 意　味
［　］ | ボタンやテキストボックスなど，画面に表示されている要素を示します。
［　］－［　］ | 画面に表示されるメニューやアイコンなどを選択する操作を示します。

Windowsの用語「ディレクトリ」と「フォルダ」は，「ディレクトリ」に統一して表記しています。

Windowsのパス名に関する注意

パス名を絶対パスで指定する場合はドライブ名を指定してください。

（例）C:¥win32app¥hitachi¥hirdb_s¥spool¥tmp

コマンドの引数，制御文ファイル，およびHiRDBシステム定義ファイル中に空白または丸括弧を含むパス名を指定する場合は，前後を引用符（”）で囲んでください。

（例）pdinit -d "C:¥Program Files(x86)¥hitachi¥hirdb_s¥conf¥mkinit"

ただし，バッチファイルもしくはコマンドプロンプト上でsetコマンドを使用して環境変数を設定する場合，またはインストールディレクトリを指定する場合は引用符は不要です。引用符で囲むと，引用符も環境変数の値に含まれます。

（例）set PDCLTPATH=C:¥Program Files¥hitachi¥hirdb_s¥spool

HiRDBはネットワークドライブのファイルを使用できないため，HiRDBのインストール，および環境構築はローカルドライブで行ってください。また，ユティリティの入出力ファイルなども，ローカルドライブ上のファイルを使用してください。

常用漢字以外の漢字の使用について

このマニュアルでは，常用漢字を使用することを基本としていますが，次に示す用語については，常用漢字以外の漢字を使用しています。

個所（かしょ）

KB（キロバイト）などの単位表記について

1KB（キロバイト），1MB（メガバイト），1GB（ギガバイト），1TB（テラバイト）はそれぞれ1,024バイト，1,024²バイト，1,024³バイト，1,024⁴バイトです。

1.　HiRDB External Data Accessとは

HiRDB External Data Accessの全体像について説明します。

＜この章の構成＞

1.1　HiRDB External Data Accessの特長

1.2　アクセスの形態

1.3　システム構成

1.1　HiRDB External Data Accessの特長

現在，企業や官公庁などの組織では，さまざまな種類のDBMSが使用されています。

初めにデータベースシステムを構築するときは，上位のアプリケーションとの相性などを考慮してDBMSを選択します。しかし，一度データベースシステムを構築すると，新しいデータベースシステムに移行するときDBMSを変更したくてもなかなか変更できません。それは，DBMSはその種類ごとにインタフェースが異なるため，DBMSを変更すると上位アプリケーションの修正やデータの移行などが発生し，大きなコストが必要となるためです。

また，活動拠点や業務の目的ごとに異なる種類のDBMSを使用している場合，データの統合が必要になっても，それぞれのDBMSのインタフェースが異なるため簡単に実現できません。

HiRDB External Data Accessは，このような問題を解決するために開発されたプログラムです。

HiRDB External Data Accessを使用すると，他社製品を含む異機種のDBMSで構築した複数のデータベースの表に対して，HiRDBのインタフェースを介してアクセスできます。また，他種データベースが複数存在する場合でも，それらの情報を一つの表（外部表またはビュー表を使用します）として参照および更新できます。

次の図に，HiRDB External Data Accessを使用した他種データベースへのアクセスの概念図を示します。

図1-1　HiRDB External Data Accessを使用した他種データベースへのアクセス

このHiRDBから他種データベースにアクセスする機能を， HiRDB External Data Access機能といいます。

なお，HiRDB External Data Accessで統合できるDBMSは次のとおりです。

HiRDB

XDM/RD E2

ORACLE

DB2※

注※

HiRDBがHP-UX版およびAIX版の場合にDB2のDBMSにアクセスできます。

アプリケーション開発時には，HiRDBのインタフェースでSQL問合せができます。このときのSQL問合せは，HiRDBによって，アクセス先のデータベースに合わせて最適な問合せに変換されます。

HiRDB External Data Accessの特長を次に示します。

異なる場所に存在する複数のDBMSで構築したデータベースの情報を，一つの表として参照および更新できる

複数のDBMSが稼働する環境でも，HiRDBのインタフェースだけで表にアクセスできる

HiRDB External Data Accessを使用すると，次のような効果を期待できます。

既存資産をそのまま利用することによる開発期間の短縮および運用コストの低減

データベース環境の変化・拡張に対する柔軟な対応

HiRDBインタフェース（SQLインタフェース）によるアプリケーション開発の簡易化

オンデマンドアクセスの実現による情報活用効率の向上

鮮度の高い情報のタイムリーな提供

なお，HiRDB External Data Access機能は，HiRDB/パラレルサーバでだけ使用できます。また，HiRDBは32ビット版で，かつPOSIXライブラリ版である必要があります。

1.2　アクセスの形態

この節では，HiRDBから異機種DBMSへのアクセスの形態について説明します。

次の図に，HiRDB External Data Accessを使用したHiRDB/パラレルサーバの構成例を示します。

図1-2　HiRDB External Data Accessを使用したHiRDB/パラレルサーバの構成例

＜この節の構成＞

(1)　異機種DBMSとの関係

(2)　外部サーバが管理する表へのアクセス方法

(3)　外部サーバに使用できるDBMS

(1)　異機種DBMSとの関係

(a)　バックエンドサーバから外部サーバにアクセス

HiRDBからアクセスされるDBMSを外部サーバといいます。

外部サーバへのアクセスは，バックエンドサーバから外部サーバのクライアントプログラムを経由して行います。バックエンドサーバと外部サーバとの対応づけは，定義ファイルで行います。ここで，バックエンドサーバに外部サーバを対応づけることを，「外部サーバをバックエンドサーバに登録する」といいます。

(b)　1台のバックエンドサーバには複数の外部サーバが登録可能

1台のバックエンドサーバには，複数の外部サーバを登録できます。

また，HiRDBシステム内に，外部サーバを登録したバックエンドサーバと外部サーバを登録していないバックエンドサーバとが混在してもかまいません。

(2)　外部サーバが管理する表へのアクセス方法

(a)　外部表とビュー表が使用可能

外部サーバを登録し，外部サーバ上の表の定義情報をHiRDBの表として定義すると，外部サーバが管理する表にアクセスできるようになります。このようにしてHiRDBで定義した表を外部表といいます。外部表については，「2.1　外部表」を参照してください。

また，外部表からビュー表を作成して，それにアクセスできます。

(b)　HiRDBのインタフェースでアクセス

外部サーバにアクセスする際のインタフェースには，HiRDBのインタフェースを使用します。したがって，複数の異なるDBMSを外部サーバとして登録した場合でも，異機種DBMSのインタフェースを意識しないで，HiRDBへ問い合わせるときと同じように操作できます。これによってUAPを効率良く開発できます。

(3)　外部サーバに使用できるDBMS

外部サーバとして使用できるDBMSを次の表に示します。外部サーバには，既存のHiRDBを使用することもできます。

表1-1　外部サーバに使用できるDBMS

外部サーバに使用できるDBMS | バージョン
HiRDB※1 | 05-06以降
XDM/RD E2 | 06-00以降
Oracle 8i※2 | 8.1.5, 8.1.7
Oracle 9i | 9.2
Oracle 10g | 10.1
DB2 | 6.0

注※1

HiRDB/シングルサーバおよびHiRDB/パラレルサーバを使用できます。ただし，Linux版のHiRDB Version 5.0およびWindows版のHiRDB Version 5.0は外部サーバに使用できません。

注※2

サポートするOracle 8iのバージョンは，外部サーバ接続用のバックエンドサーバのプラットフォームによって異なります。バックエンドサーバがHP-UXの場合は8.1.5および8.1.7，そのほかの場合は8.1.7だけです。

1.3　システム構成

＜この節の構成＞

(1)　バックエンドサーバの構成

(2)　プログラム構成

(1)　バックエンドサーバの構成

外部サーバへのアクセスはバックエンドサーバを介して行います。バックエンドサーバは，次のように構成できます。

一つのバックエンドサーバにRDエリアと外部サーバを混在して割り当てることができます。

一つのバックエンドサーバに複数の外部サーバを割り当てることができます。

なお，フロントエンドサーバ，システムマネジャ，ディクショナリサーバの構成は，通常のHiRDB/パラレルサーバと同じです。

(2)　プログラム構成

HiRDB External Data Access機能を使用する場合のプログラム構成を次の図に示します。

図1-3　HiRDB External Data Access機能を使用する場合のプログラム構成

HiRDB External Data Access機能を使用する場合，次に示すサーバごとにインストールするプログラムの種類が異なります。

バックエンドサーバ（BES）を含まないサーバ

バックエンドサーバ（BES）を含むサーバ

外部サーバ

バックエンドサーバ（BES）を含まないサーバは，使用する外部サーバの種類にかかわらず，共通のプログラムをインストールします。

しかし，バックエンドサーバを含むサーバ，および外部サーバは，使用する外部サーバの種類によって，インストールするプログラムが異なります。

次に，使用する外部サーバごとのプログラム構成について説明します。

(a)　外部サーバとしてHiRDBサーバを使用する場合

外部サーバとしてHiRDBを使用する場合のプログラム構成を次の図に示します。また，BESを含むサーバのプログラム構成を表1-2に，外部サーバのプログラム構成を表1-3に示します。

図1-4　HiRDBサーバを使用する場合のプログラム構成

表1-2　BESを含むサーバのプログラム構成（外部サーバにHiRDBサーバを使用する場合）

プロダクト名 | 備考
HiRDB/パラレルサーバ | POSIXライブラリ版をセットアップする必要があります。
HiRDBクライアント | HiRDBサーバに同等の機能が付属
HiRDB External Data Access | －
HiRDB External Data Access Adapter | HiRDB External Data Accessに付属

表1-3　外部サーバのプログラム構成（外部サーバにHiRDBサーバを使用する場合）

プロダクト名 | 備考
HiRDBサーバ | －

(b)　外部サーバとしてXDM/RD E2を使用する場合

外部サーバとしてXDM/RD E2を使用する場合のプログラム構成を次の図に示します。また，BESを含むサーバのプログラム構成を表1-4に，外部サーバのプログラム構成を表1-5に示します。

図1-5　XDM/RD E2を使用する場合のプログラム構成

表1-4　BESを含むサーバのプログラム構成（外部サーバにXDM/RD E2を使用する場合）

プロダクト名 | 備考
HiRDB/パラレルサーバ | POSIXライブラリ版をセットアップする必要があります。
HiRDBクライアント | HiRDBサーバに同等の機能が付属
HiRDB External Data Access | －
HiRDB External Data Access Adapter | HiRDB External Data Accessに付属

表1-5　外部サーバのプログラム構成（外部サーバにXDM/RD E2を使用する場合）

プロダクト名 | 備考
XDM/RD E2 | －
XDM/Library for HiRDB | －
XDM/BASE E2 | －
DBコネクションサーバ | －

XDM/RD E2に関する詳細については，マニュアル「HiRDB Version 8 XDM/RD E2接続機能」を参照してください。

(c)　外部サーバとしてORACLEを使用する場合

外部サーバとしてORACLEを使用する場合のプログラム構成を次の図に示します。また，BESを含むサーバのプログラム構成を表1-6に，外部サーバのプログラム構成を表1-7に示します。なお，HiRDB External Data Access AdapterにはORACLE用を使用します。

図1-6　ORACLEを使用する場合のプログラム構成

表1-6　BESを含むサーバのプログラム構成（外部サーバにORACLEを使用する場合）

プロダクト名 | 備考
HiRDB/パラレルサーバ | POSIXライブラリ版をセットアップする必要があります。
HiRDB External Data Access | －
HiRDB External Data Access Adapter | ORACLE用
ORACLEクライアント | ORACLEに必要なクライアントプログラム（ORACLE社製品）

表1-7　外部サーバのプログラム構成（外部サーバにORACLEを使用する場合）

プロダクト名 | 備考
ORACLE | ORACLE社製品

(d)　外部サーバとしてDB2を使用する場合

外部サーバとしてDB2を使用する場合のプログラム構成を次の図に示します。また，BESを含むサーバのプログラム構成を表1-8に，外部サーバのプログラム構成を表1-9に示します。なお，HiRDB External Data Access AdapterにはDB2用を使用します。

図1-7　DB2を使用する場合のプログラム構成

表1-8　BESを含むサーバのプログラム構成（外部サーバにDB2を使用する場合）

プロダクト名
備考

HiRDB/パラレルサーバ
POSIXライブラリ版をセットアップする必要があります。
適用OSによって形名が変わります。

HiRDB External Data Access
－

HiRDB External Data Access Adapter
DB2用

DB2 Connect Version 6
DB2への接続に必要なプログラム（IBM社製品）

DB2クライアント
DB2に必要なクライアントプログラム（IBM社製品）

表1-9　外部サーバのプログラム構成（外部サーバにDB2を使用する場合）

プロダクト名 | 備考
DB2 | IBM社製品

2.　システム構築の前に

システム構築の前に知っておく必要のあるHiRDB External Data Access固有の事項について説明します。

＜この章の構成＞

2.1　外部表

2.2　データベースの設計

2.3　性能の設計

2.4　リソースの見積もり

2.1　外部表

ここでは，HiRDB External Data Accessに固有の概念である外部表について説明しています。

＜この節の構成＞

(1)　外部表とは

(2)　データ型のマッピング

(3)　外部表の定義手順

(1)　外部表とは

HiRDB External Data Accessでは，CREATE SERVER文でHiRDBにDBMSを定義することで，定義したDBMSにHiRDBからアクセスできるようになります。ここで，定義するDBMSを外部サーバといいます。そして，CREATE FOREIGN TABLE文で外部サーバ上の表の定義情報をHiRDBの表として定義すると，HiRDBからその表を参照および更新できるようになります。このようにして定義した表を外部表といいます。

ただし，HiRDBでは外部表の定義情報だけを管理して，実際の表は外部サーバが管理します。外部表には，HiRDBのインタフェース（SQLや埋込み型UAPなど）でアクセスできます。また，外部表を基にビュー表を作成できます。

外部表は，従来のHiRDBで使用していた実表やビュー表と同じように検索できます。つまり，複数の外部表，実表やビュー表を組み合わせた検索を実行できます。

(2)　データ型のマッピング

外部表を定義するときは，HiRDB以外のDBMSのデータ型をHiRDBのデータ型にマッピングする必要があります。HiRDB External Data Accessでは，DBMSごとにマッピング時に推奨するHiRDBの対応データ型を用意しています。データ型の対応関係については，「4.2　データ型の対応関係」を参照してください。

(3)　外部表の定義手順

外部表は，定義系SQLを使用して次の手順で定義します。HiRDB External Data Accessの環境設定も含めた設定手順については，「3.1　環境設定」を参照してください。また，定義系SQLの詳細については，マニュアル「HiRDB Version 8 SQLリファレンス」を参照してください。

CREATE SERVER文を発行して外部サーバを定義します。

CREATE USER MAPPING文を発行してユーザマッピング（外部サーバとして使用するDBへの認可識別子およびパスワード）を定義します。

CREATE FOREIGN TABLE文を発行して使用する外部表を定義します。

必要なら，CREATE FOREIGN INDEX文を発行して外部インデクスを定義します。

2.2　データベースの設計

ここでは，HiRDB External Data Access機能を使用する場合の，サーバの設計について説明します。

＜この節の構成＞

2.2.1　サーバを構成する表の種類を考慮したデータベース設計

2.2.2　ネットワーク環境を考慮したデータベース設計

2.2.1　サーバを構成する表の種類を考慮したデータベース設計

HiRDB External Data Access機能を使用する場合，外部サーバにはBESを介してアクセスします。一つのBESからは複数の外部サーバにアクセスできます。またBESでは，外部サーバにアクセスするだけでなく，通常のようにRDエリアを作成して実表を作成することもできます。

次に外部表と実表の組み合わせによるサーバの構成方法の利点と欠点について説明します。

＜この項の構成＞

(1)　外部表だけで構成されたサーバ

(2)　外部表と実表で構成されたサーバ

(1)　外部表だけで構成されたサーバ

外部表しか存在しないサーバの構成には，主に次の二つが考えられます。

一つのBESで一つの外部表にアクセスする構成
一つのBESで一つの外部表にアクセスする場合の構成例を次の図に示します。外部サーバ数が少なく，外部サーバ数分のBESを用意できる場合に利用してください。

図2-1　一つのBESで一つの外部表にアクセスする構成

一つのBESで複数の外部表にアクセスする構成
一つのBESで複数の外部表にアクセスする場合の構成例を次の図に示します。外部サーバ数が多く，外部サーバ数分のBESを用意できない場合に利用してください。

図2-2　一つのBESで複数の外部表にアクセスする構成

外部表だけで構成されたサーバの構成ごとの利点と欠点を次の表に示します。

表2-1　外部表だけで構成されたサーバの構成ごとの利点と欠点

構成 | 利点 | 欠点
一つのBESで一つの外部表にアクセスする構成 | 複数の外部サーバにアクセスするとき，複数のBESで並列処理ができるため，処理速度が速くなる。 | 複数の外部サーバの外部表を結合するとき，異なるBES間で通信が発生して，処理速度が遅くなる。
一つのBESで複数の外部表にアクセスする構成 | 一つのBESに登録された複数の外部サーバの外部表を結合するとき，結合方式によっては処理速度が速くなる。 | 複数の外部サーバにアクセスするとき，特定のBESに負荷が集中する。

(2)　外部表と実表で構成されたサーバ

外部表と実表があるサーバの構成には，主に次の四つが考えられます。

外部表と実表があるBESによる構成
外部表と実表があるBESで構成する場合の例を次の図に示します。この構成は，実表を横分割にしてBESに定義したときに，実表へのアクセスと外部表へのアクセスの負荷が同程度で，主な問合せが少量検索の場合に利用してください。

図2-3　外部表と実表があるBESによる構成

外部表だけのBESと実表だけのBESによる構成
外部表だけのBESと実表だけのBESで構成する場合の例を次の図に示します。この構成は，実表へのアクセスと外部表へのアクセスの負荷が同程度で，実表への問合せが大量検索の場合に利用してください。また，実表に対して大量検索を行う場合，実表にアクセスするBESが並列に動作するよう構成すると処理効率が高くなります。

図2-4　外部表だけのBESと実表だけのBESによる構成

外部表だけのBESと外部表および実表があるBESによる構成
外部表だけのBESと，外部表および実表があるBESとで構成する場合の例を次の図に示します。この構成は，実表へのアクセスの負荷が小さく，外部表へのアクセスの負荷が大きい場合に利用してください。

図2-5　外部表だけのBESと外部表および実表があるBESによる構成

実表だけのBESと外部表および実表があるBESによる構成
実表だけのBESと外部表および実表があるBESとで構成する場合の例を次の図に示します。この構成は，実表へのアクセスの負荷が大きく，外部表へのアクセスの負荷が小さい場合に利用してください。

図2-6　実表だけのBESと外部表および実表があるBESによる構成

外部表と実表で構成されたサーバの構成方法ごとの利点と欠点を次の表に示します。

表2-2　外部表と実表で構成されたサーバの構成方法ごとの利点と欠点

構成
利点
欠点

外部表と実表があるBESによる構成

複数のBESで実表を分割すると，実表に対するアクセスの並列度を高くできます。

複数の外部サーバへの問合せの並列度が高くなります。

理想的な並列化を行った場合に比べて実表へのアクセス時間が長くなることがあります。

実表だけへの問合せと，外部表だけへの問合せが同時に実行される場合，各BESで各問合せの負荷が重なることがあります。

外部表だけのBESと実表だけのBESによる構成

外部表アクセスの影響を受けないため，理想的な並列化を実表に行うことができます。

実表だけへの問合せと外部表だけへの問合せが同時に実行される場合，BES単位でそれらの負荷を切り分けることができます。

BESの数が少ないと，実表の分割数が小さく，並列度が低くなります。

外部表だけのBESと外部表および実表があるBESによる構成

複数の外部サーバにアクセスする問合せの並列度が高くなります。

実表に使用できるBESの数が少ないと，実表の分割数が小さく，並列度が低くなります。

理想的な並列化を行った場合に比べて実表へのアクセス時間が長くなることがあります。

実表だけへの問合せと，外部表だけへの問合せが同時に実行される場合，各BESで各問合せの負荷が重なることがあります。

実表だけのBESと外部表および実表があるBESによる構成

複数のBESで実表を分割すると，実表に対するアクセスの並列度を高くできます。

理想的な並列化を行った場合に比べて実表へのアクセス時間が長くなることがあります。

実表だけへの問合せと，外部表だけへの問合せが同時に実行される場合，各BESで各問合せの負荷が重なることがあります。

2.2.2　ネットワーク環境を考慮したデータベース設計

＜この項の構成＞

(1)　外部サーバとBESの接続形態

(2)　ネットワーク経路設定上の注意事項

(1)　外部サーバとBESの接続形態

外部サーバと外部サーバが登録されたBESは，ネットワークで通信できる必要があります。ここではネットワーク接続の形態による構成方法と，それらの利点と欠点について説明します。

外部サーバとBESの接続形態は，ネットワーク構成によって次の表のように分類されます。

表2-3　外部サーバとBESの接続形態

外部サーバとBESの接続 | BES間ネットワークの使用
外部ネットワーク経由 | 使用する
使用しない
直接接続※ | 使用する
使用しない

注※

直接接続とは，外部サーバとBESを外部ネットワークを使用しないで，別の独立したネットワークで接続する形態を示します。

それぞれの形態の構成例を示します。

外部ネットワーク経由で，BES間ネットワークを使用する形態
外部ネットワーク経由で，BES間ネットワークを使用する場合の例を次の図に示します。この場合，外部サーバとBESの接続用の経路を別に設けると，外部サーバにアクセスすることによってFESにネットワーク負荷が掛かるのを防ぐことができます。

図2-7　外部ネットワーク経由で，BES間ネットワークを使用する形態

外部ネットワーク経由で，BES間ネットワークを使用しない形態
外部ネットワーク経由で，BES間ネットワークを使用しない場合の例を次の図に示します。

図2-8　外部ネットワーク経由で，BES間ネットワークを使用しない形態

直接接続で，BES間ネットワークを使用する形態
直接接続で，BES間ネットワークを使用する場合の例を次の図に示します。

図2-9　直接接続で，BES間ネットワークを使用する形態

直接接続で，BES間ネットワークを使用しない形態
直接接続で，BES間ネットワークを使用しない場合の例を次の図に示します。

図2-10　直接接続で，BES間ネットワークを使用しない形態

外部サーバとBESの接続形態ごとの利点と欠点を次の表に示します。

表2-4　外部サーバとBESの接続形態ごとの利点と欠点

接続形態
利点
欠点

外部ネットワーク経由で，BES間ネットワークを使用する形態（外部サーバとBESの接続用経路を設ける場合）

既存のネットワークを使用した場合，外部ネットワークの設定が容易です。

複数の外部サーバに接続する場合でも，BES間ネットワークと外部ネットワークの経路を一つ設けることで接続できます。

外部サーバとBESの通信によって外部ネットワークに負荷が掛かります。

外部サーバとBESの接続用経路を新たに設ける分，手間が掛かります。

外部ネットワーク経由で，BES間ネットワークを使用しない形態

既存のネットワークを使用した場合，外部ネットワークの設定が容易です。

新たにネットワーク設備を用意する必要がありません。

外部サーバとBESの通信によって外部ネットワークに負荷が掛かります。

直接接続で，BES間ネットワークを使用する形態

外部サーバとBESの通信によって外部ネットワークに負荷が掛かりません。

BES間ネットワークと外部サーバを接続すると，どのBESからも外部サーバへ接続できるようになります。

外部サーバとBESの通信によってBES間ネットワークに負荷が掛かります。

外部サーバが登録されたBESに，直接接続用のネットワーク接続インタフェースを用意する必要があります。

直接接続で，BES間ネットワークを使用しない形態

既存の外部ネットワークやBES間ネットワークに負荷が掛かりません。

複数の外部サーバを接続する場合，外部サーバ用マシンの数だけ直接接続用のネットワークを用意する必要があります。

外部サーバが登録されたBESに，直接接続用のネットワーク接続インタフェースを用意する必要があります。

(2)　ネットワーク経路設定上の注意事項

ネットワーク経路（ルーティング）の設定で，外部サーバが登録されたBESから外部サーバへの経路が複数存在する場合，次の点に考慮してください。

通信が一定の経路を通るように制御すると，安定した性能が得られる場合があります。

行きと帰りの通信路が異なると，障害時の原因分析が複雑になる場合があります。

2.3　性能の設計

ここでは，外部サーバを使用する場合の性能設計の考え方と，性能を左右する機能について説明します。

＜この節の構成＞

2.3.1　外部表へのアクセス性能に関する考え方

2.3.2　外部表へのアクセスの性能設計に関連する機能

2.3.3　外部表へのアクセス性能のチューニング

2.3.4　外部表へのアクセス性能のチューニング方法

2.3.1　外部表へのアクセス性能に関する考え方

外部表へのアクセスの性能を決定する要因には次の三つがあります。性能設計では，これらを考慮して，設計する必要があります。

HiRDB内部処理の性能
HiRDB内部処理とは，外部表へのアクセスを含む問合せを処理する場合に必要なHiRDB内の処理です。HiRDB内部処理の性能を上げるには，外部表へのアクセス性能のチューニングが必要になります。外部表へのアクセス性能のチューニングについては，「2.3.3　外部表へのアクセス性能のチューニング」を参照してください。

外部サーバ内処理の性能
外部サーバ内処理とは，外部サーバとして使用しているDBMS個々の処理です。外部サーバ内処理の性能を上げるには，外部サーバに発行されるSQLを外部サーバのチューニングツールで解析する必要があります。外部サーバに発行されるSQLは，アクセスパス表示ユティリティ（pdvwoptコマンド）で取得できます。
アクセスパス表示ユティリティについては，マニュアル「HiRDB Version 8 コマンドリファレンス」を参照してください。

ネットワーク通信の性能
外部サーバへのアクセス時，ネットワーク通信で性能が低くなるのは次のような場合です。

HiRDB，外部サーバ間で大量のデータが転送される場合
大量データの通信は，外部サーバからHiRDBに渡される問合せの中間結果が大きい場合，またはHiRDBから外部サーバに渡される中間結果のデータが大きい場合に発生します。
（例１）外部サーバからHiRDBに渡される問合せの中間結果が大きい場合
例えば，外部表T1のデータが大量の場合，次の問合せは大量のデータ通信が発生します。

　　SELECT * FROM T1;

また，外部表T1と外部表T2が異なる外部サーバに存在して，それらのデータが大量の場合，次の問合せは大量のデータ通信が発生します。ここで，T1.C1は外部表T1の中の列C1を，T2.C2は外部表T2の中の列C2を意味します。

　　SELECT * FROM T1, T2 WHERE T1.C1=T2.C2;

（例２）外部サーバからHiRDBに渡される問合せの中間結果が小さくなる場合
次のように外部サーバで中間結果が（COUNT(*)の結果だけに）絞り込まれる場合は，通信量が少なくなります。

　　SELECT COUNT(*) FROM T1;

次の問合せも，外部サーバで「T1.C1 = 10」の絞り込みを行い，T1とT3を結合した結果がHiRDBに転送されるため，通信量が少なくなります。ここで，外部表T1と外部表T3は，同一の外部サーバにあるものとします。

　　SELECT * FROM T1, T3 WHERE T1.C1=10 AND T1.C1=T3.C1;

HiRDB，外部サーバ間で多数の通信が行われる場合
大容量の回線でも，長距離ネットワークのように通信遅延時間が大きい場合には，通信回数の増加によって処理性能が下がります。多数の通信は，サーバ間で大量のデータが転送される場合，または，分散ネストループジョインで外部サーバに対するSQL文の問合せ発行回数が多くなる場合にも発生します。
（例１）サーバ間で大量のデータ転送を行う場合
例えば，外部表T1のデータが大量の場合，次の問合せの結果を1行ずつ転送すると，多数の通信が発生します。

　　SELECT * FROM T1;

（例２）分散ネストループジョインによる大量のSQL文発行を伴う場合
例えば，次の問合せが，T1を外表，T2を内表とする分散ネストループジョインで実行される場合を考えます。
　　SELECT * FROM T1, T2 WHERE T1.C1 = 10 AND T1.C2 = T2.C2;
「T1.C1 = 10」の絞込み後の中間結果行数が多くなると，その行数文だけT2を持つ外部サーバへSQL文が発行されるため，HiRDBと外部サーバ間で多数の通信が発生します。

2.3.2　外部表へのアクセスの性能設計に関連する機能

外部表へのアクセス性能に関連する機能について説明します。

＜この項の構成＞

(1)　機能一覧

(2)　外部サーバ実行

(3)　分散ネストループジョインの利用

(4)　外部サーバに対する配列FETCH

(5)　最適化情報パラメタファイル

(1)　機能一覧

外部表へのアクセス性能に関連する機能および設定を，次の表に示します。

表2-5　外部表へのアクセス性能に関連する機能および設定

機能
説明

外部サーバ実行
UAPから入力されたSQL文の処理の一部または全部を，外部サーバで実行する機能です。設定によってその動作の詳細を変更できます。
一つの外部サーバに存在する複数の表の結合処理，集計処理など，外部サーバで実行可能な処理を外部サーバで行うことで，外部サーバへのアクセスを含む問合せを高速に行うことができるようになります。
どのような処理を外部サーバで実行できるかについては，「(2)外部サーバ実行」を参照してください。
なお，この機能を使用するための設定については，Hub最適化情報定義およびSQL拡張最適化オプションで行います。SQL拡張最適化オプションについては「2.3.4(2)　SQL拡張最適化オプション」を，それぞれの設定項目の詳細についてはマニュアル「HiRDB Version 8 システム定義」を参照してください。

一つの外部サーバに閉じる探索高速化条件の導出
外部サーバ実行を行うためにSQLを自動的に書き換える機能です。探索高速化条件の導出に関する設定は， SQL拡張最適化オプションで行います。
探索高速化条件の動作については，マニュアル「HiRDB Version 8 UAP開発ガイド」を，SQL拡張最適化オプションについては，「2.3.4(2)　SQL拡張最適化オプション」を参照してください。

外部表を含む結合処理
外部表と外部表，または外部表とHiRDBに存在するデータを結合するための，次の処理を使用できます。ジョインの動作は，HiRDBの実表のときと同じです。

ネストループジョイン

外表の入力となる外部表のデータを外部サーバから取得して，HiRDBに存在する内表とネストループジョインを行います。

分散ネストループジョイン

外表と外部サーバ上に存在する内表とネストループジョインを行います。なお，外表の入力データは，外部表のデータでも，HiRDBのデータでもかまいません。

ハッシュジョイン

入力となる外部表のデータを外部サーバから取得して，ハッシュジョインを行います。

マージジョイン

入力となる外部表のデータを外部サーバから取得して，マージジョインを行います。

外部インデクス
設定によって，外部表に対するインデクスが存在しているように扱うことができます。外部インデクスを定義することにより，分散ネストループジョインを利用できるようになります。
外部インデクスは，CREATE FOREIGN INDEXで定義します。CREATE FOREIGN INDEXについては，マニュアル「HiRDB Version 8 SQLリファレンス」を参照してください。

外部サーバへの配列FETCH
外部サーバから問合せの中間結果が転送されるとき，複数の行を一括して転送できます。

最適化情報パラメタファイル
外部表に対する最適化情報パラメタファイルを設定できます。
最適化情報パラメタファイルについては，マニュアル「HiRDB Version 8 コマンドリファレンス」を参照してください。

(2)　外部サーバ実行

外部サーバ実行とは，SQLで指定された処理の一部または全部を，外部サーバで実行することです。一つの外部サーバに存在する外部表へのアクセスを含む問合せでは，外部サーバで絞り込みを行い，HiRDBと外部サーバ間の中間結果のデータを小さくすることで，処理を速くできます。

例えば，外部サーバXと外部サーバYがあり，外部サーバXには表T1（C1，C2）が，外部サーバYには表T2（C1，C2）と表T3（C1，C2）が存在するときに，次の問合せが発行されたとします。ここで，「表T1（C1，C2）」という記述は，表T1が列C1および列C2を持つこと示します。

SELECT * FROM T1, T2 WHERE T1.C1=10 AND T1.C2=T2.C2 ;

「T1.C1=10」は，外部サーバXにアクセスするだけで評価できる探索条件です。このような場合，この探索条件を外部サーバXに処理（外部サーバ実行）させて中間結果のデータを小さくすることができます。

以降，外部サーバ実行について説明します。なお，外部サーバ実行に関する設定は，Hub最適化情報定義で行います。

(a)　外部サーバ実行の可能な処理の単位

外部サーバ実行は，問合せの論理的な意味に基づいて分離した処理ごとに行うことができます。問合せを分離できるのは次の単位です。

カーソル指定

問合せ式

導出問合せ式

問合せ指定

LEFT OUTER JOINとON探索条件，およびその入力

WHERE句のAND条件項※，およびその入力

INNER JOINのON探索条件のAND条件項※，およびその入力

注※

探索条件をいちばん外側のAND演算子で区切った条件項を意味します。例えば，「C1=10 AND (C2=20 OR C3=30)」という探索条件は，二つのAND条件項「C1=10」と「(C2=20 OR C3=30)」から構成されています。また，「(C1=10 AND C2=20) OR C3=30」という探索条件は，一つのAND条件項で構成されています（探索条件のいちばん外側にAND演算子がないためです）。

(b)　外部サーバ実行の条件

外部サーバ実行を行うためには，次の条件が満たされている必要があります。

外部サーバ実行対象のデータが一つの外部サーバに存在する

外部サーバ実行対象の処理が実行できるように，Hub最適化情報定義で定義されている

外部サーバ実行を行う場合と行わない場合で同じ結果が得られる

外部サーバ実行対象のデータが一つの外部サーバに存在する

外部サーバ実行の対象になっている処理で参照するデータは，すべて一つの外部サーバに存在している必要があります。

この条件が満たされない例を説明します。外部サーバXと外部サーバYがあり，外部サーバXには表T1（C1，C2）が，外部サーバYには表T2（C1，C2）が存在するときに，次の問合せが発行されたとします。

SELECT * FROM T1, T2 WHERE T1.C1=T2.C1;

このとき，下線部は外部サーバXと外部サーバYへの参照を含んでいるため，一つの外部サーバで実行できません。

外部サーバ実行対象の処理が，Hub最適化情報定義で実行できるように定義されている

外部サーバ実行の対象になっている処理が，Hub最適化情報定義で実行できるように定義されている必要があります。

この条件が満たされない例を説明します。外部サーバXと外部サーバYがあり，外部サーバXには表T1（C1，C2）が，外部サーバYには表T2（C1，C2）が存在するとします。このとき，外部サーバYでLENGTH関数を使用しないように設定している（pd_hub_opt_length=2）と，次の問合せの下線部は外部サーバ実行されません。

SELECT * FROM T1, T2 WHERE T1.C1=T2.C2 AND LENGTH(T2.C1)<10;

外部サーバ実行を行う場合と行わない場合で同じ結果が得られる

外部サーバ実行は，行っても行わなくても同じ結果が得られる場合にだけ実行されます。したがって，外部サーバに使用するDBMSによって動作が異なる処理の場合，実行できません。例えば，文字列データの比較の際は注意が必要です。文字列データの比較で考慮が必要な点を次に示します。

パディング比較，パディングなし比較
文字列比較の動作には，パディング比較とパディングなし比較とがあります。文字列比較でパディング比較を使用するかパディングなし比較を使用するかは，DBMSによって異なります。HiRDBで異なる比較が使用される場合は外部サーバ実行できません。外部サーバ実行による性能向上を考える場合は，SQLを修正することで比較動作の異なる列同士の比較を避けるかどうかを検討する必要があります。
表2-6，表2-7，および表2-8にHiRDB，ORACLE，およびDB2の文字列比較の動作を示します。動作で太字になっている部分がHiRDBと動作が異なる処理です。

表2-6　HiRDB Version 5.0以降の文字列比較の動作

比較処理
動作

VARCHAR op VARCHAR
パディングなし比較

CHAR op VARCHAR または
VARCHAR op CHAR
パディング比較

CHAR op CHAR
パディング比較

（凡例）

　　　op：｛＝，＜＞，＜，＜＝，＞，＞＝｝

表2-7　ORACLEの文字列比較の動作

比較処理
動作

VARCHAR op VARCHAR
パディングなし比較

CHAR op VARCHAR または
VARCHAR op CHAR
パディングなし比較

CHAR op CHAR
パディング比較

（凡例）

　　　op：｛＝，＜＞，＜，＜＝，＞，＞＝｝

表2-8　DB2の文字列比較の動作

比較処理
動作

VARCHAR op VARCHAR
パディング比較

CHAR op VARCHAR または
VARCHAR op CHAR
パディング比較

CHAR op CHAR
パディング比較

（凡例）

　　　op：｛＝，＜＞，＜，＜＝，＞，＞＝｝

可変長文字列の末尾の空白の有無
可変長文字列（VARCHAR）同士の比較で，HiRDBがパディングなし比較，外部サーバがパディング比較を行う場合（外部サーバがDB2の場合），可変長文字列の末尾に空白がないと，HiRDBと外部サーバで同じ結果が得られます。したがって，外部表定義時（CREATE FOREIGN TABLE）に，末尾に空白がないことを保証できる列に対して列一般オプションTRAILING_SPACEに'NO'を設定し，Hub最適化情報定義でpd_set_hub_opt_trailing_spc=2を設定すると，外部サーバ実行をできる場合が多くなります。
TRAILING_SPACEについては，マニュアル「HiRDB Version 8 SQLリファレンス」を参照してください。また，Hub最適化情報定義についてはマニュアル「HiRDB Version 8 システム定義」を参照してください。

文字列の照合順序
固定長文字列と可変長文字列の大小比較（比較述語，限定述語，BETWEEN，MIN，MAX，ORDER BY）では，HiRDBと外部サーバで文字の照合順序を同じにすることで，HiRDBと外部サーバで同じ結果を得ることができます。したがって，外部サーバの文字の照合順序をHiRDBと同じに設定し，列一般オプションCOLLATING_SEQUENCEに'SAME'を設定すると，外部サーバ実行をで
きる場合が多くなります。
COLLATING_SEQUENCEについては，マニュアル「HiRDB Version 8 SQLリファレンス」を参照してください。

(c)　外部サーバ実行を行うためのSQLの書き方

HiRDBでは，そのままの記述では外部サーバ実行の条件を満たさない条件項を，実行条件を満たす同じ意味の条件項に一部の範囲で書き換える機能を提供しています。これを，探索高速化条件の導出機能といいます。

しかし，探索高速化条件の導出機能を使用しない場合，またはアクセスパスを確認したときに条件を満たすように書き換えられていない条件項がある場合，次に示す例のようにSQLを書き換えると，外部サーバ実行が促進され性能向上に役に立ちます。

（例1）選択処理の外部サーバ実行

外部サーバXと外部サーバYがあり，外部サーバXには表T1（C1，C2）が，外部サーバYには表T2（C1，C2）が存在するとします。このとき，下線部のAND条件項は，外部サーバXおよび外部サーバYを参照するため外部サーバ実行を行えません。

SELECT * FROM T1, T2
WHERE T1.C1=T2.C1 AND ((T1.C2=10 AND T2.C2=20) OR T2.C2=30);

しかし，この問合せを次のように書き換えると，下線部の条件項「(T2.C2=20 OR T2.C1=30)」は，外部サーバYで外部サーバ実行を行えるようになります。

SELECT * FROM T1, T2
WHERE T1.C1=T2.C1 AND (T1.C2=10 OR T2.C2=30) AND (T2.C2=20 OR T2.C2=30);

（例2）結合処理の外部サーバ実行

外部サーバXと外部サーバYがあり，外部サーバXには表T1（C1）が，外部サーバYには表T2（C1）および表T3（C1）が存在するとします。このとき，下線部のAND条件項群は，外部サーバXおよび外部サーバYを参照するため外部サーバ実行を行えません。

SELECT * FROM T1, T2, T3
WHERE T1.C1=T2.C1 AND T1.C1=T3.C1;

しかし，この問合せを次のように書き換えると，下線部の条件項「T2.C1=T3.C1」は，外部サーバYで外部サーバ実行を行えるようになります。

SELECT * FROM T1, T2, T3
WHERE T1.C1=T2.C1 AND T2.C1=T3.C1;

（例3）一つの外部サーバだけを参照する結合表

外部サーバXと外部サーバYがあり，外部サーバXには表T1（C1，C2）が，外部サーバYには表T2（C1，C2）および表T3（C1，C2）が存在するとします。このとき，連続するLEFT OUTER JOINが複数の外部サーバのデータを参照しているため外部サーバ実行を行えません。

SELECT T2.C1, T2.C2
FROM T2 LEFT OUTER JOIN T1 ON T2.C1=T1.C1
        LEFT OUTER JOIN T3 ON T2.C2=T3.C2;

しかし，この問合せを次のように書き換えると，結合表「T2 LEFT OUTER JOIN T3 ON T2.C2=T3.C2」は，外部サーバYで外部サーバ実行を行えるようになります。

SELECT T2.C1, T2.C2
FROM T2 LEFT OUTER JOIN T3 ON T2.C2=T3.C2
        LEFT OUTER JOIN T1 ON T2.C1=T1.C1;

(3)　分散ネストループジョインの利用

分散ネストループジョインとは，外表と外部サーバ上に存在する内表とをネストループ方式で結合処理する機能です。分散ネストループジョインは，外表からの中間結果をパラメタとするSQL文を，内表を持つ外部サーバに対して繰り返し発行します。そのため，外表から取り出される中間結果のデータが小さく，外表の行によって内表の行が大きく絞り込まれる場合は，処理を速くできます。一方，外表の中間結果のデータが大きい場合は，内表を持つ外部サーバへのSQL文の発行回数が多くなり，性能が悪くなります。

(a)　分散ネストループジョインを行う条件

分散ネストループジョインは，結合条件の評価に利用できるインデクスが内表側（外部サーバ）にある場合，特に処理を速くできます。このため，外部サーバに結合条件の評価に利用できるインデクスを用意するとともに，外部インデクスを定義するCREATE FOREIGN INDEX文を用いてHiRDBに外部サーバのインデクスの存在を知らせることが，分散ネストループジョインを行う条件となります。外部サーバにインデクスがない場合は，外部インデクスを定義することで条件を満たすことができます。

次に，外部インデクスの定義方法について説明します。

●外部インデクスの定義方法

分散ネストループジョインを実行するには，次のことに注意して外部インデクスを定義します。

内表側に外部インデクスを定義する

結合条件の評価に利用できる外部インデクスを定義する

内表側に外部インデクスを定義する

例えば，外部サーバXと外部サーバYがあり，外部サーバXには外表となる表T1（C1，C2）が，外部サーバYには内表となる表T2（C1，C2）が存在するときに，次の問合せが発行されたとします。

SELECT * FROM T1, T2 WHERE T1.C1 = 10 AND T1.C2 = T2.C2;

このような問合せで，下線部分を分散ネストループジョインで実行するためには，次のように内表側の外部インデクスを定義します。なお，外部インデクスを定義する場合，対応する外部インデクスの実体を用意しておくことをお勧めします。

CREATE FOREIGN INDEX IX1 ON T2 (C2);

結合条件の評価に利用できる外部インデクスを定義する

外部インデクスは，結合条件の評価に利用できる必要があります。例えば，「T1.C2 = T2.C2」の結合条件を評価するには，T2.C2を先頭に持つ外部インデクスを定義します。すなわち，

CREATE FOREIGN INDEX IX2 ON T2(C2, C3, C4);
CREATE FOREIGN INDEX IX3 ON T2(C4, C2, C3);

のような外部インデクスが存在する場合，IX2は「T1.C2 = T2.C2」の評価に利用できますが，IX3は利用できません。

(b)　分散ネストループジョインの使用に関する制御

分散ネストループジョインの使用・不使用を制御する方法としては，次のものがあります。

外部インデクス定義
外部インデクス定義の詳細については，「2.3.2(3)　分散ネストループジョインの利用」，またはマニュアル「HiRDB Version 8 SQLリファレンス」を参照してください。

最適化情報の設定
最適化情報の設定については，「2.3.4(1)最適化情報パラメタファイル」を参照してください。

SQL最適化指定
SQL最適化指定の詳細については，マニュアル「HiRDB Version 8 SQLリファレンス」を参照してください。

(4)　外部サーバに対する配列FETCH

外部サーバに対する配列FETCHとは，外部サーバから問合せの中間結果が転送されるとき，複数の行を一括して転送する機能のことです。この機能は，外部サーバとして使用しているDBMSが持っている通信を高速にする機能をHiRDBが利用することで実現するため，外部サーバによってはこの機能を利用できません。

外部サーバに対する配列FETCHに関する設定は，外部サーバ情報定義で行います。一括してFETCHする行数を大きく設定すると，一度に転送する行数が増加するため通信回数を少なくすることができます。

注意

配列FETCHでは，複数のSQLの結果を一括して転送することはできません。したがって，データ量が少ない，多数の中間結果の通信には有効ではありません。例えば，分散ネストループジョインによる結合処理の結果取得での外部サーバに対する配列FETCHでは，外表からの中間結果は通常どおり配列FETCHが効果を発揮しますが，内表からの中間結果は，外表の各行に対応する中間結果の単位でだけ配列FETCHが効果を発揮します。

(5)　最適化情報パラメタファイル

最適化情報パラメタファイルでは，外部表に対する最適化情報パラメタファイルを設定できます。HiRDB External Data Access機能を使用する場合，HiRDBでは外部表の行数を10,000,000行と仮定して最適化を行っています。したがって，外部サーバに存在する表の行数の合計が10,000,000行と大きく異なる場合，最適化情報パラメタファイルの行数を設定し，最適化情報収集ユティリティ（pdgetcstコマンド）を実行することで性能が向上する可能性があります。

注意

最適化情報パラメタファイルの設定は，最適化情報を設定した表を使用するすべての問合せに影響します。したがって，最適化情報パラメタファイルの設定後は，システム全体の性能を検証してください。

2.3.3　外部表へのアクセス性能のチューニング

外部表へのアクセスに関する処理で期待する性能を得られない場合，次の図に示す手順でボトルネックがどこにあるか検証し，チューニングする必要があります。

図2-11　外部表へのアクセス性能に関するチューニングの手順

ボトルネックとなるSQLを特定する

SQL文単位に実行時間を測定します。その結果，時間が掛かっているSQL文や性能目標に達していないSQL文を選び出します。SQLの実行時間は，SQLトレース機能で取得できます。詳細については，マニュアル「HiRDB Version 8 UAP開発ガイド」を参照してください。

そのSQLがボトルネックとなっている要因（機能）を特定する

次に示す二つの側面からボトルネックの要因を特定します。なお，ボトルネックの要因を特定するときには，「外部サーバ実行を行うことのできるSQLをHiRDBで実行していないか（外部サーバ実行）」や「HiRDBと外部サーバの間の通信回数を余計に多くしていないか（外部サーバへの配列FETCH）」などを考慮してください。外部サーバ実行については「2.3.2(2)　外部サーバ実行」を，外部サーバへの配列FETCHについては「2.3.2(4)　外部サーバに対する配列FETCH」を参照してください。

アクセスパスの妥当性の検討
アクセスパス表示ユティリティ（pdvwoptコマンド）でボトルネックとなっているSQLのアクセスパスを取得して，それをより良いアクセスパスに変更できないか，ボトルネック要因となっている機能は何かを検討します。アクセスパス表示ユティリティ（pdvwoptコマンド）については，マニュアル「HiRDB Version 8 コマンドリファレンス」を参照してください。

SQL実行時間と処理量の妥当性の検討
統計解析ユティリティ（pdsteditコマンド）で外部サーバごとの問合せ実行時間や処理行数を取得して，処理行数の割に時間が掛かっている外部サーバ処理がないか，ボトルネック要因となっている機能は何かを検討します。統計解析ユティリティ（pdsteditコマンド）については，マニュアル「HiRDB Version 8 コマンドリファレンス」を参照してください。

ボトルネック要因となっている機能をチューニングする

上記の検討の結果，ボトルネックになっている機能に関する設定をチューニングします。チューニングでは，外部表へのアクセスを含む問合せの最適化に関する設定を行います。チューニング方法については，「2.3.4　外部表へのアクセス性能のチューニング方法」を参照してください。

2.3.4　外部表へのアクセス性能のチューニング方法

外部表へのアクセスを含む問合せの最適化に関する設定には，次の二つがあります。

最適化情報パラメタファイル

SQL拡張最適化オプション

ここでは，それぞれを使用したアクセス性能のチューニング方法について説明します。

＜この項の構成＞

(1)　最適化情報パラメタファイル

(2)　SQL拡張最適化オプション

(1)　最適化情報パラメタファイル

外部表へのアクセス性能を決定する要因の一つに，実行効率の良いアクセスパスを得られるかどうかがあります。そして，HiRDB External Data Accessのアクセスパスの実行効率を左右する要素の一つに，中間結果行数があります。

最適化情報パラメタファイルの「表の行数」に設定している値と実際の表の行数とが大きく異なると，最適化が中間結果行数の予測を誤まるため，実行効率の良いアクセスパスを選べず，結果としてアクセス性能が悪くなります。つまり，最適化情報パラメタファイルの設定を実際と行数との誤差を小さくすると，アクセス性能を上げることができます。

最適化情報パラメタファイルを使用した外部表へのアクセス性能のチューニングの手順を次に示します。

＜手順＞

検索結果件数の予測と実測の比較
次の二つを比較します。

アクセスパス情報中の外部サーバの検索結果行数（予測）

統計解析情報中の外部サーバの検索結果行数（実測）

アクセスパス情報中の外部サーバの検索結果行数（予測）には，アクセスパス表示ユティリティ（pdvwoptコマンド）による実表検索処理情報の「外部サーバからの検索結果行数の予測値」を使用します。アクセスパス表示ユティリティ（pdvwoptコマンド）の引数には，外部サーバへの問合せのアクセスパス情報ファイルを指定してください。
統計解析情報中の外部サーバの検索結果行数（実測）には，統計解析ユティリティ（pdsteditコマンド）による外部サーバ利用状況の出力結果「外部サーバへの検索行数」を使用します。
比較の結果，二つの値が一けた以上異なり，かつ絶対値も大きい場合には，チューニングを行う余地があります。この状況は，次のような状態のときに発生しやすくなっています。

外表行数が多いにもかかわらず，ネストループジョインや分散ネストループジョインを行っている

ジョインでの絞込みが小さい（結果行数が多い）にもかかわらず，ジョインを外部サーバで実行している

最適化情報の設定
上記の比較の結果チューニングを行う余地がある場合，最適化情報パラメタファイルの表の行数を，統計解析情報中の外部サーバの検索結果行数（実測）を基に設定し，最適化情報収集ユティリティ（pdgetcstコマンド）を実行します。

効果の確認
チューニングの効果を確認します。最適化情報パラメタファイルの設定は，最適化情報を設定した表を使用するすべての問合せに影響します。したがって，最適化情報パラメタファイルの設定後は，システム全体の性能を検証してください。

(2)　SQL拡張最適化オプション

外部表へのアクセス性能を決定する要因の一つに，実行効率の良いアクセスパスを得られるかどうかがあります。そして，HiRDB External Data Accessのアクセスパスの実行効率を左右する要素の一つに，コストベースの最適化があります。

外部表へのアクセスを含むコストベースの最適化では，HiRDBによって通常性能が低いと予測されたアクセスパス候補は，アクセスパス生成から除外するという動作を行っています。これらの動作は，中間結果の転送量を削減することを目的としています。アクセスパス生成のデフォルト動作一覧を次の表に示します。

表2-9　アクセスパス生成に関するデフォルト動作一覧

名称 | デフォルト動作
ジョインを含むSQL文の外部サーバ実行 | 外部サーバで実行可能なジョインは，外部サーバでジョインを行うアクセスパスを使用します。
直積を含むSQL文の外部サーバ実行 | 直積は，結果行数が増加する可能性があるので，外部サーバで実行しません。
探索高速化条件の導出 | 外部サーバ実行可能な探索条件（探索高速化条件）を導出します。探索高速化条件については，「2.3.2　外部表へのアクセスの性能設計に関連する機能」またはマニュアル「HiRDB Version 8 UAP開発ガイド」を参照してください。

これらのデフォルト動作がアクセス性能のボトルネックとなる場合，システム共通定義のSQL拡張最適化オプションを設定して，外部表へのアクセスを含む問合せの最適化のチューニングをする余地があります。

外部表へのアクセス性能に関するSQL拡張最適化オプションの設定項目を，次の表に示します。

表2-10　外部表へのアクセス性能に関するSQL拡張最適化オプションの設定項目

設定項目
説明
設定のねらい
副作用

ジョインを含むSQL文の外部サーバ実行の抑止
ジョインを外部サーバで実行しないアクセスパスを生成します。
ジョインが外部サーバで実行されている場合，この機能を用いてアクセスパスのチューニングを行うことができます。チューニング効果の検証は，設定変更後アクセスパスのチェックで行ってください。
結果の大きいジョインを外部サーバで実行しないことで，中間結果の転送量を削減します。
結果の小さいジョインを外部サーバで実行しなかった場合，中間結果の転送量が増えるおそれがあります。

直積を含むSQL文の外部サーバ実行の強制
できる限り直積を外部サーバで行うアクセスパスを生成します。
直積が外部サーバではなくHiRDBサーバで実行されている場合，この機能を用いてアクセスパスのチューニングを行うことができます。チューニング効果の検証は，設定変更後アクセスパスのチェックで行ってください。
結果が小さい直積を外部サーバで実行することで，中間結果の転送量を削減します。
結果の大きい直積を外部サーバで実行した場合，中間結果の転送量が増えるおそれがあります。

外部サーバ実行可能な探索高速化条件の導出の抑止
外部サーバ実行が可能な場合でも探索高速化条件を導出する動作を行わないで，SQLを発行します。
チューニング効果の検証は，設定変更後アクセスパスのチェックで行ってください。
探索高速化条件を導出する時間を節約します。
また，探索高速化条件が外部サーバの混乱を引き起こす場合に，その影響を排除します。
中間結果の絞込みに有効な探索高速化条件が導出されないおそれがあります。

2.4　リソースの見積もり

HiRDB External Data Accessを使用する場合，HiRDB External Data Access機能を使用するために必要なリソースの見積もりが必要になります。この節ではリソースの計算方法について説明します。

＜この節の構成＞

2.4.1　メモリ所要量

2.4.2　ステータスファイルの容量

2.4.3　データディクショナリ用RDエリアの容量

2.4.4　データディクショナリ用RDエリアのインデクスの格納ページ数

2.4.1　メモリ所要量

HiRDB External Data Accessは，FESおよびBESの共用メモリを使用します。したがって，HiRDB External Data Accessを使用する場合，それぞれのメモリ所要量を見積もり，HiRDB/パラレルサーバで使用するメモリ所要量の見積もりに加える必要があります。

また，外部表をSQLで検索するときのメモリ所要量の計算式は，通常の表を検索するときと異なります。

HiRDB External Data Accessを使用する際に必要になる各メモリの計算式については，マニュアル「HiRDB Version 8 システム導入・設計ガイド」の次に示す項目を参照してください。

FESの共用メモリの計算式については，「各サーバが使用する共用メモリの計算式」の「フロントエンドサーバが使用する共用メモリの計算式」を参照してください。

BESの共用メモリの計算式については，「各サーバが使用する共用メモリの計算式」の「バックエンドサーバが使用する共用メモリの計算式」を参照してください。

外部表のSQL検索時に必要なメモリの計算式については，「SQL実行時に必要なメモリ所要量の計算式」の「外部表検索時に必要なメモリ所要量の求め方」を参照してください。

注意

HiRDB External Data Accessが動作する環境は，HiRDBの32ビット版です。メモリの見積もりの際には注意してください。

2.4.2　ステータスファイルの容量

HiRDB External Data Accessを使用する場合，BESまたはDSのステータスファイルの容量が増えるため，BESまたはDS用のステータスファイルの容量の見積もり式に計算式を追加する必要があります。

追加する計算式については，マニュアル「HiRDB Version 8 システム導入・設計ガイド」の「ステータスファイルの容量の見積もり」にある「Sの求め方」を参照してください。

2.4.3　データディクショナリ用RDエリアの容量

HiRDB External Data Accessを使用する場合，データディクショナリに表が追加されるため，データディクショナリ用RDエリアの見積もり式に，追加される表の格納ページ数の計算式を追加する必要があります。

追加されるディクショナリ表名，およびそれらの格納ページ数の計算式については，マニュアル「HiRDB Version 8 システム導入・設計ガイド」の「通常のデータディクショナリ用RDエリアの容量の見積もり」にある「計算式24」を参照してください。

2.4.4　データディクショナリ用RDエリアのインデクスの格納ページ数

HiRDB External Data Accessを使用する場合，データディクショナリに表が追加されるため，データディクショナリ用RDエリアのインデクス格納ページ数の見積もり式に，追加される表のインデクス格納ページ数の計算式を追加する必要があります。

追加されるディクショナリ表のインデクスを格納する表名，および計算式に代入する変数については，マニュアル「HiRDB Version 8 システム導入・設計ガイド」の「通常のデータディクショナリ用RDエリアの容量の見積もり」にある「インデクスの格納ページ数の計算方法」を参照してください。

3.　環境設定と運用

HiRDB External Data Access機能を使用するための環境設定と，運用方法について説明します。

＜この章の構成＞

3.1　環境設定

3.2　運用

3.1　環境設定

HiRDB External Data Access機能を使用するための環境設定について説明します。

＜この節の構成＞

3.1.1　環境設定上の注意事項

3.1.2　環境設定の概要

3.1.3　環境設定の手順

3.1.4　HiRDB External Data Accessに関連する定義ファイル

3.1.1　環境設定上の注意事項

文字コードの設定に関する注意事項

HiRDB External Data Accessを使用する場合，外部サーバに使用するDBMSの文字コードはできる限り合わせてください。外部表アクセスの際のエラーや，性能劣化の原因になります。

3.1.2　環境設定の概要

HiRDB External Data Accessを使用する場合の環境設定の概要を示します。

なお，以降の手順説明では，システム構成の設計およびHiRDB/パラレルサーバの環境設定は終了しているものとします。

設計する項目については，マニュアル「HiRDB Version 8 システム導入・設計ガイド」を参照してください。設計する項目でHiRDB External Data Access固有の項目については，「2.　システム構築の前に」を参照してください。

3.1.3　環境設定の手順

環境設定の手順を次に示します。ただし，HiRDBの環境設定はすでに終わっているものとします。

注意

UNIX版のHiRDBの環境設定をするときには，pdsetupコマンドで，ロード種別にPOSIXライブラリ版を選択する必要があります。

＜この項の構成＞

(1)　HiRDBの停止

(2)　HiRDB External Data Accessのインストール

(3)　HiRDB External Data Accessのセットアップ

(4)　HiRDB External Data Access Adapterのインストール

(5)　HiRDB External Data Access Adapterのセットアップ

(6)　外部サーバアクセスを実現するプログラムの設定

(7)　定義ファイルの作成

(8)　HiRDBの起動

(9)　外部サーバ，ユーザマッピングの定義

(10)　HiRDBの停止

(11)　HiRDBの起動

(12)　外部表，外部インデクスの定義

(1)　HiRDBの停止

実行者　　HiRDB管理者

実行単位　HiRDBシステム

HiRDBが起動している場合，HiRDBを停止します。HiRDB停止の実行例を次に示します。

　$ pdstop

(2)　HiRDB External Data Accessのインストール

実行者　　Administrators権限所有者（Windows版の場合），スーパユーザ（UNIX版の場合）

実行単位　ユニット

HiRDB External Data AccessのインストールはOSのインストール機能を利用して行います。HiRDB External Data Accessは，すべてのユニットにインストールする必要があります。

インストール後のファイル構成については「付録A　ファイル構成」を参照してください。

(3)　HiRDB External Data Accessのセットアップ

この作業は，UNIX版の場合だけ必要です。

実行者　　スーパユーザ

実行単位　ユニット

すべてのユニットでHiRDB External Data Accessのセットアップコマンド（pdopsetup）を実行します。コマンドの詳細については，マニュアル「HiRDB Version 8 コマンドリファレンス」を参照してください。HiRDB External Data Accessのセットアップコマンドの実行例を次に示します。

　$ pdopsetup -k exd /opt/HiRDB_P

(4)　HiRDB External Data Access Adapterのインストール

実行者　　Administrators権限所有者（Windows版の場合），スーパユーザ（UNIX版の場合）

実行単位　ユニット

HiRDB External Data Access AdapterのインストールはOSのインストール機能を利用して行います。すべてのユニットにHiRDB External Data Access Adapter種別を合わせてインストールする必要があります。

なお，外部サーバにHiRDBまたはXDM/RD E2を使用する場合は，この作業は必要ありません。

インストール後のファイル構成については「付録A　ファイル構成」を参照してください。

(5)　HiRDB External Data Access Adapterのセットアップ

この作業は，UNIX版の場合だけ必要です。

実行者　　HiRDB管理者

実行単位　ユニット

すべてのユニットでHiRDB External Data Access Adapterのセットアップコマンド（pddbadset）を実行します。pddbadsetコマンドは同じマシンで，複数のコマンドを同時実行しないでください。コマンドの詳細については，マニュアル「HiRDB Version 8 コマンドリファレンス」を参照してください。HiRDB External Data Access Adapterのセットアップコマンドの実行例を次に示します。

　$ pddbadset hiv6 /opt/hirdbDHub_P/

(6)　外部サーバアクセスを実現するプログラムの設定

実行者　　設定するプログラムのマニュアルを参照してください

実行単位　ユニット

すべてのユニットでHiRDB External Data Access，HiRDB External Data Access Adapter以外の外部サーバアクセスを実現するプログラムのインストールおよび環境設定を実行します。

外部サーバアクセスを実現するプログラムについては，「1.3　システム構成」を参照してください。

インストール方法および環境設定方法については，ご使用になるプログラムのマニュアルを参照してください。

(7)　定義ファイルの作成

実行者　　HiRDB管理者

実行単位　定義ファイルの必要なサーバ

HiRDB External Data Accessを使用するためには，次に示す定義ファイルの修正または作成が必要になります。システム管理者は，これらの定義ファイルに対するアクセス権限を持っている必要があります。

各定義の詳細については，マニュアル「HiRDB Version 8 システム定義」を参照してください。

システム共通定義ファイル（%PDDIR%¥conf¥pdsys）
定義する外部サーバの最大数をpd_max_foreign_serverに指定します。

フロントエンドサーバ定義ファイル（%PDDIR%¥conf¥FES名）
外部サーバ単位，DBMS種別単位またはDBMS種別とバージョン単位にHub最適化情報定義指定オプション（pdhubopt）を指定します。指定の内容はすべてのフロントエンドサーバで同じにしてください。この指定は省略できます。

バックエンドサーバ定義ファイル（%PDDIR%¥conf¥BES名）
外部サーバに使用するDBMSクライアントのライブラリパスの記述形式を，set形式でpd_foreign_server_libpathに指定します。また，外部サーバとして使用するDBMSで必要になる環境変数を，putenv形式に追加します。

Hub最適化情報定義ファイル（%PDDIR%¥conf¥任意の名称）
外部サーバを対象にした問合せを外部サーバ上で実行するかどうかを，SQL構文ごとに指定します。また，最適化に関するコストパラメタを指定します。この定義ファイルの使用は任意です。使用すると，外部サーバにアクセスするとき実行性能が上がります。Hub最適化情報定義ファイルについては，「3.1.4(2)　Hub最適化情報定義」を参照してください。

外部サーバ情報定義ファイル（%PDDIR%¥conf¥外部サーバ名）
外部サーバに関する定義を，外部サーバとして使用するDBMSごとに指定します。外部サーバ情報定義ファイルについては，「3.1.4(1)　外部サーバ情報定義」を参照してください。

(8)　HiRDBの起動

実行者　　HiRDB管理者

実行単位　HiRDBシステム

HiRDBを起動します。HiRDBの起動例を次に示します。

　$ pdstart

(9)　外部サーバ，ユーザマッピングの定義

実行者　　HiRDBシステム設計者

実行単位　外部サーバ

次に示す定義系SQLを用いて，外部サーバ定義，ユーザマッピングの追加を行います。DBA権限を持ったユーザで実行する必要があります。

定義系SQLの詳細については，マニュアル「HiRDB Version 8 SQLリファレンス」を参照してください。

CREATE SERVER文

CREATE USER MAPPING文

外部サーバ定義，ユーザマッピングの追加例を次に示します。

CREATE SERVER fs_xdm01 TYPE 'XDMRD' VERSION '6.0'
      OPTIONS(USING_BES 'BES01');
CREATE USER MAPPING FOR PUBLIC SERVER fs_xdm01
      OPTIONS (USER 'user01', PASSWD 'passwd01');

(10)　HiRDBの停止

実行者　　HiRDB管理者

実行単位　HiRDBシステム

HiRDBを停止します。HiRDBの停止例を次に示します。

　$ pdstop

(11)　HiRDBの起動

実行者　　HiRDB管理者

実行単位　HiRDBシステム

HiRDBを起動します。HiRDBの起動例を次に示します。

　$ pdstart

(12)　外部表，外部インデクスの定義

実行者　　HiRDBシステム設計者

実行単位　外部サーバ

次に示す定義系SQLを用いて，外部表定義および外部インデクスの定義を行います。

定義系SQLの詳細については，マニュアル「HiRDB Version 8 SQLリファレンス」を参照してください。

CREATE FOREIGN TABLE文

CREATE FOREIGN INDEX文

これらのSQLを実行できるユーザは次のとおりです。

定義系SQL | 実行できるユーザ
CREATE FOREIGN TABLE | スキーマを所有し，かつ外部サーバ定義を所有するユーザ
CREATE FOREIGN INDEX | 外部表の所有者

外部表定義および外部インデクスの定義例を次に示します。

　 CREATE FOREIGN TABLE user01.table01
　  (C1 VARCHAR(255) OPTIONS TRAILING_SPACE 'NO', C2 INTEGER)
　  SERVER fs_xdm01;
　 CREATE FOREIGN INDEX user01.idx01 on user01.table01(C1 ASC);

3.1.4　HiRDB External Data Accessに関連する定義ファイル

HiRDB External Data Accessに関連する定義ファイルを次に示します。

外部サーバ情報定義

Hub最適化情報定義

SQL拡張最適化オプション（システム共通定義）

ここでは，これらの定義について説明します。

＜この項の構成＞

(1)　外部サーバ情報定義

(2)　Hub最適化情報定義

(3)　SQL拡張最適化オプション（システム共通定義）

(1)　外部サーバ情報定義

作成個所：外部サーバ接続用BESがあるユニット

作成単位：外部サーバごと

ファイル名：%PDDIR%¥conf¥外部サーバ名

外部サーバ情報定義では，接続する外部サーバのホスト名や外部サーバエラー情報を出力するかなどHiRDB External Data Access機能を実行するための定義を行います。外部サーバ情報定義は，外部サーバに使用するDBMSごとに設定するオペランドが異なります。

外部サーバ情報定義の詳細については，マニュアル「HiRDB Version 8 システム定義」を参照してください。

(2)　Hub最適化情報定義

作成個所：外部サーバにアクセスするFESがあるユニット

作成単位：外部サーバにアクセスするFESごと※

ファイル名：%PDDIR%¥conf¥任意の名称

注※　マルチFESを使用する場合，各FESに同じ内容のHub最適化情報定義が必要です。

Hub最適化情報定義では，集合関数を外部サーバで実行するかなど入力された問合せの各構文を外部サーバで実行するかどうかを定義します。この指定によってHiRDBと外部サーバとの機能差を吸収します。Hub最適化情報定義の指定値を変更すると，互換性のない機能は結果不正になります。また，外部サーバで未サポートの構文は外部サーバでエラーになることがあります

Hub最適化情報定義には，サンプルファイルが用意されています。サンプルファイルをコピーしてそのまま利用することをお勧めします。サンプルファイルの格納場所については，「付録A.1　インストール後のファイル構成」を参照してください。

Hub最適化情報定義の詳細については，マニュアル「HiRDB Version 8 システム定義」を参照してください。

(3)　SQL拡張最適化オプション（システム共通定義）

作成個所：すべてのユニット

作成単位：ユニットごと※

ファイル名：%PDDIR%¥conf¥pdsys

注※　すべてのシステム共通定義の内容は同じにしてください。

システム共通定義のSQLの最適化に関するオペランド（pd_additional_optimize_level）のSQL拡張最適化オプションでは，外部サーバのコストベース最適化モード2に関する定義を行います。ここで設定する機能を次に示します。これらの設定に関する詳細は，「2.3.4(2)　SQL拡張最適化オプション」を参照してください。

ジョインを含むSQL文の外部サーバ実行の抑止（DETER_JOIN_SQL）
外部表へのアクセスを含む問合せから，外部表へアクセスするSQLを作成する場合に，ジョインを含むSQLの作成を抑止します。この最適化を指定すると，ジョインを含むSQLの代わりに，ジョインの入力となる外部表のデータを取得するSQLを作成します。なお，ジョインの処理はHiRDBが行います。

直積を含むSQL文の外部サーバ実行の強制（FORCE_CROSS_JOIN_SQL）
外部表へのアクセスを含む問合せから，外部表へアクセスするSQLを作成する場合に，できるだけ直積を含むSQLを作成します。

無条件に生成する，外部サーバで実行できる探索高速化条件の導出の抑止（DETER_FSVR_DERIVATIVE_COND）
無条件に導出している，外部サーバで実行できる探索高速化条件を抑止できます。探索高速化条件を導出すると，探索高速化条件の生成および実行に時間が掛かったり，アクセスパスが意図したとおりにならないことがあります。このような場合に，この最適化を指定してください。
なお，SQL最適化オプションに「探索高速化条件の導出」を指定した場合，この最適化を指定しても無視されます。

3.2　運用

HiRDB External Data Access機能の運用方法について説明します。

＜この節の構成＞

3.2.1　外部サーバの運用開始と運用終了

3.2.2　外部サーバの追加・削除・変更

3.2.3　外部表のアクセス権限

3.2.4　HiRDB External Data Accessに関する運用コマンド

3.2.5　HiRDB External Data Accessの変更

3.2.1　外部サーバの運用開始と運用終了

外部サーバの運用開始と運用終了方法について説明します。

＜この項の構成＞

(1)　外部サーバへの接続方法と切断方法

(2)　外部サーバの運用開始

(3)　外部サーバの運用終了

(1)　外部サーバへの接続方法と切断方法

外部サーバへの接続と切断の方法を，表3-1および表3-2に示します。

外部サーバへの接続方法と切断方法は，外部サーバ情報定義ファイルで指定します。詳細については，マニュアル「HiRDB Version 8 システム定義」を参照してください。

表3-1　外部サーバへの接続方法

接続方法 | 説明
起動時接続 | バックエンドサーバプロセスが起動したとき，外部サーバに接続します。常に外部サーバと接続した状態のため，実行時接続に比べてSQLの処理性能が高くなります※。
実行時接続 | バックエンドサーバプロセスが外部サーバに最初のSQLを発行したとき，発行先の外部サーバに接続します。

注※

PDSWAITTIMEオペランドで指定した待ち時間より長い間，外部サーバへの問合せがない場合，外部サーバとの接続が切断されます。この場合，実行時に再接続を行うため，実行時接続と同程度のSQL処理性能になります。

表3-2　外部サーバへの接続の切断方法

切断方法
説明

トランザクション終了時切断
トランザクションを終了するとき，外部サーバへの接続を切断します。

バックエンドサーバプロセスの終了時に切断
バックエンドサーバプロセスを終了するとき，外部サーバへの接続を切断します。バックエンドサーバプロセスの終了方法を次に示します。

切断対象のバックエンドサーバプロセス停止（kill(1)コマンド）

切断対象のBESを含むユニットの停止（pdstop -uコマンドまたはpdstop -xコマンド）

HiRDBの停止（pdstopコマンド）

HiRDBの各コマンドの詳細については，マニュアル「HiRDB Version 8 コマンドリファレンス」を参照してください。
kill(1)コマンドについては，ご使用のOSのマニュアルを参照してください。

(2)　外部サーバの運用開始

(a)　運用開始手順

外部サーバの運用開始までの流れを次に示します。

外部サーバの開始
各外部サーバを開始します。開始方法については，それぞれのDBMSのマニュアルを参照してください。

HiRDBの開始
pdstartコマンドでHiRDBを開始します。
外部サーバ情報定義ファイルの定義に従って，HiRDBが外部サーバに接続されます。

(b)　注意事項

HiRDB External Data Access機能の開始処理では，ディクショナリ検索を行い，外部サーバ情報とユーザマッピング情報を取得します。その際，ディクショナリを検索できない状態だと，HiRDB External Data Access機能を使用できません。ディクショナリを検索できる状態にして，HiRDBを再起動してください。

なお次の場合，ユニットがダウンします。メッセージに従って対処したあと，ユニットを再起動してください。

外部サーバ情報定義で指定しているHiRDB External Data Access Adapterがない場合

外部サーバ情報定義またはHub最適化情報定義に誤りを検知した場合

HiRDB External Data Access機能の初期化で，共用メモリブロックの確保に失敗した場合

(3)　外部サーバの運用終了

外部サーバの運用終了の流れを次に示します。

HiRDBの終了
pdstopコマンドでHiRDBを終了します。
HiRDBが外部サーバに接続している場合，pdstopコマンドは次のように動作します。

外部サーバのダウンなどによって無効となった接続は放棄して，HiRDB終了処理を続行します。

外部サーバに対してトランザクション実行中の場合は，トランザクション終了まで待ってから，HiRDBを終了します。

HiRDBが正常終了すると外部サーバとの接続が切断されます。

外部サーバの終了
各外部サーバを終了します。終了方法については，それぞれのマニュアルを参照してください。

3.2.2　外部サーバの追加・削除・変更

ここでは，HiRDB External Data Access機能付きHiRDBの運用開始後に，外部サーバを追加，削除または変更するときの手順について説明します。

＜この項の構成＞

(1)　外部サーバの追加

(2)　外部サーバの削除

(3)　外部サーバの変更

(1)　外部サーバの追加

HiRDBの運用を開始したあとに外部サーバを増やしたい場合，外部サーバを追加します。

外部サーバを追加する手順を次に示します。

＜手順＞

外部サーバ情報定義，Hub最適化情報定義（任意）の作成

HiRDB External Data Access Adapterのインストールと環境設定
手順については，「3.1.3　環境設定の手順」を参照してください。

外部サーバ，ユーザマッピングの定義
CREATE SERVER文実行
CREATE USER MAPPING文実行

HiRDBの全ユニットの正常停止
pdstopコマンド実行

HiRDBの全ユニットの正常開始
pdstartコマンド実行

外部表，外部インデクスの定義
CREATE FOREIGN TABLE文実行
CREATE FOREIGN INDEX文実行（任意）

注意

ディクショナリ情報と動作環境に不整合が発生しないように，手順３を実行した後に，ただちに手順４と５を実行してください。

(2)　外部サーバの削除

外部サーバの使用をやめる場合，外部サーバの削除を行います。

外部サーバの削除の手順を次に示します。

＜手順＞

削除対象の外部サーバの外部表，外部インデクス※1および外部表から作成されたビュー表の削除
DROP FOREIGN TABLE文実行
DROP FOREIGN INDEX文実行

削除対象の外部サーバのユーザマッピングの削除
DROP USER MAPPING文実行

削除対象の外部サーバの削除
DROP SERVER文実行

削除対象の外部サーバの外部サーバ情報定義およびHub最適化情報定義（任意）の削除

HiRDBの全ユニットの正常停止
pdstopコマンド実行

FES定義ファイルからの削除対象外部サーバのHub最適化情報定義指定オプション（pdhubopt）の削除

必要なら，HiRDB External Data Access Adapterのアンセットアップ（pddbadset -d）※2

HiRDBの全ユニットの正常開始
pdstartコマンド実行

注※1

外部インデクスの削除は，外部サーバの追加のときに外部インデクスを作成している場合に必要です。

注※2

何らかの理由でアンセットアップする必要がある場合に，実行してください。

注意

ディクショナリ情報と動作環境に不整合が発生しないように，手順２と３を実行した後に，ただちに手順５から８を実行してください。

(3)　外部サーバの変更

外部サーバを変更するときの手順を次に示します。

(a)　外部サーバ定義情報ファイルの変更

外部サーバ定義情報ファイルを変更する場合の手順を次に示します。

＜手順＞

外部サーバ接続用BESを停止
pdstopコマンド実行

外部サーバ定義情報ファイルの修正

外部サーバ接続用BESを再起動
pdstartコマンド実行

(b)　Hub最適化情報定義ファイルの変更

Hub最適化情報定義ファイルを変更する場合の手順を次に示します。

＜手順＞

全FESを停止
pdstopコマンド実行

Hub最適化情報定義ファイルの修正

全FESを再起動
pdstartコマンド実行

(c)　外部のDBMSのバージョンアップ

HiRDB Version 5を外部のDBMSとして使用している場合に，そのHiRDBをVersion 6以降にバージョンアップするときには，CREATE SERVER文で指定するサーババージョンに変更が生じます※1。その場合，外部サーバの再定義をする必要があります。手順を次に示します。

＜手順＞

外部サーバの削除
手順の詳細については，「(2)外部サーバの削除」を参照してください。

Hub最適化情報定義ファイル（任意）の変更※1

外部サーバの追加※2※3
手順の詳細については，「(1)外部サーバの追加」を参照してください。

注

この作業では，外部サーバ情報定義ファイルの修正は不要です。

注※１

サーババージョンによって，Hub最適化情報定義サンプルファイルは異なります。可能な限り，サーババージョンに対応したHub最適化情報定義サンプルファイルに合わせて修正してください。

注※２

CREATE SERVER文で指定するサーババージョンを変更した外部サーバ，および外部サーバに関連する情報を再定義します。

注※３

CREATE SERVER文で定義する指定値で，サーババージョン以外の指定値は，手順１で削除した外部サーバと同じ値にすることをお勧めします。異なる値を指定する場合は，次の修正が必要になります。

i）外部サーバ名称

再定義するユーザマッピング定義，外部表定義の外部サーバ名の変更

外部サーバ情報ファイル名称，Hub最適化情報ファイル名称（任意）の変更

FES定義pdhubopt（任意）で定義する外部サーバ名の変更

ii）外部サーバ実行BES

BES定義ファイルの修正

iii）その他

変更しないでください。

(d)　外部サーバ実行BESの変更

外部サーバへ処理要求を実行するBESの変更手順を次に示します。

＜手順＞

外部サーバの削除※1
手順の詳細については，「(2)外部サーバの削除」を参照してください。

外部のDBクライアントの設定※2

外部サーバの追加※3※4
「(1)外部サーバの追加」の手順３から６までの作業を行ってください。

注

この作業では，外部サーバ情報定義ファイルの修正は不要です。

注※1

外部サーバを削除するときは，削除する外部サーバに関連する定義（外部表，外部インデクス，ユーザマッピングの定義）をすべて削除する必要があります。

注※2

変更するBESのバックエンドサーバ定義ファイルを修正します。

注※3

CREATE SERVER文で指定するバックエンドサーバ名称を変更した外部サーバおよび外部サーバに関連する情報を再定義します。

注※4

CREATE SERVER文で定義する指定値で，BES名称以外の指定値は，手順１で削除した外部サーバと同じ値にすることをお勧めします。異なる値を指定する場合，次の修正が必要になります。

i）外部サーバ名称

再定義するユーザマッピング定義，外部表定義の外部サーバ名の変更

外部サーバ情報ファイル名称，Hub最適化情報ファイル名称（任意）の変更

FES定義pdhubopt（任意）で定義する外部サーバ名の変更

ii）その他

変更しないでください。

3.2.3　外部表のアクセス権限

表に対するアクセス権限には，次の表に示す4種類があります。

表3-3　アクセス権限の種類

アクセス権限の種類 | 説明 | 外部表での使用可否
SELECT権限 | 表に存在する行を検索します。 | ○
INSERT権限 | 表へ行を追加します。 | ○
UPDATE権限 | 表の列の値を更新します。 | ○
DELETE権限 | 表から行を削除します。 | ○

（凡例）

○：使用できます。

外部表にアクセスするためには，外部表の基になる外部サーバ上の表に付与されたアクセス権限と同じものを外部表に付与する必要があります。外部サーバ上の表に付与されていない権限を外部表に対して与えた場合，実行時にエラーになります。

なお，外部表にアクセスするときは，CREATE USER MAPPING文で指定したユーザIDに対してアクセス権限を付与する必要があります。外部表へは，このときに指定したユーザIDでアクセスします。

表の所有者が持つアクセス権限とほかのユーザへのアクセス権限の操作（権限の付与，取り消し）の可否について，次の表に示します。

表3-4　表の所有者が持つアクセス権限とほかのユーザへのアクセス権限の操作の可否

表の種類
表の所有者が持つ
アクセス権限
権限の付与，
取り消しの可否

実表
すべてのアクセス権限
○

外部表
すべてのアクセス権限
○

自分の実表または外部表から定義した読み込み専用ビュー表※1
SELECT権限
○

自分の実表または外部表から定義した更新可能なビュー表※1
すべてのアクセス権限
○

他人の実表または外部表から定義した読み込み専用ビュー表※1※2
SELECT権限
×

他人の実表または外部表から定義した更新可能なビュー表※1※2
基の実表に対して持っている，すべてのアクセス権限
×

（凡例）

○：アクセス権限を，ほかのHiRDBユーザに対して付与，取り消しできます。

×：アクセス権限を，ほかのHiRDBユーザに対して付与，取り消しできません。

注※1

読み込み専用ビュー表とは，次のようなビュー表をいいます。また，これ以外のビュー表を更新可能なビュー表といいます。

CREATE VIEW文で，READ ONLYを指定して定義したビュー表

CREATE VIEW文で，最も外側の問合せ指定に対する表の結合，SELECT DISTINCT，GROUP BY句，HAVING句，または集合関数を含むビュー表

CREATE VIEW文で，最も外側の問合せ指定のSELECT句に基の表の同一列を複数指定して定義したビュー表

CREATE VIEW文で，最も外側の問合せ指定のSELECT句に四則演算，日付演算，時刻演算，システム組込みスカラ関数，連結演算，CASE式，定数，USER，CURRENT DATE，またはCURRENT TIMEを含むビュー表

CREATE VIEW文で，最も外側の問合せ指定のFROM句に指定した表と同じ表をFROM句に指定した副問合せを含むビュー表（FROM句に指定する表がビュー表の場合，ビュー表の基となる表も含む）

CREATE VIEW文で集合演算（UNION ALL）を指定して定義したビュー表

注※2

他人の実表からビュー表を定義するためには，他人の実表に対するSELECT権限が必要です。

3.2.4　HiRDB External Data Accessに関する運用コマンド

ここでは，HiRDB External Data Accessで使用するコマンドについて説明します。

＜この項の構成＞

(1)　運用コマンド一覧

(2)　運用コマンド使用上の注意事項

(1)　運用コマンド一覧

次の表にHiRDB External Data Access機能固有の動作が存在する運用コマンド一覧を示します。各コマンドの詳細については，マニュアル「HiRDB Version 8 コマンドリファレンス」を参照してください。

表3-5　HiRDB External Data Access機能固有の動作が存在する運用コマンド一覧

運用コマンド | 内容 | 実行者 | HiRDB稼働中の実行 | 実行するサーバマシン
pdopsetup | HiRDB External Data Accessをセットアップします。 | スーパユーザ | × | SV
pddbadset | HiRDB External Data Access Adapterをセットアップします。 | HiRDB管理者 | × | SV
pdls【-d stj】 | 外部サーバごとの統計情報出力種別の指定有無を表示します。 | － | ○ | MGR
pdstbegin | 外部サーバの統計情報の出力を開始します。 | HiRDB管理者 | ○ | MGR
pdstend | 外部サーバの統計情報の出力を停止します。 | HiRDB管理者 | ○ | MGR

（凡例）

－：権限がなくても実行できることを示します。

○：HiRDBが稼働中のときだけ実行できます。

×：HiRDBが停止中のときだけ実行できます。

SV：すべてのサーバマシンで実行することを示します。

MGR：システムマネジャを構成するサーバマシンで実行することを示します。

(2)　運用コマンド使用上の注意事項

pdrbkコマンド，pdcmtコマンド，およびpdfgtコマンドを実行しても，外部サーバのDBMSに対するトランザクションを制御できません。

3.2.5　HiRDB External Data Accessの変更

ここでは，HiRDB External Data Accessをバージョンアップで変更するときの手順について説明します。

＜この項の構成＞

(1)　HiRDB External Data Accessのバージョンアップの条件

(2)　HiRDB External Data Accessの変更手順

(1)　HiRDB External Data Accessのバージョンアップの条件

HiRDB External Data Access機能付きのHiRDBをバージョンアップした場合は，HiRDB External Data Accessも同じバージョンに変更する必要があります。また，バージョンアップしたHiRDB External Data Accessに対応するHiRDB External Data Access Adapterをセットアップする必要があります。次の表に，HiRDB External Data Access機能付きのHiRDBと，HiRDB External Data Accessのバージョンの組み合わせについて示します。

表3-6　HiRDBとHiRDB External Data Accessのバージョンの組み合わせ可否

HiRDB
HiRDB Version 6
HiRDB Version 7
HiRDB Version 8

06-01 以前
06-02以降
07-00以降
08-00

HiRDB External Data Access
Version 6
×
○
×
×

Version 7
×
×
○
×

Version 8
×
×
×
○

HiRDB External Data Access Adapter
(ORACLE用）
Version 6
×
○
×
×

Version 7
×
×
○
×

Version 8
×
×
×
○

HiRDB External Data Access Adapter
(DB2用)
Version 6
×
○
×
×

Version 7
×
×
○
×

Version 8
×
×
×
○

（凡例）

○：使用できます。

×：使用できません。

(2)　HiRDB External Data Accessの変更手順

HiRDB External Data Accessを変更する手順を次に示します。

HiRDBのバージョンアップ
バージョンアップについては，マニュアル「HiRDB Version 8 システム導入・設計ガイド」を参照してください。

HiRDBの停止
HiRDBのバージョンアップ後に，HiRDBを正常停止(pdstop)します。

旧バージョンHiRDB External Data Access Adapterのアンセットアップ
全ユニットで旧バージョンのHiRDB External Data Access Adapterをアンセットアップ(pddbadset -d)を行います。コマンドの詳細については，マニュアル「HiRDB Version 8 コマンドリファレンス」を参照してください。

新バージョンHiRDB External Data Accessのインストール※

新バージョンのHiRDB External Data Access Adapterのインストール※

新バージョンのHiRDB External Data Access Adapterのセットアップ※
旧バージョンのHiRDB External Data Access Adapterでアクセスしていた外部サーバに変更がない場合には，変更後も同様に外部サーバへのアクセスは可能です。外部サーバ，ユーザマッピング，外部表，外部インデクスの再定義は不要です。

注※　HiRDB External Data Accessに関するインストールとセットアップについては，「3.1.3 環境設定の手順」を参照してください。

4.　SQLによる外部表へのアクセス

HiRDB External Data Access固有の動作をするSQLや他DBMSのデータ型との関係など，外部表にアクセスする際に必要な情報について説明します。

＜この章の構成＞

4.1　HiRDB External Data Access固有のSQL

4.2　デ－タ型の対応関係

4.3　外部表を利用する場合の制限

4.4　UAP開発時の注意事項

4.1　HiRDB External Data Access固有のSQL

HiRDB External Data Accessがインストールされたシステムでは，外部サーバや外部表に対してSQLを使用できます。この節では，HiRDB External Data Access固有のSQLの紹介およびそれらを使用する上での注意事項について説明します。

＜この節の構成＞

(1)　HiRDB External Data Access固有のSQL一覧

(2)　 SQLを使用する上での注意事項

(1)　HiRDB External Data Access固有のSQL一覧

HiRDB External Data Access固有のSQLの一覧を次の表に示します。構文などSQLに関する詳細については，マニュアル「HiRDB Version 8 SQLリファレンス」を参照してください。

表4-1　HiRDB External Data Access固有のSQL一覧

種類 | 機能
CREATE FOREIGN INDEX（外部インデクス定義） | 外部インデクスを定義します。
CREATE FOREIGN TABLE（外部表定義） | 外部表を定義します。
CREATE SERVER（外部サーバ登録） | 外部のDBMSを外部サーバとして定義します。
CREATE USER MAPPING（ユ－ザマッピング定義） | ユ－ザマッピングを定義します。
DROP FOREIGN INDEX（外部インデクス削除） | 外部インデクスの定義を削除します。
DROP FOREIGN TABLE（外部表削除） | 外部表の定義を削除します。
DROP USER MAPPING（ユ－ザマッピング削除） | ユ－ザマッピングの定義を削除します。
DROP SERVER（外部サーバ削除） | 外部サーバの定義を削除します。
GRANT（アクセス権限定義）※ | 外部表に対してアクセス権限を付与します。
REVOKE（アクセス権限削除）※ | 外部表に対して与えたアクセス権限を取り消します。

注※

HiRDB External Data Access固有のSQLではなく，HiRDB External Data Access固有の動作をするSQLです。

(2)　 SQLを使用する上での注意事項

SQLを使用する上での注意事項について説明します。

外部サーバの定義

外部サーバを定義する場合，接続している外部サーバが別の外部サーバに接続するような構成にしないでください。分散デッドロックやネットワークに負荷が掛かる原因になります。

外部表の定義

外部表を定義する場合は，外部表として定義する表が実際にどの外部サーバに存在するか確認してから定義してください。例えば，外部サーバAの外部表T1を，外部表T1を基に作成した外部サーバBの外部表T2から作成すると，外部サーバが互いにアクセスし続け接続数不足や資源不足が発生する可能性があります。

外部表に付与するアクセス権限

外部表に対するアクセス権限の付与機能を使用して，外部表に対応する外部サーバ上の表にアクセス権を付与することはできません。そのような表へのアクセスは，外部サーバでアクセス権違反エラーになります。外部サーバの表で持っていない権限を，外部表で付与しないようにしてください。

4.2　デ－タ型の対応関係

この節では，外部サーバ上のデータ型をHiRDBの既定義型にマッピングする場合に使用できるデータ型および推奨データ型について説明します。

＜この節の構成＞

4.2.1　 HiRDBのデータ型との対応関係

4.2.2　 XDM/RD E2のデータ型との対応関係

4.2.3　 ORACLEのデータ型との対応関係

4.2.4　 DB2のデータ型との対応関係

4.2.1　 HiRDBのデータ型との対応関係

外部サーバがHiRDBの場合，マッピング時のデータ型の対応関係を，表4-2および表4-3に示します。

表4-2　データ型の対応関係（外部サーバがHiRDBの場合）（1/2）

HiRDBのデータ型
（外部のDB）

HiRDBのデータ型

SMALLINT
INTEGER
DECIMAL(m,n)
1≦m≦29，0≦n≦m
SMALLFLTまたはREAL※１
FLOATまたはDOUBLE PRECISION※１
CHAR(n)
1≦n≦255
VARCHAR(n)
1≦n≦255
MCHAR(n)
1≦n≦255
MVARCHAR(n)
1≦n≦255

SMALLINT
◎

INTEGER

◎

DECIMAL(p,s)
1≦p≦29
0≦s≦p

◎※２※３

SMALLFLTまたは
REAL

◎

FLOATまたは
DOUBLE
PRECISION

◎

CHAR(n)
1≦n≦255

◎※４

CHAR(n)
256≦n≦30,000

VARCHAR(n)
1≦n≦255

◎※４

VARCHAR(n)
256≦n≦32,000

MCHAR(n)
1≦n≦255

◎※４

MCHAR(n)
256≦n≦30,000

MVARCHAR(n)
1≦n≦255

◎※４

MVARCHAR(n)
256≦n≦32,000

NCHAR(n)
1≦n≦127

NCHAR(n)
128≦n≦15,000

NVARCHAR(n）
1≦n≦127

VARCHAR(n)
128≦n≦16,000

DATE

TIME

TIMESTAMP(p)
p=0,2,4,または6

INTERVAL
YEAR TO DAY

INTERVAL
HOUR TO
SECOND

BLOB

BINARY(n)
1≦n≦255

BINARY(n)
256≦n≦32,000

BINARY(n)
32,001≦n≦
2,147,483,647

（凡例）

◎：推奨するデータ型です。

空白：マッピングできないデータ型です。

注

外部サーバ上の256バイト以上の列に対して，255バイトの文字列型を定義した場合，255バイトまでのデータしか取得できません。

注※１

表現できる値の精度が落ちる場合があります。HiRDBでの値の範囲および精度は，ハードウェアに依存します。

注※２

整数部のけた数がHiRDBのデータ型より小さい場合，エラーとなります。

小数部のけた数がHiRDBのデータ型より小さい場合，HiRDBのデータ型の小数部のけた数に合わせて，残りの小数部を切り捨てて取得します。

それ以外の場合，整数部または小数部のけた数がHiRDBのデータ型より大きいときは，HiRDBのデータ型のけた数に合わせて拡張した部分に，0を補って取得します。

注※３

pおよびsを省略して定義している場合，外部サーバによって省略時の精度，および位取りの仮定値が異なるので，それに従って，外部サーバでの精度(p)，および位取り(s)をそれぞれ外部表定義での精度(m)，および位取り(n)と一致させてください。省略時以外はDECIMAL(m,n)をDECIMAL(p,s)としてください。

注※４

外部サーバとHiRDBのデータ型の定義長を同じにしてください。

HiRDBのデータ型の定義長（長さnバイト：n≦255）が，外部サーバのデータ型の実長より短い場合，先頭のnバイトだけを取得します。

また，長い場合，HiRDBが固定長のデータ型のときは左詰めに挿入され，余りの部分に空白（各国文字列の場合は全角空白，文字列または混在文字列の場合は半角空白）を設定して取得します。

HiRDBが可変長のデータ型の場合，そのまま取得します。

表4-3　データ型の対応関係（外部サーバがHiRDBの場合）（2/2）

HiRDBのデータ型
（外部のDB）

HiRDBのデータ型

NCHAR(n)
1≦n≦127
NVARCHAR(n）
1≦n≦127
DATE
TIME
TIMESTAMP(p)
p=0,2,4,または6
INTERVAL YEAR TO DAY
INTERVAL HOUR TO SECOND
BINARY(n)
1≦n≦255

SMALLINT

INTEGER

DECIMAL(p,s)
1≦p≦29
0≦s≦p

SMALLFLTまたは
REAL

FLOATまたは
DOUBLE
PRECISION

CHAR(n)
1≦n≦255

CHAR(n)
256≦n≦30,000

VARCHAR(n)
1≦n≦255

VARCHAR(n)
256≦n≦32,000

MCHAR(n)
1≦n≦255

MCHAR(n)
256≦n≦30,000

MVARCHAR(n)
1≦n≦255

MVARCHAR(n)
256≦n≦32,000

NCHAR(n)
1≦n≦127
◎※１

NCHAR(n)
128≦n≦15,000

NVARCHAR(n）
1≦n≦127

◎※１

NVARCHAR(n)
128≦n≦16,000

DATE

◎

TIME

◎

TIMESTAMP(p)
p=0,2,4,または6

◎※２

INTERVAL
YEAR TO DAY

◎

INTERVAL
HOUR TO
SECOND

◎

BLOB

BINARY(n)
1≦n≦255

◎※１

BINARY(n)
256≦n≦32,000

BINARY(n)
32,001≦n≦
2,147,483,647

（凡例）

◎：推奨するデータ型です。

空白：マッピングできないデータ型です。

注

外部サーバ上の256バイト以上の列に対して，255バイトの文字列型を定義した場合，255バイトまでのデータしか取得できません。

注※１

外部サーバとHiRDBのデータ型の定義長を同じにしてください。

HiRDBのデータ型の定義長（長さnバイト：n≦255）が，外部サーバのデータ型の実長より短い場合，先頭のnバイトだけを取得します。

また，長い場合，HiRDBが固定長のデータ型のときは左詰めに挿入され，余りの部分に空白（各国文字列の場合は全角空白，文字列または混在文字列の場合は半角空白）を設定して取得します。

HiRDBが可変長のデータ型の場合，そのまま取得します。

注※２

外部サーバとHiRDBのデータ型の小数秒精度を同じにしてください。

HiRDBのデータ型の小数秒精度の方が低い場合，HiRDBのデータ型の精度に合わせて残りの小数秒部分を切り捨てて取得します。

また，高い場合，HiRDBのデータ型の精度に合わせて拡張した小数秒部分に，0を補って取得します。

4.2.2　 XDM/RD E2のデータ型との対応関係

外部サーバがXDM/RD E2の場合，マッピング時のデータ型の対応関係を，表4-4および表4-5に示します。

表4-4　データ型の対応関係（外部サーバがXDM/RD E2の場合）（1/2）

XDM/RD E2のデータ型
（外部のDB）

HiRDBのデータ型

SMALLINT
INTEGER
DECIMAL(m,n)
1≦m≦29，0≦n≦m
SMALLFLTまたはREAL※４
FLOATまたはDOUBLE PRECISION※４
CHAR(n)
1≦n≦255
VARCHAR(n)
1≦n≦255
MCHAR(n)
1≦n≦255
MVARCHAR(n)
1≦n≦255

SMALLINT
◎

INTEGER

◎

DECIMAL(p,s)
1≦p≦15，
0≦s≦15

◎※１
※５※６

LARGE
DECIMAL(p,s)
または
NUMERIC(p,s)
1≦p≦29，
0≦s≦p

◎※１※６

SMALLFLT
またはREAL

◎

FLOATまたは
DOUBLE
PRECISION

◎

CHAR(n)
1≦n≦255

◎※７

CHAR(n)
256≦n

VARCHAR(n)
1≦n≦255

◎※７

VARCHAR(n)
256≦n

LONG
VARCHAR(n)
1≦n≦255

◎※２※７

LONG
VARCHAR(n)
256≦n

MCHAR(n)
1≦n≦255

◎※７

MCHAR(n)
256≦n

MVARCHAR(n)
1≦n≦255

◎※７

MVARCHAR(n)
256≦n

LONG
MVARCHAR(n)
1≦n≦255

◎※２※７

LONG
MVARCHAR(n)
256≦n

NCHAR(n)
1≦n≦127

NCHAR(n)
128≦n

NVARCHAR(n）
1≦n≦127

NVARCHAR(n)
128≦n

LONG
NVARCHAR(n)
1≦n≦127

LONG
NVARCHAR(n)
128≦n

DATE

TIME

TIME(p)
p=0,2,4,または6

TIMESTAMP

◎
※３※７

TIMESTAMP(p)
p=0,2,4,または6

◎
※３※７

INTERVAL
YEAR TO DAY

INTERVAL
HOUR TO
SECOND

INTERVAL
HOUR TO
SECOND(p)
p=0,2,4,または6

BLOB

（凡例）

◎：推奨するデータ型です。

空白：マッピングできないデータ型です。

注１

外部サーバ上の256バイト以上の列に対して，255バイトの文字列型を定義した場合，255バイトまでのデータしか取得できません。

注２

XDM/RD E2の列の文字コードがEBCDIKまたはKEISの場合，2バイト文字を含む文字列のコード変換後のデータが，255バイトを超えるとエラーになります。

注※１

pおよびsを省略して定義している場合，外部サーバによって省略時の精度，および位取りの仮定値が異なるので，それに従って，外部サーバでの精度(p)，および位取り(s)をそれぞれ外部表定義での精度(m)，および位取り(n)と一致させてください。省略時以外はDECIMAL(m,n)をDECIMAL(p,s)としてください。

注※２

探索条件にLONG VARCHAR型，またはLONG MVARCHAR型の列を指定した場合，外部サーバでエラーとなることがあります。LONG VARCHAR型，およびLONG MVARCHAR型については，マニュアル「VOS3 データマネジメントシステム XDM E2系 XDM/RD E2 SQLリファレンス」を参照してください。

注※３

CHAR(n)（n=19，22，24，または26）にマップしてください。HiRDBでは，日時の文字列の形式は，n=19の場合は'YYYY-MM-DD hh:mm:ss'に，n=22，24，または26の場合は'YYYY-MM-DD hh:mm:ss.xxxxxx'（xはn=22の場合は2けた，24の場合は4けた，26の場合は6けた）になります。また，該当列に対して比較，演算をした場合，外部のDBでエラーとなったり，意図した結果が得られないことがあります。

注※４

表現できる値の精度が落ちる場合があります。HiRDBでの値の範囲および精度は，ハードウェアに依存します。

注※５

演算の結果，精度が15けたを超える場合はエラーとなります。

注※６

整数部のけた数がHiRDBのデータ型より小さい場合，エラーとなります。

小数部のけた数がHiRDBのデータ型より小さい場合，HiRDBのデータ型の小数部のけた数に合わせて残りの小数部を切り捨てて取得します。

それ以外の場合，整数部または小数部のけた数がHiRDBのデータ型より大きいときは，HiRDBのデータ型のけた数に合わせて拡張した部分に，0を補って取得します。

注※７

指定がない場合は，外部サーバとHiRDBのデータ型の定義長を同じにしてください。

HiRDBのデータ型の定義長（長さnバイト：n≦255）が外部サーバのデータ型の実長よりも短い場合，先頭のnバイトだけを取得します。

また，長い場合，HiRDBが固定長のデータ型のときは左詰めに挿入され，余りの部分に空白（各国文字列の場合は全角空白，文字列または混在文字列の場合は半角空白）を設定して取得します。

HiRDBが可変長のデータ型の場合，そのまま取得します。

表4-5　データ型の対応関係（外部サーバがXDM/RD E2の場合）（2/2）

XDM/RD E2のデータ型
（外部のDB）

HiRDBのデータ型

NCHAR(n)
1≦n≦127
NVARCHAR(n）
1≦n≦127
DATE
TIME
TIMESTAMP(p)
p=0,2,4,または6
INTERVAL YEAR TO DAY
INTERVAL HOUR TO SECOND
BINARY(n)
1≦n≦255

SMALLINT

INTEGER

DECIMAL(p,s)
1≦p≦15，
0≦s≦15

LARGE
DECIMAL(p,s)
または
NUMERIC(p,s)
1≦p≦29，
0≦s≦p

SMALLFLTまたは
REAL

FLOATまたは
DOUBLE
PRECISION

CHAR(n)
1≦n≦255

CHAR(n)
256≦n

VARCHAR(n)
1≦n≦255

VARCHAR(n)
256≦n

LONG
VARCHAR(n)
1≦n≦255

LONG
VARCHAR(n)
256≦n

MCHAR(n)
1≦n≦255

MCHAR(n)
256≦n

MVARCHAR(n)
1≦n≦255

MVARCHAR(n)
256≦n

LONG
MVARCHAR(n)
1≦n≦255

LONG
MVARCHAR(n)
256≦n

NCHAR(n)
1≦n≦127
◎※４

NCHAR(n)
128≦n

NVARCHAR(n）
1≦n≦127

◎※４

NVARCHAR(n)
128≦n

LONG
NVARCHAR(n)
1≦n≦127

◎※１※４

LONG
NVARCHAR(n)
128≦n

DATE

◎

TIME

◎

TIME(p)
p=0,2,4,または6

◎※２

TIMESTAMP

TIMESTAMP(p)
p=0,2,4,または6

INTERVAL
YEAR TO DAY

◎

INTERVAL
HOUR TO
SECOND

◎

INTERVAL
HOUR TO
SECOND(p)
p=0,2,4,または6

◎※３

BLOB

（凡例）

◎：推奨するデータ型です。

空白：マッピングできないデータ型です。

注１

外部サーバ上の256バイト以上の列に対して，255バイトの文字列型を定義した場合，255バイトまでのデータしか取得できません。

注２

XDM/RD E2の列の文字コードがEBCDIKまたはKEISの場合，2バイト文字を含む文字列のコード変換後のデータが，255バイトを超えるとエラーになります。

注※１

探索条件にLONG NVARCHAR型の列を指定した場合，外部サーバでエラーとなることがあります。LONG NVARCHAR型については，マニュアル「VOS3 データマネジメントシステム XDM E2系 XDM/RD E2 SQLリファレンス」を参照してください。

注※２

TIME型には，XDM/RD E2の精度pが0の場合だけマッピングできます。

注※３

INTERVAL HOUR TO SECOND型には，XDM/RD E2の精度pが0の場合だけマッピングできます。

注※４

指定がない場合は，外部サーバとHiRDBのデータ型の定義長を同じにしてください。

HiRDBのデータ型の定義長（長さnバイト：n≦255）が外部サーバのデータ型の実長よりも短い場合，先頭のnバイトだけを取得します。

また，長い場合，HiRDBが固定長のデータ型のときは左詰めに挿入され，余りの部分に空白（各国文字列の場合は全角空白，文字列または混在文字列の場合は半角空白）を設定して取得します。

HiRDBが可変長のデータ型の場合，そのまま取得します。

4.2.3　 ORACLEのデータ型との対応関係

外部サーバがORACLEの場合，マッピング時のデータ型の対応関係を，表4-6，表4-7および表4-8に示します。

表4-6　データ型の対応関係（外部サーバがORACLEの場合）（1/3）

ORACLEのデータ型
（外部のDB）

HiRDBのデータ型

SMALLINT
INTEGER
DECIMAL(m,n)
1≦m≦29，0≦n≦m
SMALLFLTまたはREAL※１
FLOATまたはDOUBLE PRECISION※１

NUMBER(p,s)
p：精度
s：位取り
s=0または省略
p=*または省略※9
○※２
◎※３
○※６※７
○
○

s=0，省略，または-28≦s≦-1
1≦p-s≦4
◎※４
○※４
○※６※７
○
○

5≦p-s≦9

◎※５
○※６※７
○
○

10≦p-s≦29

◎※６※７
○
○

30≦p-s≦38

○
○

1≦s≦29
1≦p≦29

◎※７※８
○
○

p≧30

○
○

s≧30またはs≦-29

○
○

CHAR(n)
1≦n≦255

256≦n≦2,000

VARCHAR2(n)
1≦n≦255

256≦n≦4,000

NCHAR(n)(2バイト固定幅の各国文字セットの場合)
1≦n≦127

128≦n≦1,000

NCHAR(n)(可変幅の各国文字セットの場合)
1≦n≦255

256≦n≦2,000

NVARCHAR2(n)(2バイト固定幅の各国文字セットの場合)
1≦n≦127

128≦n≦2,000

NVARCHAR2(n)(可変幅の各国文字セットの場合)
1≦n≦255

256≦n≦4,000

LONG(n)
1≦n≦255

256≦n≦32,000

32,001≦n≦2,000,000,000

DATE

RAW(n)
1≦n≦255

256≦n≦2,000

LONG
RAW(n)
1≦n≦255

256≦n≦32,000

32,001≦n≦
2,000,000,000

ROWID

MLSLABEL

CLOB(n)
1≦n≦
1,999,999,999

2,000,000,000≦n
≦4,000,000,000

NCLOB(n)
1≦n≦
1,999,999,999

2,000,000,000≦n
≦4,000,000,000

BLOB(n)
1≦n≦
1,999,999,999

2,000,000,000≦n
≦4,000,000,000

（凡例）

◎：推奨するデータ型です。

○：マッピングできるデータ型です。

空白：マッピングできないデータ型です。

注※1

表現できる値の精度が落ちる場合があります。HiRDBでの値の範囲および精度は，ハードウェアに依存します。

注※2

-32,768～32,767の範囲に限ります。

注※3

-2,147,483,648～2,147,483,647の範囲に限ります。

注※4

-9,999～9,999の範囲に限ります。

注※5

-999,999,999～999,999,999の範囲に限ります。

注※６

s<0の場合，DECIMAL(m,n)をDECIMAL(p-s,0)としてください。また，この場合，下(-s)けたは0となります。s=0の場合，または省略した場合，DECIMAL(m,n)をDECIMAL(p,0)としてください。

例：NUMBER(4,-3)=nnnn000.の場合，HiRDBではDECIMAL(7,0)となります。

注※７

整数部のけた数がHiRDBのデータ型より小さい場合，外部サーバから行を取得できません。

小数部のけた数がHiRDBのデータ型より小さい場合，HiRDBのデータ型の小数部のけた数に合わせて残りの小数部を切り捨てて取得します。

それ以外の場合，整数部または小数部のけた数がHiRDBのデータ型より大きいときは，HiRDBのデータ型のけた数に合わせて拡張した部分に，0を補って取得します。

注※８

p<sの場合，DECIMAL(m,n)をDECIMAL(s,s)としてください。また，この場合，小数点以下(s-p)けたは0となります。p≧sの場合，DECIMAL(m,n)をDECIMAL(p,s)としてください。

例：NUMBER(4,5)=0.01234の場合，HiRDBではDECIMAL(5,5)となります。

注※９

用途に応じて，マッピングするHiRDBのデータ型を決定してください。DECIMAL型とマッピングする場合は，外部サーバで使用しているデータの精度(p)，および位取り(s)に従って，外部表定義の精度(m)および位取り(n)の値を指定してください。

表4-7　データ型の対応関係（外部サーバがORACLEの場合）（2/3）

ORACLEのデータ型
（外部のDB）

HiRDBのデータ型

CHAR(n)
1≦n≦255
VARCHAR(n)
1≦n≦255
MCHAR(n)
1≦n≦255
MVARCHAR(n)
1≦n≦255
NCHAR(n)
1≦n≦127
NVARCHAR(n）
1≦n≦127

NUMBER(p,s)
p：精度
s：位取り
s=0または省略
p=*または省略

s=0，省略，または-28≦s≦-1
1≦p-s≦4

5≦p-s≦9

10≦p-s≦29

30≦p-s≦38

1≦s≦29
1≦p≦29

p≧30

s≧30またはs≦-29

CHAR(n)
1≦n≦255
◎※１※６

◎※２※６

256≦n≦2,000

VARCHAR2(n)
1≦n≦255

◎※１※６

◎※２※６

256≦n≦4,000

NCHAR(n)(2バイト固定幅の各国文字セットの場合)
1≦n≦127

◎※６

128≦n≦1,000

NCHAR(n)(可変幅の各国文字セットの場合)
1≦n≦255

◎※３※６

256≦n≦2,000

NVARCHAR2(n)(2バイト固定幅の各国文字セットの場合)
1≦n≦127

◎※６

128≦n≦2,000

NVARCHAR2(n)(可変幅の各国文字セットの場合)
1≦n≦255

◎※６

256≦n≦4,000

LONG(n)
1≦n≦255

◎※１※５※６

◎※２※５※６

256≦n≦32,000

32,001≦n≦
2,000,000,000

DATE
△※４※６

RAW(n)
1≦n≦255

256≦n≦2,000

LONG
RAW(n)
1≦n≦255

256≦n≦32,000

32,001≦n≦
2,000,000,000

ROWID

MLSLABEL

CLOB(n)
1≦n≦
1,999,999,999

2,000,000,000≦n
≦4,000,000,000

NCLOB(n)
1≦n≦
1,999,999,999

2,000,000,000≦n
≦4,000,000,000

BLOB(n)
1≦n≦
1,999,999,999

2,000,000,000≦n
≦4,000,000,000

（凡例）

◎：推奨するデータ型です。

○：マッピングできるデータ型です。

△：外部サーバ情報定義のpd_hb_use_describeオペランドにYを指定した場合，マッピングできるデータ型となります。

空白：マッピングできないデータ型です。

注

外部サーバ上の256バイト以上の列に対して，255バイトの文字列型を定義した場合，255バイトまでのデータしか取得できません。

注※1

データに全角文字を含まない場合，推奨データ型となります。

注※2

データに全角文字を含む場合，推奨データ型となります。

注※3

外部表上の列の定義データ長は，n÷2としてください。

注※４

CHAR(19)にマッピングしてください。日付，日時の文字列の形式は，'YYYY-MM-DD-hh:mm:ss'になります。該当する列に比較や演算をした場合，外部のDBでエラーとなることがあります。

注※５

該当する列を次の個所に指定すると，外部のDBでエラーとなることがあります。

GROUP BY句

ORDER BY句

DISTINCT演算子

関数

式

条件

注※６

指定がない場合は，外部サーバとHiRDBのデータ型の定義長を同じにしてください。

HiRDBのデータ型の定義長（長さnバイト：n≦255）が外部サーバのデータ型の実長よりも短い場合，先頭のnバイトだけを取得します。

また，長い場合，HiRDBが固定長のデータ型のときは左詰めに挿入され，余りの部分に空白（各国文字列の場合は全角空白，文字列または混在文字列の場合は半角空白）を設定して取得します。

HiRDBが可変長のデータ型の場合，そのまま取得します。

表4-8　データ型の対応関係（外部サーバがORACLEの場合）（3/3）

ORACLEのデータ型
（外部のDB）

HiRDBのデータ型

DATE
TIME
TIMESTAMP(p)
p=0,2,4,または6
INTERVAL YEAR TO DAY
INTERVAL HOUR TO SECOND
BINARY(n)
1≦n≦255

NUMBER(p,s)
p：精度
s：位取り
s=0または省略
p=*または省略

s=0，省略，または-28≦s≦-1
1≦p-s≦4

5≦p-s≦9

10≦p-s≦29

30≦p-s≦38

1≦s≦29
1≦p≦29

p≧30

s≧30またはs≦-29

CHAR(n)
1≦n≦255

256≦n≦2,000

VARCHAR2(n)
1≦n≦255

256≦n≦4,000

NCHAR(n)(2バイト固定幅の各国文字セットの場合)
1≦n≦127

128≦n≦1,000

NCHAR(n)(可変幅の各国文字セットの場合)
1≦n≦255

256≦n≦2,000

NVARCHAR2(n)(2バイト固定幅の各国文字セットの場合)
1≦n≦127

128≦n≦2,000

NVARCHAR2(n)(可変幅の各国文字セットの場合)
1≦n≦255

256≦n≦4,000

LONG(n)
1≦n≦255

256≦n≦32,000

32,001≦n≦
2,000,000,000

DATE
◎※１

◎※２

RAW(n)
1≦n≦255

256≦n≦2,000

LONG RAW(n)
1≦n≦255

◎※３※４

256≦n≦32,000

32,001≦n≦
2,000,000,000

ROWID

MLSLABEL

CLOB(n)
1≦n≦
1,999,999,999

2,000,000,000≦n
≦4,000,000,000

NCLOB(n)
1≦n≦
1,999,999,999

2,000,000,000≦n
≦4,000,000,000

BLOB(n)
1≦n≦
1,999,999,999

2,000,000,000≦n
≦4,000,000,000

（凡例）

◎：推奨するデータ型です。

空白：マッピングできないデータ型です。

注※１

時分秒は切り捨てられます。

注※２

TIMESTAMP型にマッピングする場合は，精度pに0を指定するか，または省略してください。

注※３

BINARY型にマッピングする場合は，ORACLEに格納されているデータの中で，最も長いデータの実長（バイト）以上の値を指定してください。

注※４

指定がない場合は，外部サーバとHiRDBのデータ型の定義長を同じにしてください。

HiRDBのデータ型の定義長（長さnバイト：n≦255）が外部サーバのデータ型の実長よりも短い場合，先頭のnバイトだけを取得します。

また，長い場合，HiRDBが固定長のデータ型のときは左詰めに挿入され，余りの部分に空白（各国文字列の場合は全角空白，文字列または混在文字列の場合は半角空白）を設定して取得します。

HiRDBが可変長のデータ型の場合，そのまま取得します。

4.2.4　 DB2のデータ型との対応関係

外部サーバがDB2の場合，マッピング時のデータ型の対応関係を，表4-9および表4-10に示します。

表4-9　データ型の対応関係（外部サーバがDB2の場合）（1/2）

DB2のデータ型
（外部のDB）

HiRDBのデータ型

SMALLINT
INTEGER
DECIMAL(m,n)
1≦m≦29，0≦n≦m
SMALLFLTまたはREAL※１
FLOATまたはDOUBLE PRECISION※１
CHAR(n)
1≦n≦255
VARCHAR(n)
1≦n≦255
MCHAR(n)
1≦n≦255
MVARCHAR(n)
1≦n≦255

SMALLINT
◎
○※２
○※３※１１
○
○

INTEGER
○※２
◎
○※４※１１
○
○

DECIMAL(p,s)
p：精度
s：位取り
1≦p≦29
○※５
○※６
◎※１１※１２
○
○

30≦p≦31

○※７※１１
○
○

REALまたは
FLOAT(n)※１
1≦n≦21
○
○
○※１１
◎
○

DOUBLEまたは
FLOAT(n)※１
22≦n≦53
○
○
○※１１
◎
○

CHAR(n)
1≦n≦255

◎※８※１３

◎※１０※１３

CHAR(n)
256≦n

VARCHAR(n)
1≦n≦255

◎※８※１３

◎※１０※１３

VARCHAR(n)
256≦n≦32,000

VARCHAR(n)
32,001≦n

GRAPHIC(n)
1≦n≦127

GRAPHIC(n)
128≦n

VARGRAPHIC(n)
1≦n≦127

VARGRAPHIC(n)
128≦n≦16,000

VARGRAPHIC(n)
16,001≦n

DATE

TIME

TIMESTAMP

△※９※１３

BLOB

CLOB

DBLOB

ROWID

（凡例）

◎：推奨するデータ型です。

○：マッピングできるデータ型です。

△：DESCRIBE文を実行する場合，マッピングできるデータ型となります。

空白：マッピングできないデータ型です。

注１

外部サーバ上の256バイト以上の列に対して，255バイトの文字列型を定義した場合，255バイトまでのデータしか取得できません。

注２

2バイト文字を含む文字列のコード変換後のバイト数が，DB2で扱える最大バイト数を超えた場合はDB2でエラーとなります。

注※1

表現できる値の精度が落ちる場合があります。HiRDBでの値の範囲および精度は，ハードウェアに依存します。

注※2

-32,768～32,767の範囲に限ります。

注※3

DECIMAL(5)としてください。-32,768～32,767の範囲に限ります。

注※4

DECIMAL(10)としてください。-2,147,483,648～2,147,483,647の範囲に限ります。

注※5

1≦p≦4，s=0の場合に使用できます。

注※6

1≦p≦9，s=0の場合に使用できます。

注※7

p-s≦29の場合，DECIMAL(p-s,0)にマッピングできます。ただし，小数点以下は切り捨てられます。

注※8

データに全角文字を含まない場合，推奨するデータ型となります。

注※9

CHAR(n)（nは19，または21～26）にマッピングしてください。日付，日時の文字列の形式は，nが19の場合は'YYYY-MM-DD hh:mm:ss'，nが21～26の場合は'YYYY-MM-DD hh:mm:ss.xxx'（xは21のときは1けた，26のときは6けた）となります。また，該当する列に対して比較や演算をした場合，外部のDBでエラーとなったり，意図した結果にならなかったりすることがあります。

注※１０

データに全角文字を含む場合，推奨するデータ型となります。

注※１１

整数部のけた数がHiRDBのデータ型より小さい場合，エラーとなります。

小数部のけた数がHiRDBのデータ型より小さい場合，HiRDBのデータ型の小数部のけた数に合わせて残りの小数部を切り捨てて取得します。

それ以外の場合，整数部または小数部のけた数がHiRDBのデータ型より大きいときは，HiRDBのデータ型のけた数に合わせて拡張した部分に，0を補って取得します。

注※１２

pおよびsを省略して定義している場合，外部サーバによって省略時の精度および位取りの仮定値が異なります。そのため，外部サーバでの精度（p）および位取り（s）を，それぞれ外部表定義での精度（m）および位取り（n）と一致させる必要があります。

省略時以外は，DECIMAL(m,n)をDECIMAL(p,s)としてください。

注※１３

指定がない場合は，外部サーバとHiRDBのデータ型の定義長を同じにしてください。

HiRDBのデータ型の定義長（長さnバイト：n≦255）が外部サーバのデータ型の実長よりも短い場合，先頭のnバイトだけを取得します。

また，長い場合，HiRDBが固定長のデータ型のときは左詰めに挿入され，余りの部分に空白（各国文字列の場合は全角空白，文字列または混在文字列の場合は半角空白）を設定して取得します。

HiRDBが可変長のデータ型の場合，そのまま取得します。

表4-10　データ型の対応関係（外部サーバがDB2の場合）（2/2）

DB2のデータ型
（外部のDB）

HiRDBのデータ型

NCHAR(n)
1≦n≦127
NVARCHAR(n）
1≦n≦127
DATE
TIME
TIMESTAMP(p)
p=0,2,4,または6
INTERVAL YEAR TO DAY
INTERVAL HOUR TO SECOND
BINARY(n)
1≦n≦255

SMALLINT

INTEGER

DECIMAL(p,s)
p：精度
s：位取り
1≦p≦29

30≦p≦31

REALまたは
FLOAT(n)※１
1≦n≦21

DOUBLEまたは
FLOAT(n)※１
22≦n≦53

CHAR(n)
1≦n≦255

CHAR(n)
256≦n

VARCHAR(n)
1≦n≦255

VARCHAR(n)
256≦n≦32,000

VARCHAR(n)
32,001≦n

GRAPHIC(n)
1≦n≦127
◎※３※５

GRAPHIC(n)
128≦n

VARGRAPHIC(n)
1≦n≦127

◎※３※５

VARGRAPHIC(n)
128≦n≦16,000

VARGRAPHIC(n)
16,001≦n

DATE

◎

TIME

◎※２

TIMESTAMP

◎※１※４

BLOB

CLOB

DBLOB

ROWID

（凡例）

◎：推奨するデータ型です。

空白：マッピングできないデータ型です。

注１

外部サーバ上の256バイト以上の列に対して，255バイトの文字列型を定義した場合，255バイトまでのデータしか取得できません。

注２

2バイト文字を含む文字列のコード変換後のバイト数が，DB2で扱える最大バイト数を超えた場合はDB2でエラーとなります。

注※１

TIMESTAMP型にマッピングする場合は，精度pに6を指定してください。

注※２

24時は0時となります。

注※３

GRAPHIC型は127文字（254バイト）まで定義できますが，GRAPHIC型定数は124文字（248バイト）までしか指定できません。125文字以上（249バイト以上）指定する場合は，連結演算を使用してください。

注※４

24時は，翌日の0時となります。ただし，'9999-12-31-24.00.00.000000'の場合はエラーとなります。

注※５

指定がない場合は，外部サーバとHiRDBのデータ型の定義長を同じにしてください。

HiRDBのデータ型の定義長（長さnバイト：n≦255）が外部サーバのデータ型の実長よりも短い場合，先頭のnバイトだけを取得します。

また，長い場合，HiRDBが固定長のデータ型のときは左詰めに挿入され，余りの部分に空白（各国文字列の場合は全角空白，文字列または混在文字列の場合は半角空白）を設定して取得します。

HiRDBが可変長のデータ型の場合，そのまま取得します。

4.3　外部表を利用する場合の制限

外部表を利用する場合の制限事項について説明します。

＜この節の構成＞

(1)　トランザクションに関する制限

(2)　データ保証レベルおよび排他オプションに関する制限

(3)　カーソルに関する制限

(4)　外部サーバで実行できない更新系SQL

(5)　行単位の操作に関する制限

(6)　LOCK文に関する制限

(7)　外部サーバでの演算処理に関する制限

(8)　副問合せに関する制限

(9)　名前付きの導出表に関する制限（外部サーバがHiRDBの場合）

(10)　名前付きの導出表に関する制限（外部サーバがXDM/RD E2の場合）

(11)　埋込み変数，および？パラメタに関する制限

(12)　16進文字列定数に関する制限

(13)　外部サーバで実行する検索の検索項目数に関する制限

(14)　相関名に関する制限

(15)　各国文字データ型への変換・代入に関する制限

(1)　トランザクションに関する制限

外部サーバに対するトランザクションは，すべて１相コミットとなります。

次に示す場合，更新後のコミット処理中に障害が発生すると，コミットされるサーバ（外部サーバ）とロールバックされるサーバ（外部サーバ）が混在するおそれがあります。

複数の外部サーバの資源を同時に更新した場合

自HiRDBの資源と外部サーバの資源を同時に更新した場合

このため，外部表を更新する場合は，一つのトランザクション内で一つの外部サーバだけ（自HiRDBも含めません）を更新することを推奨します。

(2)　データ保証レベルおよび排他オプションに関する制限

HiRDBは，クライアント環境定義PDISLLVLで指定したデータ保証レベルを外部サーバへ引き継ぎます。排他オプションを指定してSQL文ごとに指定するデータ保証レベルも外部サーバに引き継がれます。ただし，排他オプションとしてWITH EXCLUSIVE LOCKを指定した場合，トランザクションの終了まで排他を保持します。排他オプションを指定した場合の外部サーバでの排他制御を表4-11に示します。また，WITH ROLLBACKおよびNO WAIT指定の排他オプションを指定した場合の外部サーバでの排他制御を表4-12に示します。

表4-11　排他オプションを指定した場合の外部サーバでの排他制御

排他オプション

外部サーバでの排他制御

HiRDB
XDM/RD E2
ORACLE
DB2

指定なし
HiRDBクライアントの設定に従います※1。
データ保証レベルが0または1の場合は1となります。2の場合，SELECT文実行時にはFOR UPDATEが適用されます※2。
HiRDBクライアントの設定に従います※3。

WITH SHARE
LOCK
WITH SHARE LOCKが適用されます。
SELECT文実行時にFOR UPDATEが適用されます※2。
データ保証レベルが0または1の場合は2に変更されます。

WITH
EXCLUSIVE
LOCK
WITH EXCLUSIVE LOCKが適用されます。
SELECT文実行時にFOR UPDATEが適用されます※4。
データ保証レベルが0または1の場合は2に変更されます※5。

WITHOUT LOCK
〔WAIT〕
WITHOUT LOCKが適用されます。
データ保証レベル1となります（排他オプションは適用されません）。
データ保証レベルが0の場合は1に変更されます。

WITHOUT LOCK
NOWAIT
WITHOUT LOCK NOWAITが適用されます。
データ保証レベル1となります（排他オプションは適用されません）。
データ保証レベルが0以外の場合は0に変更されます。

注※1

クライアント環境定義PDISLLVLに指定した値に対応する排他オプションが，SQL文に適用されます。0の場合はWITHOUT LOCK NOWAIT，1の場合はWITHOUT LOCK WAIT，2の場合はWITH SHARE LOCKがそれぞれ適用されます。省略している場合，SQL文にはWITH SHARE LOCKが適用されます。

注※2

外部サーバ情報定義のpd_hb_get_lockオペランドにYを指定した場合，SELECT文実行時にFOR UPDATE指定が仮定されます。外部サーバ情報定義については，マニュアル「HiRDB Version 8 システム定義」を参照してください。

注※3

クライアント環境定義PDISLLVLに指定した値を引き継ぎます。省略している場合は2が仮定されます。

注※4

ORACLEでは，FOR UPDATEが適用されると，DISTINCT，GROUP BY，集合演算，集合関数などの場合，エラーとなることがあります。DISTINCT，GROUP BY，集合演算，集合関数などを使用する場合，HiRDBでWITH EXCLUSIVE LOCKを指定しないようにできないか検討してください。

注※5

DB2には，該当する機能がありません。WITH EXCLUSIVE LOCKを指定した場合でも，共用モードの排他制御となります。

表4-12　WITH ROLLBACK，NO WAIT指定の排他オプションを指定した場合の外部サーバでの排他制御

排他オプション

外部サーバでの排他制御

HiRDB
XDM/RD E2
ORACLE
DB2

WITH ROLLBACK
WITH ROLLBACKが適用されます。
該当しません。※1※5
該当しません。※2

NO WAIT
NO WAITが適用されます。
該当しません。※3
該当しません。※4
該当しません。※4

注※1

外部サーバ上で排他制御しないため，排他の競合は発生しません。ただし，HiRDBが内部的にFOR UPDATE指定をした場合はNO WAITが適用されます。

注※2

DB2では，RESOURCE TIMEOUTの値が0の場合はWITH ROLLBACKと同じになります。0でない場合は，排他要求がタイムアウトした時点でトランザクションはロールバックされます。

注※3

XDM/RD E2では使用できないため，外部サーバ側でエラーになります。

注※4

排他資源の確保，タイムアウト，またはデッドロックの検知をするまで待ちます。タイムアウト，またはデッドロックの検知をした場合，トランザクションはロールバックされます。

注※5

更新系SQL中にWITH ROLLBACKは指定できません。

(3)　カーソルに関する制限

外部表，または外部表から作成したビュー表に対して，ホールダブルカーソルを使用することはできません。つまり，次の指定ができません。

DECLARE CURSOR文のWITH HOLDおよびUNTIL DISCONNECT

ALLOCATE CURSOR文のWITH HOLD

動的SELECT文のUNTIL DISCONNECT

LOCK文のUNTIL DISCONNECT

(4)　外部サーバで実行できない更新系SQL

行の挿入，更新，または削除対象の表が外部表の場合，複数の外部サーバにわたるINSERT文，UPDATE文，DELETE文は指定できません。実行できるかどうかはHub最適化情報定義とSQL文の内容で決定されます。詳細は，マニュアル「HiRDB Version 8 システム定義」の「Hub最適化情報定義」の「注意事項」を参照してください。

外部サーバで実行しない構文は更新系SQLでは実行できません。

外部サーバがDB2の場合，その外部表を指定した更新系SQLは実行できません。

行を挿入する表が外部表で，かつ問合せ式本体に集合演算を含むINSERT文は実行できません。

WITH ROLLBACKをサポートしていない外部サーバの場合，その外部表に対する更新系SQLにWITH ROLLBACKを指定できません。

(5)　行単位の操作に関する制限

外部表に対して，行単位の操作はできません。

(6)　LOCK文に関する制限

LOCK文で指定した外部表の排他に失敗した場合，LOCK文を実行したトランザクションはロールバックされます。

(7)　外部サーバでの演算処理に関する制限

外部サーバから256バイト以上のデータは取得できません。

外部サーバ上の256バイト以上の列を，外部表の列（長さnバイト，n≦255）として定義した場合，先頭のnバイト分のデータを取得します。このとき，標識変数に外部サーバ上での定義長が設定されます。

(8)　副問合せに関する制限

外部表をアクセスするSQLには，副問合せは指定できません。また，副問合せを含むビュー表は，外部表と混在して指定できません。

(9)　名前付きの導出表に関する制限（外部サーバがHiRDBの場合）

内部導出表となる条件を満たす，外部サーバ上のビュー表を外部表として定義した場合，内部導出表となる条件を満たす問合せ中でその外部表を指定したときは，外部サーバでエラーとなることがあります。

(10)　名前付きの導出表に関する制限（外部サーバがXDM/RD E2の場合）

外部表から導出する名前付き導出表の列名に14文字以上の全角文字を使用していて，かつ名前付き導出表が内部導出表となる場合，外部サーバでエラーとなります。

(11)　埋込み変数，および？パラメタに関する制限

値式中以外に次の文字型の埋込み変数，および?パラメタを指定した場合，埋込み変数，および?パラメタの実長がHub最適化情報定義のpd_hub_opt_data_lenオペランドの指定値を超えても，HiRDBで処理は実行されません。この場合，外部サーバで処理が実行され，エラーとなることがあります。Hub最適化情報定義については，マニュアル「HiRDB Version 8 システム定義」を参照してください。

固定長文字型

可変長文字型

固定長各国文字型

可変長各国文字型

固定長混在文字型

可変長混在文字型

文字データと数データ間のデータ変換を必要とする埋込み変数，および?パラメタを指定した場合，外部サーバによっては意図した結果が得られない，または実行時にエラーとなることがあります。

外部サーバで実行できる?パラメタの数が制限を超えた場合，外部サーバによっては意図した結果が得られない，または実行時にエラーとなることがあります。

(12)　16進文字列定数に関する制限

X'00'を含む場合，外部サーバに16進文字列定数を指定するため，外部サーバによっては実行時にエラーとなるときがあります。

(13)　外部サーバで実行する検索の検索項目数に関する制限

実行できる検索項目数がHiRDBより少ない外部サーバでは，実行時にエラーとなることがあります。

(14)　相関名に関する制限

相関名に次の名称が存在すると，実行時にエラーとなることがあります。
PDHUBxx：
xxは1けた以上で1以上の整数を表す。
　　(例) SELECT C1 FROM FT1 PDHUB1,FT2 ・T1の基表T1
　　　　↓　　　　　　　　　　　　　　　　FT2の基表 T2
　　　　SELECT C1 FROM T1 PDHUB1,T2 PDHUB1

外部表の基表の表識別子と同じ名称の相関名を指定すると，外部サーバによっては実行時にエラーとなることがあります。
　　(例) SELECT C1 FROM FT1 T1 ・T1の基表T1
　　　　↓
　　　　SELECT C1 FROM T1 T1

外部サーバに次の名称の表が存在すると，実行時にエラーとなることがあります。
PDHUBxx：
xxは1けた以上で1以上の整数を表す。
　　(例) SELECT C1 FROM FT1 ・T1の基表PDHUB1
　　　　↓
　　　　SELECT C1 FROM T1 PDHUB1,T2 PDHUB1

(15)　各国文字データ型への変換・代入に関する制限

各国文字データ型への変換・代入を行う文字列定数が存在する場合，値中に1バイト文字を含むとSQL実行時に外部サーバでエラーとなることがあります。該当する場合を次に示します。

データを挿入する列が各国文字データ型であるINSERT文で，挿入値に文字列定数を指定する。

更新対象になる列が各国文字データ型であるUPDATE文で，更新値として文字列定数を指定する。

探索条件に，各国文字データの比較対象として文字列定数を指定する。

4.4　UAP開発時の注意事項

外部サーバに対する排他制御は，SQLの排他オプション指定に基づいてそれぞれの外部サーバで決定されます。UAPで制御しないよう注意してください。

5.　障害対策

HiRDB External Data Accessを使用したときに発生する障害に関する情報について説明します。

＜この章の構成＞

5.1　トラブルシュート情報

5.2　外部サーバエラー情報

5.3　外部サーバインタフェーストレース情報

5.1　トラブルシュート情報

HiRDB External Data Accessを使用したときに発生する固有の障害には，外部サーバで発生する障害とHiRDBで発生して外部サーバに影響を及ぼす障害があります。ここでは，外部サーバで発生する障害と対策，およびHiRDBで障害が発生したときに外部サーバで行う対策について説明します。

＜この節の構成＞

5.1.1　外部サーバで発生する障害

5.1.2　HiRDB障害時に外部サーバで行う対策

5.1.3　HiRDB External Data Accessで使用するトラブルシュート情報

5.1.1　外部サーバで発生する障害

外部サーバで障害が発生したときのHiRDB管理者の処置について，次の表に示します。

表5-1　外部サーバで障害が発生したときのHiRDB管理者の処置

外部サーバの障害
HiRDBの処理
HiRDB管理者の処置

外部サーバの異常終了
HiRDBは，外部サーバの異常終了を通信障害として検知します。そして，外部サーバに対するSQLの実行をエラーにします。また，対象の SQLを発行したトランザクションをロールバックし，UAPにエラーリターンします※。
外部サーバの障害要因を取り除いたあと，外部サーバを再起動，およびUAPを再実行してください。

HiRDBとの通信障害
HiRDBは外部サーバに対するSQLの実行をエラーにします。また，対象のSQLを発行したトランザクションをロールバックし，UAPにエラーリターンします※。
通信障害の要因を取り除いたあと，UAPを再実行してください。

外部サーバの無応答
外部サーバに使用しているDBMSで設定したタイムアウト指定値に従い，各DBMSクライアントが処理を中断し，接続を切断します。そのあと，HiRDBは対象のSQLを発行したトランザクションをロールバックし，UAPにエラーリターンします※。
外部サーバが無応答となった要因を取り除いたあと， UAPを再実行してください。

コミット文実行中の障害
HiRDB，障害が発生した外部サーバ，障害が発生していない外部サーバで次のように処理されます。

HiRDB

直前の同期点の状態に戻ります。

障害が発生した外部サーバ

外部サーバ側での処理結果に依存します。

障害が発生していない外部サーバ

コミット処理を行います。

なお，発生した障害が通信障害の場合，HiRDBはUAPにエラーリターンします。
外部サーバの障害要因を取り除いたあと， UAPを再実行してください。

外部サーバの暗黙的ロールバック
現在のトランザクションをロールバックし，UAPに対してエラーリターンします。
この障害は，外部サーバがHiRDBの場合に発生します。
出力されたHiRDBのエラーメッセージに従って対策を行ってください。

分散デッドロック
分散デッドロックとは，複数の外部サーバにわたって発生したデッドロックです。
HiRDBは外部サーバに対する問い合わせのタイムアウトとしてこれを検知します。そのあと，現在のトランザクションをロールバックし，UAPに対してエラーリターンします。
ただし，分散デッドロックは，単一DBMS内で発生したデッドロックと異なり，タイムアウトの要因が分散デッドロックによるものかどうかを知ることはできません。
タイムアウトの要因を取り除いたあと，UAPを再実行してください。

注※

外部サーバ上のトランザクションは，外部サーバに使用しているDBMSの仕様に従います。詳細は，各DBMSのマニュアルを参照してください。

5.1.2　HiRDB障害時に外部サーバで行う対策

HiRDBで障害が発生したときの外部サーバ管理者の処置について，次の表に示します。

表5-2　HiRDBで障害が発生したときの外部サーバの管理者の処置

HiRDBの障害
外部サーバの処理
外部サーバ管理者の処置

HiRDBの異常終了
UAPの異常終了を検出し，トランザクションをロールバックします。

外部サーバがHiRDBの場合

必要な処置はありません。

外部サーバがHiRDB以外の場合

外部サーバに使用しているDBMSの仕様に従います。各DBMSのマニュアルを参照してください。

電源断，
ハードウェア障害，
通信障害
外部サーバに使用しているDBMSの仕様に従います。各DBMSのマニュアルを参照してください。

外部サーバがHiRDBの場合

外部サーバに処理プロセスが残っている場合は，外部サーバ側でpdcancelコマンドを発行して，その処理プロセスを終了してください。

外部サーバがHiRDB以外の場合

外部サーバに使用しているDBMSの仕様に従います。各DBMSのマニュアルを参照してください。

5.1.3　HiRDB External Data Accessで使用するトラブルシュート情報

HiRDB External Data Accessで使用するトラブルシュート情報を次の表に示します。

表5-3　HiRDB External Data Accessで使用するトラブルシュート情報

トラブルシュート情報
出力情報
参照方法

メッセージログファイル
%PDDIR%¥spool¥pdlog1
%PDDIR%¥spool¥pdlog2
HiRDB External Data Access Adapterが出力するメッセージ
pdcatコマンドを実行します。

OSのシステムログファイル
syslogfile
HiRDB External Data Access Adapterが出力するメッセージ
viなどのテキストエディタを使用します。

rpcモード
プロセスの進行状態
pdls -d rpcコマンドを実行します。

共用メモリダンプファイル
%PDDIR%¥spool¥pdshmdump¥下
HiRDB External Data Access Adapterが共用メモリに保持したデータ※1
－

簡易ダンプファイル
%PDDIR%¥spool¥各サーバ対応のディレクトリ
HiRDB External Data Access Adapterが共有メモリやプロセス固有領域に保持したデータ（各DBMSのコンテキスト情報など）※1
－

外部サーバエラー情報
%PDDIR%¥spool¥pdhe外部サーバ名1
%PDDIR%¥spool¥pdhe外部サーバ名2
外部サーバが出力したエラーメッセージ情報※2
viなどのテキストエディタを使用します。

外部サーバインタフェーストレース情報
%PDDIR%¥spool¥pdhl外部サーバ名1
%PDDIR%¥spool¥pdhl外部サーバ名2
外部サーバに対して発行した関数のコール情報※3
viなどのテキストエディタを使用します。

統計ログファイル
%PDDIR%¥spool¥pdstj1
%PDDIR%¥spool¥pdstj2
HiRDB External Data Access Adapterで取得するチューニング情報
統計解析ユティリティ（pdstedit）を実行します。
ただし，出力情報によって取得単位は異なります。

注※1

出力された場合は，バックアップを取得してください。

注※2

詳細については，「5.2　外部サーバエラー情報」を参照してください。

注※3

詳細については，「5.3　外部サーバインタフェーストレース情報」を参照してください。

5.2　外部サーバエラー情報

ここでは，外部サーバエラー情報について説明します。

＜この節の構成＞

(1)　外部サーバエラー情報とは

(2)　外部サーバエラー情報の取得方法

(3)　外部サーバエラー情報の見方

(1)　外部サーバエラー情報とは

外部サーバエラー情報とは，外部サーバでエラーが発生したときのエラー情報です。UAPでは，外部サーバでエラーが発生したときエラーメッセージ情報は75バイトまでしか取得できません。したがって，それ以上の長さのメッセージが出力されたとき，エラーの原因調査で参考になります。

(2)　外部サーバエラー情報の取得方法

外部サーバエラー情報ファイルを取得するためには，外部サーバ情報定義でpd_hb_e_modeオペランドを省略するか，pd_hb_e_modeオペランドにALLを指定する必要があります。

pd_hb_e_modeオペランドを設定すると，%PDDIR%¥spool¥に次の二つのファイルが作成されます。これが外部サーバエラー情報ファイルです。

　　pdhe外部サーバ名1，pdhe外部サーバ名2

外部サーバエラー情報は，外部サーバに対するSQLがエラー（エラーのSQLコード）が返ってきた場合，外部サーバに対する処理要求時に出力されます。また，外部サーバ情報定義のpd_hb_e_codeオペランドを設定すると，指定したSQLコードのエラーメッセージの出力抑止を行うことができます。

外部サーバエラー情報は，一方のファイルに出力されます。最初の出力先は，pdhe外部サーバ名1です。そして，そのファイルの容量が満杯になると，出力先をもう一方のファイルに切り替えます。このとき，切り替え先のファイルに情報が格納されている場合，古いトレース情報から順に新しいトレース情報に書き換えられます。必要な情報はバックアップを取得しておいてください。

また，現在使用している外部サーバエラー情報ファイルを知りたい場合は，OSのls -lコマンドなどでファイルの更新日時を調べてください。更新日時が新しいファイルが現在使用している外部エラー情報ファイルです。

外部サーバエラー情報は，pdgeterコマンドの取得情報の対象になります。

(3)　外部サーバエラー情報の見方

外部サーバエラー情報の内容について例を使用して説明します。出力例を次の図に，図中の出力情報の説明を表5-4に示します。

図5-1　外部サーバエラー情報の出力例

外部サーバに対する処理要求ごとに項番3～15が繰り返し出力されます。

表5-4　外部サーバエラー情報の出力情報

項番
分類
項目
説明

1
外部サーバ定義
外部サーバ名称
データベースアクセス要求を行った外部サーバの名称です。「FOREIGN SERVER NAME：」のあとに出力されます。

2
外部サーバ種別
データベースアクセス要求を行った外部サーバの種別を表示します。「KIND：」のあとに，次の情報のどれかが出力されます。
　P： HiRDB
　R： XDM/RD
　O： ORACLE
　I：DB2

3
UAP
動作情報
BESのプロセスID
データベースアクセス要求を行った外部サーバを登録しているBESのプロセスIDが出力されます。

4
FES名称※1
SQLオブジェクト実行を行ったSQLを受け付けたFESの名称が出力されます。

5
FESのプロセスID※2
SQLオブジェクト実行を行ったSQLを受け付けたFESのプロセスIDが出力されます。

6
コネクト通番※2
コネクト通番が出力されます。これは，FESがCONNECTを受け付けるごとに順次カウントされます。

7
スレッド番号
データベースアクセス要求を行った外部サーバを登録しているBESのスレッド番号が出力されます。

8
SQL情報
SQLカウンタ※2
SQLを受け付けるごとに順次カウントされる値が，出力されます。１から999,999までの値が使用され， 999,999を超えると1に戻ります。

9
セクション番号※2
SQLトレースのセクション番号と対応する番号が出力されます。

10
サブセクション番号※2
SQLの対応を確認するための番号が出力されます。

11
コールインタフェース情報
外部サーバに対するコールインタフェース名
コールインタフェース名称（外部サーバがHiRDBのときはキーワードだけ）が出力されます。

12
結果
SQLコード
SQLCODE値が出力されます。

13
外部サーバでのエラー発生日時
エラーが発生した日時が，YYYY/MM/DD HH:MM:SS形式で表示されます。

14
外部サーバに対するコールインタフェース情報
コールインタフェースで指定したパラメタ情報が表示されます。

15
外部サーバエラーメッセージ
外部サーバから取得したメッセージが表示されます。メッセージの上限は512バイトです。

注※1

バックエンドサーバプロセス起動時に外部サーバに接続してエラーが発生した場合には，この項目は表示されません。

注※2

バックエンドサーバプロセス起動時に外部サーバに接続してエラーが発生した場合には，この項目には0が表示されます。

5.3　外部サーバインタフェーストレース情報

ここでは，外部サーバインタフェーストレース情報について説明します。

＜この節の構成＞

(1)　外部サーバインタフェーストレース情報とは

(2)　外部サーバインタフェーストレース情報の取得方法

(3)　外部サーバインタフェーストレース情報の見方

(1)　外部サーバインタフェーストレース情報とは

外部サーバインタフェーストレース情報とは，外部サーバに対するコールインタフェースの名称や，発行順序に関する情報です。外部サーバに対するコールインタフェースエラーなどが発生した場合，外部サーバインタフェーストレース情報を参照することで，エラーの原因調査に参考になります。

注意

外部サーバインタフェーストレース情報は，実行しているUAPのクライアントのバージョンが06-02以降の場合に取得できます。

(2)　外部サーバインタフェーストレース情報の取得方法

外部サーバインタフェーストレース情報を取得するためには，実行しているUAPのクライアント環境変数にPDSQLTRACEを指定する必要があります。

PDSQLTRACEを指定すると，外部サーバ定義情報ファイルのpd_hb_l_pathオペランドで指定したディレクトリに次の二つのファイルが作成されます。これが外部サーバインタフェーストレース情報ファイルです。

　　pdhl外部サーバ名1，pdhl外部サーバ名2

外部サーバインタフェーストレース情報は，一方のファイルに出力されます。最初の出力先は，pdhl外部サーバ名1です。そして，そのファイルの容量が満杯になると，出力先をもう一方のファイルに切り替えます。このとき，切り替え先のファイルに情報が格納されている場合，古いトレース情報から順に新しいトレース情報に書き換えられます。必要な情報はバックアップを取得しておいてください。

また，現在使用している外部サーバインタフェーストレース情報ファイルを知りたい場合は，OSのls -lコマンドなどでファイルの更新日時を調べてください。更新日時が新しいファイルが，現在使用している外部サーバインタフェーストレース情報ファイルです。

(3)　外部サーバインタフェーストレース情報の見方

外部サーバインタフェーストレース情報の内容について例を使用して説明します。出力例を次の図に，図中の出力情報の説明を表5-5に示します。

図5-2　外部サーバインタフェーストレース情報の出力例

外部サーバに対する処理要求ごとに項番4～22が繰り返し出力されます。

表5-5　外部サーバインタフェーストレース情報の出力情報

項番
分類
項目
説明

1
外部サーバ定義
外部サーバ名称
データベースアクセス要求を行った外部サーバの名称です。「FOREIGN SERVER NAME：」のあとに出力されます。

2
外部サーバ種別
データベースアクセス要求を行った外部サーバの種別を表示します。「KIND：」のあとに，次の情報のどれかが出力されます。
　P： HiRDB
　R： XDM/RD
　O： ORACLE
　I：DB2

3
BES名称
データベースアクセス要求を行った外部サーバを登録しているBESの名称が出力されます。

4
UAP
動作情報
BESのプロセスID
データベースアクセス要求を行った外部サーバを登録しているBESのプロセスIDが出力されます。

5
スレッド番号
データベースアクセス要求を行った外部サーバを登録しているBESのスレッド番号が出力されます。

6
UAP名称
実行したUAPの名称が出力されます。

7
ユーザID
外部サーバに接続したユーザのユーザIDが出力されます。

8
FES名称
SQLオブジェクト実行を行ったSQLを受け付けたFESの名称が出力されます。

9
コネクト通番
コネクト通番が出力されます。これは，FESがCONNECTを受け付けるごとに順次カウントされます。

10
FESのプロセスID
SQLオブジェクト実行を行ったSQLを受け付けたFESのプロセスIDが出力されます。

11
SQL情報
オペレーションコード
オペレーションコードが出力されます。

12
SQLカウンタ
SQLを受け付けるごとに順次カウントされる値が，出力されます。１から999,999までの値が使用され， 999,999を超えると1に戻ります。

13
セクション番号
SQLトレースのセクション番号と対応する番号が出力されます。

14
サブセクション番号
SQLの対応を確認するための番号が出力されます。

15
コールインタフェース情報
外部サーバに対するコールインタフェース名
コールインタフェース名称（外部サーバがHiRDBのときはキーワードだけ）が出力されます。

16
結果コード
SQLCODE値が出力されます。

17
警告情報
警告情報が16進数で出力されます。
SQLWARN0からSQLWARNFまでの警告情報にそれぞれ左から1ビットを割り当て，警告フラグが設定されているものは１，設定されていないものは0として16ビットの数値が計算され，４けたの16進数として出力されます。一つ以上の警告フラグが設定されている場合には先頭に’W’が，設定された警告フラグがない場合は’－’が付加されます。

18
外部サーバ処理開始時刻
外部サーバ処理の開始時間が，HH.MM.SS.mmm形式で出力されます。

19
外部サーバ処理終了時刻
外部サーバ処理の終了時間が，HH.MM.SS.mmm形式で出力されます。

20
コールインタフェース情報
コールインタフェース情報が「*IFPARAMS*」のあとに出力されます。この情報にはSQL文も含まれます。SQL文は「*SQL*」のあとに出力されます。

21
？パラメタ情報※1
コールインタフェース情報に？パラメタが必要な場合に出力されます。外部サーバ定義の pd_hb_l_prm_sizeの指定値を最大長とし，最大長を超えると調査分は切り捨てられます。

パラメタ情報

NO　：パラメタ番号

COD ：データ型コード

XDIM：配列要素数

SYS ：ギャップを含む１要素の領域の長さ

LEN ：データの長さ

IND ：標識変数の値

DATA：データ（ダンプ形式）

22
外部サーバエラーメッセージ※2
外部サーバから取得したエラーメッセージが「*ERROR INFORMATION*」のあとに出力されます。出力されるメッセージの上限は512バイトです。

注※1

pd_hb_l_prm = Y指定時に出力します。

注※2

エラー発生時に出力します。

付録

＜この付録の構成＞

付録A　ファイル構成

付録A　ファイル構成

HiRDB External Data AccessとHiRDB External Data Access Adapterのインストール後のファイル構成と，HiRDB External Data Access機能の運用時のファイル構成について説明します。

＜この節の構成＞

付録A.1　インストール後のファイル構成

付録A.2　運用時のファイル構成

付録A.1　インストール後のファイル構成

インストール後のファイル構成について説明します。

＜この項の構成＞

(1)　Windows版の場合

(2)　UNIX版の場合

(1)　Windows版の場合

Windows版でのインストール後のファイル構成を次の表に示します。

表A-1　インストール後のファイル構成（Windows版の場合）

種別 | ディレクトリまたはファイル名 | 備考
インストールディレクトリ | %PDDIR% | －
サンプルHub最適化情報定義ファイル | %PDDIR%¥adapter¥sample¥pdhbshiv5 | HiRDB Version 5.0用※1
%PDDIR%¥adapter¥sample¥pdhbshiv6 | HiRDB Version 6，HiRDB Version 7，HiRDB Version 8用※1
%PDDIR%¥adapter¥sample¥pdhbshixv6 | XDM/RD E2用※1
%PDDIR%¥adapter¥sample¥pdhbsorav8 | ORACLE用※2

（凡例）－：特にありません。

注※1

HiRDB External Data Accessをインストールすると作成されます。

注※2

ORACLE用のHiRDB External Data Access Adapterをインストールすると作成されます。

(2)　UNIX版の場合

UNIX版でのインストール後のファイル構成を次の表に示します。

表A-2　インストール後のファイル構成（UNIX版の場合）

種別 | ディレクトリまたはファイル名 | 備考
インストールディレクトリ | /opt/hirdbDHub_P/ | HiRDB用，XDM/RD E2用
/opt/hirdbadp_ora/ | ORACLE用
/opt/hirdbadp_db2/ | DB2用
サンプルHub最適化情報定義ファイル | /opt/hirdbDHub_P/sample/pdhbshiv5 | HiRDB Version 5.0用※1
/opt/hirdbDHub_P/sample/pdhbshiv6 | HiRDB Version 6，HiRDB Version 7，HiRDB Version 8用※1
/opt/hirdbDHub_P/sample/pdhbshixv6 | XDM/RD E2用※1
/opt/hirdbadp_ora/sample/pdhbsorav8 | ORACLE用※2
/opt/hirdbadp_db2/sample/pdhbsdb2udbv6 | DB2用※3

注※1

HiRDB External Data Accessをインストールすると作成されます。

注※2

ORACLE用のHiRDB External Data Access Adapterをインストールすると作成されます。

注※3

DB2用のHiRDB External Data Access Adapterをインストールすると作成されます。

付録A.2　運用時のファイル構成

HiRDB External Data Accessのセットアップ後のファイル構成，およびHiRDB実行時に作成されるファイルについて説明します。

＜この項の構成＞

(1)　運用時のファイル構成

(2)　HiRDB実行時に作成されるファイル

(1)　運用時のファイル構成

運用時のファイル構成を次の表に示します。Hub最適化情報定義ファイルの使用は任意です。使用する場合は，まず提供されているサンプルHub最適化情報定義ファイルを使用することをお勧めします。また，外部サーバ情報定義ファイルは，外部サーバごとに作成する必要があります。

表A-3　運用時のファイル構成

種別 | ファイル名
Hub最適化情報定義ファイル | %PDDIR%¥conf¥外部サーバ名.opt
%PDDIR%¥conf¥ユーザ任意
外部サーバ情報定義ファイル | %PDDIR%¥conf¥外部サーバ名

(2)　HiRDB実行時に作成されるファイル

HiRDB実行時に作成されるファイルを次の表に示します。各ファイルが作成されるタイミングについては，「5.　障害対策」を参照してください。

表A-4　HiRDB実行時に作成されるファイル

種別
ファイル名

外部サーバエラー情報ファイル
%PDDIR%¥spool¥pdhe外部サーバ名1
%PDDIR%¥spool¥pdhe外部サーバ名2

外部サーバインタフェーストレース情報ファイル
%PDDIR%¥spool¥pdhl外部サーバ名1
%PDDIR%¥spool¥pdhl外部サーバ名2

ユーザ指定ディレクトリ¥pdhl外部サーバ名1
ユーザ指定ディレクトリ¥pdhl外部サーバ名2

索引

[数字]
[Ｃ][Ｄ][Ｇ][Ｈ][Ｌ][Ｏ][Ｐ][Ｒ][Ｓ][Ｕ][Ｗ][Ｘ]
[ア行][カ行][サ行][タ行][ナ行][ハ行][マ行][ヤ行][ラ行]

(数字)

16進文字列定数に関する制限

(英字)

(Ｃ)

CREATE FOREIGN INDEX

CREATE FOREIGN TABLE

CREATE SERVER

CREATE USER MAPPING

(Ｄ)

DB2のデータ型との対応関係

DB2の文字列比較の動作

DROP FOREIGN INDEX

DROP FOREIGN TABLE

DROP SERVER

DROP USER MAPPING

(Ｇ)

GRANT

(Ｈ)

HiRDB External Data Access機能

HiRDB External Data Access機能固有の動作が存在する運用コマンド一覧

HiRDB External Data Access固有のSQL

HiRDB External Data Access固有のSQL一覧

HiRDB External Data Accessで使用するトラブルシュート情報

HiRDB External Data Accessとは

HiRDB External Data Accessに関する運用コマンド

HiRDB External Data Accessに関連する定義ファイル

HiRDB External Data Accessの特長

HiRDB External Data Accessのバージョンアップの条件

HiRDB External Data Accessの変更

HiRDB External Data Accessの変更手順

HiRDB External Data Accessを使用したHiRDB/パラレルサーバの構成例

HiRDB Version 5.0以降の文字列比較の動作

HiRDB実行時に作成されるファイル

HiRDB障害時に外部サーバで行う対策

HiRDBで障害が発生したときの外部サーバの管理者の処置

HiRDBとHiRDB External Data Accessのバージョンの組み合わせ可否

HiRDB内部処理の性能

HiRDBのデータ型との対応関係

Hub最適化情報定義

(Ｌ)

LOCK文に関する制限

(Ｏ)

ORACLEのデータ型との対応関係

ORACLEの文字列比較の動作

(Ｐ)

pddbadset

pdls【-d stj】

pdopsetup

pdstbegin

pdstend

(Ｒ)

REVOKE

(Ｓ)

SQL拡張最適化オプション

SQL拡張最適化オプション（システム共通定義）

SQLによる外部表へのアクセス

SQLを使用する上での注意事項

(Ｕ)

UAP開発時の注意事項

(Ｗ)

WITH ROLLBACK，NO WAITを指定した場合の外部サーバでの排他制御

(Ｘ)

XDM/RD E2のデータ型との対応関係

(ア行)

(あ)

アクセス権限の種類

アクセスの形態

アクセスパス生成に関するデフォルト動作一覧

(い)

インストール後のファイル構成

(う)

埋込み変数，および？パラメタに関する制限

運用

運用コマンド使用上の注意事項

運用時のファイル構成

(カ行)

(か)

カーソルに関する制限

外部インデクス

外部サーバ

外部サーバインタフェーストレース情報

外部サーバインタフェーストレース情報とは

外部サーバインタフェーストレース情報の出力情報

外部サーバインタフェーストレース情報の出力例

外部サーバインタフェーストレース情報の取得方法

外部サーバインタフェーストレース情報の見方

外部サーバエラー情報

外部サーバエラー情報とは

外部サーバエラー情報の出力情報

外部サーバエラー情報の出力例

外部サーバエラー情報の取得方法

外部サーバエラー情報の見方

外部サーバ実行

外部サーバ実行可能な探索高速化条件の導出の抑止

外部サーバ実行の可能な処理の単位

外部サーバ実行の条件

外部サーバ実行を行うためのSQLの書き方

外部サーバ情報定義

外部サーバで実行する検索の検索項目数に関する制限

外部サーバで実行できない更新系SQL

外部サーバで障害が発生したときのHiRDB管理者の処置

外部サーバでの演算処理に関する制限

外部サーバで発生する障害

外部サーバ内処理の性能

外部サーバに使用できるDBMS

外部サーバに対する配列FETCH

外部サーバの運用開始

外部サーバの運用開始と運用終了

外部サーバの運用終了

外部サーバの削除

外部サーバの追加

外部サーバの追加・削除・変更

外部サーバの変更

外部サーバへの接続の切断方法

外部サーバへの接続方法

外部サーバへの接続方法と切断方法

外部サーバへの配列FETCH

外部表

外部表とは

外部表のアクセス権限

外部表の定義手順

外部表へのアクセス性能に関するSQL拡張最適化オプションの設定項目

外部表へのアクセス性能に関する考え方

外部表へのアクセス性能に関するチューニングの手順

外部表へのアクセス性能のチューニング

外部表へのアクセス性能のチューニング方法

外部表へのアクセスの性能設計に関連する機能

外部表を含む結合処理

外部表を利用する場合の制限

各国文字データ型への変換・代入に関する制限

環境設定

環境設定上の注意事項

環境設定と運用

環境設定の概要

環境設定の手順

(き)

行単位の操作に関する制限

(こ)

更新可能なビュー表

(サ行)

(さ)

サーバを構成する表の種類を考慮したデータベース設計

最適化情報パラメタファイル

最適化情報パラメタファイル

最適化情報パラメタファイル

(し)

システム構成

システム構築の前に

ジョインを含むSQL文の外部サーバ実行

ジョインを含むSQL文の外部サーバ実行の抑止

障害対策

(す)

ステータスファイルの容量

(せ)

性能の設計

(そ)

相関名に関する制限

(タ行)

(た)

探索高速化条件の導出

探索高速化条件の導出機能

(ち)

直積を含むSQL文の外部サーバ実行

直積を含むSQL文の外部サーバ実行の強制

(て)

デ－タ型の対応関係

データ型のマッピング

データディクショナリ用RDエリアのインデクスの格納ページ数

データディクショナリ用RDエリアの容量

データベースの設計

データ保証レベルおよび排他オプションに関する制限

(と)

トラブルシュート情報

トランザクションに関する制限

(ナ行)

(な)

名前付きの導出表に関する制限（外部サーバがHiRDBの場合）

名前付きの導出表に関する制限（外部サーバがXDM/RD E2の場合）

(ね)

ネットワーク環境を考慮したデータベース設計

ネットワーク通信の性能

(ハ行)

(は)

排他オプションを指定した場合の外部サーバでの排他制御

パディングなし比較

パディング比較

(ひ)

一つの外部サーバに閉じる探索高速化条件の導出

表の所有者が持つアクセス権限とほかのユーザへのアクセス権限の操作の可否

(ふ)

ファイル構成

副問合せに関する制限

分散ネストループジョインの使用に関する制御

分散ネストループジョインの利用

分散ネストループジョインを行う条件

(マ行)

(め)

メモリ所要量

(ヤ行)

(よ)

読み込み専用ビュー表

(ラ行)

(り)

リソースの見積もり

■ 商標類

ActiveXは，米国およびその他の国における米国Microsoft Corp.の商標です。
AIXは，米国における米国International Business Machines Corp.の登録商標です。
AMDは，Advanced Micro Devices, Inc.の商標です。
CORBAは，Object Management Groupが提唱する分散処理環境アーキテクチャの名称です。
DataStage，MetaBroker，MetaStageおよびQualityStageは，IBM Corporationの商標です。
DB2は，米国における米国International Business Machines Corp.の登録商標です。
日本国内においてのDCEの商標使用権は，OSFよりサブライセンスされています。
DNCWARE，ClusterPerfectは，東芝ソリューション株式会社の商標です。
gzipは，米国FSF(Free Software Foundation)が配布しているソフトウェアです。
HACMP/6000は，米国における米国International Business Machines Corp.の商標です。
HP-UXは，米国Hewlett-Packard Companyのオペレーティングシステムの名称です。
IBMは，米国における米国International Business Machines Corp.の登録商標です。
Intelは，Intel Corporationの会社名です。
Itaniumは，アメリカ合衆国および他の国におけるインテル コーポレーションまたはその子会社の登録商標です。
JBuilderは，Borland Software Corporationの米国およびその他の国における商標です。
Linuxは，Linus Torvaldsの米国およびその他の国における登録商標あるいは商標です。
Microsoftは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Microsoft Accessは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Microsoft Office Excelは，米国 Microsoft Corporation の商品名称です。
Motifは，Open Software Foundation,Inc.の商標です。
MS-DOSは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
NLSは，米国Hewlett-Packard Companyの商品名称です。
ODBCは，米国Microsoft Corp.が提唱するデータベースアクセス機構です。
OLEは，米国Microsoft Corp.が開発したソフトウェア名称です。
OLEは，Object Linking and Embeddingの略です。
ORACLEは，米国Oracle Corporationの登録商標です。
Oracleは，米国Oracle Corporation及びその子会社，関連会社の登録商標です。
Oracle8iは，米国Oracle Corporationの商標です。
Oracle9iは，米国Oracle Corporationの商標です。
Oracle 10gは，米国Oracle Corporationの商標です。
OS/390は，米国およびその他の国におけるInternational Business Machines Corporationの商標です。
PA-RISCは，米国Hewlett-Packard Companyの商標です。
POSIXは，the Institute of Electrical and Electronics Engineers, Inc. (IEEE)で制定された標準仕様です。
PowerBuilderは，米国法人Sybase,Inc.の登録商標です。
Red Hatは，米国およびその他の国でRed Hat, Inc.の登録商標若しくは商標です。
RISC System/6000は，米国における米国International Business Machines Corp. の登録商標です。
Sun，Sun Microsystems，Java，JDK，Solarisは，米国Sun Microsystems, Inc.の米国およびその他の国における商標または登録商標です。
TurboLinuxの名称及びロゴは，TurboLinux, Inc.の商標です。
TUXEDOは，米国UNIX System Laboratories, Inc.の商品名称です。
UNIFY2000は，米国Unify Corp.の商品名称です。
UNIXは，X/Open Company Limitedが独占的にライセンスしている米国ならびに他の国における登録商標です。
VERITASおよびVERITASロゴは，米国Symantec Corporationの登録商標です。
VERITAS NetBackupは，米国及びその他の国での米国Symantec Corporationの商標です。
VERITAS NetBackup BusinesServerは，米国及びその他の国での米国Symantec Corporationの商品名称です。
Visual Basicは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Visual C++は，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Visual Studioは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
WebLogicは，BEA Systems, Inc.の登録商標です。
Windowsは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Windows NTは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Windows Serverは，米国Microsoft Corporationの米国およびその他の国における登録商標です。
Windows Vistaは，米国Microsoft Corporationの米国及びその他の国における登録商標です。
X/Openは，X/Open Company Limited の英国ならびに他の国における登録商標です。
X Window Systemは，米国X Consortium,Inc.が開発したソフトウェアです。
イーサネットは，富士ゼロックス（株）の商品名称です。
プログラムプロダクト「P-9D63-A181，P-F9D63-A181R」には，米国 Sun Microsystems, Inc. が著作権を有している部分が含まれています。
プログラムプロダクト「P-9D63-A181，P-F9D63-A181R」には，UNIX System Laboratories, Inc. が著作権を有している部分が含まれています。