C言語を使用したOracle Tuxedo ATMIアプリケーションのプログラミング

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

Oracle Tuxedoプログラミングの紹介

Oracle Tuxedo分散アプリケーションのプログラミング

通信パラダイム

Oracle Tuxedoクライアント

Oracle Tuxedoサーバー

サーバーの基本的な動作

リクエスタとしてのサーバー

Oracle Tuxedo API: ATMI

型付きバッファの管理

型付きバッファの概要

型付きバッファの割当て

データのバッファへの格納

型付きバッファのサイズの変更

バッファ・タイプの確認

型付きバッファの解放

VIEW型バッファの使用

VIEW型バッファの環境変数の設定

VIEW記述ファイルの作成

VIEWコンパイラの実行

RECORD型バッファの使用

RECORD型バッファの環境変数の設定

コピーブック・ファイルの作成

RECORD記述ファイルの生成

FML型バッファの使用

FML型バッファの環境変数の設定

フィールド表ファイルの作成

FMLヘッダー・ファイルの作成

XML型バッファとApache Xerces C++パーサーの使用

XML型バッファについて

Apache Xerces C++パーサーについて

XMLパーサーの制御

XMLパーサーでのICUのサポート

XMLパーサーのサンプル・アプリケーション

Xercesスキーマのサンプル

XMLデータとFML/FML32バッファ間の変換

オンデマンド変換の使い方

オンデマンド変換を開始する

オンデマンド変換とXercesパーサーXML検証

自動変換の使い方

自動変換を開始する

自動変換とXercesパーサーXML検証

XMLとFML/FML32フィールド型のマッピング

変換の制限事項

MBSTRING型バッファの使用

マルチバイト文字エンコードの制御

MBSTRINGを自己記述型にする

実装

安全/危険なエンコード名

マルチバイト文字サポートの制限

マルチバイト文字エンコードでのlibiconvのサポート

バッファのカスタマイズ

独自のバッファ・タイプの定義

スイッチ要素ルーチンのコーディング

tm_typeswへの新しいバッファ・タイプの追加

新しいtm_typeswのコンパイルとリンク

16ビットWindowsプラットフォーム用の新しいtm_typeswのコンパイルとリンク

データ変換

プログラミング環境

UBBCONFIG構成ファイルの更新

環境変数の設定

必要なヘッダー・ファイルのインクルード

アプリケーションの起動と停止

クライアントのコーディング

アプリケーションへの参加

TPINIT型バッファの機能の使用

クライアントの名前付け

非請求通知の処理

システム・アクセス・モード

リソース・マネージャとの関連付け

クライアント認証

アプリケーションからの分離

クライアントのビルド

関連項目

クライアント・プロセスの例

サーバーのコーディング

Oracle Tuxedoシステムのmain()

システムで提供されるサーバーおよびサービス

システムで提供されるサーバー: AUTHSVR( )

システムで提供されるサービス: tpsvrinit( )関数

コマンド行オプションの取得

リソース・マネージャのオープン

システムで提供されるサービス: tpsvrdone( )関数

サーバーのコーディングのためのガイドライン

サービスの定義

例: バッファ・タイプの確認

例: サービス・リクエストの優先度の確認

サービス・ルーチンの終了

応答の送信

記述子の無効化

リクエストの転送

サービスの通知と通知解除

サービスの通知

サービスの通知解除

例:サービスの動的な宣言と通知解除

サーバーのビルド

関連項目

C++コンパイラの使用

サービス関数の宣言

コンストラクタとデストラクタの使用

クライアントおよびサーバーへのリクエスト/レスポンスのコーディング

リクエスト/レスポンス通信の概要

同期メッセージの送信

例: リクエスト・メッセージと応答メッセージに同じバッファの使用

例: 応答バッファのサイズ変更の確認

例: TPSIGRSTRTフラグを設定した同期メッセージの送信

例: TPNOTRANフラグを設定した同期メッセージの送信

例: TPNOCHANGEフラグを設定した同期メッセージの送信

非同期メッセージの送信

非同期リクエストの送信

例: TPNOTRANとTPNOREPLYフラグを設定した非同期メッセージの送信

例: 非同期リクエストの送信

非同期応答の受信

メッセージの優先度の設定および取得

メッセージの優先度の設定

メッセージの優先度の取得

会話型クライアントおよびサーバーのコーディング

会話型通信の概要

アプリケーションへの参加

接続の確立

メッセージの送受信

メッセージの送信

