サンプルを使用した Oracle Tuxedo アプリケーションの開発方法

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

CSIMPAPP (簡単な COBOL アプリケーション) のチュートリアル

ここでは、以下の内容について説明します。

 


CSIMPAPP とは

CSIMPAPP は、Oracle Tuxedo システムに同梱の ATMI サンプル アプリケーションです。ここで説明する内容は Microfocus COBOL コンパイラを前提としています。そのため、ご使用のコンパイラによって多少手順が異なる場合があります。Oracle Tuxedo システムでサポートされている COBOL プラットフォームを確認するには、『Oracle Tuxedo システムのインストール』の付録 AOracle Tuxedo 10g リリース 3 (10.3) プラットフォーム データ シート」を参照してください。

CSIMPAPP では、クライアントとサーバがそれぞれ 1 つずつ使用されています。サーバでは、1 つのサービスだけが実行されます。つまり、クライアントから文字列を受け取り、その文字列を大文字で返します。

 


CSIMPAPP のファイルおよびリソースの準備

ここでは、CSIMPAPP の開発を始めるための準備作業について説明します。次の図は、それらの準備作業をまとめたものです。

各作業をクリックすると、その作業を行う手順が表示されます。

図 4-1 csimpapp の開発プロセス

csimpapp の開発プロセス

はじめに

このチュートリアルのサンプル アプリケーションを実行するには、Oracle Tuxedo ATMI のクライアント/サーバ ソフトウェアがインストールされ、ここで説明するファイルやコマンドを使用できることが必要です。Oracle Tuxedo システム ソフトウェアのインストールを行う場合は、『Oracle Tuxedo システムのインストール』のインストール手順を参照してください。既にインストールされている場合は、ソフトウェアのインストール先ディレクトリのパス名 (TUXDIR) を確認する必要があります。また、Oracle Tuxedo システム ディレクトリ構造内のディレクトリとファイルに読み取りパーミッションと実行パーミッションを設定し、CSIMPAPP の各ファイルをコピーしたり、Oracle Tuxedo システムの各コマンドを実行できるようにします。

このチュートリアルの目的

ここで説明する作業を行うと、クライアントおよびサーバが実行できるタスクについて理解し、環境に応じてコンフィグレーション ファイルを変更でき、tmadmin を呼び出してアプリケーションの動作を確認できるようになります。つまり、Oracle Tuxedo のすべてのアプリケーションの基本的な要素 (クライアント プロセス、サーバ プロセス、コンフィグレーション ファイルなど) を理解し、Oracle Tuxedo システムの各コマンドを使用してアプリケーションを管理できるようになります。

 


ステップ 1 : CSIMPAPP ファイルのコピー

  1. CSIMPAPP 用にディレクトリを作成し、そのディレクトリに移動します。
  2. mkdir CSIMPDIR
    cd CSIMPDIR
