インストレーション・ガイド

     前  次    新規ウィンドウで目次を開く    PDFとして表示 - 新規ウィンドウ  Adobe Readerを取得 - 新規ウィンドウ
コンテンツはここから始まります

概要

Oracle Tuxedoは、OpenVMSプラットフォームで利用できるようになりました。このマニュアルは、OpenVMSにアプリケーションの移植を行うOracle Tuxedoの上級開発者向けです。

この章の内容は、次のとおりです。

 


概要

次の項では、OpenVMSプラットフォーム上でのOracle Tuxedoの固有の特性に関する一般的な質問に答えます。

相互運用性

Oracle Tuxedo for OpenVMSサーバーおよびクライアントは、どのOracle Tuxedoリリースとも相互運用が可能です。

ファイル・システムの仕様

OpenVMSオペレーティング・システムでのファイルの仕様は、最大7つの構成要素からなり、その中のいくつかは、値が指定されていない場合にデフォルト値が使用されます。OpenVMSの完全なファイル仕様の書式は次のとおりです。

Node$device:[root.][directory-name]filename.type;version

表1-1では、OpenVMSファイルの仕様の構成要素が定義されています。

表1-1 OpenVMSの構成要素
構成要素
説明
node
任意のクラスタ名(59文字以下)の後にドル記号($)。
device
任意のデバイス仕様(15文字以下)の後にコロン(:)。
[root]
任意のルート・ディレクトリ名(39文字以下)を大カッコで囲み、その後にピリオド(.)。
[directory-name]
ファイル(filenameで指定)が格納されるディレクトリのパス名。パス名は大カッコで囲む必要があります。パス名内のディレクトリはピリオドで区切る必要があります。パス名の階層は8レベルより深くすることはできません。各ディレクトリ名は、それぞれ39文字以内にする必要があります。任意の構成要素です。
filename
ファイル名(39文字以下)の後にピリオド。
type
ファイルのタイプ(39文字以下)の後にセミコロン(;)。
version
ファイルのバージョン番号(5桁以下)。最も大きいバージョン番号がファイルの最新のコピーになります。

注意: 名前は全体で256文字を超えることはできません。ファイル名はすべて大文字と小文字が区別されません。したがって、たとえばUBBCONFIG.DATとubbconfig.datは同じファイルを指します。

ファイル仕様の例は次のとおりです。

MYCLUSTER$DKA100:[Tuxedo.APPS.SIMPAPP]UBBCONFIG.DAT;2

ファイル仕様は、セミコロン(;)で終了し、バージョン番号が含まれます。古いバージョンのファイルは、PURGEコマンドで削除できます。

ファイル名を含むすべてのOracle Tuxedoファイル(TUXCONFIGなど)は、OpenVMSのネイティブ形式にする必要があります。ファイル仕様はカンマ(,)で区切ることができます。たとえば、APPDIRは次のように指定できます。

APPDIR="DKA100:[Tuxedo.APPS.SIMPAPP],DKA100:[Tuxedo.APPS.QSAMP]"

ファイルのネーミング・ルール

OpenVMSには複数のネーミング・ルールがあります。表1-2は、有効なファイル拡張子と、それらがOpenVMSおよびOracle Tuxedoでどのように解釈されるかを示してます。

表1-2 有効なファイル拡張子
使用する拡張子
ファイルのタイプ
.C
Cソース・ファイル
.COB
COBOLソース・ファイル
.COM
コマンド・インタプリタで実行され、DCLコマンドを含むスクリプト
.CPY
COBOLコピー・ファイル
.EXE
バイナリ形式の実行可能ファイルまたは共有ライブラリ(実行可能イメージ)
.H
Cヘッダー・ファイル
.OLB
バイナリ形式の静的オブジェクト・ライブラリ
.OPT
リンカーで使用されるオプション(ライブラリからエクスポートされる関数など)を指定できるファイル
.VV
viewc(1)またはviewc32(1)でコンパイルされるバイナリ形式のVIEWファイル