メッセージの受信

会話の終了

例: 単純な会話の終了

例: 階層構造の会話の終了

会話の切断

会話型のクライアントおよびサーバーのビルド

会話型通信イベントの理解

イベント・ベースのクライアントおよびサーバーのコーディング

イベントの概要

非請求イベント

ブローカ・イベント

通知処理

イベント・ブローカ・サーバー

システム定義のイベント

イベント・ブローカ・プログラミング・インタフェース

非請求メッセージ・ハンドラの定義

非請求メッセージの送信

名前によるメッセージのブロードキャスト

識別子によるメッセージのブロードキャスト

非請求メッセージの確認

イベントのサブスクライブ

非請求メッセージを使用した通知

サービス呼び出しまたは信頼できるキューを使用した通知

イベントに対するサブスクリプションの削除

イベントのポスト

イベントのサブスクリプションの例

グローバル・トランザクションのコーディング

グローバル・トランザクションとは

トランザクションの開始

トランザクションの中断と再開

トランザクションの中断

トランザクションの再開

例: トランザクションの中断と再開

トランザクションの終了

現在のトランザクションのコミット

トランザクションをコミットするための条件

2フェーズ・コミット・プロトコル

コミットの成功条件の選択

コミット条件での妥協点

現在のトランザクションの中断

例: 会話モードによるトランザクションのコミット

例: 参加リソースのエラーの確認

グローバル・トランザクションの暗黙的な定義

サービス・ルーチンのトランザクションの暗黙的な定義

XA準拠のサーバー・グループに対するグローバル・トランザクションの定義

トランザクションが開始されたことの確認

関連項目

マルチスレッドおよびマルチコンテキストATMIアプリケーションのプログラミング

マルチスレッド/マルチコンテキストATMIアプリケーションのプログラミングに対するサポート

マルチスレッドおよびマルチコンテキスト・アプリケーションに関するプラットフォーム固有の検討事項

マルチスレッド/マルチコンテキストATMIアプリケーションの計画と設計

マルチスレッドおよびマルチコンテキストとは

マルチスレッドとは

マルチコンテキストとは

マルチスレッド・アプリケーションまたはマルチコンテキスト・アプリケーションの監査

マルチスレッド/マルチコンテキストATMIアプリケーションの利点と問題点

マルチスレッド/マルチコンテキストATMIアプリケーションの利点

マルチスレッド/マルチコンテキストATMIアプリケーションの問題点

クライアントでのマルチスレッドとマルチコンテキストの動作

起動フェーズ

クライアント・スレッドの複数コンテキストへの参加

クライアント・スレッドの既存のコンテキストへの切り替わり

作業フェーズ

サービス・リクエスト

サービス・リクエストに対する応答

トランザクション

非請求メッセージ

ユーザー・ログで保持されるスレッド固有の情報

完了フェーズ

ATMIサーバーでのサーバー・ディスパッチ・スレッドのマルチスレッドとマルチコンテキストの動作

起動フェーズ

作業フェーズ

サーバー・ディスパッチ・スレッドの使用方法

BBLによるシステム・プロセスの正常性チェック

システムで保持されるサーバー・スレッドの統計

ユーザー・ログで保持されるスレッド固有の情報

完了フェーズ

ATMIサーバーのアプリケーション生成スレッドのマルチスレッドとマルチコンテキストの動作

起動フェーズ

作業フェーズ

ユーザー・ログで保持されるスレッド固有の情報

完了フェーズ

関連項目

マルチスレッドおよびマルチコンテキストATMIアプリケーションの設計上の検討事項

環境の要件

設計の要件

マルチスレッドやマルチコンテキストに適するアプリケーションのタスク

必要なアプリケーションと接続の数

同期に関する検討事項

アプリケーションの移植

最適なスレッド・モデル

ワークステーション・クライアントの相互運用性に関する制約

マルチスレッドおよびマルチコンテキストATMIアプリケーションの実装

マルチスレッド/マルチコンテキストATMIアプリケーションのプログラミング開始前のガイドライン

マルチスレッドATMIアプリケーションに必要な条件

マルチスレッド・アプリケーションのプログラミングでの一般的な検討事項

同時実行性に関する検討事項

ATMIクライアントでマルチコンテキストを使用するためのコーディング

コンテキストの属性

初期化時のマルチコンテキストの設定

マルチコンテキストATMIクライアントのセキュリティの実装

ATMIクライアント終了前のスレッドの同期

コンテキストの切替え

