付録G.4 TP1/NET/XMAP3運用コマンドを発行するプログラムとXMAP3 Serverサービス名ファイルの例
運用コマンドを発行するプログラムとXMAP3 Serverサービス名ファイルの例を示します。
-
ファイル名:/BeTRAN/usr/bin/actcn_dsp ※1
#include <stdio.h> #include <string.h> #include <sys/types.h> main () { char dsp[512]; char onlinecom[512]; /* サービス名 コネクション名 */ static char svname[6][11] = {"XPPDSP1","XPNCN5", /*コネクション名はmcftalccn */ "XPPPRT1","XPNCN6", /*定義コマンドで指定する*/ "XPPDSP2","XPNCN7"}; /*コネクションID*/ ※2 struct mcfcmd { char mcfid[32]; char svid[32]; char prgid[8]; char cnname[32]; char cnflg[8]; }mcfcmd_txt; int svno = 6; int rtycnt = 6; /* コネクション確立処理のリトライ回数 */ int tblp = 0; int loopc = 0; int eflag = 1; FILE *fp; ※3 strcpy(dsp,getenv("XPPDSP")); while ((eflag != 0) && (loopc < svno)) { tblp = loopc; eflag = strcmp(dsp,svname[tblp]); loopc= loopc+2; } if (eflag == 0) { sprintf(onlinecom,"/BeTRAN/bin/mcftdctcn -s 01 -f -c %s", svname[++tblp]); system(onlinecom); ※4 } eflag = 1; while ( (eflag != 0) && ( rtycnt > 0) ) { sprintf(onlinecom,"/BeTRAN/bin/mcftlscn -s 01 -c %s > /tmp/work1", svname[tblp]); ※5 system(onlinecom); sprintf(onlinecom," grep ""KFCA10361"" /tmp/work1 > /tmp/work2"); system(onlinecom); fp = fopen("/tmp/work2","r"); fscanf(fp,"%s %s %s %s %s",mcfcmd_txt.mcfid,mcfcmd_txt.svid, mcfcmd_txt.cnname,mcfcmd_txt.prgid,mcfcmd_txt.cnflg); eflag = strcmp(mcfcmd_txt.cnflg,"DCT"); /* コネクション状態の確認 */ if (eflag == 0) { sprintf(onlinecom,"/BeTRAN/bin/mcftactcn -s 01 -c %s", svname[tblp]); system(onlinecom); ※6 } sleep(10); rtycnt--; } }
-
#サービス名称;サービスタイプ;利用者プロトコル;ホスト名称;デバイス名称;APホスト名称;APパス名称;環境変数名; XPPDSP1;DSP;TCP;h3020A;XPPDSP1;h3050A;/BeTRAN/usr/bin/actcn_dsp;XPPDSP; ※1 XPPPRT1;PRT;TCP;FLORA1;XPPPRT1;h3050A;/BeTRAN/usr/bin/actcn_prt;XPPPRT; ※1 XPPDSP2;DSP;TCP;FLORA2;XPPDSP2;h3050A;/BeTRAN/usr/bin/actcn_dsp;XPPDSP; ※1
- 注※1,2,3
-
太字の部分は,運用コマンドを発行するプログラムとXMAP3 Serverサービス名ファイルとで一致させる必要があります。
- 注※4
-
/BeTRAN/bin/mcftdctcnは,OpenTP1プログラムファイルのパス名です。
- 注※5
-
/BeTRAN/bin/mcftlscnは,OpenTP1プログラムファイルのパス名です。
- 注※6
-
/BeTRAN/bin/mcftactcnは,OpenTP1プログラムファイルのパス名です。