注意: .EXE拡張子は、UBBCONFIGファイルにリストされるサーバー名では不要です。サーバーを実行可能にするために拡張子が必要になる場合は、実行時にOracle Tuxedoによってサーバー名に追加されます。

 


OpenVMSへのOracle Tuxedoの構成

次の項では、OpenVMSプラットフォームでOracle Tuxedoを構成する場合の固有の特性について説明します。

論理名

Oracle Tuxedoアプリケーションで必要なすべての環境変数は、論理名として定義する必要があります。たとえば、TUXCONFIGFLDTBLDIR32FIELDTBLS32VIEWDIR32およびVIEWFILES32変数は、論理名として定義する必要があります。これらの名前は、OpenVMSのネイティブ形式で指定し、Oracle Tuxedoコマンドを実行しているプロセスのプロセス表に定義する必要があります。Oracle Tuxedoユーティリティで生成されるプロセスのほとんどは、現行のプロセス表から論理名を継承します。

Oracle Tuxedo Workstation機能を使用している場合は、WSNADDRおよびWSTYPE変数を論理名として定義する必要があります。OpenVMSでは、すべてのUNIXシステム変数が論理名になります。

たとえば、次のDCLコマンドを使用すると、TUXCONFIG環境変数を設定できます。

$ DEFINE TUXCONFIG DKA100:[Tuxedo.APPS.SIMPAPP]TUXCONFIG.

これらの論理名は、Oracle Tuxedoコマンドを実行しているプロセスのプロセス表に設定することをお薦めします。論理名(Oracle Tuxedo共有ライブラリの論理名など)は、通常はグループ表またはシステム表に配置します。これらの論理名は、Oracle Tuxedoバイナリの特定のインストールに関連します。特定のOracle Tuxedoアプリケーションに固有の論理名は、プロセス表に設定してください。アプリケーション固有の論理名は、必要に応じて、デタッチ・プロセスでアクセスできる論理表に指定できます。

環境変数に値を割り当てる場合は、複数のディレクトリを指定できます。パス名を区切るには、各ディレクトリのパス名を指定して、カンマ(,)を使用します。たとえば、次の行では、2つのディレクトリ(SIMPAPPとBANKAPP)がAPPDIR変数に割り当てられます。

$ DEFINE APPDIR DKA100:[Tuxedo.SIMPAPP],DKA100:[Tuxedo:BANKAPP]

SHOW LOGICALコマンドがAPPDIRで実行されると、出力は次のようになります。

$ SHOW LOGICAL APPDIR
"APPDIR" = "DKA100:[Tuxedo.SIMPAPP]" (LNM$PROCESS_TABLE)
= "DKA100:[TUXEDO.BANKAPP]"

Oracle Tuxedoでは、複数の値を含む論理名を解釈できます。UBBCONFIGドファイルのパス関連のディレクティブは大文字の形式にする必要があります。

DCL PATH

DCL$PATHには、次の例のように、Oracle Tuxedoのインストール・ディレクトリのパス名を含める必要があります。

"DCL$PATH" = "DKA100:[WSCOTT.BIN]" (LNM$PROCESS_TABLE)
= "DKA100:[Tuxedo.BIN]"
= "SYS$SYSTEM:"

コマンドライン・プログラム

Oracle Tuxedoコマンド(tmboottmshutdownなど)の大文字の引数はすべて、コマンドライン上で二重引用符で囲む必要があります。そうしないと、OpenVMSによって小文字に変換され、システムで正しく解釈されません。

$ tmboot "-A"

シェル・スクリプトを実行するコマンドは、DCLインタプリタで実行されるため、正しいDCLスクリプトにする必要があります。スクリプトを実行するOracle Tuxedoサービスの例には、しきい値コマンドのqmadminなどがあります。

ホスト名ユーティリティ

UBBCONFIGファイルのMACHINESセクションには、ネットワークでマシンを認識するのに使用される名前(ネットワーク・ノード名)を入力する必要があります。マシンのノード名を確認するには、ホスト名ユーティリティを使用します。ホスト名ユーティリティの出力例は次のとおりです。

