??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲免费综合,一线天粉嫩在线播放,亚洲精品国产拍免费91在线http://www.aygfsteel.com/Vencent/category/14863.html<font color='orange'>本博客仅为收集所用。在此对原作者表C感谢?lt;/font> <center> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script><div class="custom"> <script type="text/javascript"><!-- google_ad_client = "pub-6256612161572960"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text"; google_ad_channel =""; google_page_url = document.location; google_color_border = ["FFDDAA","FFDDAA","FFDDAA","FFDDAA"]; google_color_bg = ["EEEEEE","EEEEEE","EEEEEE","EEEEEE"]; google_color_link = ["FFDDAA","0033FF","00008B","99CC33"]; google_color_url = ["999999","0033FF","00008B","FFCC00"]; google_color_text = ["0033FF","AA9999","0033FF","AA9999"]; //--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script></div></center> <!--bgsound src="http://www.aygfsteel.com/Files/Vencent/The%20Mass%20Era.zip" volume="10" loop="10"/-->zh-cnMon, 18 Jun 2007 21:46:55 GMTMon, 18 Jun 2007 21:46:55 GMT60整合weblogic cluster Q?apachehttp://www.aygfsteel.com/Vencent/articles/125027.html<font color='GREEN'>Vincent Chen</font><font color='GREEN'>Vincent Chen</font>Mon, 18 Jun 2007 17:02:00 GMThttp://www.aygfsteel.com/Vencent/articles/125027.htmlhttp://www.aygfsteel.com/Vencent/comments/125027.htmlhttp://www.aygfsteel.com/Vencent/articles/125027.html#Feedback0http://www.aygfsteel.com/Vencent/comments/commentRss/125027.htmlhttp://www.aygfsteel.com/Vencent/services/trackbacks/125027.html        位于$WL_HOME/bin目录下,其中Q?br>        mod_wl128_20.soQ用于Standard Apache Version 2.0.xQRegular Strength EncryptionQ?br>        mod_wl_20.soQ用于Standard Apache Version 2.0.xQ?28-bit EncryptionQ?br>
2. 认需要的Apache版本

3. 认在Apache中支持Plug-ins
        执行:$APACHE_HOME/bin/apache -lQ如果没有列出来mod_so.cQ则需要重?br>Build?br>
4. 安装Apache HTTP Server Plug-In module
        mod_wl_20.so复制?APACHE_HOME/modules目录下;
        修改$APACHE_HOME/conf/httpd.conf配置文gQ增加如下行Q?br>                LoadModule weblogic_module     modules/mod_wl_20.so

5. 在httpd.conf中配|其它参?br>
        <IfModule mod_weblogic.c>
                WebLogicCluster localhost:90,localhost:91
                MatchExpression *.jsp
        
</IfModule>

        
<Location /weblogic>
                SetHandler weblogic-handler
                PathTrim /
        
</Location>
        
<IfModule mod_weblogic.c>
            WebLogicCluster localhost:7003,localhost:7005,localhost:7007
            MatchExpression *
        
</IfModule>

        
<Location /DizzyTixWeb>
            SetHandler weblogic-handler
            PathTrim /
        
</Location>

        
<Location /DizzySupplies>
            SetHandler weblogic-handler
            PathTrim /
        
</Location>

(g)查httpd.conf配置是否正确QAPACHE_HOME\bin\Apache -t

6. 重启Weblogic Server
7. 启动Apache HTTP Server
8. 试插g http://localhost/weblogic/




Vincent Chen 2007-06-19 01:02 发表评论
]]>
[转帖] Windows下Tuxedo的安装与配置-无数据库http://www.aygfsteel.com/Vencent/articles/123731.html<font color='GREEN'>Vincent Chen</font><font color='GREEN'>Vincent Chen</font>Tue, 12 Jun 2007 14:34:00 GMThttp://www.aygfsteel.com/Vencent/articles/123731.htmlhttp://www.aygfsteel.com/Vencent/comments/123731.htmlhttp://www.aygfsteel.com/Vencent/articles/123731.html#Feedback0http://www.aygfsteel.com/Vencent/comments/commentRss/123731.htmlhttp://www.aygfsteel.com/Vencent/services/trackbacks/123731.html一、安装前的文件准?br>
下蝲Tuxedo For Windows版本和License文gQ本机采用的是Tuxedo9 windows版本。具?br>Windows安装q程略。正常安装后Tuxedo?x)徏一个tlisten的服务,且已自动启动?br>
本机Tuxedo安装路径 C:\bea\tuxedo9.0

二、Tuxedo安装完成后的环境变量配置
 
  [Win2000,XP]
 
  右键我的?sh)?>属?>高->环境变量Q更改变量倹{?br> 
  在LIBҎ(gu)?nbsp;    C:\bea\tuxedo9.0\lib
  在INCLUDEҎ(gu)?C:\bea\tuxedo9.0\include
  在PATHҎ(gu)?nbsp;   C:\bea\tuxedo9.0\bin
 
  d下面两个新项
  TUXDIR          C:\bea\tuxedo9.0
  WSNADDR         //192.168.98.166:4050  Tuxedo服务器IP与端?br> 
  除此之外q需要指定Tuxedo应用服务的\径,如果你用C开发了(jin)一个Tuxedo服务Q这个服?br>  文g所在的路径。本\径ؓ(f)F:\Liwei\Tuxedo\dbread?br> 
  Ҏ(gu)机器实际情况d
  APPDIR          F:\Liwei\Tuxedo\dbread
  TUXCONFIG       F:\Liwei\Tuxedo\dbread\tuxconfig
 
  注:(x)环境变量更改后确定即生效?br>
  [Win98]
 
  ?000,XP不同的是需要更改AUTOEXEC.BAT文gQ加入以下命令?br>  如SET TUXDIR=C:\bea\tuxedo9~1
 
  注:(x)AUTOEXEC.BAT有一个缺点,是更改后需要重启机器才能生效,如果我们设一个环?br>  变量文gQ如TUXENVQ,那只要在文g里修改后存盘p生效。在AUTOEXEC.BAT中长文g
  名必ȝ~写?br> 
  例:(x)
 
  SET TUXENV=C:\bea\tuxedo9~1           //TUXDEO环境变量文g

  在C:\bea\tuxedo9.0目录下创建TUXENV文gQ在文g里加?br>  APPDIR=F:\Liwei\Tuxedo\dbread
  TUXCONFIG=F:\Liwei\Tuxedo\dbread\tuxconfig
  ...

三、准备Tuxedo客户端,服务端程序代?br>
  可以直接用Tuxedo本n带的例子QC:\bea\tuxedo9.0\samples\atmi\simpapp
  客户?simpcl.c
  服务?simpserv.c
 
四、准备编译客L(fng)服务端程?br>
  q里最好是自已把各U编译命令写成批处理文g。在~译之前需要安装C语言~译器,我们
  通常使用VC++6.0Q安装时如果没有让VC讄环境变量Q在~译前需要手工运?
  E:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT
 
  注:(x)手工讄的变量在关闭命o(h)行环境就失效?jin)。最好是复制到本地文件夹?br> 
  bclt.bat文g内容
  F:
  cd F:\liwei\tuxedo\dbread
  buildclient -o simpcl -f simpcl.c -v

  bsrv.bat文g内容
  F:
  cd F:\liwei\tuxedo\dbread
  buildserver  -o simpserv -f simpserv.c -s TOUPPER -v
 
  start.bat文g内容   q文件主要作用是启动当前目录的命令环?br>  cd
  cmd
 
  ~译完成后会(x)在本地目录生成simpcl.exe和simpserv.exe。要惛_动服务,则需要配|?br>  ubbconfig?jin)?br> 
五、配|ubbconfig

  下面是一个完整的ubbconfig文gQ此文g要放在本地目录下。即与环境变量APPDIR保持
  一致。文件名随意Q这里用config文g名?br>
#Liwei

*RESOURCES
IPCKEY    123456
DOMAINID liweiapp
MASTER  lw
MAXACCESSERS 3
MAXSERVERS 3
MAXSERVICES 3
MODEL  SHM
LDBAL  N

*MACHINES
LWYM
LMID = lw
TUXDIR = "C:\bea\tuxedo9.0"
TUXCONFIG = "F:\Liwei\Tuxedo\dbread\tuxconfig"
APPDIR = "F:\Liwei\Tuxedo\dbread"

*GROUPS
GROUP1 LMID=lw GRPNO = 1 OPENINFO=NONE
*SERVERS
DEFAULT:
  CLOPT="-A"
simpserv SRVGRP=GROUP1 SRVID=1
*SERVICES
TOUPPER

  每段详细的说明很复杂Q具体可以查看相兌料。这里只Ҏ(gu)较迷惑的地方说明下?br> 
  *RESOURCES下MASTER名称LQ但要与*MACHINESQ?GROUPS里的LMID保持一致?br> 
  *RESOURCES下如MAXACCESSERSQMAXSERVERSQMAXSERVICES{设|错误如1Q编译config后,
  在命令行q行tmbootQBBL是启动不h的,重新讄正确的值后Q再~译config,tmboot
  BBL也启动不h。原因是d理器残(hu)存tuxipcq个q程Q在~译config前,q掉它就
  没问题(sh)(jin)?br> 
  *MACHINES下面的服务器机器名必L大写。否则编译config?x)提CZ么non master的错误?br> 
  *MACHINEScMTUXDIR的内容必M环境变量讄一致?br> 
  *SERVERS中的simpserv名子必须是你服务端程序编译后的EXE文g名?br> 
  *SERVICES的TOUPPER是你服务端程序编译时-s制定的服务名?br> 
五、编译configQ运行tmboot启动服务
 
  讄完成。运?br> 
  load.bat 文g内容
  F:
  cd F:\liwei\tuxedo\dbread
  tmloadcf -y config
 
  ~译config文g完成后,?x)在APPDIR下生成tuxconfig文g?br>  q行tmboot -y
  BBL服务启动成功Qsimpserv启动成功!
 
  q行tmadmin可以查看l护服务的状态等。运行simpcl.exe可以看C互过E了(jin)?/span>

Vincent Chen 2007-06-12 22:34 发表评论
]]>
Tuxedo学习(fn)W记QUBBCONFIGhttp://www.aygfsteel.com/Vencent/articles/67699.html<font color='GREEN'>Vincent Chen</font><font color='GREEN'>Vincent Chen</font>Mon, 04 Sep 2006 15:26:00 GMThttp://www.aygfsteel.com/Vencent/articles/67699.htmlhttp://www.aygfsteel.com/Vencent/comments/67699.htmlhttp://www.aygfsteel.com/Vencent/articles/67699.html#Feedback0http://www.aygfsteel.com/Vencent/comments/commentRss/67699.htmlhttp://www.aygfsteel.com/Vencent/services/trackbacks/67699.html阅读全文

Vincent Chen 2006-09-04 23:26 发表评论
]]>
Windows下Tuxedo的安装与配置-无数据库http://www.aygfsteel.com/Vencent/articles/67697.html<font color='GREEN'>Vincent Chen</font><font color='GREEN'>Vincent Chen</font>Mon, 04 Sep 2006 15:25:00 GMThttp://www.aygfsteel.com/Vencent/articles/67697.htmlhttp://www.aygfsteel.com/Vencent/comments/67697.htmlhttp://www.aygfsteel.com/Vencent/articles/67697.html#Feedback0http://www.aygfsteel.com/Vencent/comments/commentRss/67697.htmlhttp://www.aygfsteel.com/Vencent/services/trackbacks/67697.htmlWindows下Tuxedo的安装与配置-无数据库

草木?2005-5-18

一、安装前的文件准?/p>

下蝲Tuxedo For Windows版本和License文gQ本机采用的是Tuxedo9 windows版本。具?br />Windows安装q程略。正常安装后Tuxedo?x)徏一个tlisten的服务,且已自动启动?/p>

本机Tuxedo安装路径 C:\bea\tuxedo9.0

