Interstage Application Server J2EE ユーザーズガイド
目次 索引 前ページ次ページ

第7部 ツール編> 第51章 Interstage運用API> 51.1 Interstage運用APIの概要

51.1.3 運用操作API群の使用例

 Interstage運用APIは環境の初期化、回収の間に実行します。環境の初期化が失敗した場合は、回収処理は不要です。

image

 #include "ISOP.h"
 〜
 ISOP_CTRL env;
 /* 環境の初期化 */
 memset( (char *)&env, 0x0, sizeof( ISOP_CTRL ) );
 env.request = ISOP_RINIENV;
 env.pktvl = ISOP_006;
 ISOPenv( (char *)&env );
 if( env.result == -1 ){
  /* 異常終了 環境の回収は不要*/
  /* エラー処理 */
 }
 〜 /* 運用APIの実行 */
  /* 環境の回収 */
 memset( (char *)&env, 0x0, sizeof( ISOP_CTRL ) );
 env.request = ISOP_RTRMENV;
 env.pktvl = ISOP_006;
 ISOPenv( (char *)&env );
 if( env.result == -1 ){
  /* 異常終了 */
  /* エラー処理 */
 }

 ワークユニット名、オブジェクト名通知、サーブレット・コンテナ名通知APIで複数の名前を獲得する場合は前回復帰した制御表をそのまま指定します。そのまま指定することにより取得済みワークユニット名、オブジェクト名、サーブレット・コンテナ名数がカウントアップされます。全部の名前を取り出した場合はresultが0で復帰します。

 〜
 ISOP_LSTWU lstwu;
 〜
 memset( (char *)&lstwu, 0x0, sizeof( ISOP_LSTWU ) );
 /* 最初の名前を獲得するための設定 */
 lstwu.opctrl.request = ISOP_RLSTWU;
 lstwu.opctrl.pktvl = ISOP_006;
 lstwu.checknum = 0;
 do{ /* このループですべての名前を取り出す */
  ISOPnotify( (char *)&lstwu );
  if( lstwu.opctrl.result == -1 ){
   /* エラー処理 */
   /* ワークユニットが一つも存在しない場合もここで処理する */
   break;
   }
  〜 /* それぞれの処理 */
 }while( lstwu.opctrl. result == 1 );

image

 #include "ISOP.h"
 #define DEF_ISOPENV"ISOPenv"
 〜
 ISOP_CTRL env;
 void *handle;
 void ( *ISOPENV )( char * );
 int rtncode;
 /* ライブラリのオープン */
 handle = dlopen( "/opt/FSUNtd/lib/libistage.so", RTLD_LAZY );
 if( handle == NULL ){
  /* 異常終了 */
  /* エラー処理 */
 }
 /* 関数のアドレス取得 */
 ISOPENV = (void (*)(char *))dlsym( handle, DEF_ISOPENV );
 if( ISOPENV == NULL ){
  /* 異常終了 */
  /* エラー処理 */
 }
 /* 環境の初期化 */
 memset( (char *)&env, 0x0, sizeof( ISOP_CTRL ) );
 env.request = ISOP_RINIENV;
 env.pktvl = ISOP_006;
 (*ISOPENV)( (char *)&env );
 if( env.result == -1 ){
  /* 異常終了 環境の回収は不要*/
  /* エラー処理 */
 }
 〜 /* 運用APIの実行 */
  /* 環境の回収 */
 memset( (char *)&env, 0x0, sizeof( ISOP_CTRL ) );
 env.request = ISOP_RTRMENV;
 env.pktvl = ISOP_006;
 (*ISOPENV)( (char *)&env );
 if( env.result == -1 ){
  /* 異常終了 */
  /* エラー処理 */
 }
 /* ライブラリのクローズ */
 rtncode = dlclose( handle );
 if( rtncode != 0 ){
  /* 異常終了 */
  /* エラー処理 */
 }

 ワークユニット名、オブジェクト名通知、サーブレット・コンテナ名通知APIで複数の名前を獲得する場合は前回復帰した制御表をそのまま指定します。そのまま指定することにより取得済みワークユニット名、オブジェクト名、サーブレット・コンテナ名数がカウントアップされます。全部の名前を取り出した場合はresultが0で復帰します。

  〜
 ISOP_LSTWU lstwu;
 void ( *ISOPNOTIFY )( char * );
  〜
 memset( (char *)&lstwu, 0x0, sizeof( ISOP_LSTWU ) );
 /* 最初の名前を獲得するための設定 */
 lstwu.opctrl.request = ISOP_RLSTWU;
 lstwu.pktvl = ISOP_006;
 lstwu.checknum = 0;
 do{ /* このループですべての名前を取り出す */
  (*ISOPNOTIFY)( (char *)&lstwu );
  if( lstwu.result == -1 ){
   /* エラー処理 */
   /* ワークユニットが一つも存在しない場合もここで処理する */
   break;
    }
  〜 /* それぞれの処理 */
 }while( lstwu.result == 1 );

