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

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

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

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

通信パラダイム

Oracle Tuxedoクライアント

Oracle Tuxedoサーバー

サーバーの基本的な動作

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

Oracle Tuxedo API: ATMI

型付きバッファの管理

型付きバッファの概要

型付きバッファの割当て

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

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

バッファ・タイプの確認

型付きバッファの解放

VIEW型バッファ

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

VIEW記述ファイルの作成

VIEWコンパイラの実行

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準拠のサーバー・グループに対するグローバル・トランザクションの定義

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

関連項目

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

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

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

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

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

マルチスレッドとは

マルチコンテキストとは

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

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

マルチスレッドおよびマルチコンテキスト・アプリケーションの利点

マルチスレッドおよびマルチコンテキスト・アプリケーションの問題点

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

起動フェーズ

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

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

作業フェーズ

サービス・リクエスト

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

トランザクション

非請求メッセージ

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

完了フェーズ

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

起動フェーズ

作業フェーズ

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

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

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

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

完了フェーズ

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

起動フェーズ

作業フェーズ

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

完了フェーズ

関連項目

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

環境の要件

設計の要件

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

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

同期に関する検討事項

アプリケーションの移植

最適なスレッド・モデル

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

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

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

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

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

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

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

コンテキストの属性

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

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

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

コンテキストの切替え

非請求メッセージの処理

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

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

コンテキストの属性

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

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

関連項目

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

スレッドの生成

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

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

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

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

コンテキストの属性

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

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

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

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

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

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

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

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

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

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

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

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

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

マルチスレッドおよびマルチコンテキスト・アプリケーションのコードのコンパイル

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

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

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

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

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

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

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

エラーの管理

システム・エラー

中断エラー

Oracle Tuxedoのシステム・エラー

呼出し記述子のエラー

上限値に関するエラー

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

会話に関するエラー

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

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

TPESVCFAILおよびTPESVCERRエラー

TPEBLOCKおよびTPGOTSIGエラー

無効な引数によるエラー

MIBエラー

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

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

パーミッション・エラー

プロトコル・エラー

キューに関するエラー

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

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

タイムアウト・エラー

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

型付きバッファのエラー

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

エラー処理

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

通信規則

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

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

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

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

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

tpcommit()関数への影響

TPNOTRANフラグへの影響

tpreturn( )およびtpforward( )関数

tpterm()関数

リソース・マネージャ

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

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

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

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

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

中央イベント・ログ

ログの名前

ログ・エントリの形式

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

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

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

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

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


  先頭に戻る       前  次