二、Tuxedo安装完成后的环境变量配置
 (tng)
 (tng) [Win2000,XP]
 (tng)
 (tng) 右键我的?sh)?>属?>高->环境变量Q更改变量倹{?br /> (tng)
 (tng) 在LIBҎ(gu)加?tng) (tng) (tng)?C:\bea\tuxedo9.0\lib
 (tng) 在INCLUDEҎ(gu)?C:\bea\tuxedo9.0\include
 (tng) 在PATHҎ(gu)加?tng) (tng)?C:\bea\tuxedo9.0\bin
 (tng)
 (tng) d下面两个新项
 (tng) TUXDIR (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) C:\bea\tuxedo9.0
 (tng) WSNADDR (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) //192.168.98.166:4050 (tng) Tuxedo服务器IP与端?br /> (tng)
 (tng) 除此之外q需要指定Tuxedo应用服务的\径,如果你用C开发了(jin)一个Tuxedo服务Q这个服?br /> (tng) 文g所在的路径。本\径ؓ(f)F:\Liwei\Tuxedo\dbread?br /> (tng)
 (tng) Ҏ(gu)机器实际情况d
 (tng) APPDIR (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) F:\Liwei\Tuxedo\dbread
 (tng) TUXCONFIG (tng) (tng) (tng) (tng) (tng) (tng) F:\Liwei\Tuxedo\dbread\tuxconfig
 (tng)
 (tng) 注:(x)环境变量更改后确定即生效?br /> (tng)
 (tng) [Win98]
 (tng)
 (tng) ?000,XP不同的是需要更改AUTOEXEC.BAT文gQ加入以下命令?br /> (tng) 如SET TUXDIR=C:\bea\tuxedo9~1
 (tng)
 (tng) 注:(x)AUTOEXEC.BAT有一个缺点,是更改后需要重启机器才能生效,如果我们设一个环?br /> (tng) 变量文gQ如TUXENVQ,那只要在文g里修改后存盘p生效。在AUTOEXEC.BAT中长文g
 (tng) 名必ȝ~写?br /> (tng)
 (tng) 例:(x)
 (tng)
 (tng) SET TUXENV=C:\bea\tuxedo9~1 (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) //TUXDEO环境变量文g

 (tng) 在C:\bea\tuxedo9.0目录下创建TUXENV文gQ在文g里加?br /> (tng) APPDIR=F:\Liwei\Tuxedo\dbread
 (tng) TUXCONFIG=F:\Liwei\Tuxedo\dbread\tuxconfig
 (tng) ...

三、准备Tuxedo客户端,服务端程序代?/p>

 (tng) 可以直接用Tuxedo本n带的例子QC:\bea\tuxedo9.0\samples\atmi\simpapp
 (tng) 客户?simpcl.c
 (tng) 服务?simpserv.c
 (tng)
四、准备编译客L(fng)服务端程?/p>

 (tng) q里最好是自已把各U编译命令写成批处理文g。在~译之前需要安装C语言~译器,我们
 (tng) 通常使用VC++6.0Q安装时如果没有让VC讄环境变量Q在~译前需要手工运?
 (tng) E:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT
 (tng)
 (tng) 注:(x)手工讄的变量在关闭命o(h)行环境就失效?jin)。最好是复制到本地文件夹?br /> (tng)
 (tng) bclt.bat文g内容
 (tng) F:
 (tng) cd F:\liwei\tuxedo\dbread
 (tng) buildclient -o simpcl -f simpcl.c -v
 (tng)
 (tng) bsrv.bat文g内容
 (tng) F:
 (tng) cd F:\liwei\tuxedo\dbread
 (tng) buildserver (tng) -o simpserv -f simpserv.c -s TOUPPER -v
 (tng)
 (tng) start.bat文g内容 (tng) (tng) q文件主要作用是启动当前目录的命令环?br /> (tng) cd
 (tng) cmd
 (tng)
 (tng) ~译完成后会(x)在本地目录生成simpcl.exe和simpserv.exe。要惛_动服务,则需要配|?br /> (tng) ubbconfig?jin)?br /> (tng)
五、配|ubbconfig

 (tng) 下面是一个完整的ubbconfig文gQ此文g要放在本地目录下。即与环境变量APPDIR保持
 (tng) 一致。文件名随意Q这里用config文g名?/p>

#Liwei

*RESOURCES
IPCKEY (tng) (tng) (tng) (tng)123456
DOMAINID (tng)liweiapp
MASTER (tng) (tng)lw
MAXACCESSERS (tng)3
MAXSERVERS (tng)3
MAXSERVICES (tng)3
MODEL (tng) (tng)SHM
LDBAL (tng) (tng)N

*MACHINES
LWYM
 (tng)LMID = lw
 (tng)TUXDIR = "C:\bea\tuxedo9.0"
 (tng)TUXCONFIG = "F:\Liwei\Tuxedo\dbread\tuxconfig"
 (tng)APPDIR = "F:\Liwei\Tuxedo\dbread"

*GROUPS
GROUP1 (tng)LMID=lw GRPNO = 1 OPENINFO=NONE
*SERVERS
DEFAULT:
 (tng) (tng)CLOPT="-A"
simpserv SRVGRP=GROUP1 SRVID=1
*SERVICES
TOUPPER

 (tng) 每段详细的说明很复杂Q具体可以查看相兌料。这里只Ҏ(gu)较迷惑的地方说明下?br /> (tng)
 (tng) *RESOURCES下MASTER名称LQ但要与*MACHINESQ?GROUPS里的LMID保持一致?br /> (tng)
 (tng) *RESOURCES下如MAXACCESSERSQMAXSERVERSQMAXSERVICES{设|错误如1Q编译config后,
 (tng) 在命令行q行tmbootQBBL是启动不h的,重新讄正确的值后Q再~译config,tmboot
 (tng) BBL也启动不h。原因是d理器残(hu)存tuxipcq个q程Q在~译config前,q掉它就
 (tng) 没问题(sh)(jin)?br /> (tng)
 (tng) *MACHINES下面的服务器机器名必L大写。否则编译config?x)提CZ么non master的错误?br /> (tng)
 (tng) *MACHINEScMTUXDIR的内容必M环境变量讄一致?br /> (tng)
 (tng) *SERVERS中的simpserv名子必须是你服务端程序编译后的EXE文g名?br /> (tng)
 (tng) *SERVICES的TOUPPER是你服务端程序编译时-s制定的服务名?br /> (tng)
五、编译configQ运行tmboot启动服务
 (tng)
 (tng) 讄完成。运?br /> (tng)
 (tng) load.bat 文g内容
 (tng) F:
 (tng) cd F:\liwei\tuxedo\dbread
 (tng) tmloadcf -y config
 (tng)
 (tng) ~译config文g完成后,?x)在APPDIR下生成tuxconfig文g?br /> (tng) q行tmboot -y
 (tng) BBL服务启动成功Qsimpserv启动成功!
 (tng)
 (tng) q行tmadmin可以查看l护服务的状态等。运行simpcl.exe可以看C互过E了(jin)?img src ="http://www.aygfsteel.com/Vencent/aggbug/67697.html" width = "1" height = "1" />