lcvms1.us.oracle.com

UBBCONFIGファイルのMACHINESセクションにネットワーク・ノード名を入力するときは引用符で囲む必要があります。(ネットワーク・ノード名にピリオドが含まれない場合、引用符は必要ありません。)

IDユーティリティ

IDユーティリティには、ユーザー・アカウントのUID(ユーザーID)とGID(グループID)が表示されます。IDユーティリティの出力例は次のとおりです。

UID=250456, GID=234

UBBCONFIGファイルに入力する必要のあるUIDとGIDの値を確認するには、IDユーティリティを使用します。

リソース・マネージャ情報

この項では、Oracle Tuxedoアプリケーションで使用されるリソース・マネージャに関する次の4種類の情報について説明します。

RMファイル

Oracle Tuxedoアプリケーションでリソース(SQL文、データベース、ライブラリなど)を識別または特定する必要がある場合、アプリケーションはリソース・マネージャ・ファイルを参照します。ビルド時に、buildclient(1)またはbuildserver(1)コマンドに-Rオプションを指定すると、コマンドがRMファイルを解釈して、ライブラリ名を一時オプション・ファイルに置きます。この一時ファイルは、リンカーによって読み取られるオプション・ファイルのリストに追加されます。ビルドが完了すると、一時ファイルは削除されます。

OpenVMSプラットフォーム用のRMファイルは、UDATAOBJディレクトリ(Oracle Tuxedoのインストール時に作成されたディレクトリ)にあります。

RMファイルの各エントリは、ライブラリ名などのリソースのリストで構成されます。次のサンプルRMエントリ(Oracle Tuxedo SQLのリソース・マネージャに使用)に示すように、エントリ内のフィールドはカンマで区切られ、フィールド内の項目は空白で区切られます。

Tuxedo/SQL,tuxsql_switch,TUX_LIBSQL/SHARE TUX_LIBRMS/SHARE TUX_LIBFS/SHARE

ユーザー・ログ・ファイル

Oracle Tuxedoユーザー・ログ・ファイルは、OpenVMSレコード管理サービス(RMS)によって書き込まれます。RMSでは、レコードのロックを実行するため、ユーザー・ログ・ファイルをすぐに表示することはできません。Oracle Tuxedoの警告、エラーおよび参照用のメッセージは、該当のULOGPFX変数の定義に従って、ユーザー・ログ・ファイルで確認できます。

OPENINFO文字列

Oracle Tuxedoアプリケーションでは、tpopen(3c)関数を呼び出して、トランザクション用のデータベースを開きます。次に、tpopen()OPENINFO文字列(アプリケーション・コード内)の設定を参照して、開くデータベースの名前と場所を見つけます。

次の例(bankappサンプル・アプリケーションのOPENINFO文字列から引用)に示すように、OPENINFO文字列の値内のフィールドは、カンマで区切られます。

OPENINFO="Tuxedo/SQL,DKA100:[OracleDEV.APPS.BANKAPP]BANKDL1,BANKDB,readwrite" 

DMTYPEファイル

Oracle Tuxedoアプリケーションでは、build_dgw(1)コマンドを呼び出して、Domainsゲートウェイ・プロセスをビルドします。このコマンドでは、引数にDMTYPEと呼ばれるファイル(新しいゲートウェイにリンクするライブラリのリストを含む)が必要です。

DMTYPEファイルの各エントリには、1つ以上のライブラリの名前が含まれます。ライブラリ名はカンマで区切られます。たとえば、次の行は、GWTDOMAIN(Oracle Tuxedo Domains用の標準サーバー)のDMTYPEファイルのエントリです。

TDOMAIN,TUX_LIBGW/SHARE TUX_LIBNWS/SHARE,,

 


OpenVMS用Oracle Tuxedoアプリケーションの開発

次の項では、OpenVMSプラットフォームでOracle Tuxedoアプリケーションを開発する場合の固有の特性について説明します。

