目次 前 次 PDF


DB2 Connectを使用するDB2へのOracle Tuxedo XA接続の構成

DB2 Connectを使用するDB2へのOracle Tuxedo XA接続の構成
この章には次のトピックが含まれます:
前提条件
DB2 Connectを使用するメインフレームで実行されているDB2へのTuxedo XA接続の構成を開始する前に、次の作業が必要です。
DB2 Connectの構成
この項では、オープン・システムのDB2 Connectを、メインフレームで実行されているDB2サーバーに接続するように構成するために必要な手順について説明します。これらの手順は、必要なシステム権限と特別な専門知識を持っているユーザー(ネットワーク管理者やシステム管理者、DB2管理者など)が実行する必要があります。
DB2インスタンスの作成
この章では、db2icrtを使用して、メインフレーム上にあるデータベースに接続するために使用されるDB2インスタンスを作成する方法を説明します。db2icrtコマンドによって、インスタンス所有者のホーム・ディレクトリにDB2インスタンスが作成されます。
注意:
LinuxまたはUNIXオペレーティング・システム上では、このユーティリティはDB2DIR/instanceディレクトリにありますが、ここでDB2DIRはDB2 Connectがインストールされている場所を表します。Windowsオペレーティング・システム上では、このユーティリティはDB2PATH\binディレクトリにありますが、ここでDB2PATHはDB2 Connectがインストールされている場所です。
db2icrt -[ h, d, p, a, s, u ] Instname
例:
$DB2DIR/instance/db2icrt -u db2art db2art
db2icrtコマンドは、次のパラメータをとります。
-h | -?
使用率情報を表示します。
-d
デバッグ・モードをオンにします。このオプションは、DB2データベース・サポートによって指示された場合のみ使用してください。
-a AuthType
インスタンスの認証タイプを指定します(SERVER、CLIENTまたはSERVER_ENCRYPT)。デフォルトはSERVERです。
-p PortName
インスタンスが使用するポート名または番号を指定します。このオプションは、クライアント・インスタンスには適用されません。
-s InstType
作成するインスタンスのタイプを指定します。-sオプションは、db2icrtを実行しているインストール済製品に関連付けられているデフォルト以外のインスタンスを作成する場合のみ使用してください。有効な値は、Client、standalone、eseまたはwseです。
-u Fenced ID
フェンスされたユーザー定義関数とフェンスされたストアド・プロシージャが動作するユーザーIDの名前を指定します。クライアント・オプションを作成しない場合は、-uオプションが必要です。
InstName
オペレーティング・システムの既存のユーザーの名前でもあるインスタンスの名前を指定します。これはdb2icrtコマンドの最後の引数である必要があります。
DB2インスタンスの構成
この項では、CATALOGコマンドを使用して、メインフレームにあるDB2サーバーとの接続を設定する方法を説明します。グラフィック・ユーザー・インタフェース・ツールであるDB2 Client Configuration Assistant (CCA)をかわりに使用することもできますが、この項では説明しません
DB2 CATALOG
DB2は、DB2が制御するデータに関する情報が記載されている一連の表を維持しています。これらの表は、まとめてカタログと呼ばれます。
カタログ表には、表、ビュー、索引などのDB2オブジェクトが含まれます。オブジェクトを作成、変更または削除する場合、DB2は、そのオブジェクトを記述しているカタログの行を、挿入、更新または削除します。
DB2カタログは、表スペース、索引、表、表スペースと索引のコピー、記憶域グループなど、DB2システムに対して定義されるすべてのものに関するデータの表から構成されています。システム・データベースDSNDB06には、DB2カタログが含まれます。
この手順を起動する前に、次のことを確認する必要があります。
db2c_db2art 60000/tcp
次に、CATALOG TCP/IP NODECATALOG DCS DATABASEおよびCATALOG DATABASEの各手順を1つずつ使用して、接続セットアップを完了します。
CATALOG TCP/IP NODE
CATALOG TCP/IP NODEコマンドの構文は、次のとおりです。
catalog [ ADMIN ] [ TCP/IP protocol ] node [ Node-name ] remote [ Hostname ] server [ Service-name ] with [ comment-string ]
例:
db2 catalog tcpip node wasa-host remote wasa server 4001 with "catalog remote host wasa:4001 to local alias wasa-host"
CATALOG TCP/IP NODEは、次のパラメータをとります。
ADMIN
TCP/IP管理サーバー・ノードがカタログ化されることを指定します。SECURITY SOCKSパラメータが指定されている場合は、このパラメータを指定できません。
TCP/IP Protocol
使用するTCP/IPプロトコルを、TCPIP、TCPIP4、TCPIP6の中から指定します。
Node-name
TCPIP、TCPIP4またはTCPIP6ノードのノード名は、カタログ化するデータベースを含むマシンに設定できるローカル・ニックネームを表します。IPv4 IPアドレスを指定する場合はTCPIP4のみを指定し、IPv6 IPアドレスを指定する場合はTCPIP6のみを指定します。
Hostname
ターゲット・データベースがあるノードのホスト名またはIPアドレス。IPアドレスはIPv4アドレスまたはIPv6アドレスの場合があります。ホスト名はTCP/IPネットワークが認識しているノードの名前です。ホスト名の最大長は255文字です。
Service-name
サーバー・データベース・マネージャ・インスタンスのサービス名またはポート番号を指定します。最大長は14文字です。このパラメータでは大文字と小文字が区別されます。
サービス名を指定すると、サービス名とサービス番号のマッピングに、クライアントのサービス・ファイルが使用されます。サービス名はサーバーのデータベース・マネージャ構成ファイルに指定し、このサービス名はサーバーのサービス・ファイルを使用してポート番号にマップされます。クライアントとサーバーのポート番号が一致する必要があります。
サーバー上のデータベース・マネージャ構成ファイルで、サービス名ではなくポート番号を指定できますが、このことはお薦めしません。ポート番号を指定した場合は、ローカル・サービス・ファイルにサービス名を指定する必要がありません。
CATALOG DCS DATABASE
このコマンドは、リモート・ホスト(z/OSまたはOS/390)やiSeries (OS/400)データベースに関する情報をDatabase Connection Services (DCS)ディレクトリに格納します。これらのデータベースには、DB2 Connectなどのアプリケーション・リクエスタ(AR)を介してアクセスします。DCSディレクトリ・エントリに、データベース名がシステム・データベース・ディレクトリのデータベース名と一致するものがあると、指定されたARが起動し、そのデータベースが置かれたリモート・サーバーに、SQLリクエストが転送されます。
注意:
CATALOG DCS DATABASEコマンドの構文は、次のとおりです。
catalog dcs database [ Database-name ] as [ Target-database-name ] with [comment-string ]
例:
db2 catalog dcs database db2wasa as qwa1 with "catalog the remote host
database qwa1 to local db2wasa"
CATALOG DCS DATABASEは、次のパラメータをとります。
Database-name
ターゲット・データベースの別名をカタログに指定します。この名前は、リモート・ノードに関連付けられているデータベース・ディレクトリのエントリの名前と一致する必要があります。
Target-database-name
カタログ化するターゲット・ホストまたはiSeriesデータベースの名前を指定します。
DB2 CATALOG DATABASE
このコマンドは、データベースの場所情報をシステム・データベース・ディレクトリに格納します。データベースは、ローカル・ワークステーションまたはリモート・データベース・パーティション・サーバー上にあります。
注意:
DB2 CATALOG DATABASEコマンドの構文は、次のとおりです。
catalog database [ Database-name ] as [ Alias ] at node [ Node-name ] authentication [ Authentication-type ] with [ comment-string ]
例:
db2 catalog database db2wasa at node wasa-host authentication dcs with "catalog the local db2wasa with dcs authentication type"
DB2 CATALOG DATABASEは、次のパラメータをとります。
Database-name
カタログ化するデータベースの名前を指定します。
Alias
カタログ化されるデータベースの代替名として、別名を指定します。別名を指定しない場合は、データベース・マネージャで別名としてdatabase-nameが使用されます。
Node-name
カタログ化されたデータベースがあるデータベース・パーティション・サーバーの名前を指定します。この名前は、ノード・ディレクトリのエントリの名前と一致する必要があります。指定したノード名がノード・ディレクトリに存在しない場合は、警告が返されます。ただし、データベースはシステム・データベース・カタログにカタログ化されます。カタログ・データベースへの接続が必要な場合は、ノード名をノード・ディレクトリでカタログ化する必要があります。
Authentication-type
認証値はリモート・データベースに対して格納され(LIST DATABASE DIRECTORYコマンドの出力に示されます)、ローカル・データベースに対しては格納されません
DB2 START UP
CATALOGのすべての手順の後、一部のデータベース・マネージャ構成を更新して、DB2 Connectを起動する必要があります。
db2 update dbm cfg using SVCENAME db2c_db2art
"/etc/services"の例は次のとおりです。
db2c_db2art 4001/tcp # wasa DB2 connection
db2set DB2COMM=tcpip
db2set DB2AUTOSTART=yes
db2start
Oracle Tuxedoの構成
次に、DB2 Connectを使用してメインフレームに存在するデータベースにアクセスするためにOracle Tuxedoを構成するプロセスについて説明します。このプロセスは、TuxedoがDB2データベースの64ビット・インスタンスまたはDB2の32ビット・インスタンスのいずれを使用するかによって異なります。
Tuxedoが使用するデータベースを含むインスタンスを参照するために、DB2INSTANCE環境変数を設定します。PATH変数を設定してDB2 Connectディレクトリをインクルードします。DB2データベースに接続できるユーザーIDとパスワードを確認します。次に例を示します。
export DB2INSTANCE=db2art
export DB2DIR=/opt/ibm/db2_connect/V9.1
値をTUXEDOにしてtp_mon_nameデータベース・マネージャ構成パラメータを更新しますこのパラメータは、使用されるトランザクション処理(TP)モニター製品の名前を識別します。
有効な値は、CICSMQCBSFTUXDEOTOPENDWAS、空白または他のいくつかの値です。
db2 update dbm cfg using tp_mon_name TUXEDO
有効な値は次の項目に適用されます。
db2 update dbm cfg using spm_name bjaix ("bjaix" is the hostname of the machine which installs and configures DB2 Connect)
注意:
bjaixは別名です。最大長は8文字です。ホスト名が8文字を超える場合は、/etc/hostsで短縮名を定義します。たとえば、10.182.73.205 bej301359.cn.oracle.com bj59とします。この例では、bj59がホスト名の別名です。
注意:
MAX_CONNECTIONSの値を、デフォルトより大きい任意の数に設定することによって、コンセントレータ機能をアクティブ化できます。MAX_CONNECTIONSのデフォルト値は、MAX_COORDAGENTSの値と同等です。各アプリケーションには1つの論理エージェントがあるため、MAX_COORDAGENTSはいつでもアクティブ化できるインバウンド接続の数を制御し、MAX_CONNECTIONSはデータベース・インスタンスに接続できるアプリケーションの数を実際に制御します。MAX_CONNECTIONSは、MAX_COORDAGENTSから64,000までの範囲の数をとります。論理エージェントのデフォルト数は、MAX_COORDAGENTSと同等です。
db2 update dbm cfg using max_connections 500 AUTOMATIC
db2 update dbm cfg using max_coordagents 200
AUTOMATIC
Tuxedoリソース・マネージャ定義ファイル($TUXDIR/udataobj/RM)に、DB2 Connectの定義を追加します。次の例では、UDB_XAはDB2 Connectのローカルに定義済のTuxedoリソース・マネージャ名で、db2xa_switch_stdタイプxa_switch_tの構造のための、DB2で定義された名前です。
# DB2 UDB
UDB_XA:db2xa_switch_std:-L${DB2DIR}/lib -ldb2
${TUXDIR}/bin/buildtms -r UDB_XA -o ${TUXDIR}/bin/TMS_UDB
${TUXDIR}/bin/buildserver -r UDB_XA -f svcfile.o -s SVC1,SVC2 -o UDBserver
UDB_GRP LMID=simp GRPNO=3
TMSNAME=TMS_UDB TMSCOUNT=2
OPENINFO="UDB_XA:db=sample,uid=username,pwd=password,tpm=tuxedo"
ここで、TMSNAMEパラメータは、以前に作成したトランザクション・モニター・サーバーを指定し、OPENINFOパラメータはリソース・マネージャ名を指定します。その後、認証に使用されるデータベース名、DB2データベース・ユーザーIDおよびパスワードを指定します。
以前に作成したアプリケーション・サーバーは、Tuxedo構成ファイルの*SERVERSセクションで参照されます。
tmboot -y
概要
この章では、接続の確認とエラー検出のためのすべての必要手順と方法の要約を示します。
1.
db2icrt -a server -u db2art db2art
db2 catalog tcpip node wasa-host remote wasa server 4001
db2 catalog dcs database db2wasa as qwa1
db2 catalog database db2wasa at node wasa-host authentication dcs
db2 update dbm cfg using SVCENAME db2c_db2art
db2set DB2COMM=tcpip
db2set DB2AUTOSTART=yes
db2stop & db2start
2.
export DB2INSTANCE=db2art
export DB2BASE=db2wasa
db2 connect to $DB2BASE user user-name using password
3.
Database Connection Information
Database server = DB2 OS/390 9.1.5
SQL authorization ID = BEAUSR1
Local database alias = DB2QWA1
4.
export TUXDIR=/home/db2art/tuxedo11gR1
export DB2INSTANCE=db2art
export DB2DIR=/opt/ibm/db2_connect/V9.1
db2 update dbm cfg using tp_mon_name TUXEDO
db2 update dbm cfg using spm_name bjaix
db2 update dbm cfg using max_connections 500 AUTOMATIC
db2 update dbm cfg using max_coordagents 200 AUTOMATIC
db2stop & db2start
Add "UDB_XA:db2xa_switch_std:-L${DB2DIR}/lib -ldb2" into $TUXDIR/udataobj/RM
${TUXDIR}/bin/buildtms -r UDB_XA -o ${TUXDIR}/bin/TMS_UDB
${TUXDIR}/bin/buildserver -r UDB_XA -f svcfile.o -s SVC1,SVC2 -o UDBserver
Configure OPENINFO in ubbconfig: OPENINFO="UDB_XA:db=sample,uid=username,pwd=password,tpm=tuxedo"
tmboot -y
トラブルシューティング
この項では、DB2 Connectを使用する場合に発生する接続の問題の、最も一般的な症状を示します。各事例では、次のことが示されます。
SQL1403N
症状: SQL1403N 入力したユーザー名やパスワードが不正確です。
対処法: ユーザーがDB2 Connectワークステーションでの認証に失敗しています。ユーザーがそのDB2 Connectワークステーションで認証されると想定されるかどうかを確認します。
「はい」の場合、必要に応じて、CONNECT文で正しいパスワードを入力したことを確認します。
「いいえ」の場合、システム・データベース・ディレクトリ・エントリが、AUTHENTICATION SERVERを使用して不正確にカタログ化されています(AUTHENTICATIONが明示的に指定されていない場合、これがデフォルトです)。この場合、AUTHENTICATION DCSまたはCLIENTを使用して、エントリを再カタログ化します。
ターゲット・サーバー・データベースに送信するためのパスワードがありません。システム・データベース・ディレクトリ・エントリがAUTHENTICATION DCSを使用してカタログ化されている場合、パスワードは、DB2 Clientからターゲット・サーバー・データベースに流される必要があります。一部のプラットフォーム(たとえばAIX)では、パスワードはCONNECT文で入力された場合のみ取得できます。
SQL5043N
症状: 1つ以上の通信プロトコルのサポートを正常に開始できませんでした。ただし、コア・データベース・マネージャの機能は正常に開始されました。
TCP/IPプロトコルがDB2 Connectゲートウェイで開始されていない可能性があります。以前のクライアント接続は成功している可能性があります
対処法: この警告は、リモート・クライアントのためのゲートウェイの働きをするDB2 Connectが、1つ以上のクライアント通信プロトコルを処理できないことを示す症状です。これらのプロトコルはTCP/IPやAPPCなどであり、通常、このメッセージは、DB2 Connectに定義されている通信プロトコルの1つが適切に構成されていないことを示しています。
通常、原因は、DB2COMMプロファイル変数が定義されていないか、適切に定義されていないことです。通常、問題は、DB2COMM変数と、データベース・マネージャ構成で定義される名前(svcename、tpnameなど)の不一致の結果です。
1つの可能性として、以前に接続が成功し、構成が変更されていないにもかかわらずSQL5043エラー・メッセージが表示されるシナリオをあげることができます。このことは、TCP/IPプロトコルを使用しているときに、リモート・システムでなんらかの理由により接続が異常終了した場合に発生することがあります。この場合は、接続がクライアントに存在する可能性があり、次に示すコマンドを発行することで、追加の操作なしで接続をリストアできることがあります。
最も可能性が高いのは、ゲートウェイに接続しているクライアントの1つが、まだTCP/IPポート上のハンドルを持っている場合です。ゲートウェイに接続されている各クライアント・マシン上。
SQL30061
症状: 誤ったホストまたはAS/400データベース・サーバーの場所に接続しています - ターゲット・データベースを検出できません。
対処法: 誤ったサーバー・データベース名は、DCSディレクトリ・エントリで指定された可能性があります。この場合、アプリケーションにSQLCODE -30061が返されます。
DB2ノード、データベースおよびDCSディレクトリ・エントリをチェックします。DCSディレクトリ・エントリのターゲット・データベース名フィールドは、そのプラットフォームに基づくデータベースの名前に対応している必要があります。
SQL30081 with Return Code 79
症状: SQL30081N 通信エラーが検出されました。
使用されている通信プロトコル: "TCP/IP"。使用されている通信API: "SOCKETS"。
エラーが検出された場所: ""。エラーを検出している通信関数:
"connect"。プロトコルに固有のエラー・コード: "79"、"*"、"*"。SQLSTATE=08001
対処法: このエラーは、リモート・クライアントが、DB2 Connectゲートウェイに接続できない場合に発生することがあります。また、DB2 Connectゲートウェイからホストに接続するときに発生することもあります。
DB2COMMプロファイル変数がDB2 Connectゲートウェイで誤って設定されている可能性があります。これをチェックしてください。たとえば、AIX上でDB2 Extended Enterprise Editionを実行する場合、コマンドdb2set db2comm=tcpipが、sqllib/db2profileにある必要があります。
DB2クライアントとDB2 Connectゲートウェイの間で、TCP/IPサービス名やポート番号の指定に不一致がある可能性があります。両方のマシンのTCP/IPサービス・ファイルのエントリを確認します。
 

Copyright ©1994, 2017,Oracle and/or its affiliates. All rights reserved