image

 #include "ISOP.h"
 #define DEF_ISOPENV"ISOPenv"
 〜
 ISOP_CTRL env;
 void *handle;
 void ( *ISOPENV )( char * );
 int rtncode;
 /* ライブラリのオープン */
 handle = dlopen( "/opt/FJSVtd/lib/libistage.so", RTLD_LAZY );
 if( handle == NULL ){
  /* 異常終了 */
  /* エラー処理 */
 }
 /* 関数のアドレス取得 */
 ISOPENV = (void (*)(char *))dlsym( handle, DEF_ISOPENV );
 if( ISOPENV == NULL ){
  /* 異常終了 */
  /* エラー処理 */
 }
 /* 環境の初期化 */
 memset( (char *)&env, 0x0, sizeof( ISOP_CTRL ) );
 env.request = ISOP_RINIENV;
 env.pktvl = ISOP_006;
 (*ISOPENV)( (char *)&env );
 if( env.result == -1 ){
  /* 異常終了 環境の回収は不要*/
  /* エラー処理 */
 }
 〜 /* 運用APIの実行 */
  /* 環境の回収 */
 memset( (char *)&env, 0x0, sizeof( ISOP_CTRL ) );
 env.request = ISOP_RTRMENV;
 env.pktvl = ISOP_006;
 (*ISOPENV)( (char *)&env );
 if( env.result == -1 ){
  /* 異常終了 */
  /* エラー処理 */
 }
 /* ライブラリのクローズ */
 rtncode = dlclose( handle );
 if( rtncode != 0 ){
  /* 異常終了 */
  /* エラー処理 */
 }

 ワークユニット名、オブジェクト名通知、サーブレット・コンテナ名通知APIで複数の名前を獲得する場合は前回復帰した制御表をそのまま指定します。そのまま指定することにより取得済みワークユニット名、オブジェクト名、サーブレット・コンテナ名数がカウントアップされます。全部の名前を取り出した場合はresultが0で復帰します。

  〜
 ISOP_LSTWU lstwu;
 void ( *ISOPNOTIFY )( char * );
  〜
 memset( (char *)&lstwu, 0x0, sizeof( ISOP_LSTWU ) );
 /* 最初の名前を獲得するための設定 */
 lstwu.opctrl.request = ISOP_RLSTWU;
 lstwu.pktvl = ISOP_006;
 lstwu.checknum = 0;
 do{ /* このループですべての名前を取り出す */
  (*ISOPNOTIFY)( (char *)&lstwu );
  if( lstwu.result == -1 ){
   /* エラー処理 */
   /* ワークユニットが一つも存在しない場合もここで処理する */
   break;
    }
  〜 /* それぞれの処理 */
 }while( lstwu.result == 1 );


目次 索引 前ページ次ページ

All Rights Reserved, Copyright (C) 富士通株式会社 2006