Tuxedoのコンフィギュレーション
ubbconfig
0.改定履歴
- 1996.06.27 初 版(制作途中版で公開・配布)
- 1996.07.07 内容をubbconfig部分に絞り,とりあえず完成させた.
- 1996.07.10 間違いを直した.
- 1996.07.11 章の発番間違いを直した.
- 1996.07.12 MACHINESセクションのenvfileの記述を追加した.
- 1996.07.25 「LMID名はUNIQにする」命名規則を追加.
- 1996.08.13 詳細情報の追加
1.はじめに
ここでは,それぞれのユーザが,既にTuxedoおよびC,COBOLコンパイラ,Oracle等が使用可能である環境である事を前提とする.
2.ubbconfigとは
- ubbconfigとは,Tuxedoで使用されるサービスの定義ファイル.
- tuxconfigファイルの元になるモノである.
- ubbconfigと呼ばれる種類のファイルは,中身はテキストファイル.
- ubbconfigのファイル名は何でも良い.
- 「tmloadcf」コマンドによりubbconfigファイルをtuxconfigファイルに変換する.
3.ubbconfigファイル
使用したubbconfigは,次のようになっている.
01:*RESOURCES 02:IPCKEY 123456 03:UID 1001 04:GID 1000 05:MASTER HostName 06:MAXACCESSERS 50 07:MAXSERVERS 50 08:MAXGTT 50 09:CMTRET COMPLETE 10:SCANUNIT 10 11:PERM 0660 12:MODEL MP 13:NOTIFY DIPIN 14:LDBAL Y 15:OPTIONS LAN 16: 17:*MACHINES 18:apserver1 LMID=APSERVER1 19: ROOTDIR="/opt/FSUNtpbs" 20: APPDIR="/LOCAL/0/tuxdemo/samp" 21: TUXCONFIG="/LOCAL/0/tuxdemo/samp/tuxconfig" 22: ENVFILE="/LOCAL/0/tuxdemo/samp/envfile" 23: MAXWSCLIENTS=4 24: TYPE=euc 25: 26:apserver2 LMID=APSERVER2 27: ROOTDIR="/opt/FSUNtpbs" 28: APPDIR="/home1/minipro2/samp" 29: TUXCONFIG="/home1/minipro2/samp/tuxconfig" 30: ENVFILE="/home1/minipro2/samp/envfile" 31: MAXWSCLIENTS=4 32: TYPE=euc 33:*NETWORK 34:APSERVER1 NADDR="0x00021389429ba082" 35: BRIDGE="/dev/tcp" 36: NLSADDR="0x00021388429ba082" 37:APSERVER2 NADDR="0x00021389429ba083" 38: BRIDGE="/dev/tcp" 39: NLSADDR="0x00021388429ba083" 40: 41:#port 5000 -> 1388 42:#port 5001 -> 1389 43:#DB Server 66.155.160.130 -> 429ba082 44:#AP Server 66.155.160.131 -> 429ba083 45: 46:*GROUPS 47:GROUP1 48: LMID=APSERVER1 GRPNO=1 OPENINFO=NONE 49:GROUP2 50: LMID=APSERVER2 GRPNO=2 OPENINFO=NONE 51: 52:*SERVERS 53:DEFAULT: 54: RESTART=Y MAXGEN=5 REPLYQ=Y CLOPT="-A" 55:dbserver SRVGRP=GROUP1 SRVID=1 56: CLOPT="-A" 57:APLSERVER SRVGRP=GROUP2 SRVID=2 58: CLOPT="-A" 59:"WSL" SRVGRP=GROUP2 SRVID=3 GRACE=0 60: CLOPT="-A -- -n 0x0002138A429ba083 -d /dev/tcp" 61: 62:*SERVICES 63:DBSERVER 64:APLSERVER
ubbconfigファイル内は,いくつかのセクションに別れている.
次にそれを示す.
3.1 RESOURCEセクション
- 02:IPCKEYを設定する. 他のTuxedoのプロセスと重複しない用に設定する.32769以上262141以下の値を用いる.
- 03:プロセスを稼働させるユーザのユーザID(UNIX)を指定する.
- 04:プロセスを稼働させるユーザのグループID(UNIX)を指定する.
- 05:TuxedoのマスタサーバとなるマシンのLMID名を設定する.
- 06:掲示板を同時に使用するプロセスの最大値を指定する. クライアントアプリおよびサーバアプリの数を含むが,管理用サーバやtmadminは除く. 1以上32767以下になる. デフォルト50となる.
- 07:掲示板を同時に使用するサーバ数の最大値を指定する. 1以上8191以下とする. デフォルト50となる.
- 12:TPシステムのマシン形態を定義する. SHMは1台のマシン,MPは複数代のマシンで構成される事を示す.
Tuxedoが複数のマシンで通信をしながら稼働する環境の場合,その中の1つのマシンをマスタサーバとする.
このプロジェクトの場合,APサーバ上がこのマスタサーバになると思われる.(確定ではない)
3.2 MACHINESセクション
今回のデモでは,2つのマシンを使用しているが,ここではDBサーバ側の設定のみ説明する.
- 18:論理マシン名を設定する. ここではホスト名「apserver1」を「APSERVER1」として定義している.
- 19:Tuxedoがインストールされているディレクトリを示す.
- 20:Tuxedoに登録したサービスのモジュールが格納されているディレクトリを設定する.
- 21:ubbconfigによって生成された「tuxconfig」ファイルが格納されているディレクトリを示す.
- 22:envfileを記述する.envfileにはCOBOLプログラムが稼働するために必要なライブラリへのパスが設定されている.
複数のTuxedoが,同じマシン構成で稼働している場合,論理マシン名がそれぞれの設定で重複していると不具合が発生するので,開発者毎等で切り分ける必要がある.
開発者毎に作成されるアプリケーションの保存位置(ディレクトリパス)は異なるので,APPDIRが指す位置は個別に編集する必要がある.
複数のマシンでTuxedoが稼働する場合,tuxconfigはマスタサーバ上のモノがスレーブとなるマシンに転送される. よって,マスタサーバ以外のマシンでは,その転送先を示すこととなる.
3.3 NETWORKセクション
- 34:LMID名APSERVER1上で稼働するBRIDGEプロセスが通信に使用するアドレスとポートを16進数で記述する.
- 35:BRIDGEが通信する形態を示す.
- 36:tlistenが他のマシンとの通信に使用するアドレスとポートを16進数で記述する.
BRIDGEは,他の論理マシンで稼働しているTuxedoプロセスと通信を行なうためのプロセスである.
tlistenは,マスタサーバ上でTuxedoを起動(tmboot)した際に,他のマシンへtuxconfigファイルの転送およびそのサーバでのサービスプロセスを稼働させる為の通信用プロセスである.
3.4 GROUPSセクション
- 47:サービスのグループ名を設定する. ここでは「GROUP」としているが名前は任意.
- 48:前述47行目で設定しているグループがどのLMID上で稼働するか,また重複しないようにグループの番号を設定する.
3.5 SERVERSセクション
- 55:サービスが所属しているGROUPセクションで設定したグループ,サーバのIDを設定する.
1つ例にとると,「dbserver」というサービスはマシンf0asfs01で稼働されるべきモノである場合,SRVGRPはGROUPセクションで設定されているGROUP1を設定する.
SRVIDは,SERVERSセクション内で重複しないように設定すればよい.
サービス「WSL」とは,Tuxedoのプロセスがクライアントと通信を行なうためのプロセスである. この場合,APサーバ(apserver2)がクライアントと通信を行なう様になるので,そこで起動するためにSRVGRPはGROUP2(つまりapserver2)となっている.
また,60行目で指定してあるPort,IPアドレスは,クライアントとの通信を行なう為のもので,クライアントでは,この値をautoexec.batファイルで環境変数として設定する.
3.6 SERVICESセクション
稼働するすべてのユーザのサービス名を記述する.
Tuxedoのシステムが持っているサービス名(BBLとかWSLとか)は必要ない.
サービスは,(C言語の場合)buildserver,(COBOLの場合)CB85SRVRコマンドで登録されたモノを利用する.(ビルドサーバについてはPro*C用Makefile解説またはCOBOL用Makefile解説を参照)
3.7 ヒント
- IPCKEY
- 各開発者毎にある一定のIPCKEYの範囲を切ってあげれば良いかと思う.たとえば,「新内様は1000から1099までの範囲で使ってね」とか.
- Port番号
- クライアント,AP,DBそれぞれのプロセスが通信を行なうPort番号を割り振る必要がある. これはIPCKEYと同様にテストを行なう場合のユーザおよびアプリケーションでのバッティングが発生すると厄介だからである.