非請求メッセージの処理

マルチスレッド/マルチコンテキストATMIアプリケーションにおけるトランザクションのコーディング規則

ATMIサーバーでサーバー・ディスパッチのマルチコンテキストおよびマルチスレッドのスレッドを使用するためのコーディング

コンテキストの属性

マルチコンテキストATMIサーバーでのサーバー・ディスパッチ・スレッドのコーディング規則

ATMIサーバーおよびATMIサーバー・スレッドの初期化と終了

関連項目

ATMIサーバーのアプリケーション生成スレッドでマルチコンテキストを使用するためのコーディング

スレッドの生成

コンテキストへのアプリケーション・スレッドの関連付け

既存のサーバー・ディスパッチ・コンテキストへのアプリケーション・スレッドの関連付け

マルチコンテキスト・サーバーでの既存のサーバー・ディスパッチ・コンテキストにアプリケーション・スレッドを関連付けするためのサンプル・コード

アプリケーション生成のコンテキストへのアプリケーション・スレッドの関連付け

コンテキストの属性

アプリケーション生成のコンテキストでのATMIサーバーのアプリケーション生成スレッドのコーディング規則

マルチコンテキスト・サーバーでのアプリケーション生成のサーバー・コンテキストにアプリケーション・スレッドを関連付けするためのサンプル・コード

マルチスレッドATMIクライアントのコーディング

マルチスレッドATMIクライアントのコーディング規則

ATMIクライアントの複数のコンテキストへの初期化

ATMIクライアント・スレッドのコンテキスト状態の変化

マルチスレッド環境での応答の取得

マルチスレッド・マルチコンテキスト環境の環境変数の使用

マルチスレッドATMIクライアントでのコンテキスト単位の関数とデータ構造体

マルチスレッドATMIクライアントでのプロセス単位の関数とデータ構造体

マルチスレッドATMIクライアントでのスレッド単位の関数とデータ構造体

マルチスレッドATMIクライアントのサンプル・コード

マルチスレッドATMIサーバーのコーディング

マルチスレッド/マルチコンテキストATMIアプリケーションのコードのコンパイル

マルチスレッド/マルチコンテキストATMIアプリケーションのテスト

マルチスレッド/マルチコンテキストATMIアプリケーションのテスト時の推奨事項

マルチスレッド/マルチコンテキストATMIアプリケーションのトラブルシューティング

tpinit( )のTPMULTICONTEXTSフラグの間違った使用

TPMULTICONTEXTSが設定されていない場合のtpinit()の呼出し

スレッドのスタック・サイズの不足

マルチスレッド/マルチコンテキストATMIアプリケーションのエラー処理

エラーの管理

システム・エラー

中断エラー

Oracle Tuxedoのシステム・エラー

呼出し記述子のエラー

上限値に関するエラー

無効な記述子によるエラー

会話に関するエラー

複製オブジェクトに関するエラー

一般的な通信呼出しのエラー

TPESVCFAILおよびTPESVCERRエラー

TPEBLOCKおよびTPGOTSIGエラー

無効な引数によるエラー

MIBエラー

エントリがないために発生するエラー

オペレーティング・システムのエラー

パーミッション・エラー

プロトコル・エラー

キューに関するエラー

リリース間の互換性に関するエラー

リソース・マネージャ・エラー

タイムアウト・エラー

トランザクション・エラー

型付きバッファのエラー

アプリケーション・エラー

エラー処理

トランザクションについて

通信規則

トランザクション・エラー

致命的ではないトランザクション・エラー

致命的なトランザクション・エラー

ヒューリスティックな判断に関するエラー

トランザクション・タイムアウト

tpcommit()関数への影響

TPNOTRANフラグへの影響

tpreturn( )およびtpforward( )関数

tpterm()関数

リソース・マネージャ

トランザクションのサンプル・シナリオ

呼出し側と同じトランザクションでのサービス呼出し

AUTOTRANが設定された別のトランザクションでのサービス呼出し

新しい明示的なトランザクションを開始するサービスの呼出し

Oracle Tuxedoシステムで提供されるサブルーチン

中央イベント・ログ

ログの名前

ログ・エントリの形式

イベント・ログへの書込み

アプリケーション・プロセスのデバッグ

UNIXプラットフォーム上でのアプリケーション・プロセスのデバッグ

Windows 2003プラットフォーム上でのアプリケーション・プロセスのデバッグ

全般的なサンプル・コード


  先頭に戻る       前  次