クライアントとサーバーのビルド

buildclient(1)およびbuildserver(1)ユーティリティは、OpenVMSプラットフォームで完全にサポートされます。適切なオプションとライブラリが使用されるようにするには、これらのユーティリティを使用することをお薦めします。

クライアントとサーバーをビルドする場合は、使用するOracle Tuxedo APIのプロトタイプを指定する必要があります。

表1-3

使用するコンパイラ
指定する修飾子
CC
/prefix=all
/names=as_is
/float=ieee
COBOL
/ansi_format

buildclient(1)およびbuildserver(1)ユーティリティは、コンパイルするファイルに、これらの修飾子を自動的に使用します。

注意: 現在サポートされているのは、OpenVMSプラットフォームでの64ビットのバイナリ生成のみであるため、buildclient(1)およびbuildserver(1)では、"/po=lo=argv"などのオプションがデフォルトでコンパイラに追加されます。独自のobjファイルを作成したり、Oracle Tuxedoにリンクするには、このルールに従ってください。

Oracle Tuxedoクライアントおよびサーバーをリンクする場合は、リンカー・オプション・ファイルTUXLIB.OPT(Oracle TuxedoインストールのLIBディレクトリ内)をリンク行に含める必要があります。buildclient(1)およびbuildserver(1)ユーティリティでは、両方ともTUXLIB.OPTファイルをリンク行に自動的に追加します。オプション・ファイルは、/OPTスイッチを使用してリンカーに修飾する必要があることに注意してください。オプション・ファイルをOracle Tuxedoのリンク行で使用する方法の例は、例2のコンパイルおよびリンク行を参照してください。

UNIXプラットフォームと同様、CFLAGS 論理名を使用すると、オプションをビルドのコンパイル・フェーズに追加できます。OpenVMSビルドのLINKフェーズでは、異なるオプションが必要になる場合があります。論理名TMLKFLAGSを使用すると、ビルドのLINKフェーズにオプションを指定できます。

buildclient(1)およびbuildserver(1)では、Oracle Tuxedoライブラリに関する警告が表示される場合があります。これらの警告は無視してください。Oracle Tuxedoライブラリには循環参照があり、ビルド時に警告が表示されます。

Oracle Tuxedo共有ライブラリを使用すると、OpenVMS上のOracle TuxedoユーザーはOracle Tuxedoバッファ・タイプ・スイッチ機能を利用できます。Oracle Tuxedoのリファレンス・マニュアルのbuffer(3c)に関する項を参照してください。

例1

次の例は、buildclient(1)を実行して、SIMPCL.EXEという名前のクライアントを作成する方法を示しています。

$ BUILDCLIENT -f SIMPCL.C -o SIMPCL.EXE
%LINK-W-SHRWRNERS, compilation warnings
in shareable image file DKA100:[Tuxedo.LIB]LIBTUX_1030.EXE;1
%LINK-W-SHRWRNERS, compilation warnings
in shareable image file DKA100:[Tuxedo.LIB]LIBBUFT_1030.EXE;1

この例では、リンカーによってOracle Tuxedoに関する2つの警告メッセージが戻されます。これらのメッセージは重要でないため、無視して問題ありません。

例2

オプション・ファイルは、リンク行に多数のファイルを指定する場合に役に立つ方法です。次の例では、コンパイル済でサーバーにリンクされるオブジェクト・ファイル(ECHO.OBJPROCESS.OBJおよびSECD.OBJ)のセットを指定するのに、オプション・ファイルが使用されています。

$ TYPE SECD.OPT
!
! OPTION FILES USE ! in order to denote comment lines
! Any line which starts with ! is ignored by the linker
!
ECHO.OBJ
PROCESS.OBJ
SECD.OBJ
TUX_LIBTMIB /SHARE
$ BUILDSERVER -f SECD.OPT/OPT -o SECD.EXE -s "SECD:ECHO" -s "PROFILE"

ファイルの次の構成要素に注意してください。

