OpenTP1 Version 7
分散トランザクション処理機能
OpenTP1 プログラム作成の手引
手引書
3000-3-D51-50
目 次
- 前書き
- 変更内容
- はじめに
- 1. OpenTP1のアプリケーションプログラム
- 1.1 ユーザアプリケーションプログラムと業務形態の関係
- 1.1.1 クライアント/サーバ形態のアプリケーションプログラム
- 1.1.2 メッセージ送受信形態のアプリケーションプログラム
- 1.1.3 メッセージキューイング機能を使った形態のアプリケーションプログラム
- 1.1.4 アプリケーションプログラムの負荷分散
- 1.1.5 アプリケーションプログラムのトランザクション処理
- 1.2 アプリケーションプログラムの種類
- 1.2.1 サービスを利用するUAP(SUP)
- 1.2.2 サービスを提供するUAP(SPP)
- 1.2.3 メッセージを処理するUAP(MHP)
- 1.2.4 オフラインの業務をするUAP
- 1.3 アプリケーションプログラムの作成
- 1.3.1 コーディング
- 1.3.2 スタブの作成
- 1.3.3 翻訳と結合(スタブを使用する場合)
- 1.3.4 翻訳と結合(サービス関数動的ローディング機能を使用する場合)
- 1.3.5 アプリケーションプログラムの環境設定
- 1.3.6 ユーザサーバの負荷分散とスケジュール
- 1.4 OpenTP1のライブラリ関数
- 1.4.1 アプリケーションプログラミングインタフェースの機能
- 1.4.2 OpenTP1のライブラリ関数の一覧
- 1.5 アプリケーションプログラムのデバッグとテスタ
- 1.5.1 UAPテスタ機能の種類
- 1.5.2 テストできるアプリケーションプログラム
- 1.5.3 ユーザサーバのテスト状態の報告
- 2. OpenTP1の基本機能(TP1/Server Base,TP1/LiNK)
- 2.1 リモートプロシジャコール
- 2.1.1 リモートプロシジャコールの実現方法
- 2.1.2 リモートプロシジャコールでのデータの受け渡し
- 2.1.3 リモートプロシジャコールの形態
- 2.1.4 サービスのネスト
- 2.1.5 トランザクションの処理から非トランザクショナルRPCの発行
- 2.1.6 サービス要求のスケジュールプライオリティの設定
- 2.1.7 クライアントUAPのノードアドレスの取得
- 2.1.8 サービス要求の応答待ち時間の参照と更新
- 2.1.9 エラーが発生した非同期応答型RPC要求の記述子の取得
- 2.1.10 CUPへの一方通知
- 2.1.11 リモートプロシジャコールとサービスを実行するプロセスの関連
- 2.1.12 リカーシブコールを使うときの注意
- 2.1.13 サービス関数のリトライ
- 2.1.14 ユーザデータの圧縮
- 2.1.15 サービス関数実行時間の監視
- 2.1.16 マルチスケジューラ機能を使用したRPC
- 2.1.17 通信先を指定したRPC
- 2.1.18 ドメイン修飾をしたサービス要求
- 2.1.19 サービス関数とスタブの関係
- 2.2 リモートAPI機能
- 2.2.1 リモートAPI機能の使用例
- 2.2.2 常設コネクション
- 2.2.3 コネクトモード
- 2.2.4 常設コネクションでの連鎖RPC
- 2.2.5 注意事項
- 2.3 トランザクション制御
- 2.3.1 クライアント/サーバ形態の通信のトランザクション
- 2.3.2 同期点の取得
- 2.3.3 トランザクション属性の指定
- 2.3.4 リモートプロシジャコールの形態と同期点の関係
- 2.3.5 トランザクションの最適化
- 2.3.6 現在のトランザクションに関する情報を報告
- 2.3.7 ヒューリスティック発生時の処置
- 2.3.8 トランザクション処理での注意事項
- 2.4 システム運用の管理
- 2.4.1 運用コマンドの実行
- 2.4.2 ユーザサーバの開始処理完了の報告
- 2.4.3 ユーザサーバの状態の検知
- 2.5 メッセージログの出力
- 2.5.1 メッセージログをアプリケーションプログラムから出力
- 2.6 監査ログの出力
- 2.7 ユーザジャーナルの取得
- 2.8 ジャーナルデータの編集
- 2.9 メッセージログ通知の受信
- 2.10 OSI TPを使ったクライアント/サーバ形態の通信
- 2.10.1 OSI TP通信で使うアプリケーションプログラム
- 2.10.2 通信イベント処理用SPP
- 2.10.3 OSI TP通信で障害が起こった場合
- 2.11 性能検証用トレースの取得
- 2.12 リアルタイム統計情報の取得
- 3. TP1/Message Controlを使う場合の機能
- 3.1 MCF通信サービスに関する運用
- 3.2 コネクションの確立と解放
- 3.2.1 UAPからの関数の発行によるコネクションの確立と解放
- 3.2.2 コネクションを再確立・強制解放する場合のコーディング例
- 3.2.3 コネクションの確立要求の受付開始と終了
- 3.3 アプリケーションに関する運用
- 3.4 論理端末の閉塞と閉塞解除
- 3.5 通信プロトコル対応製品と運用操作で使える関数
- 3.6 メッセージ送受信
- 3.6.1 メッセージの通信形態
- 3.6.2 メッセージの構造
- 3.6.3 メッセージの受信
- 3.6.4 メッセージの送信
- 3.6.5 同期型のメッセージ処理
- 3.6.6 継続問い合わせ応答の処理
- 3.6.7 メッセージの再送
- 3.7 MCFのトランザクション制御
- 3.7.1 MHPのトランザクション制御
- 3.8 MCFの拡張機能
- 3.8.1 アプリケーションプログラムの起動
- 3.8.2 コマンドを使ったMHPの起動
- 3.8.3 非トランザクション属性のMHP
- 3.8.4 ユーザタイマ監視機能による時間監視
- 3.9 ユーザオウンコーディング(UOC)
- 3.9.1 入力メッセージの編集UOC,アプリケーション名決定UOC
- 3.9.2 タイマ起動引き継ぎ決定UOC
- 3.9.3 送信メッセージの通番編集UOC
- 3.9.4 出力メッセージの編集UOC
- 3.10 MCFイベント
- 3.10.1 不正アプリケーション名検出通知イベント(ERREVT1)
- 3.10.2 メッセージ廃棄通知イベント(ERREVT2)
- 3.10.3 UAP異常終了通知イベント(ERREVT3)
- 3.10.4 タイマ起動メッセージ廃棄通知イベント(ERREVT4)
- 3.10.5 未処理送信メッセージ廃棄通知イベント(ERREVTA)
- 3.10.6 送信障害通知イベント(SERREVT)
- 3.10.7 送信完了通知イベント(SCMPEVT)
- 3.10.8 障害通知イベント(CERREVT,VERREVT)
- 3.10.9 コネクション確立通知イベント(COPNEVT,VOPNEVT)
- 3.10.10 コネクション解放通知イベント(CCLSEVT,VCLSEVT)
- 3.10.11 MCFイベントのメッセージ形式
- 3.11 アプリケーションプログラムが使うMCFのプロセス
- 3.11.1 MCFのプロセスの種類
- 3.11.2 MCFのプロセスを使うためのファイル
- 4. ユーザデータを使う場合の機能
- 4.1 DAMファイルサービス(TP1/FS/Direct Access)
- 4.1.1 DAMファイルの構成
- 4.1.2 物理ファイルと論理ファイル
- 4.1.3 DAMファイルへのアクセスの概要
- 4.1.4 オンライン中のDAMファイルのアクセス(SUP,SPP,MHPからの操作)
- 4.1.5 オフライン中のDAMファイルのアクセス(オフラインの業務をするUAPからの操作)
- 4.1.6 物理ファイルの作成(オフラインの業務をするUAPからの操作)
- 4.1.7 DAMファイルの排他制御
- 4.1.8 回復対象外のDAMファイルへのアクセス
- 4.1.9 DAMサービスとTAMサービスとの互換
- 4.2 TAMファイルサービス(TP1/FS/Table Access)
- 4.2.1 TAMファイルの構成
- 4.2.2 TAMテーブルへアクセスするときの条件
- 4.2.3 TAMテーブルへアクセスするときの名称
- 4.2.4 TAMテーブルへのアクセス手順
- 4.2.5 トランザクションとTAMアクセスの関係
- 4.2.6 TAMテーブルの排他制御
- 4.2.7 テーブル排他なしTAMテーブルアクセス機能
- 4.2.8 TAMファイルの作成
- 4.2.9 TAMサービスとDAMサービスとの互換
- 4.2.10 TAMサービスの統計情報
- 4.2.11 TAMのレコード追加・削除に伴う注意事項
- 4.3 ISTサービス(TP1/Shared Table Access)
- 4.3.1 ISTサービスのシステム構成
- 4.3.2 ISTテーブルの概要
- 4.3.3 ISTテーブルへのアクセス手順
- 4.3.4 ISTテーブルの排他制御
- 4.4 ISAMファイルサービス(ISAM,ISAM/B)
- 4.4.1 ISAMファイルの概要
- 4.4.2 ISAMサービスの種類
- 4.5 データベースにアクセスする場合
- 4.5.1 OpenTP1のトランザクション処理との関係
- 4.5.2 XAインタフェースでデータベースにアクセスする場合の準備
- 4.5.3 リソースマネジャ接続先選択機能
- 4.6 資源の排他制御
- 4.6.1 排他の対象となる資源
- 4.6.2 排他の種類
- 4.6.3 排他待ち限界経過時間の指定
- 4.6.4 排他制御用のテーブルプール不足のとき
- 4.6.5 排他の解除方法
- 4.6.6 ロックマイグレーション
- 4.6.7 排他のテスト
- 4.7 デッドロックが起こったときの処置
- 4.7.1 デッドロックを避けるための注意
- 4.7.2 デッドロック時のOpenTP1の処置
- 5. X/Openに準拠したアプリケーションプログラミングインタフェース
- 5.1 XATMIインタフェース(クライアント/サーバ形態の通信)
- 5.1.1 XATMIインタフェースでできる通信形態
- 5.1.2 XATMIインタフェースの機能
- 5.1.3 リクエスト/レスポンス型サービスの通信
- 5.1.4 会話型サービスの通信
- 5.1.5 OpenTP1での注意事項
- 5.1.6 通信データの型
- 5.1.7 サーバUAPの作成方法
- 5.1.8 OpenTP1の機能とXATMIインタフェースの関係
- 5.2 TXインタフェース(トランザクション制御)
- 5.2.1 OpenTP1で使えるTXインタフェース
- 5.2.2 TX_関数の使用方法
- 5.2.3 TX_関数を使用する場合の制限
- 5.2.4 OpenTP1のトランザクション制御関数(dc_trn_〜)との比較
- 6. X/Openに準拠したアプリケーション間通信(TxRPC)
- 6.1 TxRPCインタフェースの通信
- 6.1.1 TxRPC通信の種類
- 6.1.2 作成できるアプリケーションプログラム
- 6.1.3 前提となるライブラリ
- 6.2 アプリケーションプログラムでできる通信
- 6.2.1 TxRPCのリモートプロシジャコール
- 6.2.2 TxRPCのトランザクション処理
- 6.2.3 OpenTP1の機能を使うアプリケーションプログラムとTxRPCのアプリケーションプログラムの関連
- 6.3 TxRPC通信のアプリケーションプログラムを作成する手順
- 6.3.1 IDL-only TxRPC通信のUAPを作成する手順
- 7. TP1/Multiを使う場合の機能
- 7.1 クラスタ/並列システム形態のアプリケーションプログラム
- 7.1.1 アプリケーションプログラムを使えるノード
- 7.1.2 アプリケーションプログラムを実行する前提条件
- 7.2 アプリケーションプログラムでできる機能
- 7.2.1 OpenTP1ノードの状態の取得
- 7.2.2 ユーザサーバの状態の取得
- 7.2.3 OpenTP1ノードのノード識別子の取得
- 7.3 マルチノード機能の関数を使える条件
- 8. OpenTP1のサンプル
- 8.1 サンプルの概要
- 8.1.1 サンプルの種類
- 8.1.2 サンプルのディレクトリ構成
- 8.1.3 サンプルの説明方法
- 8.2 Baseサンプルの使い方
- 8.2.1 サンプル共通の作業(Baseサンプル)
- 8.2.2 Baseサンプル固有の作業(スタブを使用する場合)
- 8.2.3 OpenTP1を使うための作業(スタブを使用する場合)
- 8.2.4 Baseサンプル固有の作業(サービス関数動的ローディング機能を使用する場合)
- 8.2.5 OpenTP1を使うための作業(サービス関数動的ローディング機能を使用する場合)
- 8.3 DAMサンプルの使い方
- 8.3.1 サンプル共通の作業(DAMサンプル)
- 8.3.2 DAMサンプル固有の作業
- 8.3.3 OpenTP1を使うための作業
- 8.4 TAMサンプルの使い方
- 8.4.1 サンプル共通の作業(TAMサンプル)
- 8.4.2 TAMサンプル固有の作業
- 8.4.3 OpenTP1を使うための作業
- 8.5 サンプルプログラムの仕様
- 8.5.1 サンプルで使うデータベースの内容
- 8.5.2 サンプルプログラムの処理の概要
- 8.5.3 サンプルプログラムのプログラム構造
- 8.5.4 サンプル別のプログラムの詳細
- 8.6 MCFサンプルの使い方
- 8.6.1 MCFサンプルのディレクトリ構造
- 8.6.2 MCFサンプルを使うときの注意
- 8.7 マルチOpenTP1のコマンドを振り分けるサンプル
- 8.8 COBOL言語用テンプレート
- 8.8.1 COBOL言語用テンプレートのファイル
- 8.8.2 COBOL言語用テンプレートの使い方
- 8.9 サンプルシナリオテンプレートの使い方
- 8.10 リアルタイム取得項目定義テンプレートの使い方
- 付録
- 付録A 未決着トランザクション情報の出力形式
- 付録B デッドロック情報の出力形式
- 付録C マルチスケジューラ機能の検討が必要なシステム構成例
- 付録C.1 スケジューラ機能の処理概要
- 付録C.2 スケジューラが原因となるおそれのあるシステム構成例
- 付録C.3 マルチスケジューラ機能を使用したシステム構成例
- 付録C.4 注意事項
- 索引
All Rights Reserved. Copyright (C) 2006, 2012, Hitachi, Ltd.