Oracle Tuxedo ATMIアプリケーション開発のためのチュートリアル

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

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

このトピックには次の項が含まれます:

 


CSIMPAPPとは

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

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

 


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

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

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

図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=<pathname of the BEA Tuxedo System root directory>
    APPDIR=<pathname of your present working directory>
    TUXCONFIG=$APPDIR/TUXCONFIG
    COBDIR=<pathname of the COBOL compiler directory>
    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 definitions
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 * Log messages definitions
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 * Command line arguments
34 *****************************************************
35 * Start program with command line args
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 * Now register the client with the system.
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 * Issue a 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 * Leave 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 * Log messages to the userlog
108 *****************************************************
109 DO-USERLOG.
110 CALL "USERLOG" USING LOGMSG
111 LOGMSG-LEN
112 TPSTATUS-REC.
113
114 *****************************************************
115 *Leave Application
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を実行して、ATMIクライアント・プログラムをコンパイルします。
  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 definitions
    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 * Log message definitions
    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 * User defined data records
    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 * Get the data that was sent by the client
    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 * Write out a log err messages
    77 ******************************************************
    78 DO-USERLOG.
    79 CALL "USERLOG" USING LOGMSG
    80 LOGMSG-LEN
    81 TPSTATUS-REC.
    82 ******************************************************
    83 * EXIT PROGRAM
    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
    Oracle 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 * There are no command line parameters in this 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構成ファイル
    #Skeleton UBBCONFIG file for the BEA Tuxedo COBOL Simple Application.
    #Replace the <bracketed> items with the appropriate values.
    *RESOURCES
    IPCKEY <Replace with a valid IPC Key>
    #Example:
    #IPCKEY 123456

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

構成ファイルのロード

  1. tmloadcfを実行して、構成ファイルをロードします。
  2. $ tmloadcf UBBCSIMPLE
    Initialize TUXCONFIG file: /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
Boot all admin and server processes? (y/n): y
Booting all admin and server processes in /usr/me/CSIMPDIR/TUXCONFIG
Booting all admin processes ...
exec BBL -A:
process id=24223 ... Started.
Booting server processes ...
exec CSIMPSRV -A :
process id=24257 ... Started.
2 processes started.
$

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

関連項目

 


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

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

$ CSIMPCL “hello world”
HELLO WORLD

 


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

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

tmadminを使用すると、50個以上のコマンドを解釈したり実行したりできます。完全なリストについては、『Oracle 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 Name Queue Name Grp Name ID RqDone Load Done Current Service
    ---------- ---------- -------- -- ------ --------- ---------------
    BBL 531993 simple 0 0 0 (IDLE)
    CSIMPSRV 00001.00001 GROUP1 1 0 0 (IDLE)
    >
  3. printservice(psc)コマンドを入力して、サービスに関する情報を出力します。
  4. > psc
    Service Name Routine Name a.out Name Grp Name ID Machine # Done Status
    ------------ ------------ ---------- -------- -- ------- ---- -------
    CSIMPSRV CSIMPSRV CSIMPSRV GROUP1 1 simple - AVAIL
    >
  5. プロンプトで「q」と入力して、tmadminを終了します。アプリケーションの起動と停止は、tmadminから行うことができます。

関連項目

 


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

  1. tmshutdownを実行して、アプリケーションを停止します。
  2. $ tmshutdown
    Shutdown all admin and server processes? (y/n): y
    Shutting down all admin and server processes in /usr/me/CSIMPDIR/TUXCONFIG
    Shutting down server processes ...
    Server Id = 1 Group Id = GROUP1 Machine = simple:  shutdown succeeded.
    Shutting down admin processes ...
    Server Id = 0 Group Id = simple Machine = simple:  shutdown succeeded.
    2 processes stopped.
    $
  3. ULOGの内容を確認します。
  4. $ cat ULOG*
    $
    140533.usltux!BBL.22964: LIBTUX_CAT:262: std main starting
    140540.usltux!CSIMPSRV.22965: COBAPI_CAT:1067: INFO: std main starting
    140542.usltux!CSIMPSRV.22965: TPSVRINIT :Welcome to the simple service
    140610.usltux!?proc.22966: CSIMPCL:Started
    140614.usltux!CSIMPSRV.22965: CSIMPSRV :Started
    140614.usltux!CSIMPSRV.22965: CSIMPSRV :Success
    140614.usltux!?proc.22966: switch to new log file
    /home/usr_nm/CSIMPDIR/ULOG.112592
    140614.usltux!?proc.22966: CSIMPCL:Ended

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

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

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

    140542. Message from TPSVRINIT in CSIMPSRV

関連項目


  先頭に戻る       前  次