外部コードの呼出しおよびアプリケーションへの入力のヒント

この項では、アプリケーションのコードの記述に関するヒントについて説明します。

実行可能ファイルの実行

実行可能ファイルをアプリケーションで呼び出すには、次の操作のいずれかを実行する必要があります。

シンボリック名を定義するには、名前を入力して、ターゲットの実行可能ファイルのパスを指定します。実行可能ファイルはDCLスクリプトにする必要があります。

たとえば、simpappクライアントのsimpclのシンボルを定義するには、次の行をアプリケーションに入力します。

$ SIMPCL :== $ DKA100:[Tuxedo.SIMPAPP]SIMPCL.EXE

この行では、simpclをシンボリック名として定義します。SIMPCL.EXE実行可能ファイルは、次の引数を指定して実行できます。

$ SIMPCL "Here is a string"
HERE IS A STRING

DCL$PATH変数に、SIMCL.EXE実行可能ファイルのディレクトリが含まれている場合は、実行可能ファイルのシンボリック名を定義する必要はありません。

DCLスクリプトの実行

コマンドラインからDCLスクリプトを実行するには、@シンボルをスクリプトの名前の前に入力します。

標準I/Oおよび標準エラー・ストリームのリダイレクト

標準入力からの入力を使用するプログラム(qmadmintmadminなど)をコードが呼び出す場合は、標準入力のリダイレクトが必要になる場合があります。Oracle Tuxedoでは、この操作が可能です。

OpenVMSプラットフォームで標準入力、標準出力および標準エラーをリダイレクトするには、論理名SYS$STDINSYS$STDOUTおよびSYS$STDERRを再定義します。

次の例は、qmadminスクリプトによってキュー・スペースが生成され、出力がqmadmin.stdoutとqmadmin.stderrの2つのファイルに出力されるプロセスを示しています。

$ TYPE QMADMIN.STDIN
echo
crdl DKA100:[Tuxedo.QSAMPLE]QUE 0 400
qspacecreate
QSPACE
62839
100
6
4
9
3
errque
y
16
q
$ define sys$input "DKA100:[Tuxedo.QSAMPLE]QMADMIN.STDIN"
$ define sys$output "DKA100:[Tuxedo.QSAMPLE]QMADMIN.STDOUT"
$ define sys$error "DKA100:[Tuxedo.QSAMPLE]QMADMIN.STDERR"
$ qmadmin
$ deassign sys$input
$ deassign sys$output
$ deassign sys$error
$ TYPE CRQUE.STDERR
qmadmin - Copyright (c) 1996 Oracle Systems, Inc.
Portions * Copyright 1986-1997 RSA Data Security, Inc.
All Rights Reserved.
Distributed under license by Oracle Systems, Inc.
TUXEDO is a registered trademark.
$ TYPE CRQUE.STDOUT
%DCL-I-SUPERSEDE, previous value of SYS$ERROR has been superseded
QMCONFIG=DKA100:[Tuxedo.QSAMPLE]QUE
> Echo is now on
> crdl DKA100:[Tuxedo.QSAMPLE]QUE 0 400
Created device DKA100:[Tuxedo.QSAMPLE]QUE, offset 0, size 400 on DKA100:[TUXEDO.QSAMPLE]QUE
> qspacecreate
Queue space name: IPC Key for queue space: Size of queue space in disk pages: Number of queues in queue space: Number of concurrent transactions in queue space: Number of concurrent processes in queue space: Number of messages in queue space: Error queue name: Initialize extents (y, n [default=n]): Blocking factor [default=16]:

> q

 


OpenVMSでのネットワーキング

他のプラットフォームで実行する場合、Oracle Tuxedoユーティリティでは、ブリッジまたはデバイスをコマンドラインで指定する必要があります。ただし、同じユーティリティをOpenVMSプラットフォームで実行する場合は、ブリッジやデバイスを指定しないでください。これを行うと、警告メッセージがユーザー・ログ・ファイルに出力されます。


  先頭に戻る       前  次