Vincent Chen 2006-09-04 23:25 发表评论
]]>
Tuxedo8.1安装l结(转自dev2dev.bea在线Q?/title><link>http://www.aygfsteel.com/Vencent/articles/67698.html</link><dc:creator><font color='GREEN'>Vincent Chen</font></dc:creator><author><font color='GREEN'>Vincent Chen</font></author><pubDate>Mon, 04 Sep 2006 15:25:00 GMT</pubDate><guid>http://www.aygfsteel.com/Vencent/articles/67698.html</guid><wfw:comment>http://www.aygfsteel.com/Vencent/comments/67698.html</wfw:comment><comments>http://www.aygfsteel.com/Vencent/articles/67698.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/Vencent/comments/commentRss/67698.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/Vencent/services/trackbacks/67698.html</trackback:ping><description><![CDATA[Tuxedo8.1 + Windows2000 Server<br />看来安装Tuxedo出问题的?sh)少啊?br /> (tng) (tng) <br />我上ơ出问题后,来这儉K?jin),后来自己摆弄Q终于弄好了(jin)?br />现在也来介绍一下我的经验,愿大安走出初学者的阴媄(jing)Q早日成为像wsywin,qiupeng,damask一L(fng)高手Q?br /> (tng) <br />我这里把我的安装l历说一下?br />1Q安装准备:(x)<br /> (tng) (tng) 安装前一定要注意Q如果想卸蝲掉原有版本,注意一定要停止当前行的Tuxedo版本Qƈ且程?〉管理工?〉服务中停止掉关?br /><br />Tuxedo的几个服务?br /> (tng) (tng) 下蝲到Tuxedo8.1版本以及(qing)相应的Lic.txt文gQ这个可以在Bea的网站上下蝲QftQ好像白天下载快些,老外的嘛Q?br /> (tng) (tng) <br />2Q安装,选择路径D:\Bea(随便选择),选择Full安装模式Q一路点击OK?br /> (tng) (tng) Create tlisten Password, 不知道干什么的Q随便输入一个吧?br /> (tng) (tng) Would you like to configure LDAP for SSL Support? yes.她呢,以后问wsywin,damask 他们?jin)?br /> (tng) (tng) 看资料也行,写得很详l。后面的LDAP Configuration配置不用她,q~省的吧?br /> (tng) <br />3Q选择好License文g的位|,安装到次l束?br /> (tng) <br />安装告一D落Q不q还早着呢,下面的配|直到运行一个简单的Simpapp很重要!<br /> (tng)<br />1,我们准备试D:\bea\tuxedo8.1\samples\atmi\simpapp下面的例子,所以我们把q里文g<br /> (tng) 拯?例如: F:\SimpApp?br /> (tng) <br />2,配置环境变量Q?br /> (tng) 我的?sh)?〉属?〉高U?〉环境变量,在Administator的用户变量中Q?br /> (tng) dQTUXDIR="D:\BEA\Tuxedo8.1"<br /> (tng) (tng) (tng) (tng) (tng) (tng) (tng) TUXCONFIG="F:\SimpApp\tuxconfig"<br /> (tng) (tng) (tng) (tng) (tng) (tng) (tng) PATH 后面加上"D:\BEA\Tuxedo8.1\bin"<br /> (tng) (tng) (tng) (tng) (tng) (tng) (tng) LD_LIBARARY_PATH=%TUXDIR%\lib<br /> (tng)<br />3,(g)查ƈ~译客户E序<br /> (tng) q行cmd,到F:\SimpApp目录下, 输入buildclient -o simpcl -f simpcl.c<br /> (tng)<br />4,(g)查ƈ~译服务E序<br /> (tng) q行cmdQ到F:\SimpApp目录?输入buildserver –o simpserv –f simpserv.c –s TOUPPER<br /> (tng)<br />5,~辑q加配置文g(q里有些ȝ(ch)Q其实文件提C写得很清楚Q需要认真看Q改写的地方不多)<br /><br /># (c) 2003 BEA Systems, Inc. All Rights Reserved.<br />#ident "@(#) samples/atmi/simpapp/ubbsimple $Revision: 1.5 $"<br /><br />#Skeleton UBBCONFIG file for the TUXEDO Simple Application.<br />#Replace the <bracketed> items with the appropriate values.<br /><br />*RESOURCES<br />IPCKEY (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) 123456 (tng) #q个地方被我改写<br /><br />#Example:<br />#IPCKEY 123456<br /><br />DOMAINID simpapp<br />MASTER (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) simple (tng) <br />MAXACCESSERS 10<br />MAXSERVERS 5<br />MAXSERVICES 10<br />MODEL SHM<br />LDBAL N<br /><br />*MACHINES<br />DEFAULT:<br /> (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) APPDIR="F:\SimpDir" (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) #q个地方被我改写<br /> (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) TUXCONFIG="F:\SimpApp\tuxconfig" (tng) (tng) (tng) #q个地方被我改写<br /> (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) TUXDIR="D:\bea\tuxedo8.1" (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) #q个地方被我改写 (tng) <br />#Example:<br /># APPDIR="/home/me/simpapp"<br /># TUXCONFIG="/home/me/simpapp/tuxconfig"<br /># TUXDIR="/usr/tuxedo"<br /><br />CNH LMID=simple (tng) (tng) (tng) (tng) (tng) #q个地方被我改写 (tng) (tng) (tng) (tng) (tng) <br /><br />#Example:<br />#beatux LMID=simple<br /><br />*GROUPS<br />GROUP1<br />LMID=simple GRPNO=1 OPENINFO=NONE<br /><br />*SERVERS<br />DEFAULT:<br />CLOPT="-A"<br /><br />simpserv SRVGRP=GROUP1 SRVID=1<br /><br />*SERVICES<br />TOUPPER<br /><br /> (tng) <br /> (tng) ~辑好后Q?br /> (tng) tmloadcf ubbsimple (tng) (tng) (tng) (tng) <br /> (tng) Initialize TUXCONFIG file: /usr/me/simpdir/tuxconfig [y, q] ? y<br /> (tng)<br />6,启动应用E序<br /> (tng) tmboot<br /> (tng) (tng) <br />7,执行q行时应用程?br /> (tng) simpcl “hello, world?br /> (tng) Returned string is: HELLO, WORLD<br /> (tng) (tng) (tng) <br />8,关闭应用E序<br /> (tng) tmshutdown<br /><br />参考文献:(x)<br />《Bea Tuxedo应用E序开发指南》经乾。网上可以下?br /> (tng) <br />E候我会(x)把Delphi开发客L(fng)的体?x)写出来Q用View方式.<br />我的QQ是:(x)77764686,Ƣ迎又诚意者探讨Tuxedo开发的问题.<br />此文被Tuxedoer?003/04/21 23:16:46修改!ULT:<br /> (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) APPDIR="F:\SimpDir" (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) #q个地方被我改写<br /> (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) TUXCONFIG="F:\SimpApp\tuxconfig" (tng) (tng) (tng) #q个地方被我改写<br /> (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) TUXDIR="D:\bea\tuxedo8.1" (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) #q个地方被我改写 (tng) <br />#Example:<br /># APPDIR="/home/me/simpapp"<br /># TUXCONFIG="/home/me/simpapp/tuxconfig"<br /># TUXDIR="/usr/tuxedo"<br /><br />CNH LMID=simple (tng) (tng) (tng) (tng) (tng) #q个地方被我改写 (tng) (tng) (tng) (tng) (tng) <br /><br />#Example:<br />#beatux LMID=simple<br /><br />*GROUPS<br />GROUP1<br />LMID=simple GRPNO=1 OPENINFO=NONE<br /><br />*SERVERS<br />DEFAULT:<br />CLOPT="-A"<br /><br />simpserv SRVGRP=GROUP1 SRVID=1<br /><br />*SERVICES<br />TOUPPER <br /><img src ="http://www.aygfsteel.com/Vencent/aggbug/67698.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/Vencent/" target="_blank"><font color='GREEN'>Vincent Chen</font></a> 2006-09-04 23:25 <a href="http://www.aygfsteel.com/Vencent/articles/67698.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>TUXEDO多机模式的配|?/title><link>http://www.aygfsteel.com/Vencent/articles/67696.html</link><dc:creator><font color='GREEN'>Vincent Chen</font></dc:creator><author><font color='GREEN'>Vincent Chen</font></author><pubDate>Mon, 04 Sep 2006 15:24:00 GMT</pubDate><guid>http://www.aygfsteel.com/Vencent/articles/67696.html</guid><wfw:comment>http://www.aygfsteel.com/Vencent/comments/67696.html</wfw:comment><comments>http://www.aygfsteel.com/Vencent/articles/67696.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/Vencent/comments/commentRss/67696.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/Vencent/services/trackbacks/67696.html</trackback:ping><description><![CDATA[ <p class="MsoPlainText" style="margin: 0cm 0cm 0pt; text-indent: 36pt;"> <span lang="EN-US"> <font face="?hu)?>tuxedo多机方式配置有两个方?/font> </span> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt 10.5pt; text-indent: -10.5pt;"> <font face="?hu)?> <span lang="EN-US">1.</span>启动<span lang="EN-US">tlisten</span></font> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt; text-indent: 36pt;"> <span lang="EN-US"> <font face="?hu)?>tlisten在tuxedo启动时扮演控制者的角色,在非masterZ由tlisten启动bbl和应用服务器,tlisten的启动方法ؓ(f)</font> </span> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt; text-indent: 36pt;"> <span lang="EN-US"> <font face="?hu)?>tlisten<span style=""> (tng) (tng) </span>-l //host:ipport<o:p></o:p></font> </span> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt; text-indent: 36pt;"> <font face="?hu)?>注意q里?span lang="EN-US">ipport必须和ubb文g中NETWORK域NLSADDR一?/span></font> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt; text-indent: 36pt;"> <span lang="EN-US"> <font face="?hu)?>tlisten必须在所有的机器上启?启动后才能运行tmboot.操作pȝ启动时就q行tlisten.</font> </span> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt 10.5pt; text-indent: -10.5pt;"> <font face="?hu)?> <span lang="EN-US">2.</span> <span lang="EN-US">ubb文g配置</span> </font> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt; text-indent: 36pt;"> <font face="?hu)?>对于多机模式一般就是指单一<span lang="EN-US">domain理的多台机?所有机器上仅需要一个ubb文g,以下是ubb文g的模?/span></font> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font face="?hu)?>*RESOURCES<o:p></o:p></font> </span> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font face="?hu)?>IPCKEY<span style=""> (tng) (tng) (tng) (tng) (tng) </span>80952<o:p></o:p></font> </span> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font face="?hu)?>MAXACCESSERS<span style=""> (tng) (tng) (tng) </span>40<o:p></o:p></font> </span> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font face="?hu)?>MAXSERVERS<span style=""> (tng) </span>35<o:p></o:p></font> </span> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font face="?hu)?>MAXSERVICES<span style=""></span>75<o:p></o:p></font> </span> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font face="?hu)?>MASTER<span style=""> (tng) (tng) (tng) (tng) (tng) </span>SITE1,SITE2<o:p></o:p></font> </span> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font face="?hu)?>OPTIONS<span style=""></span>LAN,MIGRATE<o:p></o:p></font> </span> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font face="?hu)?>MODEL<span style=""> (tng) (tng) (tng) (tng) (tng) (tng) </span>MP<o:p></o:p></font> </span> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font face="?hu)?>*MACHINES<o:p></o:p></font> </span> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font face="?hu)?><SITE1's uname> LMID=SITE1<o:p></o:p></font> </span> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font face="?hu)?> <span style=""> (tng) (tng) (tng) (tng) (tng) (tng) (tng) </span>TUXDIR="<TUXDIR1>"<o:p></o:p></font> </span> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font face="?hu)?> <span style=""> (tng) (tng) (tng) (tng) (tng) (tng) (tng) </span>APPDIR="<APPDIR1>"<o:p></o:p></font> </span> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font face="?hu)?> <span style=""> (tng) (tng) (tng) (tng) (tng) (tng) (tng) </span>TUXCONFIG="<APPDIR1>/tuxconfig"<o:p></o:p></font> </span> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font face="?hu)?> <span style=""> (tng) (tng) (tng) (tng) (tng) (tng) (tng) </span>TYPE="<machine type1>"<o:p></o:p></font> </span> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font face="?hu)?> <span style=""> (tng) (tng) (tng) (tng) (tng) (tng) (tng) </span>ULOGPFX="<APPDIR1>/ULOG"<o:p></o:p></font> </span> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font face="?hu)?><SITE2's uname><span style=""></span>LMID=SITE2<o:p></o:p></font> </span> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font face="?hu)?> <span style=""> (tng) (tng) (tng) (tng) (tng) (tng) (tng) </span>TUXDIR="<TUXDIR2>"<o:p></o:p></font> </span> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font face="?hu)?> <span style=""> (tng) (tng) (tng) (tng) (tng) (tng) (tng) </span>APPDIR="<APPDIR2>"<o:p></o:p></font> </span> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font face="?hu)?> <span style=""> (tng) (tng) (tng) (tng) (tng) (tng) (tng) </span>TLOGDEVICE="<APPDIR2>/TLOG"<o:p></o:p></font> </span> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font face="?hu)?> <span style=""> (tng) (tng) (tng) (tng) (tng) (tng) (tng) </span>TLOGNAME=TLOG<o:p></o:p></font> </span> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font face="?hu)?> <span style=""> (tng) (tng) (tng) (tng) (tng) (tng) (tng) </span>TUXCONFIG="<APPDIR2>/tuxconfig"<o:p></o:p></font> </span> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font face="?hu)?> <span style=""> (tng) (tng) (tng) (tng) (tng) (tng) (tng) </span>TYPE="<machine type2>"<o:p></o:p></font> </span> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font face="?hu)?> <span style=""> (tng) (tng) (tng) (tng) (tng) (tng) (tng) </span>ULOGPFX="<APPDIR2>/ULOG"<o:p></o:p></font> </span> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font face="?hu)?>#<o:p></o:p></font> </span> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font face="?hu)?>*GROUPS<o:p></o:p></font> </span> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font face="?hu)?>*NETWORK<o:p></o:p></font> </span> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font face="?hu)?>SITE1<span style=""> (tng) (tng) </span>NADDR="<network address of SITE1>"<o:p></o:p></font> </span> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font face="?hu)?> <span style=""> (tng) (tng) (tng) </span>BRIDGE="<device of provider1>"<o:p></o:p></font> </span> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font face="?hu)?> <span style=""> (tng) (tng) (tng) </span>NLSADDR="<network listener address of SITE1>"<o:p></o:p></font> </span> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font face="?hu)?>SITE2<span style=""> (tng) (tng) </span>NADDR="<network address of SITE2>"<o:p></o:p></font> </span> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font face="?hu)?> <span style=""> (tng) (tng) (tng) </span>BRIDGE="<device of provider2>"<o:p></o:p></font> </span> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font face="?hu)?> <span style=""> (tng) (tng) (tng) </span>NLSADDR="<network listener address of SITE2>"<o:p></o:p></font> </span> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font face="?hu)?>*SERVERS<o:p></o:p></font> </span> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font face="?hu)?>DEFAULT: RESTART=Y MAXGEN=5 REPLYQ=Y CLOPT="-A"<o:p></o:p></font> </span> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font face="?hu)?>#<o:p></o:p></font> </span> </p> <p class="MsoPlainText" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font face="?hu)?>*SERVICES<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt 10.5pt; text-indent: -10.5pt;"> <span lang="EN-US"> <font size="2">3.</font> <span style="font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"> (tng) (tng) </span> </span> <span style="font-family: ?hu)?"> <font size="2">理</font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 36pt;"> <font size="2"> <span style="font-family: ?hu)?">只能?/span> <span lang="EN-US">master</span> <span style="font-family: ?hu)?">Zq行</span> <span lang="EN-US">tmadmin</span> <span style="font-family: ?hu)?">q行理。要获得l计信息?/span> <span lang="EN-US">tmadmin</span> <span style="font-family: ?hu)?">中应q行</span> <span lang="EN-US">default –m</span> <span style="font-family: ?hu)?">命o(h)?/span> </font> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 36pt;"> <span style="font-family: ?hu)?"> <font size="2">例如Q?/font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 36pt;"> <span lang="EN-US"> <font size="2">tmadmin<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 36pt;"> <span lang="EN-US"> <font size="2">>default –m SITE1<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 36pt;"> <span lang="EN-US"> <font size="2">>printservice<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 36pt;"> <span lang="EN-US"> <font size="2"> (tng)<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2">Sample:<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2">#ident<span style=""> (tng) (tng) (tng) (tng) (tng) (tng) </span>"@(#) samples/atmi/simpapp/ubbmp<span style=""> (tng) (tng) (tng) (tng) (tng) (tng) (tng) </span>$Revision: 1.2.8.1 $"<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2"> (tng)<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2">*RESOURCES<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2">IPCKEY<span style=""> (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) </span>87654<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2"> (tng)<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2">MASTER<span style=""> (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) </span>site1,site2<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2">MAXACCESSERS<span style=""> (tng) (tng) (tng) (tng) </span>40<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2">MAXSERVERS<span style=""></span>20<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2">MAXSERVICES<span style=""> (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) </span>40<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2">UID<span style=""> (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) </span>0<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2">GID<span style=""> (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) </span>0<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2">MODEL<span style=""> (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) </span>MP<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2">OPTIONS<span style=""> (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) </span>LAN,MIGRATE<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2"> (tng)<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2">*MACHINES<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2">CHRIS<span style=""> (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) </span>LMID=site1<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2"> <span style=""> (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) </span>APPDIR="d:\tuxedo\samples\atmi\simpapp"<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2"> <span style=""> (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) </span>TUXCONFIG="d:\tuxedo\samples\atmi\simpapp\tuxconfig"<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2">#<span style=""> (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) </span>TYPE="<Replace with the proper machine type for site1>"<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2"> <span style=""> (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) </span>TUXDIR="d:\tuxedo"<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2"> (tng)<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2">chrislinux<span style=""> (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) </span>LMID=site2<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2"> <span style=""> (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) </span>APPDIR="/home/tuxedo/samples/atmi/simpapp"<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2"> <span style=""> (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) </span>TUXCONFIG="/home/tuxedo/samples/atmi/simpapp/tuxconfig"<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2">#<span style=""> (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) </span>TYPE="<Replace with the proper machine type for site2>"<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2"> <span style=""> (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) </span>TUXDIR="/home/tuxedo"<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2"> <span style=""> (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) </span>UID=503<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2"> <span style=""> (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) </span>GID=503<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2"> (tng)<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2">*GROUPS<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2">GROUP1<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2"> <span style=""> (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) </span>LMID=site1<span style=""> (tng) (tng) (tng) (tng) (tng) </span>GRPNO=1<span style=""> (tng) (tng) (tng) (tng) (tng) (tng) (tng) </span>OPENINFO=NONE<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2">GROUP2<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2"> <span style=""> (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) </span>LMID=site2<span style=""> (tng) (tng) (tng) (tng) (tng) </span>GRPNO=2<span style=""> (tng) (tng) (tng) (tng) (tng) (tng) (tng) </span>OPENINFO=NONE<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2"> (tng)<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2">*NETWORK<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2">site1<span style=""></span>NADDR="http://10.10.10.10:6033"<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2"> <span style=""> (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) </span>NLSADDR="http://10.10.10.10:6034"<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2">#<span style=""> (tng) (tng) (tng) (tng) (tng) (tng) </span>BRIDGE="<Replace with the network device or omit if there is none>"<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2"> (tng)<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2">site2<span style=""></span>NADDR="http://10.10.10.11:6033"<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2"> <span style=""> (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) </span>NLSADDR="http://10.10.10.11:6034"<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2">#<span style=""> (tng) (tng) (tng) (tng) (tng) (tng) </span>BRIDGE="<Replace with the network device or omit if there is none>"<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2"> (tng)<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2">*SERVERS<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2">DEFAULT:<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2"> <span style=""> (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) </span>CLOPT="-A"<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2"> (tng)<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2">simpserv<span style=""> (tng) (tng) </span>SRVGRP=GROUP1 SRVID=3<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2"> (tng)<o:p></o:p></font> </span> </p> <p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <span lang="EN-US"> <font size="2">*SERVICES<o:p></o:p></font> </span> </p> <span lang="EN-US"> <font size="2">TOUPPER</font> </span> <img src ="http://www.aygfsteel.com/Vencent/aggbug/67696.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/Vencent/" target="_blank"><font color='GREEN'>Vincent Chen</font></a> 2006-09-04 23:24 <a href="http://www.aygfsteel.com/Vencent/articles/67696.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Tuxedo的配|管理简要说?/title><link>http://www.aygfsteel.com/Vencent/articles/67695.html</link><dc:creator><font color='GREEN'>Vincent Chen</font></dc:creator><author><font color='GREEN'>Vincent Chen</font></author><pubDate>Mon, 04 Sep 2006 15:23:00 GMT</pubDate><guid>http://www.aygfsteel.com/Vencent/articles/67695.html</guid><wfw:comment>http://www.aygfsteel.com/Vencent/comments/67695.html</wfw:comment><comments>http://www.aygfsteel.com/Vencent/articles/67695.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/Vencent/comments/commentRss/67695.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/Vencent/services/trackbacks/67695.html</trackback:ping><description><![CDATA[Tuxedo的配|管理简要说?<p><br />Tuxedo的配|管理简要说?<br />一、Tuxedo基本命o(h)2<br />二、UBB文g配置说明3<br />三、数据库XA讄7<br />3.1 ORACLE XA7<br />3.2 SYBASE XA8<br />3.3 INFORMIX XA8<br />四、Tuxedo多机方式配置要点9<br />4.1启动tlisten9<br />4.2 ubb文g配置9<br />4.3理11<br />五、用JOLTq接Tuxedo和W(xu)eblogic11<br />5.1在Tuxedo上安装、配|JOLT Server11<br />5.2 配置Weblogic Server 6.x12<br />5.3 Example setup13<br />六、TUXEDO动态配|?3<br />6.1  (tng)用tmadmin修改配置13<br />6.2  (tng)用tmconfig更改TUXCONFIGQUBBCONFIGQ?4<br /></p><p>一、Tuxedo基本命o(h) </p><p>#1.讄环境变量TUXDIR,APPDIR,TUXCONFIGQLANG(跟OS相关),LD_LIBRARY_PATH(跟OS相关)<br />#2.~译ubb文本生成二进刉|文Ӟ(x)tmloadcf –y ubbconfig<br />#3.所有机器上q行tlisten,具体见文档中NETWORK一?br />#4.启动tmboot –y <br />#5.关闭tmshutdown –y<br />参数Q?<br />-A在所有机器上启动/关闭理的Serverq程<br />-M只在MASTER机器上启?关闭理的Serverq程<br />-isrvid  (tng)启动/关闭某个server id指定的Serverq程<br />-ggrpname启动/关闭某个server group名字指定的Server Group<br />-S启动/关闭所有应用服务器QLMIDQ?br />-sserver-name 启动/关闭某个server名字指定的Serverq程<br />-llmid option 在指定的机器上启?关闭所有TMSq程和应用服务器QLMIDQ?br />-Tgrpname 启动/关闭指定的server group中所有的TMSq程<br />-Blmid 在指定的机器上启?关闭BBLq程<br />-ecommand 指定一个程序可以当在MASTER机器上启动Q何一个进E失败时执行<br />-c计算出当前UBB配置的Tuxedo启动最要占用的系lIPC资源 </p><p>#用tmunloadcf > generated.ubb 可以得出目前配置得UBB文g所有得参数|没有讄的有~省|(j)<br />#用tmloadcf –c或tmboot –c可以计算出当前UBB配置的Tuxedo启动最要占用的系lIPC资源?</p><p><br />二、UBB文g配置说明 </p><p>UBB配置文g分成*RESOURCES,*GROUP,*SERVER,*SERVICE,*NETWORK{若q节。DEFAULT表示该节中所有对象共有的~省属性?</p><p>*RESOURCES <br />#RESOUCES节提供整个系l的基本参数?</p><p>IPCKEY55555 Q?2767-262143Q?<br />#q行IPC通讯的key?br />DOMAINIDunicom  (tng)<br />#DOMAIN的ID?br />MASTERunicom1,unicom2<br />#指定DOMAIN中的理L为unicom1,q行q程中unicom1若出现问题,理L切换至unicom2<br />MAXACCESSERS  (tng)1000 <br />#q里该DC整个系l中单个机器上可以访问TUXEDO的最多的Client和Server的L(可以讉K BBL的最大进E数)Q应大于license用户?server敎ͼ副本应记入)(j)。该字段?x)被MACHINE部分的MAXACCESSERS覆盖?br />#pȝ核心(j)参数中SEMAPHORE的数?SEMMNS)要大于这里的MAXACCESSERS数目Q而ipc消息个数QMSGMAXQ应大于MAXACCESSERS?所有带REPLYQ的SERVER的个数?br />MAXSERVERS80  (tng)<br />#最大的server敎ͼ副本应记入)(j)<br />MAXSERVICES200 <br />#最大的service敎ͼ多个server重复记入Q?br />MAXGTT20<br />#pȝ最多的q发的全局交易数目<br />MODELMP  (tng)<br />#表示cluster方式Q否则ؓ(f)SHM<br />OPTIONSLAN,MIGRATE  (tng)<br />#多机cluster方式时必L定ؓ(f)LAN方式QMIGRATE表示可以以组为单位进行机器间SERVER的迁UR?br />LDBALY  (tng)<br />#允许负蝲均衡 </p><p>SCANUNIT10<br />#SCANUNIT 是BBL在所有服务请求中定期扫描以寻找超时的交易和被d徯用和德间隔时_(d)U)(j)。这个参数指定BBL扫描间隔旉的基本单位, 它会(x)影响在tpbegin中指定的交易时旉和用BLOCKTIME指定的请求阻塞超时时间的_E度。SANITYSCAN, BBLQUERY, DBBLWAIT, BLOCKTIME{参数都是SCANUNIT的倍数Q而不是实际秒数。而作为时间单位SCANUNIT必须?的倍数Qƈ且满?< SCANUNIT<60?</p><p>SANITYSCAN12<br />#SANITYSCAN的值指定在每个MACHINE上BBL自动(g)所有进E的旉间隔Q以SCANUNIT为单元。缺省值满ISCANUNIT*SANITYSCANQ约?20U?</p><p>DBBLWAIT 2<br />#DBBLWAIT 的值指定DBBL扫描BBL时等待所有BBL应答的最大时_(d)以SCANUNIT为单元,卌qDBBLWAIT*SCANUNITQ秒Q就时。每一? DBBL请求{发给它的BBLӞBBL?x)在hq回l果之前先回复一个肯定的应答。这样可以定时检死掉或不正常的BBL。缺省值满? QSCANUNIT*DBBLWAITQ的值等于SCANUNIT?0U两者之间的最大者?</p><p>BBLQUERY30<br />#BBLQUERY指定DBBLҎ(gu)有BBLq行状态检查的旉间隔Q它也是以SCANUNIT单位。如果DBBL的状态询问没有回{,该BBLp‘隔Z了(jin)。缺省值满?SCANUNIT * BBLQUERY) Uؓ(f) 300U?</p><p>BLOCKTIME6<br />#BLOCKTIME指定在阻塞队列中的被dh的超时时?包括客户端从tpinit到tpterm的等待时?Q以SCANUNIT单位。缺省值满?SCANUNIT * BLOCKTIME) Uؓ(f)60U?</p><p>*MACHINES<br />DEFAULT:<br />#该部分对各主行描q?br />unicom2LMID=unicom2<br />APPDIR="/usr/tuxedo/apps/simpapp"<br />TUXCONFIG="/usr/tuxedo/apps/simpapp/tuxconfig"<br />TUXDIR="/usr/tuxedo"<br />UID=17<br />GID=26<br />MAXACCESSERS=100<br />unicom1LMID=unicom1<br />APPDIR="/usr/tuxedo/apps/simpapp"<br />TUXCONFIG="/usr/tuxedo/apps/simpapp/tuxconfig"<br />TUXDIR="/usr/tuxedo"<br />UID=17<br />GID=26<br />MAXWSCLIENTS=50 </p><p>#unicom2, unicom1为网l主机名用hostname获得?br />#LMIDQLogical Machines ID 为tuxedo对主机的内部逻辑命名?br />#APPDIR要求攄SERVER的可执行文g?br />#TUXCONFIG为全路径的二q制配置文gQ要求和环境变量TUXCONFIG相同。对于master机tuxconfig文g是由tmloadcf生成的,而非master机则是由tmboot启动后由tlisten从masterZ拯获得?br />#TUXDIR为tuxedo安装目录Q要求和环境变量TUXDIR相同?br />#MAXWSCLIENTS表示可连接client的最大个数?</p><p>*GROUPS<br />#GROUP1为组名,LMID表示该组q行的主机,GRPNO为组POPENINFOl通过XA打开RM(通常指数据库)的初始串?</p><p>GROUP1 LMID=unicom2GRPNO=1 OPENINFO=NONE<br />GROUP2  (tng)LMID=unicom3GRPNO=2 OPENINFO=NONE </p><p><br />*SERVERS<br />#q里描述应用服务器。SRVGRP的该SERVER所属组名,SRVID为服务器IDPMIN表示该服务器CLOPT提供q行的相兛_敎ͼ要求是?A -- ??可以在应用服务器的srvinit函数中获得这些参数?br />DEFAULT:<br />CLOPT="-A" </p><p>BillServer SRVGRP=GROUP1 SRVID=1 MIN=2 MAX=4<br />RQADDR=QNAME REPLYQ=Y<br />CLOPT="-A -o ./out.log –r -e ./err.log -- <br />-p [L][low_water][,[terminate_time]][:[high_water][,create_time]] <br />? 果MAX>1Qƈ且用了(jin)MSSQQRQADDRQ? RQPERMQ的Server可以配置-p来控制进E的增加和减。控制算法如下:(x)如果h队列中的h个数大于high_water 后超qcreate_time U?增加该服务的一个新q程Q?如果h队列中的h个数于low_water 后超qterminate_time U? 停止该服务的一个进E。low_water ~省是^均每个服务进E有一个请求消息或者workload 50Qhigh_water ~省是^均每个服务进E有两个h消息或者workload 100。create_time ~省最是50U? and terminate_time ~省最是60U?br />注意Q?br />使用TUXEDO的服务进E池Ӟ用户自己在程序中如果用alarmQ)(j){系l调用来停止q程是不起作用的Q但也不?x)报错?br /> (tng)  (tng)[L] 标记意味着增减服务q程Z负蝲而不是请求队列的长度。仅用于SHM模式下ƈ且LDBAL=YQ否则会(x)报错 (LIBTUX_CAT:1542) Q服务进E也不会(x)增减?<br /><br />WSLSRVGRP=GROUP2 SRVID=1<br />CLOPT="-A -- -n //130.36.0.103:8889 -m 3 -M 10 -x 10 -T 10"<br />#WSL 用于和client端进行连接?n 表示出接入点为IP:PORT方式Q?m –M 表示最和最大启动多个WSH和前端通讯Q?x则表CZ个WSH和几个client端连接?T 10表示如果client端和serverq接?0分钟内没有交易请求则关闭q接?</p><p>*SERVICES<br />#不要求将所有的service在这里描qͼ当某个service有特别参数时才在SERVICE节中说明?br />TOUPPER<br />LOAD=60  (tng)// 负蝲Q当LDBAL=Y时有?br />PRIO=80// 服务在请求队列中的优先<br />TRANSTIME=120 // 交易旉<br />SVCTIMEOUT=600// 服务时旉 </p><p>*NETWORK<br />#NETWORK节对多机之间如何q行|络q接q行描述?br />#cluster方式下要求先启动tlisten。事实上Q对于非master机启动应用服务器是由tlisten完成的?br />#tlisten的启动方式ؓ(f) <br />#unicom1: tlisten –l //130.36.1.101:8891<br />#unicom2: tlisten –l //130.36.0.102:8891<br />#NADDR指定|络q接的接入点?br />#NLSADDR则指定tlisten的接入点?br />#BRIDGE则指TCPq接所用的讑֤文g?</p><p>unicom2  (tng)  (tng)<br />NADDR="http://130.36.0.102:8899"<br />NLSADDR="http://130.36.0.102:8891"<br />BRIDGE="/dev/streams/xtiso/tcp"<br />unicom1<br />NADDR="http://130.36.0.101:8899"<br />NLSADDR="http://130.36.0.101:8891"<br />BRIDGE="/dev/streams/xtiso/tcp" </p><p><br />分类ȝ </p><p>TypeParameters requiring tuning<br />IdentificationTUXCONFIG, UID, GID, IPCKEY, DOMAINID<br />ThresholdsMAXACCESSERS, MAXSERVERS, MAXSERVICES, MAXGTT, MAXCONV, MAXBUFSTYPE, MAXWSCLIENTS<br />Time-outsSCANUNIT, SANITYSCAN, DBBLWAIT, BBLQUERY, BLOCKTIME<br />AvailabilityMASTER, MIGRATE, RESTART, GRACE, MAXGEN, RCMD<br />MachineTYPE, CMPLIMIT, NETLOAD, SPINCOUNT, TLOGDEVICE, PERM<br />NetworkNADDR, NLSADDR<br />ServersCLOPT, ENVFILE<br />ServicesLOAD, PRIO, BUFTYPE, SVCTIMEOUT<br />WorkstationsWSNADDR, WSRPLYMAX<br /></p><p>三、数据库XA讄<br />3.1 ORACLE XA<br />1.在附件中提供?jin)rm文g,另外q行oracle的demo文g获得要连接的所有lib库的名称.然后这些名U全部写在RM文g?<br />如:(x) #Oracle 8i for NT<br />Oracle_XA;xaosw;%ORACLE_HOME%\RDBMS\XA\ORAXA8.LIB %ORACLE_HOME%\PRECOMP\LIB\MSVC\ORASQL8.LIB %ORACLE_HOME%\PRECOMP\LIB\MSVC\ORASQX8.LIB %ORACLE_HOME%\OCI\LIB\MSVC\OCI.LIB %ORACLE_HOME%\OCI\LIB\MSVC\OCIW32.LIB<br />#Oracle 8i for Unix<br />Oracle_XA:xaosw:-L${ORACLE_HOME}/lib -lclntsh </p><p>2.ubb 文g?*GROUP节加?br /> (tng)TMSNAME=TMS_ORA<br /> (tng)TMSCOUNT=3  (tng)OPENINFO="Oracle_XA:Oracle_XA+Acc=P/scott/tiger+SesTM=120+LogDir=.+SqlNet=abcde"<br />? 体在Oracle联机文档Application Development->oracle8 Application Development's Guild->Oracle XA->Defining the xa_open String中提供了(jin)解释 </p><p>3.在oracle用sys用户dsqlplusQ?br />a)q行${ORACLE_HOME}/rdbms/Admin/xaview.sql,<br />b)grant select on v$xatrans$ to public;<br />c)grant select on dba_pending_transactions to scott; <br />d)commit; </p><p>4.q行 buildtms -o $(TUXDIR)/bin/TMS_ORA -r Oracle_XA<br />5. 在tpsvrinit()中EXEC SQL CONNECT ...Ҏ(gu) tpopen(),  (tng)tpsrvdone()中EXEC SQL DISCONNECT...Ҏ(gu)tpclose(); 实际可拷?TUXDIR/apps/bankapp/appinit.c </p><p>6.需在ubb文g中MACHINE节指定TLOGDEVICE,TLOGSIZE<br />?TLOGDEVICE="/home/usr1/TLOGDEV"<br /> (tng) TLOGSIZE=500 </p><p>7.建立TLOG文g直接拯$TUXDIR/apps/bankapp/crtlog.sh.讑֮相关的环境变量后q行该shell文g. </p><p>8.启动事务用tpbegin(3,0),提交回滚用tpcommit/tpabort. </p><p>3.2 SYBASE XA<br />1.在RM文g,q行sybase获得要连接的所有lib库的名称.然后这些名U全部写在RM文g?#Sybase_11 for NT<br />SYBASE_XA_SERVER;sybase_xa_switch;C:\SYBASE_SERVER\lib\libxasrvlib.lib </p><p>2.ubbconfig 文g中的 *GROUP?<br />TMS_NAME=TMS_SYB TMSCOUNT=3  (tng)OPENINFO=" SYBASE_XA_SERVER: -Uuserid1 -Ppassword1 -Nconnection2 -Lxa_log -Tall "<br />具体察看Sybase文当中xa_open String中提供了(jin)解释 </p><p>3.q行 buildtms -o $(TUXDIR)/bin/TMS_SYB -r SYBASE_XA_SERVER<br />4. 在tpsvrinit()中EXEC SQL CONNECT ...Ҏ(gu) tpopen, tpsrvdone()中EXEC SQL DISCONNECT...Ҏ(gu)tpclose(); 实际可查?TUXDIR/apps/bankapp/appinit.c<br />5.需在ubb文g中MACHINE节指定TLOGDEVICE,TLOGSIZE<br />?TLOGDEVICE="/home/usr1/TLOGDEV"<br /> (tng) TLOGSIZE=500<br />6.建立TLOG文g直接拯$TUXDIR/apps/bankapp/crtlog.sh.讑֮相关的环境变量后q行该shell文g.<br />7.启动事务用tpbegin(3,0),提交回滚用tpcommit/tpabort. </p><p><br />3.3 INFORMIX XA<br />1. q行esql -lib获得要连接的所有lib库的名称.然后这些名U全部加到RM文g中INFORMIX-OnLine:infx_xa_switch:$ {INFORMIXDIR}/lib/esql/libinfxxa.a /usr/informix/lib/esql/libixos.a /usr/informix/lib/esql/libixgen.a /usr/informix/lib/esql/libixsql.a /usr/informix/lib/libixasf.a /usr/informix/lib/esql/libixos.a /usr/informix/lib/esql/libixgen.a /usr/informix/lib/esql/libixgls.a -lnsl_s -lm -lV3 -lcl -lsec /usr/informix/lib/esql/libixglx.a<br />2.ubbconfig 文g?br />*GROUP?TMS_NAME=TMS_INFO TMSCOUNT=3  (tng)OPENINFO="INFORMIX-OnLine:test_tux"<br />具体察看Sybase文当中xa_open String中提供了(jin)解释<br />3.q行 buildtms -o $(TUXDIR)/bin/TMS_INFO -r INFORMIX-OnLine<br />4. 在tpsvrinit()中EXEC SQL CONNECT ...Ҏ(gu) tpopen, tpsrvdone()中EXEC SQL DISCONNECT...Ҏ(gu)tpclose(); 实际可查?TUXDIR/apps/bankapp/appinit.c<br />5.需在ubb文g中MACHINE节指定TLOGDEVICE,TLOGSIZE<br />?TLOGDEVICE="/home/usr1/TLOGDEV"<br /> (tng) TLOGSIZE=500<br />6.建立TLOG文g直接拯$TUXDIR/apps/bankapp/crtlog.sh.讑֮相关的环境变量后q行该shell文g.<br />7.启动事务用tpbegin(3,0),提交回滚用tpcommit/tpabort. </p><p>四、Tuxedo多机方式配置要点<br />tuxedo多机方式配置有两个方?br />4.1启动tlisten<br />tlisten在tuxedo启动时扮演控制者的角色,在非masterZ由tlisten启动bbl和应用服务器,tlisten的启动方法ؓ(f)<br />tlisten  (tng) -l //hostip:ipport <br />1Q注意这里的ipport必须和ubb文g中NETWORK域的NLSADDR一?最好都用IP地址Q以避免双方对同一机器名解释出不同的IP地址?br />2Q?tlisten必须在所有的机器上启?启动后才能运行tmboot.操作pȝ启动时就q行tlisten.<br />3Q? 注意各个节点的tlisten都有PASSWORDQ存?APPDIR%\.adm\tlisten.pw文g下,如果那里没有Q就读TUXEDO? TUXDIR%\udataobj\tlisten.pw文g中的内容。各节点的tlisten password要保证绝对一P包括回RQ)(j)。否则会(x)报错Q‘Security Violation’?br />4.2 ubb文g配置<br />对于多机模式一般就是指单一domain理的多台机?所有机器上仅需要一个ubb文g,以下是ubb文g的模?br />*RESOURCES<br />IPCKEY80952<br />MAXACCESSERS40<br />MAXSERVERS35<br />MAXSERVICES75<br />MASTERSITE1,SITE2<br />OPTIONSLAN,MIGRATE  (tng)  (tng)// MIGRATE表示MASTER可以动态迁U?br />MODELMP// 多机模式<br />*MACHINES<br />"PATRICK"LMID="site1"<br />APPDIR="DQ?Bea/tuxedo/samples/atmi/simpapp"<br />TUXCONFIG="d:/Bea/tuxedo/samples/atmi/simpapp/tuxconfig"<br />TUXDIR=" d:/Bea /tuxedo"<br />UID=0<br />GID=0<br />TYPE="NT"<br />MAXWSCLIENTS=5<br />MAXACCESSERS=40 </p><p>"test60"LMID="site2"<br />APPDIR="/bea/tuxedo/samples/atmi/simpapp"<br />TUXCONFIG="/bea/tuxedo/samples/atmi/simpapp/tuxconfig"<br />TUXDIR="/bea/tuxedo"<br />UID=1002<br />GID=101<br />TYPE="Sun"<br />MAXWSCLIENTS=15<br />MAXACCESSERS=100 </p><p>*GROUPS<br />GROUP1 LMID=site1GRPNO=1OPENINFO=NONE<br />GROUP2 LMID=site2GRPNO=2OPENINFO=NONE </p><p>*SERVERS<br />DEFAULT:DEFAULT: RESTART=Y MAXGEN=5 REPLYQ=Y CLOPT="-A" </p><p>WSLSRVGRP=GROUP1 SRVID=20 CLOPT="-A -- -n //10.128.5.201:9009"<br />WSLSRVGRP=GROUP2 SRVID=10 CLOPT="-A -- -n //10.128.5.200:9009"<br />simpservSRVGRP=GROUP1 SRVID=3<br />simpservSRVGRP=GROUP2 SRVID=4 </p><p>*SERVICES </p><p>*NETWORK<br />site1NADDR="http://10.128.5.201:6044"<br /> (tng)  (tng)  (tng)  (tng)NLSADDR="http://10.128.5.201:6045" </p><p>site2NADDR="http://10.128.5.200:6044"<br />NLSADDR="http://10.128.5.200:6045"<br />#  (tng)BRIDGE="/dev/tcp" </p><p>4.3理<br />只能在masterZq行tmadminq行理。要获得l计信息在tmadmin中应q行default –m命o(h)?br />$tmadmin<br />>default –m SITE1<br />>psr<br />>bbi </p><p>当MASTERL意外当机ӞTUXEDO仍可以正常运行,可以在backup的节点上手工做MASTER的动态迁U,在当前的backup节点?DBBL充当MASTER?br />$tmadmin<br />>m </p><p>Windows NT/2000下要注意的问题:(x)<br />1.׃NT机器上MAXACCESSORS受IPC的限刉常较小,因此在MACHINES部分单独讄MAXACCESSORS.<br />2.在MACHINES部分要单独设|UID=0和GID=0<br />3.和其他类型的CPU机器互连?在MACHINES部分一定要指定不同的TYPE.否则提Ctlisten版本不匹配?br />TUXEDO在SERVER和CLIENT之间q行数据交换~省q行数据译,但一个domain的server之间~省不进行数据翻?<br />5.有时LANG环境变量无法改变?sh)C, 可以?%TUXDIR%\locale创徏文g?mkdir %LANG%.<br />6.RM文g使用中发现有效的RM后一定要有回?否则报RM不存? </p><p><br />五、用JOLTq接Tuxedo和W(xu)eblogic<br />5.1在Tuxedo上安装、配|JOLT Server<br />1 ?安装JOLT Server <br />2 -- set your environment<br /> (tng)set TUXDIR=d:\bea\tuxedo<br />set JOLTDIR=%TUXDIR%\udataobj\jolt<br /> (tng)set APPDIR=%TUXDIR%\samples\atmi\simpapp<br /> (tng)set PATH=%TUXDIR%\bin;%JOLTDIR%\bin;%APPDIR%;%PATH%<br /> (tng)set NLSPATH=%TUXDIR%\locale\C<br /> (tng)set TUXCONFIG=%APPDIR%\tuxconfig </p><p>3 ?added in UBBconfig file <br />JSLSRVGRP=GROUP1 SRVID=6 CLOPT="-A -- -n //10.128.5.112:9001"JREPSVRSRVGRP=GROUP1 SRVID=7 CLOPT="-A -- -W -P d:\Bea\tuxedo\udataobj\jolt\repository\jrepository"JREPSVRSRVGRP=GROUP1 SRVID=8 CLOPT="-A -- -P d:\Bea\tuxedo\udataobj\jolt\repository\jrepository" </p><p>5.2 配置Weblogic Server 6.x<br />1,Download the Jolt client package for WLS from developer.bea.com, unzip it and copy the jar file to %WL_HOME%\lib.  (tng)Then add the jar files into your Weblogic domain environment file:<br /> (tng)classpath=%classpath%;%WL_HOME%\lib\jolt.jar;%WL_HOME%\lib\joltweblogic.jar </p><p>2,Config Jolt pool manager startup class  (tng)in Weblogic <br /> (tng)a,start Weblogic and access the console <br /> (tng)b,create Startup class and Shutdown class<br /> (tng)  (tng)in console:Deployments->Startup & Shutdown,right click<br /> (tng) select create a new StartUp class...:<br /> (tng)  (tng)  (tng)name:demojoltpoolStartup<br /> (tng)  (tng) classname:bea.jolt.pool.servlet.weblogic.PoolManagerStartUp </p><p>3,Create a jolt pool<br /> (tng)in console:Services->Jolt,right click<br /> (tng)  (tng) Select the panel:Configuration<br /> (tng)  (tng) in TAB General<br /> (tng)  (tng) name:demojoltpool<br /> (tng)  (tng) Minimum Pool Size:1<br /> (tng)  (tng) Maximum Pool Size:3<br /> (tng)  (tng) Click the button "Create"<br /> (tng)  (tng) in TAB address<br /> (tng)  (tng)  (tng)  (tng)Primary Address://hostname:port<br /> (tng)  (tng)  (tng)  (tng)Failover Address://hostname:port<br /> (tng)  (tng) Click the button "Apply"<br /> (tng)  (tng) Select Targets:<br /> (tng)  (tng)  (tng)  (tng)in Listbox Available:<br /> (tng)  (tng)  (tng)  (tng) select your server add into the listbox Chosen<br /> (tng)  (tng) Click the button "Apply" </p><p>4. Restart your Weblogic </p><p>5.3 Example setup<br />1.Run %WL_HOME%\config\example\setExampleEnv.cmd, <br />2.compile the SimpAppServlet by:<br />javac -d %EX_WEBAPP_CLASSES% SimpAppServlet.java<br />3.Edit WL_HOME%\config\examples\applications\examplesWebApp\WEB-INF\web.xml<br />add the servlet description:<br /> (tng)<servlet>  (tng)  (tng)<servlet-name>JoltServlet</servlet-name>  (tng)  (tng)<servlet-class>examples.jolt.servlet.simpapp.SimpAppServlet</servlet-class>  (tng)</servlet>  (tng)<servlet-mapping><servlet-name>JoltServlet</servlet-name> <url-pattern>/joltservlet</url-pattern>  (tng)</servlet-mapping> </p><p>4.Edit a html and put it to %WL_HOME%\config\examples\applications\examplesWebApp<br />内容包含调用JoltServlet<br />Type some text here and click the Post button:<form name="simpapp" action="joltservlet" method="post"><input type="hidden" name="SVCNAME" value="TOUPPER"><input type="text" name="STRING"></td><input type="submit" value="Post!"></form> </p><p>5.Goto %WL_HOME%\config\example, start the examples domain, <br />6.Access http://localhost:7001/examplesWebApp/jolt.html </p><p><br />六、TUXEDO动态配|?br />TUXEDO 的动态配|可以通过tmadmin和tmconfig两个命o(h)行工具实C同别的配置修改。tmadmin的作用主要是监控TUXEDO的运行,可以? Ҏ(gu)务的参数Q而tmconfig功能更强大,可以在线修改当前TUXEDO的系lUBB配置Q即通过MIB修改用UBBCONFIG生成的二q制 TUXCONFIG在内存的拯?br />6.1  (tng)用tmadmin修改配置<br />q入tmadmin后用命o(h)help可以列出所有命令?</p><p>6.2  (tng)用tmconfig更改TUXCONFIGQUBBCONFIGQ?br />tmconfig工具实际上遍历TUXCONFIG的内容ƈ通过MIB API修改光|。要正确q行tmconfigQ徏议设|以下环境变量:(x)<br />TUXDIR=/usr/tuxedo<br />TUXCONFIG=/usr/app/tuxconfig<br />EDITOR=vi </p><p>主要的界面如下:(x) </p><p> (tng) $ tmconfig<br /> (tng) Section: 1) RESOURCES, 2) MACHINES, 3) GROUPS 4) SERVERS<br /> (tng)  (tng)5)SERVICES  (tng)6) NETWORK 7) ROUTING q) QUIT 9) WSL<br /> (tng)  (tng)10) NETGROUPS 11) NETMAPS 12) INTERFACES [1]: </p><p> (tng) Operation: 1) FIRST 2) NEXT 3) RETRIEVE 4) ADD 5) UPDATE<br /> (tng)  (tng)6) CLEAR BUFFER 7) QUIT [1]:  (tng)4<br /> (tng) Enter editor to add/modify fields [n]? <br /> (tng) Perform operation [y]? </p><p><br />1. 用tmconfig增加C?</p><p>1.q入tmconfig后,选择2QMACHINES?br />2.然后可以先选择3QRETRIEVE看看当前的配|,~省是第一个MACHINE的配|?br />3.通过选择2QNEXT可以一直向后搜索MACHINE配置Q直到空记录为止?br />4.选择4QADD<br /> (tng) Enter editor to add/modify fields [n]? y <br />5.q入vi~辑状态,可以按照一定格式增加配|。格式ؓ(f)Q?br />MIB域名[tab]?br />6.增加MACHINE必须加入以下的域Q?br />oTA_TUXCONFIG<br />oTA_TUXDIR<br />oTA_APPDIR<br />oTA_TLOGDEVICE<br />oTA_TLOGSIZE<br />oTA_PMID<br />oTA_LMID<br />oTA_TYPE<br />例:(x)<br />TA_TUXCONFIG  (tng)  (tng)  (tng)  (tng)  (tng)  (tng) /usr/apps/bank/tuxconfig<br />TA_TUXDIR  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)/usr/tuxroot<br />TA_APPDIR  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)/usr/apps/bank<br />TA_TLOGDEVICE  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)/usr/apps/bank/TLOG<br />TA_ULOGPFX  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng) /usr/apps/bank/ULOG<br />TA_ENVFILE  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng) /usr/apps/bank/ENVFILE<br />TA_TLOGSIZE  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)150<br />TA_PMID  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)SERVER109<br />TA_LMID  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)SITE1<br />TA_TYPE  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)Sun<br />7.存盘退出viQ执行操作即可? (tng)<br />8.ȀzL增的MACHINEQ?重新选择2QMACHINES ?gt; 5)UPDATE<br />9.q入vi后查找TA_STATE,其gNEW改ؓ(f)ACTIVE<br />10.存盘退出viq执行操作?</p><p><br />2. 用tmconfig增加新Serverq程 </p><p>1.q入tmconfig后,选择2QSERVER?br />2.可以先选择3QRETRIEVE看看当前的配|,~省是第一个SERVER的配|?br />3.通过选择2QNEXT可以一直向后搜索SERVER配置Q直到空记录为止?br />4.选择4QADD<br />Enter editor to add/modify fields [n]? y <br />5.q入vi~辑状态,可以按照一定格式增加配|。格式ؓ(f)QMIB域名[tab]?br />6.增加MACHINE必须加入以下的域Q?br />oTA_SERVERNAME <br />oTA_SRVGRP  (tng)<br />oTA_SRVID  (tng)<br />例:(x)<br />TA_SERVERNAME  (tng)  (tng)  (tng)  (tng)  (tng)/usr/apps/bank/teller_server<br />TA_SRVGRP  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)GROUP1<br />TA_SRVID  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)  (tng)15<br />7Q存盘退出viQ执行操作即可?</p><p>七、系l核?j)参数参?br />Message Queues Parameters </p><p>·MSGMNI: Total Number of Queues (Use this formula: Add  (tng)MAXACCESSERS + (No. Servers with Reply Queues) - (No. Servers in MSSQ Set) + (No. MSSQ Sets) + 7) to determine the appropriate value<br />·MSGMAP: Number of entries in control map used to manage message segments (Not defined in NT). Set to 2 * MSGMNI<br />·MSGMAX:  (tng)Maximum message size in bytes.  (tng)Set to the largest message size or 75% of the queue size (whichever is bigger)<br />·MSGMNB:  (tng)This is the queue size itself (64K, 128K, etc.)<br />·MSGSSZ: Size of a segment in bytes (Not defined in NT). The value of MSGSSZ should be such that a multiple of  (tng)MSGSSZ is equal to the size (including the BEA TUXEDO System header) of the most commonly sent message.  (tng)Usually set to 16, 32, or 64.<br />·MSGTQL: Total Number of In-Flight messages in the system at once<br />·MSGSEG: Number of message segments in the system (Not defined in NT). You need to find out the queue space of your machine and then the following formula applies:  (tng)MSGSEG * MSGSSZ = Machine Queue Space Size (note it will swap)<br />Semaphores Parameters </p><p>·SEMMNS: Maximum number of semaphores in the system. The minimum requirement for SEMMNS is MAXACCESSERS - MAXWSCLIENTS + 13 (local clients and all servers)<br />·SEMMNI:  (tng)Maximum number of active semaphore sets.  (tng)For small apps,(100 to 500 servers),10 sets are usually sufficient.  (tng)For large apps, (>500 servers) 32-64 sets are usually sufficient (do a tmloadcf -c to see which is the best)<br />·SEMMSL: Maximum number of semaphores per semaphore sets (Not defined in NT).  (tng)Use the formula:  (tng)SEMMNS = SEMMNI * SEMMSL <br />·SEMMAP: Size of the control map used to control semaphore sets (Not defined in NT).  (tng)Set to SEMMNI<br />·SEMMNU: Number of undo structures in the system.  (tng)Set to SEMMNS<br />·SEMUME:  (tng)Maximum number of undo entries per undo structure (Not defined in NT).  (tng)Set to SEMMNS </p><p>Shared Memory Parameters </p><p>·SHMMAX: Maximum shared memory segment size in bytes. Bulletin Board Size (must be greater than 1,400,000). Largest BB today is approx. 5 MB (this parameter is normally set much higher for the database, so use their rules)<br />·SHMSEG: Maximum number of segments one process can attach to (for a busy  (tng)application you need to set this from 32-64)<br />·SHMMNI: Maximum number of shared memory identifiers in the system. Normally the default of 100 is acceptable (unless more than 100 entities plan on allocating shared memory)<br />·SHMMIN: Minimum shared memory segment size in bytes.  (tng)MUST be set to 1. </p><p>Other Tunables </p><p>·ULIMIT: Maximum file size. ULIMIT needs to be large enough so that you can install BEA TUXEDO and build servers. 4 megabytes recommended.<br />·MAXUP: Maximum number of processes per non-super user. The BEA  (tng)  (tng) TUXEDO system processes--servers and administrative processes—run  (tng)  (tng)  (tng)with the UID specified in the application's UBBCONFIG file. MAXUP needs  (tng)  (tng)  (tng)to be large enough to allow all of these processes to run.<br />·NOFILES:  (tng)Maximum number of open files per process. A BEA TUXEDO server requires a minimum of four file descriptors.<br />·NPROC:  (tng)Maximum number of processes (systemwide).<br />·NREGION:  (tng)Number of region table entries to allocate. Most processes have three regions: text, data, and stack. Additional regions are needed for each shared memory segment and shared library (text and data) attached. However, the region table entry for the text of a ``shared text'' program is shared by all processes executing that program. Each shared memory segment attached to one or more processes uses another region table entry. <br />·NUMTIM: Maximum number of STREAMS modules that can be pushed by the Transport Layer Interface (TLI). A typical default value is 16; you should have it set to at least 256. <br />·NUMTRW: The number of TLI read/write structures to allocate in kernel data  (tng)space. A typical default value is 16; you should have it set to at least 256. </p><p><br />Tuxedopȝq_的调试参数及(qing)步骤<br />1Q配|MAXSERVERS、MAXSERVICES两个参数Q看是否满ubbfile文g的配|的服务数和服务参数的个数。Tmadmin——bbsQ看里面的参C数?br />2Q数据库的可以连接数的大是否满ubbfile文g里面同一个数据库q接得servers的数目。参照xa_NULL*.trc文g的错误提C?br />3Q用命o(h)tmloadcf –c ubbfile看tuxedo的进E所需要的׃n内存配置。然后修改系l的׃n内存的配|。除?jin)AIXq_外,pȝ的共享内存参数——set shmsys:shminfo_shmmin要设|ؓ(f)1?br />4QTmunloadcf  (tng)看现在运行的TUXEDO环境?br />5QTmadmin——crdl  (tng)-b  (tng) -z  (tng)创徏日志文g?br />6QTUXEDO环境的设|顺序。Tuxconfig——tmadmin——TLOGQ?br /></p><hr /><p>-- 作者:(x) whiteclude<br />-- 发布旉Q?2002/07/27 05:53pm </p><p>TUXEDO与ORACLE数据库的互连 </p><p>(来源Qhttp://www.ccw.com.cn) </p>前言 <br />? 银行、电(sh)信、金融等行业的大型计机应用pȝ中,中间件的使用日益普及(qing)Q中间g已与操作pȝ、数据库q列Z大基软g。BEA Tuxedo作ؓ(f)最优秀的中间g产品Q在我国的很多行业中q泛使用Q本文通过一个简单的例子介绍如何在TUXEDO中访问ORACLE数据库?<br />? 两层的C/Sl构中,客户端直接访问数据库Q当采用TUXEDO中间件后QŞ成三层结构。这Ӟ客户端不直接讉K数据库,而是改ؓ(f)调用中间件TUXEDO 服务端上的服务,由TUXEDO服务端访问数据库Qƈ把结果返回给客户端。TUXEDO服务端可以和ORACLE在同一台服务器上,也可以在不同的机? 上,如果在不同的机器上,在TUXEDO的服务端所在的机器要安装一个ORACLE的客L(fng)?<br />TUXEDO服务端与ORACLE数据库连接有两种方式Q?<br />1、不通过XA接口直接互连。适用于整个系l只有一个数据库的情c(din)?<br />2、通过XA接口互连Q对整个pȝ有一个数据库或多个数据库都适用Q徏议采用,本文介绍q种互连的配|方法?<br />pȝ说明 <br />TUXEDO版本:7.1 安装目录 d:\tuxedo71 <br />ORACLE版本:8.1.5 安装目录 d:\ora81 <br />操作pȝQ?win2000 <br />配置的步?<br />一、ORACLE的的配置 <br />1Q用internal用户Q缺省的口o(h)是oracleQ进入SQLPLUS <br />C:\>sqlplus internal/oracle <br />2Q运行ORACLE的安装\径下?rdbms/admin/xaview.sql <br />SQL> @d:\ora81\rdbms\admin\xaview.sql <br />3Q授?<br />SQL>grant select on v$xatrans$ to public with grant option; <br />SQL>grant select on v$pending_xatrans$ to public with grant option; <br />4. 用system用户Q缺省的口o(h)是managerQ连接ƈ授权 <br />SQL>connect system/manager <br />SQL>grant select any table to public; <br />二、TUXEDO的配|?<br />1Q修改TUXEDO安装路径的udataobj目录下的RM文gQ把以Oracle_XA:xaosw:开头的一行用#注释掉,q加入一行:(x) <br />Oracle_XA;xaosw;d:\ora81\rdbms\xa\oraxa8.lib d:\ora81\precomp\lib\msvc\orasql8.lib <br />如果是在UNIX环境下,则ؓ(f)Q?<br />Oracle_XA:xaosw:-L${ORACLE_HOME}/lib -lclntsh <br />2. 在TUXEDO用户下创建TMS文g:TMS_ORA8iQTUXEDO通过TMS_ORA8i与ORACLE数据库采用XA协议q行通讯 <br />buildtms -o d:\tuxedo71\bin\TMS_ORA8i -r Oracle_XA <br /><br />注意:如果TUXEDO 服务端与ORACLE数据库不在同一台服务器上,可能?x)提C找不到 库文件oraxa8.lib和orasql8.libQ可到ORACLE数据库的服务端相应目录下把这两个文g拷到当前机器ORACLE的客L(fng)下的对应目录下?<br />3. 配置 UBBCONFIG <br />Q?Q在*MACHINES节中增加Q?<br />TLOGDEVICE = "/home/oracle/temp/simpdb/TLOG" <br />TLOGNAME=TLOG <br />TLOGSIZE=200 <br />Q?Q改*GROUPS节的配置为:(x)(scott/tiger为本数据库所采用的用户及(qing)口o(h)Q可Ҏ(gu)需要更? <br />*GROUPS <br />GROUP1 LMID=simple GRPNO=1 <br />OPENINFO="Oracle_XA:Oracle_XA+Acc=P/scott/tiger+SesTm=600+MaxCur=5+LogDir=." <br />TMSNAME="TMS_ORA8i" TMSCOUNT=2 <br />修改后的配置文gubb内容如下Q用tmloadcf -y ubb重新生成tuxconfig <br />IPCKEY 123456 <br />DOMAINID simpapp <br />MASTER simple <br />MAXACCESSERS 100 <br />MAXSERVERS 50 <br />MAXSERVICES 100 <br />MODEL SHM <br />LDBAL N <br /><br />*MACHINES <br />server LMID=simple <br />APPDIR="d:\test" <br />TUXCONFIG="d:\test\tuxconfig" <br />TUXDIR="d:\tux71" <br />TLOGDEVICE = "d:\test\TLOG" <br />TLOGNAME=TLOG <br />TLOGSIZE=100 <br />*GROUPS <br />GROUP1 LMID=simple GRPNO=1 <br />OPENINFO="Oracle_XA:Oracle_XA+Acc=P/scott/tiger+SesTm=600+MaxCur=5+LogDir=." <br />TMSNAME="TMS_ORA8i" TMSCOUNT=2 <br />*SERVERS <br />DEFAULT: <br />CLOPT="-A" <br />test SRVGRP=GROUP1 SRVID=1 <br />*SERVICES <br /><br />4.重命名下列文Ӟ因ؓ(f)下列文g名与ORACLE带的文g名有冲突Q所以要改名?<br />Q?QTUXEDO安装路径include目录下的下面文g <br />把sqlca.h 改名?sqlca.h.bbb <br />把sqlcode.h 改名?sqlcode.h.bbb <br />把sqlda.h 改名?sqlda.h.bbb <br />Q?Q重命名TUXEDO安装路径lib目录下的下面文g <br />把libsql.lib 改名?libsql.lib.bbb <br />5.用TMADMIN创徏TLOG文gQTUXEDO用一个文件TLOG记录Ҏ(gu)据库操作的日志。用于协调分布式数据库的提交与回滚?<br />D:\>tmadmin <br />>crdl -b 500 -z d:\test\TLOG <br />>crlog -m simple <br />>q <br /><br />三、服务端的程序:(x)test.pc <br />功能:Ҏ(gu)客户端传的EMPNO到表EMP中取ENAME的|q把它返回给客户?<br />#include <stdio.h> <br />#include <atmi.h> <br />#include <userlog.h> <br /><br />EXEC SQL INCLUDE sqlca; <br /><br />EXEC SQL BEGIN DECLARE SECTION; <br />long al_empno=0; <br />char ac_ename[11]=""; <br /><br />EXEC SQL VAR ac_ename IS STRING(11);  (tng)<br />EXEC SQL END DECLARE SECTION; <br /><br /><br />TEST(TPSVCINFO *rqst) <br />{ <br /><br />/*接收客户端来的数?/ <br />al_empno = (FBFR32 *)rqst->data; <br /><br />EXEC SQL select ename into :ac_ename from EMP where empno=:al_empno; <br />if(sqlca.sqlcode!=0) <br />{  (tng)<br />userlog("select from EMP failureQsqlcode=%ldQ?sqlerr=%s\n"Qsqlca.sqlcodeQ?char *)sqlca.sqlerrm.sqlerrmc); <br />strcpy(rqst->dataQsqlca.sqlerrm.sqlerrmc); <br />tpreturn( TPFAILQ?0Q?rqst->dataQ?0Q?0 ); <br />} <br />/*把取出的l果q回l客L(fng)*/ <br />strcpy(rqst->dataQac_ename); <br />tpreturn( TPSUCCESSQ?0Q?rqst->dataQ?0Q?0 ); <br />} <br />四、编写客L(fng)E序: testcli.c <br />功能:调用TUXEDO服务端的服务TESTQ取EMPNO=1000所对应的ENAME的|q显C出?<br />#include <stdio.h> <br />#include "atmi.h"  (tng)<br /><br />main(argcQ?argv) <br />{ <br />long reqlen=1024; <br />char *reqbuf; <br /><br />/* 与TUXEDO服务端徏立连?*/ <br />if (tpinit((TPINIT *) NULL) == -1) <br />{ <br />(void) fprintf(stderrQ?"Tpinit failed\n"); <br />exit(1); <br />} <br />/* 分配发送缓冲区*/ <br />reqbuf = (char *)tpalloc("STRING"QNULLQreqlen); <br />if ( reqbuf == (char *)NULL) <br />{ <br />printf("tpalloc failed\n"); <br />tpterm(); <br />} <br />strcpy(reqbufQ?1000"); <br />/*调用TUXEDO的服务TEST*/ <br />if (tpcall("TEST"Q?(char *)reqbufQ?0LQ?(char **)&reqbufQ?(long *)&reqlenQ?0< 0 ) <br />{ <br />printf("tpcall failedQtperrno=%ldQtperrtext=%s\n"QtperrnoQtpstrerror(tperrno)); <br />tpfree(reqbuf); <br />tpterm(); <br />exit(1); <br />} <br />printf("name=%s\n"Qreqbuf); <br />tpfree(reqbuf); <br />tpterm(); <br />return(0); <br />} <br />五、编译服务端E序 <br />1.用ORACLE的PROC把test.pc 文g预编译成test.c文g <br />d:\test> proc test.pc include=%TUXDIR%/include <br />2.用buildserver把test.c~译成可执行文gQ注?r 后带的Oracle_XA 与RM文g中的一致?<br />d:\test> buildserver -o simpserv -f simpserver.c -r Oracle_XA -s TEST <br />六、编译客L(fng)E序 <br />d:\test> buildclient -o testcli -f testcli.c <br />七、用 tmboot –y 启动TUXEDO <br />? 能看到所有的SERVER都启动成功。这Ӟ我们的服务端E序test ?x)自动与ORACLE数据库徏立连接,q一直保持这个连接,直到TUXEDOpȝ或ORACLE数据库关闭。所以在我们的程序test.pc中看不到与数 据库q接的语句,因ؓ(f)现在与数据库的连接由TUXEDO自动理。如果TMS_ORA8i启动p|?x)在当前目录生成一?.trc文gQ记录失败的原因Q? 同时TUXEDO的ULOG文g中也?x)有一些错误信息。可参考这些错误信息进行错误分析?<br />d:\test> tmboot -y <br />exec TMS_ORA8i-A : <br />process id=1072 ... Started. <br />exec TMS_ORA8i-A : <br />process id=528 ... Started. <br />exec test -A : <br />process id=876 ... Started. <br />八、运行客L(fng)E序 <br />q行后应能看到服务端q回的结果?<br />d:\test> testcli <br />name=bill <br />到此Q整个配|过E就大功告成?jin)。ORACLE的其他版本的配置?qing)在其他操作pȝ上的配置基本与本文所q差不多Q差别主要在RM文g中所q的库文件可能会(x)不样?<img src ="http://www.aygfsteel.com/Vencent/aggbug/67695.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/Vencent/" target="_blank"><font color='GREEN'>Vincent Chen</font></a> 2006-09-04 23:23 <a href="http://www.aygfsteel.com/Vencent/articles/67695.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>TUXEDO在文件传输中的应?/title><link>http://www.aygfsteel.com/Vencent/articles/67694.html</link><dc:creator><font color='GREEN'>Vincent Chen</font></dc:creator><author><font color='GREEN'>Vincent Chen</font></author><pubDate>Mon, 04 Sep 2006 15:16:00 GMT</pubDate><guid>http://www.aygfsteel.com/Vencent/articles/67694.html</guid><wfw:comment>http://www.aygfsteel.com/Vencent/comments/67694.html</wfw:comment><comments>http://www.aygfsteel.com/Vencent/articles/67694.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/Vencent/comments/commentRss/67694.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/Vencent/services/trackbacks/67694.html</trackback:ping><description><![CDATA[ <p>TUXEDO在文件传输中的应?/p> <p>1 引言 </p> <p>  q几q来Q以交易中间件ؓ(f)框架基础的三层客h/服务器模式已被广泛证实ؓ(f)建立开攑ּ关键业务应用pȝ的最佳环境?/p> <p>  TUXEDO是美国BEA公司的一U交易中间g产品Q它在银行、电(sh)信、邮ѝ金融证券等大规模关键事务处理领域中有着q泛的应用。它能够? C/S环境下整合各U异构^収ͼ通过联机事务处理机制Q保证交易的完整性和数据的一致性。BEA TUXEDO是在企业、Internet q样的分布式q算环境中开发和理三层l构的客?服务器型关键d应用pȝ的强有力工具?/p> <p>  BEA TUXEDO 采用三层l构的客h/服务器模式组件Y件模?该结构利用交易中间g应用的业务逻辑、表C逻辑和数据分Z个不同的处理层:(x)客户为第一表示逻辑层,? 现用户交互和数据表示Q第二层的逻辑业务层ؓ(f)应用的主体,负责业务的逻辑处理Q第三层数据层负责对数据库的(g)索、读取和更新{操作。交易中间g作ؓ(f)构造三 层结构应用系l的基础q_Q提供了(jin)两个主要功能Q负责客h和服务器间的联接和通讯Q提供一个三层结构应用开发和q行的^台。由此可见,交易中间件提供了(jin) 一个基的框架去帮助你徏立、运行和理一个三层客h/服务器模式的应用Q你不需要从零做P大大~短?jin)应用开发的旉Q提高(sh)(jin)应用开发的成功率?/p> <p>  本文以应用TUXEDO的同步调用tpcall方式和FML~程方式ZQ介l了(jin)在Windows客户端和Unix服务器之间完成文件传输的? 法。客L(fng)调用VC++制作的传输文件的tuxedo动态链接库Q实现Windows客户端与Unix服务器端传输文gQ包括上传和下蝲文g两种方式Q的 实现Ҏ(gu)?/p> <p>2 客户端应用TUXEDO实现文g传输Ҏ(gu)</p> <p>  在客L(fng)Q首先设|客L(fng)与服务器端在文g传输中文件块的大、文件的块标识等基本信息Q将字节数比较大的文件分为很多小块,利用TUXEDO 的同步调用tpcall方式循环调用后台的文件处理服务,字节数较大的文件按着块的大小分多ơ传输到UNIX后台。下面以下蝲文gZ讲解使用 tuxedo同步调用tpcall方式完成文g传输的例子?/p> <p>  首先利用TUXEDO的tpalloc甌需要用的发送和接收~存Q用Fchg32函数在缓存(sh)攑օ服务器端需要的域|(x)文g块的大小、文件的标识{基本信息?/p> <p>SndBuf = (FBFR32 *)tpalloc("FML32", NULL, 1024); /* 甌发送的~存 */<br />iRet = Fchg32(SndBuf,BLOCKSIZE,0,(char *)&lBlockSize,0); /* 讄文g块的大小 */<br />讄完毕后,开始用同步tpcall调用UNIX后台文g处理FTPSVR服务?<br />/* 客户端同步调用UNIXq_文g处理服务*/<br />iRet = tpcall("FTPSVR",(char *)SndBuf,0L,(char **)&RcvBuf,(long *)&len,0L);<br />iRet = Fget32(RcvBuf, FILELEN, 0, (char *)&lFileLen, 0);/* 接收文g长度*/<br />接收文gq将W一块数据写入文?br />iRet = Fget32(RcvBuf, FILEDATA, 0, pszFileBuf, (FLDLEN32 *)&lFileDataLen);<br />fp = fopen(pszCltFileName, "wb+"); /* 创徏文g*/<br />lBlkLen = fwrite(pszFileBuf,1,lFileDataLen,fp); /* 接收第一块数据写入文?/<br />同时计算需要调用下载文件服务的ơ数Q多ơ调用文件服务,后l文件下载到客户端?br />lBlkNum = (lFileLen -1)/lBlockSize +1 ;<br />for(i=2; i<lBlkNum+1;i++)?br />…?br />iRet = tpcall("FTPSVR",(char *)SndBuf,0L,(char **)&RcvBuf,(long *)&len,0L);<br />Fget32(RcvBuf, FILEDATA, 0, pszFileBuf, (FLDLEN32 *)&lBlockSize);<br />lBlkLen = fwrite(pszFileBuf, 1, lBlockSize, fp);<br />…?br />?/p> <p>3 UNIX服务器端实现Ҏ(gu)</p> <p>  在Unix服务器端Q接收客L(fng)发送过来的~存内容Q如Q文件块的大、文件块内容、文件块标识{。根据文件块的标识移动文件指针来写文Ӟ? ơ文件指针移动的大小由文件块的大决定,q将d的文件块的内Ҏ(gu)入输出缓存(sh)Qƈq回l客L(fng)。Unix服务器端E序例子说明如下Q?/p> <p>FTPSVR(TPSVCINFO *rqst)<br />{<br />………?br />RcvBuf = (FBFR32 *)rqst->data; /*指向接收客户端的~存*/<br />iRet = Fget32(RcvBuf, BLOCKID, 0, (char *)&lBlockID, 0); /* 接收client发送的块标?/<br />fp = fopen(pszSvrFileName, "rb");  /* 打开文gQ准备读?/<br />(fseek(fp, (lBlockID-1)*lBlockSize, 0)!=0)  /* Ҏ(gu)块标识移动文件指?/<br />lReadLen=fread(pszFileBuf, 1, lBlockSize, fp);  /* d文g?/<br />Fchg32(SndBuf, FILEDATA, 0, pszFileBuf, (FLDLEN32 )lReadLen); /* 文件块的内Ҏ(gu)式放入tuxedo甌的缓存(sh)*/<br />tpreturn(TPSUCCESS, 0, (char *)SndBuf, 0L, 0);  /* 输出缓存返回给客户?/<br />?</p> <p>4 WINDOWSq_文g传输的设?/p> <p>4.1 WINDOWS客户端动态链接库的实?/p> <p>  使用PowerBuilder、Delphi、VB{Y件不能直接调? C语言源代码,它们只能调用动态链接库文g。下面我们讲q如何用VC++6.0Windows客户端的文g传输的C、TUXEDO代码制作成动态链? 库供Power Builder、Delphi、VB{程序调用?br /> 使用VC++可以制作三种DLLQ分别是 <br /> (1)Non-MFC Dlls <br /> (2).Regular Dlls <br /> (3)Extension Dlls <br />  Non-MFC DLL:指的是不用MFC的类库结构,直接用C语言写的DLLQ其输出的函C般用的是标准C接口Qƈ能被非MFC或MFC~写的应用程序所调用。因为我们不使用MFCcdQ所以采用Non-MFC Dlls?</p> <p>  每一个DLL必须有一个入口点Q就象用C~写的应用程序,必须有一个main函数一? DllMain是一个缺省的函数入口?/p> <p>  创徏一个动态链接库Q选择File->New菜单Q弹出New对话框。在Projects标签下Q选择"Win32 Dynamic-Link Library"。Visual C++׃(x)创徏动态链接库所需的工E文件?br />创徏ftpfile.def文gQ这个文件记录了(jin)可被外部应用E序使用的DLL库函数名字。这些名字信息和对应的函C|的信息被~译q动态链接库文g中,然后应用E序Ҏ(gu)函数名字和函C|对照表来找到对应的函数。ftpfile.def内容如下Q?/p> <p>LIBRARY "ftpfile"<br />EXPORTS<br />ftpfile; /*与C代码中的函数名称相同*/<br />ftpfile.def? 源程序ftpfile.cpp、头文gpublic.h和ftpfld.h、tuxedo库文件wtuxws32.lib和libwsc.lib加入到工 E中。选择Project->add to projectQ?gt;files.然后开始编译动态链接库生成ftpfile.dll?br />代码样例如下Q?br />BOOL WINAPI DllMain( HMODULE hModule, DWORD dwReason, LPVOID lpvReserved )<br />/* 动态链接库函数入口*/<br />{<br />return TRUE;<br />}<br />LRESULT WINAPI ftpfile(char* CltFileName,char* SvrFileName,long lBlockSize,long lOptFlag) /* 动态链接库函数M*/<br />{<br />FBFR32 *RcvBuf,*SndBuf; /*变量声明*/<br />int iRet;<br />long i,lBlkLen,len,lFileLen,lBlkNum;<br />………?br />/* 动态链接库E序M*/<br />SndBuf = (FBFR32 *)tpalloc("FML32", NULL, MAXBUFLEN); /*甌发送缓?/<br />if (SndBuf == NULL)<br />{<br />userlog("tpalloc sndbuf error errno=[%d] err=[%s]",tpstrerror(tperrno));<br />tpterm();<br />return TPALLOCERR;<br />}<br />RcvBuf = (FBFR32 *)tpalloc("FML32", NULL, MAXBUFLEN);/*甌接收~存*/<br />iRet = Fchg32(SndBuf,BLOCKSIZE,0,(char *)&lBlockSize,0); /*把块大小攑օ发送缓?/<br />if (iRet <0){ /*错误处理*/<br />tpfree((char *)SndBuf);<br />tpfree((char *)RcvBuf);<br />tpterm();<br />return FCHGERR; <br />}<br />iRet = Fchg32(SndBuf,OPTFLAG,0,(char *)&lOptFlag,0);<br />…………………………?br />}/* E序Ml束*/</p> <p>4.2 WINDOWS客户端动态链接库的调?/p> <p>  以Power Builder7.0ZQ讲q如何在Power Builder中调用文件传输的客户端动态链接库?/p> <p>  首先Q在Power Builder声明该函敎ͼ声明如下Q?br />Function Integer ftpfile(string CltFileName,string SvrFileName,long lBlockSize,long lOptFlag) LIBRARY "ftpfile.dll"<br />然后Q在E序中就可以应用?jin)。示例如下:(x)<br />string CltFileName<br />string SvrFileName<br />long lBlockSize<br />long lOptFlag /*讄文g上传或下载标?/<br />integer iRet</p> <p>CltFileName="..\data\report.txt"<br />SvrFileName="../up/form.txt"<br />LBlockSize=1024<br />LOptFlag=1<br />IRet = ftpfile(CltFileName,SvrFileName,lBlockSize,lOptFlag)<br />If (iret< 0){<br />messagebox('pȝ提示','调用ftpfile函数错误')<br />return <br />}</p> <p>5 l束?/p> <p>  本文通过分析TUXEDO交易中间件的同步调用TPCALL和FML~程方式Q描qC(jin)在Windows和UNIXq_之间如何完成文g传输的方法,概述?jin)Windowsq_如何制作和调用动态链接库?/p> <img src ="http://www.aygfsteel.com/Vencent/aggbug/67694.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/Vencent/" target="_blank"><font color='GREEN'>Vincent Chen</font></a> 2006-09-04 23:16 <a href="http://www.aygfsteel.com/Vencent/articles/67694.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>TUXEDO函数说明http://www.aygfsteel.com/Vencent/articles/67691.html<font color='GREEN'>Vincent Chen</font><font color='GREEN'>Vincent Chen</font>Mon, 04 Sep 2006 15:01:00 GMThttp://www.aygfsteel.com/Vencent/articles/67691.htmlhttp://www.aygfsteel.com/Vencent/comments/67691.htmlhttp://www.aygfsteel.com/Vencent/articles/67691.html#Feedback0http://www.aygfsteel.com/Vencent/comments/commentRss/67691.htmlhttp://www.aygfsteel.com/Vencent/services/trackbacks/67691.html阅读全文

Vincent Chen 2006-09-04 23:01 发表评论
]]>
վ֩ģ壺 Դ| | ͨ| | Դ| ƽ| | Ͳ| | ǭ| ̫| | | | ¡| ͨ| | | | ɯ| | ½| | | | կ| ˶| | | Դ| ٺ| | ǿ| | | ʯɽ| ׿| ɽ| | | |