注意 : この作業は省略せずに行ってください。この作業を行うと、最初からあった CSIMPAPP のファイルと、手順に従って作成したファイルを確認できるようになります。csh を使用せずに、標準シェル (/bin/sh) または Korn シェルを使用してください。
  1. 環境変数を設定し、エクスポートします。
  2. TUXDIR=<BEA Tuxedo システム ルート ディレクトリのパス名>
    APPDIR=<現在の作業ディレクトリのパス名>
    TUXCONFIG=$APPDIR/TUXCONFIG
    COBDIR=<COBOL コンパイラ ディレクトリのパス名>
    COBCPY=$TUXDIR/cobinclude
    COBOPT="-C ANS85 -C ALIGN=8 -C NOIBMCOMP -C TRUNC=ANSI -C OSEXT=cbl"
    CFLAGS="-I$TUXDIR/include"
    PATH=$TUXDIR/bin:$APPDIR: $PATH
    LD_LIBRARY_PATH=$COBDIR/coblib:${LD_LIBRARY_PATH}
    export TUXDIR APPDIR TUXCONFIG UBBCONFIG COBDIR COBCPY
    export COBOPT CFLAGS PATH LD_LIBRARY_PATH

    TUXDIR および PATH を設定して、Oracle Tuxedo ディレクトリ構造内のファイルにアクセスでき、Oracle Tuxedo コマンドを実行できるようにします。

    • Sun Solaris では、PATH の最上位ディレクトリとして /usr/5bin を指定する必要があります。
    • AIX プラットフォーム (RS/6000) では、LD_LIBRARY_PATH ではなく LIBPATH を使用します。
    • HP-UX プラットフォーム (HP 9000) では、LD_LIBRARY_PATH の代わりに SHLIB_PATH を使用します。ステップ 4 で示すように、TUXCONFIG を設定して、コンフィグレーション ファイルをロードできるようにする必要があります。
  3. CSIMPAPP ファイルをコピーします。
  4. cp TUXDIR/samples/atmi/CSIMPAPP/* .
    注意 : 一部のファイルは、後で編集して実行可能ファイルを作成します。そのため、ソフトウェアに同梱のオリジナルのファイルではなく、そのコピーを使用することをお勧めします。
  5. ファイルを一覧表示します。
  6. $ ls
    CSIMPCL.cbl
    CSIMPSRV.cbl
    README
    TPSVRINIT.cbl
    UBBCSIMPLE
    WUBBCSIMPLE
    envfile
    ws
    $

    このアプリケーションを構成するファイルは、次のとおりです。

    • CSIMPCL.cbl - クライアント プログラムのソース コード
    • CSIMPSRV.cbl - サーバ プログラムのソース コード
    • TPSVRINIT.cbl - サーバ初期化プログラムのソース コード
    • UBBCSIMPLE - このアプリケーション用のテキスト形式のコンフィグレーション ファイル
    • WUBBCSIMPLE - ワークステーションのサンプル用コンフィグレーション ファイル
    • ws - 3 種類のワークステーション プラットフォームに対するクライアント プログラムの .MAK ファイルが置かれたディレクトリ

 


ステップ 2 : クライアント プログラムの検証およびコンパイル

クライアント プログラムの検証

クライアント プログラムのソース コードの内容を確認します。

$ more CSIMPCL.cbl

以下に出力結果を示します。

コード リスト 4-1 CSIMPCL.cbl のソース コード
1      IDENTIFICATION DIVISION.
2 PROGRAM-ID. CSIMPCL.
3 AUTHOR.Tuxedo DEVELOPMENT.
4 ENVIRONMENT DIVISION.
5 CONFIGURATION SECTION.
6 WORKING-STORAGE SECTION.
7 *****************************************************
8 * Tuxedo の定義
9 *****************************************************
10 01 TPTYPE-REC.
11 COPY TPTYPE.
12 *
13 01 TPSTATUS-REC.
14 COPY TPSTATUS.
15 *
16 01 TPSVCDEF-REC.
17 COPY TPSVCDEF.
18 *
19 01 TPINFDEF-REC VALUE LOW-VALUES.
20 COPY TPINFDEF.
21 *****************************************************
22 * ログ メッセージの定義
23 *****************************************************
24 01 LOGMSG.
25 05 FILLER PIC X(8) VALUE "CSIMPCL:".
26 05 LOGMSG-TEXT PIC X(50).
27 01 LOGMSG-LEN PIC S9(9) COMP-5.
28 *
29 01 USER-DATA-REC PIC X(75).
30 01 SEND-STRING PIC X(100) VALUE SPACES.
31 01 RECV-STRING PIC X(100) VALUE SPACES.
32 *****************************************************
33 * コマンドライン引数
34 *****************************************************
35 * コマンドライン引数でプログラムを起動
36 ******************************************************
37
38 PROCEDURE
39 START-CSIMPCL.
40 MOVE LENGTH OF LOGMSG TO LOGMSG-LEN.
41 ACCEPT SEND-STRING FROM COMMAND-LINE.
42 DISPLAY “SEND-STRING:” SEND-STRING.
43
44 MOVE “Started” TO LOGMSG-TEXT.
45 PERFORM DO-TPINIT.
46 PERFORM DO-TPCALL.
47 DISPLAY “RECV-STRING:” RECV-STRING.
48 PERFORM DO-TPTERM.
49 PERFORM EXIT-PROGRAM.
50 *****************************************************
51 * システムへのクライアントの登録
52 *****************************************************
53 DO-TPINIT.
54 MOVE SPACES TO USRNAME.
55 MOVE SPACES TO CLTNAME.
56 MOVE SPACES TO PASSWD.
57 MOVE SPACES TO GRPNAME.
58 MOVE ZERO TO DATALEN.
59 SET TPU-DIP TO TRUE.
60
61 CALL "TPINITIALIZE" USING TPINFDEF-REC
62 USER-DATA-REC
63 TPSTATUS-REC.
64
65 IF NOT TPOK
66 MOVE "TPINITIALIZE Failed" TO LOGMSG-TEXT
67 PERFORM DO-USERLOG
68 PERFORM EXIT-PROGRAM
69 END-IF.
70
71 *****************************************************
72 * TPCALL の発行
73 *****************************************************
74 DO-TPCALL.
75 MOVE 100 to LEN.
76 MOVE "STRING" TO REC-TYPE.
77 MOVE "CSIMPSRV" TO SERVICE-NAME.
78 SET TPBLOCK TO TRUE.
79 SET TPNOTRAN TO TRUE.
80 SET TPNOTIME TO TRUE.
81 SET TPSIGRSTRT TO TRUE.
82 SET TPCHANGE TO TRUE.
83
84 CALL "TPCALL" USING TPSVCDEF-REC
85 TPTYPE-REC
86 SEND-STRING
87 TPTYPE-REC
88 RECV-STRING
89 TPSTATUS-REC.
90
91 IF NOT TPOK
92 MOVE "TPCALL Failed" TO LOGMSG-TEXT
93 PERFORM DO-USERLOG
94 END-IF.
95
96 *****************************************************
97 * Tuxedo の終了
98 *****************************************************
99 DO-TPTERM.
100 CALL "TPTERM" USING TPSTATUS-REC.
101 IF NOT TPOK
102 MOVE "TPTERM Failed" TO LOGMSG-TEXT
103 PERFORM DO-USERLOG
104 END-IF.
105
106 *****************************************************
107 * ユーザ ログにメッセージを記録
108 *****************************************************
109 DO-USERLOG.
110 CALL "USERLOG" USING LOGMSG
111 LOGMSG-LEN
112 TPSTATUS-REC.
113
114 *****************************************************
115 * アプリケーションの終了
116 *****************************************************
117 EXIT-PROGRAM.
118 MOVE "Ended" TO LOGMSG-TEXT.
119 PERFORM DO-USERLOG.
120 STOP RUN.

表 4-1 CSIMPCL.cbl ソース コードでの重要なコード行
行数
ファイル/関数
目的
11, 14, 17, 20
COPY
Oracle Tuxedo ATMI 関数を使用する場合に、常に必要となるファイルを複製するためのコマンド。
61
TPINITIALIZE
クライアント プログラムがアプリケーションに参加する際に使用される ATMI 関数。
84
TPCALL
SERVICE-NAME で指定されたサービスにメッセージ レコードを送信する際に使用される ATMI 関数。TPCALL は、メッセージが返されるまで待機します。STRING は、Oracle Tuxedo の 3 つの基本的なレコード タイプのいずれかになります。LEN IN TPTYPE-REC 引数は、USER-DATA-REC のレコードの長さを指定します。
100
TPTERM
アプリケーションを終了するための ATMI 関数。TPTERM は、STOP RUN を実行する前にアプリケーションを終了する場合に呼び出します。
110
USERLOG
tpcall が正常に実行された場合に、サーバから返されるメッセージを表示する関数。

クライアント プログラムのコンパイル

  1. buildclient を実行して、クライアント プログラムをコンパイルします。
  2. buildclient -C -o CSIMPCL -f CSIMPCL.cbl

    CSIMPCL は出力ファイル、CSIMPCL.cbl は入力ソース ファイルです。

  3. 結果を確認します。
  4. $ ls CSIMPCL*
    CSIMPCL CSIMPCL.cbl CSIMPCL.idy CSIMPCL.int CSIMPCL.o

    CSIMPCL という実行可能モジュールが作成されました。

関連項目

 


ステップ 3 : サーバの検証およびコンパイル

サーバ プログラムの検証

  1. CSIMPSRV ATMI サーバ プログラムのソース コードの内容を確認します。
  2. $ more CSIMPSRV.cbl
    コード リスト 4-2 CSIMPSRV.cbl のソース コード
    1      IDENTIFICATION DIVISION.
    2 PROGRAM-ID. CSIMPSRV.
    3 AUTHOR.BEA Tuxedo DEVELOPMENT.
    4 ENVIRONMENT DIVISION.
    5 CONFIGURATION SECTION.
    6 WORKING-STORAGE SECTION.
    7 ******************************************************
    8 * Tuxedo の定義
    9 ******************************************************
    10 01 TPSVCRET-REC.
    11 COPY TPSVCRET.
    12 *
    13 01 TPTYPE-REC.
    14 COPY TPTYPE.
    15 *
    16 01 TPSTATUS-REC.
    17 COPY TPSTATUS.
    18 *
    19 01 TPSVCDEF-REC.
    20 COPY TPSVCDEF.
    21 ******************************************************
    22 * ログ メッセージの定義
    23 ******************************************************
    24 01 LOGMSG.
    25 05 FILLER PIC X(10) VALUE
    26 "CSIMPSRV :".
    27 05 LOGMSG-TEXT PIC X(50).
    28 01 LOGMSG-LEN PIC S9(9) COMP-5.
    29 ******************************************************
    31 * ユーザ定義のデータ レコード
    32 ******************************************************
    33 01 RECV-STRING PIC X(100).
    34 01 SEND-STRING PIC X(100).
    35 *
    36 LINKAGE SECTION.
    37 *
    38 PROCEDURE DIVISION.
    39 *
    40 START-FUNDUPSR.
    41 MOVE LENGTH OF LOGMSG TO LOGMSG-LEN.
    42 MOVE "Started" TO LOGMSG-TEXT.
    43 PERFORM DO-USERLOG.
    44
    45 ******************************************************
    46 * クライアントによって送信されたデータを取得
    47 ******************************************************
    48 MOVE LENGTH OF RECV-STRING TO LEN.
    49 CALL "TPSVCSTART" USING TPSVCDEF-REC
    50 TPTYPE-REC
    51 RECV-STRING
    52 TPSTATUS-REC.
    53
    54 IF NOT TPOK
    55 MOVE "TPSVCSTART Failed" TO LOGMSG-TEXT
    56 PERFORM DO-USERLOG
    57 PERFORM EXIT-PROGRAM
    58 END-IF.
    59
    60 IF TPTRUNCATE
    61 MOVE "Data was truncated" TO LOGMSG-TEXT
    62 PERFORM DO-USERLOG
    63 PERFORM EXIT-PROGRAM
    64 END-IF.
    65
    66 INSPECT RECV-STRING CONVERTING
    67 "abcdefghijklmnopqrstuvwxyz" TO
    68 "ABCDEFGHIJKLMNOPQRSTUVWXYZ".
    69 MOVE "Success" TO LOGMSG-TEXT.
    70 PERFORM DO-USERLOG.
    71 SET TPSUCCESS TO TRUE.
    72 COPY TPRETURN REPLACING
    73 DATA-REC BY RECV-STRING.
    74
    75 ******************************************************
    76 * ログ エラー メッセージを出力
    77 ******************************************************
    78 DO-USERLOG.
    79 CALL "USERLOG" USING LOGMSG
    80 LOGMSG-LEN
    81 TPSTATUS-REC.
    82 ******************************************************
    83 * プログラムを終了
    84 ******************************************************
    85 EXIT-PROGRAM.
    86 MOVE "Failed" TO LOGMSG-TEXT.
    87 PERFORM DO-USERLOG.
    88 SET TPFAIL TO TRUE.
    89 COPY TPRETURN REPLACING
    90 DATA-REC BY RECV-STRING.

    表 4-2 CSIMPSRV.cbl ソース コードでの重要なコード行
    行数
    ルーチン
    目的
    49
    TPSVCSTART
    このサービスを開始し、サービスのパラメータとデータを取得するためのルーチン。呼び出しが成功すると、クライアントによって送信されたデータが RECV-STRING に格納されます。
    66-68
    INSPECT
    入力を大文字に変換する文 (Microfocus 固有)。
    72
    COPY TPRETURN
    TPSUCCESS に設定された値と、変換された文字列をクライアントに返すコマンドライン。
    79
    USERLOG
    BEA Tuxedo システムとアプリケーションで使用されるメッセージを記録するルーチン。

  3. サーバの初期化時 (つまり、サービス要求の処理がサーバで開始される前) に、Oracle Tuxedo システムによって TPSVRINIT サブルーチンが呼び出されます。TPSVRINIT を理解するには、そのソース コードの内容を参照します。
  4. $ more TPSVRINIT.cbl
    コード リスト 4-3 TPSVRINIT.cbl のソース コード
    1   IDENTIFICATION DIVISION.
    2 PROGRAM-ID. TPSVRINIT.
    3 ENVIRONMENT DIVISION.
    4 CONFIGURATION SECTION.
    5 *
    6 DATA DIVISION.
    7 WORKING-STORAGE SECTION.
    8 *
    9 01 LOGMSG.
    10 05 FILLER PIC X(11) VALUE "TPSVRINIT :".
    11 05 LOGMSG-TEXT PIC X(50).
    12 01 LOGMSG-LEN PIC S9(9) COMP-5.
    13 *
    14 01 TPSTATUS-REC.
    15 COPY TPSTATUS.
    16 *********************************************************
    17 LINKAGE SECTION.
    18 01 CMD-LINE.
    19 05 ARGC PIC 9(4) COMP-5.
    20 05 ARG.
    21 10 ARGS PIC X OCCURS 0 TO 9999 DEPENDING ON ARGC.
    22 *
    23 01 SERVER-INIT-STATUS.
    24 COPY TPSTATUS.
    25 ***********************************************************
    26 PROCEDURE DIVISION USING CMD-LINE SERVER-INIT-STATUS.
    27 A-000.
    28 MOVE LENGTH OF LOGMSG TO LOGMSG-LEN.
    29 ***********************************************************
    30 * この TPSVRINIT にはコマンドライン パラメータはありません。
    31 ***********************************************************
    32 IF ARG NOT EQUAL TO SPACES
    33 MOVE "TPSVRINIT failed" TO LOGMSG-TEXT
    34 CALL "USERLOG" USING LOGMSG
    35 LOGMSG-LEN
    36 TPSTATUS-REC
    37 ELSE
    38 MOVE "Welcome to the simple service" TO LOGMSG-TEXT
    39 CALL "USERLOG" USING LOGMSG
    40 LOGMSG-LEN
    41 TPSTATUS-REC
    42 END-IF.
    43 *
    44 SET TPOK IN SERVER-INIT-STATUS TO TRUE.
    45 *
    46 EXIT PROGRAM.

Oracle Tuxedo システムでは、デフォルトでサーバが起動したことを示すメッセージが USERLOG に書き込まれます。

サーバ プログラムのコンパイル

  1. 次に示すように buildserver を実行して、ATMI サーバ プログラムをコンパイルします。
  2. buildserver -C -o CSIMPSRV -f CSIMPSRV.cbl -f TPSVRINIT.cbl -s CSIMPSRV

    CSIMPSRV は作成される実行可能ファイル、CSIMPSRV.cbl および TPSVRINIT.cbl は入力ソース ファイルです。-s CSIMPSRV は、CSIMPSRV サーバによって提供されているサービスです。

  3. カレント ディレクトリにあるファイルのリストを出力し、結果を確認します。
  4. $ ls
    CSIMPCL CSIMPCL.int CSIMPSRV.cbl CSIMPSRV.o TPSVRINIT.int
    CSIMPCL.cbl CSIMPCL.o CSIMPSRV.idy TPSVRINIT.cbl TPSVRINIT.o
    CSIMPCL.idy CSIMPSRV CSIMPSRV.int TPSVRINIT.idy UBBCSIMPLE

    CSIMPSRV 実行可能モジュールが作成されました。

関連項目

 


ステップ 4 : コンフィグレーション ファイルの編集とロード

コンフィグレーション ファイルの編集

  1. テキスト エディタで、CSIMPAPP のコンフィグレーション ファイルの内容を確認します。
  2. コード リスト 4-4 CSIMPAPP コンフィグレーション ファイル
    # 簡単な BEA Tuxedo COBOL アプリケーション用の UBBCONFIG スケルトン ファイルです。
    # <山かっこで囲まれた文字列> を適切な値で置き換えます。
    *RESOURCES
    IPCKEY <有効な IPC キーで置き換えます>
    # 例 :
    #IPCKEY 123456

    DOMAINID UBBCSIMPLE
    MASTER simple
    MAXACCESSERS 5
    MAXSERVERS 5
    MAXSERVICES 10
    MODEL SHM
    LDBAL N
    *MACHINES
    DEFAULT:
    APPDIR="<現在のパス名で置き換えます>"
    TUXCONFIG="<TUXCONFIG のパス名で置き換えます>"
    TUXDIR="<BEA Tuxedo のルート ディレクトリ (/ 以外) を指定します>"
    ENVFILE="<環境変数ファイルのパス名を指定します>"
    # 例 :
    # APPDIR="/home/me/simpapp"
    # TUXCONFIG="/home/me/simpapp/TUXCONFIG"
    # TUXDIR="/usr/tuxedo"
    # ENVFILE=”/home/me/simpapp/envfile”
    <Machine-name> LMID=simple
    # 例 :
    #usltux LMID=simple
    *GROUPS
    GROUP1
    LMID=simple GRPNO=1 OPENINFO=NONE
    *SERVERS
    DEFAULT:
    CLOPT="-A"
    CSIMPSRV           SRVGRP=GROUP1   SRVID=1
    *SERVICES
    CSIMPSRV
  3. 山かっこで囲まれた各文字列を適切な値に置き換えます。
    • IPCKEY - ほかのユーザと衝突しない値を指定します。
    • TUXCONFIG - TUXCONFIG バイナリ ファイルの絶対パス名を指定します。
    • TUXDIR - Oracle Tuxedo システム ルート ディレクトリの絶対パス名を指定します。
    • APPDIR - アプリケーションを起動するディレクトリ (この例ではカレント ディレクトリ) の絶対パス名を指定します。
    • ENVFILE - mcviewctmloadcf などで使用される環境ファイルの絶対パス名を指定します。
    • machine-name - UNIX プラットフォームの uname -n コマンドで返されるマシン名を指定します。
注意 : TUXCONFIG および TUXDIR のパス名は、既に設定してエクスポートした TUXCONFIG および TUXDIR のパス名と一致する必要があります。実際のパス名を指定してください。TUXCONFIG などの環境変数で参照されるパス名は使用できません。山かっこは必ず削除してください。

コンフィグレーション ファイルのロード

  1. tmloadcf を実行して、コンフィグレーション ファイルをロードします。
  2. $ tmloadcf UBBCSIMPLE
    TUXCONFIG ファイルを初期化しますか: /usr/me/CSIMPDIR/TUXCONFIG [y, q] ? y
    $
  3. カレント ディレクトリにあるファイルのリストを出力し、結果を確認します。
  4. $ ls
    CSIMPCL CSIMPCL.o CSIMPSRV.int TPSVRINIT.int
    CSIMPCL.cbl CSIMPSRV CSIMPSRV.o TPSVRINIT.o
    CSIMPCL.idy CSIMPSRV.cbl TPSVRINIT.cbl TUXCONFIG
    CSIMPCL.int CSIMPSRV.idy TPSVRINIT.idy UBBCSIMPLE

    Oracle Tuxedo システムによって制御される新しいファイル TUXCONFIG がロードされました。

関連項目

 


ステップ 5 : アプリケーションの起動

tmboot を実行して、アプリケーションを起動します。

$ tmboot
すべての TUXEDO 管理プロセスとアプリケーションのサーバ・プロセスを起動させますか? (y/n): y
/usr/me/CSIMPDIR/TUXCONFIG のすべての TUXEDO 管理プロセスとアプリケーションのサーバ・プロセスを起動します。
すべての TUXEDO 管理プロセスを起動します。
exec BBL -A:
プロセス ID=24223 を起動しました。
TUXEDO 管理プロセスを起動します。
exec CSIMPSRV -A :
プロセス ID=24257 を起動しました。
2 個のプロセスを起動しました。
$

BBL (Bulletin Board Liaison) は、アプリケーションの共有メモリをモニタする管理プロセスです。CSIMPSRV は、要求を受け取るために継続的に実行している CSIMPAPP サーバです。

関連項目

 


ステップ 6 : ランタイム アプリケーションのテスト

CSIMPAPP をテストするには、クライアントから要求を送信します。

$ CSIMPCL “hello world”
HELLO WORLD

 


ステップ 7 : ランタイム アプリケーションのモニタ

システム管理者は tmadmin コマンド インタプリタを使用して、アプリケーションを調べ、動的に変更を加えることができます。tmadmin を実行するには、TUXCONFIG 変数を設定する必要があります。

tmadmin を使用すると、50 個以上のコマンドを解釈したり実行することができます。完全なリストについては、『Tuxedo コマンド リファレンス』の「tmadmin(1)」を参照してください。この例では、2 つの tmadmin コマンドを使用します。

  1. 次のコマンドを入力します。
  2. tmadmin

    次が出力されます。

    tmadmin - Copyright (c) 1999 BEA Systems Inc.; 1991 USL.All rights reserved.
    >
注意 : 大なり記号 (>) は、tmadmin のプロンプトです。
  1. printserver(psr) コマンドを入力して、サーバに関する情報を出力します。
  2. > psr
    a.out 名 キュー名 グループ名 ID 要求終了 ロード終了 現サービス
    ---------- ---------- -------- -- ------ --------- ---------------
    BBL 531993 simple 0 0 0 (IDLE)
    CSIMPSRV 00001.00001 GROUP1 1 0 0 (IDLE)
    >
  3. printservice(psc) コマンドを入力して、サービスに関する情報を出力します。
  4. > psc
    サービス名 ルーチン名 a.out 名 グループ名 ID マシン 終了数 状態
    ------------ ------------ ---------- -------- -- ------- ---- -------
    CSIMPSRV CSIMPSRV CSIMPSRV GROUP1 1 simple - AVAIL
    >
  5. プロンプトで「q」と入力して、tmadmin を終了します。アプリケーションの起動と停止は、tmadmin から行うことができます。

関連項目

 


ステップ 8 : アプリケーションの停止

  1. tmshutdown を実行して、アプリケーションを停止します。
  2. $ tmshutdown
    すべての TUXEDO 管理プロセスとアプリケーションのサーバ・プロセスをシャットダウンさせますか?(y/n): y
    /usr/me/CSIMPDIR/TUXCONFIG のすべての TUXEDO 管理プロセスとアプリケーションのサーバ・プロセスをシャットダウンします。
    アプリケーションのサーバ・プロセスをシャットダウンします。
    サーバ Id = 1 グループ Id = GROUP1 マシン = simple:  シャットダウンしました。
    TUXEDO 管理プロセスをシャットダウンします。
    サーバ Id = 0 グループ Id = simple マシン = simple:  シャットダウンしました。
    2 個のプロセスが終了しました。
    $
  3. ULOG の内容を確認します。
  4. $ cat ULOG*
    $
    140533.usltux!BBL.22964: LIBTUX_CAT:262: サーバの main() が起動しました。
    140540.usltux!CSIMPSRV.22965: COBAPI_CAT:1067: INFO: サーバの main() が起動しました。
    140542.usltux!CSIMPSRV.22965: TPSVRINIT :Welcome to the simple service
    140610.usltux!?proc.22966: CSIMPCL:起動しました。
    140614.usltux!CSIMPSRV.22965: CSIMPSRV :起動しました。
    140614.usltux!CSIMPSRV.22965: CSIMPSRV :成功
    140614.usltux!?proc.22966: 新しいログ・ファイル
    /home/usr_nm/CSIMPDIR/ULOG.112592 に切り替えます。
    140614.usltux!?proc.22966: CSIMPCL:終了しました。

    このセッションでは、ULOG の各行に意味があります。まず、ULOG 行の形式を確認してください。

    time (hhmmss).machine_uname!process_name.process_id: log message

    次に、実際のコード行を確認してください。

    140542. CSIMPSRV 内の TPSVRINIT からのメッセージ

関連項目


  ページの先頭       前  次