<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    本站不再更新,歡迎光臨 java開發技術網
    隨筆-230  評論-230  文章-8  trackbacks-0
    Windows平臺下tuxedo應用simpapp舉例
  • 初步理解tuxedo應用的各個組成部分:客戶端、服務端、配置文件、系統管理等
  • 了解tuxedo應用客戶端、服務端程序代碼組成部分及編譯方法
  • 了解tuxedo應用的ubbconfig配置文件的作用及編譯方法
  • 了解tuxedo應用的啟動、停止方法
  • 了解tuxedo應用的系統管理基本命令

    二、 準備工作

  • 系統要求安裝tuxedo軟件
  • 要求設置必要的環境變量
  • 安裝C語言編譯器(VC++、Borland C++等)

    三、 simpapp例子建立步驟

  • 建立新目錄,復制simpapp文件到新目錄下,設置環境變量
  • 服務端、客戶端程序代碼簡單解釋并編譯程序
  • 編輯ubbconfig配置文件并編譯
  • 啟動simpapp應用程序
  • 執行simpapp應用程序
  • 運行tmadmin管理程序
  • 關閉simpapp應用

    四、 復制simpapp應用程序
    (1) 建立新目錄,并復制simpapp到新目錄下(以下建立wsy目錄,并復制simpapp到wsy目錄下),如下圖:



    (2) 修改setenv.cmd文件的環境變量
    修改setenv.cmd文件中TUXDIR、APPDIR、PATH、TUXCONFIG等環境變量,設置成正確的環境變量。
    TUXDIR:tuxedo軟件安裝目錄
    APPDIR:tuxedo應用可執行程序目錄
    PATH:包含%TUXDIR%in、%APPDIR%路徑
    TUXCONFIG:tuxedo的ubbconfig配置文件編譯后的二進制文件路徑
    VCVARS32.bat為VC++的環境變量批處理文件
    注:這些環境變量要求與ubbconfig配置文件設置的環境變量相同



    (3)執行setenv.cmd文件的環境變量



    五、 客戶端代碼簡析及編譯
    (1)客戶端simpcl.c代碼分析

  •  
      一、 課程目標
    通過本課程學習,你可以掌握如下知識:

    #include

    #include "atmi.h"         /* TUXEDO 頭文件*/

    #if defined(__STDC__) || defined(__cplusplus)

    main(int argc, char *argv[])

    #else

    main(argc, argv)

    int argc;

    char *argv[];

    #endif

    {

           char *sendbuf, *rcvbuf;

           long sendlen, rcvlen;

           int ret;

     

           if(argc != 2) {

                  (void) fprintf(stderr, "Usage: simpcl string ");

                  exit(1);

           }

           /* 作為tuxedo客戶端連入tuxedo System */

           if (tpinit((TPINIT *) NULL) == -1) {

                  (void) fprintf(stderr, "Tpinit failed ");

                  exit(1);

           }

           sendlen = strlen(argv[1]);

           /* 使用tpalloc申請string類型buffer作為請求和應答buffer */

           if((sendbuf = (char *) tpalloc("STRING", NULL, sendlen+1)) == NULL) {

                  (void) fprintf(stderr,"Error allocating send buffer ");

                  tpterm();

                  exit(1);

           }

           if((rcvbuf = (char *) tpalloc("STRING", NULL, sendlen+1)) == NULL) {

                  (void) fprintf(stderr,"Error allocating receive buffer ");

                  tpfree(sendbuf);

                  tpterm();

                  exit(1);

           }

           (void) strcpy(sendbuf, argv[1]);

           /* 同步調用TOUPPER服務 */

           ret = tpcall("TOUPPER", (char *)sendbuf, 0, (char **)&rcvbuf, &rcvlen, (long)0);

           if(ret == -1) {

                  (void) fprintf(stderr, "Can't send request to service TOUPPER ");

                  (void) fprintf(stderr, "Tperrno = %d ", tperrno);

                  tpfree(sendbuf);

                  tpfree(rcvbuf);

                  tpterm();

                  exit(1);

           }

           (void) fprintf(stdout, "Returned string is: %s ", rcvbuf);

           /* 使用tpfree釋放申請的請求和應答buffer空間 */

           tpfree(sendbuf);

           tpfree(rcvbuf);

           /* 使用tpterm離開tuxedo System */

           tpterm();

           return(0);

    }


    (2)客戶端編譯
    客戶端代碼使用buildclient編譯,如下圖:


    buildclient參數說明:
    -o:指明客戶端程序的可執行(輸出目標)文件名稱
    -f:指明客戶端源程序文件名稱

    六、 服務端代碼簡析及編譯
    (1)服務端simpserv.c代碼分析

    #include

    #include

    #include        /* TUXEDO頭文件 */

    #include   /* TUXEDO頭文件 */

     

    #if defined(__STDC__) || defined(__cplusplus)

    tpsvrinit(int argc, char *argv[])

    #else

    tpsvrinit(argc, argv)

    int argc;

    char **argv;

    #endif

    {

           /* 如果沒有argcargv一些編譯系統會有警告信息. */

           argc = argc;

           argv = argv;

     

           /* userlog tuxedo消息寫入日志文件中 */

           userlog("Welcome to the simple server");

           return(0);

    }

     

    #ifdef __cplusplus

    extern "C"

    #endif

    void

    #if defined(__STDC__) || defined(__cplusplus)

    TOUPPER(TPSVCINFO *rqst)  /*tuxedo服務名字TOUPPER*/

    #else

    TOUPPER(rqst)

    TPSVCINFO *rqst;

    #endif

    {

           int i;

           for(i = 0; i < rqst->len-1; i++)

                  rqst->data[i] = toupper(rqst->data[i]);

           /* 設置返回客戶端buffer */

           tpreturn(TPSUCCESS, 0, rqst->data, 0L, 0);

    }

     

    (2)服務端simpserv.c編譯方法
    服務端代碼使用buildserver編譯,如下圖:



    buildserver參數說明:
    -o:指明服務端程序的可執行(輸出目標)文件名稱
    -f:指明服務端源程序文件名稱
    -s:提供系統啟動時的tuxedo系統服務的名稱

    七、 編輯ubbconfig配置文件并編譯

    #ident  "@(#) apps/simpapp/ubbsimple    : 1.1

    #Skeleton UBBCONFIG file for the TUXEDO Simple Application.

    #Replace the items with the appropriate values.

    *RESOURCES

    IPCKEY      262101

    #IPCKEY必須是在32768 與 262143 之間

    #Example:

    #IPCKEY     123456

    DOMAINID    simpapp

    MASTER      simple

    MAXACCESSERS    10

    MAXSERVERS  5

    MAXSERVICES10

    MODEL       SHM

    LDBAL       N

     

    *MACHINES

    DEFAULT:

            APPDIR="c: uxedowsy"

            TUXCONFIG="c: uxedowsy uxconfig"

            TUXDIR="c: uxedo"

    "WSY"       LMID=simple

     

    *GROUPS

    GROUP1

        LMID=simpleGRPNO=1OPENINFO=NONE

    *SERVERS

    DEFAULT:

            CLOPT="-A"

    simpserv    SRVGRP=GROUP1 SRVID=1

     

    *SERVICES

    TOUPPER


    (2)使用tmloadcf編譯ubbconfig文件,生成二進制的TUXCONFIG環境所指定的文件



    八、 啟動simpapp應用程序
    使用tmboot啟動tuxedo應用程序,如下圖:



    九、 執行simpapp應用程序
    執行simpcl命令可以將客戶端發送到服務端的小寫字符轉換為大寫并返回給客戶端,如圖:



    十、 運行tmadmin管理程序
    系統管理員可以使用tuxedo提供的tmadmin命令對tuxedo應用進行管理、動態配置,下面例舉了常用的psr和psc命令。具體的參考tmadmin命令手冊。



    (1)printserver(可簡寫為psr):輸出server的相關信息等
    (2)printservice(可簡寫為psc)輸出services的相關信息等
    (3)quit:退出tmadmin命令控制界面

    十一、 關閉simpapp應用程序
    運行tmshutdown命令停止tuxedo應用服務程序,如圖:




     作者簡介
    吳紹永是(dev2dev ID: wsywin) BEA dev2dev中文網站--在線技術論壇Tuxedo欄目版主,資深Tuxedo專家
    posted on 2006-08-08 15:29 有貓相伴的日子 閱讀(3044) 評論(1)  編輯  收藏

    評論:
    # re: Windows平臺下tuxedo應用simpapp舉例(tuxedo入門)(轉自于bea.com.cn) 2006-08-08 21:38 | 我一直在努力!
    非常好,寫的具體點就更好了  回復  更多評論
      

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    本站不再更新,歡迎光臨 java開發技術網
    主站蜘蛛池模板: 免费无码毛片一区二区APP| 好湿好大好紧好爽免费视频| 亚洲av高清在线观看一区二区| 又粗又长又爽又长黄免费视频| 久久久综合亚洲色一区二区三区 | 亚洲国产91精品无码专区| 国产麻豆一精品一AV一免费| 亚洲中文无码卡通动漫野外| 国产亚洲视频在线播放| 成人免费在线观看网站| 大地资源在线资源免费观看 | 国产成人亚洲精品91专区高清 | 亚洲日韩中文在线精品第一 | 四虎永久免费地址在线观看| 免费福利电影在线观看| 精品久久久久久亚洲中文字幕| 久久精品亚洲综合| 国产免费人视频在线观看免费| 97免费人妻在线视频| 一级成人毛片免费观看| wwwxxx亚洲| 亚洲天堂中文字幕| 亚洲天堂免费在线视频| 全免费一级午夜毛片| 青青草97国产精品免费观看 | 免费毛片毛片网址| 亚洲 暴爽 AV人人爽日日碰| 亚洲avav天堂av在线不卡| 又粗又黄又猛又爽大片免费| 国拍在线精品视频免费观看| 一级成人a毛片免费播放| 日韩免费在线中文字幕| 亚洲AV无码专区亚洲AV桃| 亚洲国产精品美女| 亚洲av无码不卡一区二区三区| 亚洲国产精品一区二区第四页| 天天摸天天碰成人免费视频| 桃子视频在线观看高清免费完整| 3344在线看片免费| xxxxx做受大片视频免费| 爱情岛论坛免费视频|