[转帖]程序开发中的问题三_MQ, Tuxedo及OLTP讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MQ, Tuxedo及OLTP讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 4656 | 回复: 0   主题: [转帖]程序开发中的问题三        下一篇 
mengyuanye
注册用户
等级:少校
经验:1413
发帖:108
精华:7
注册:2012-11-14
状态:离线
发送短消息息给mengyuanye 加好友    发送短消息息给mengyuanye 发消息
发表于: IP:您无权察看 2012-11-15 14:16:06 | [全部帖] [楼主帖] 楼主

18 pb 与tuxedo 的FML 函数Fchg 参数解释

我的例子是把 bea 的value 放到NAME的字段buffer 中。长度我设置的为0。因为 carray 类型需要指定具体的长度,FML 的buffer 类型可以不指定字段的具

体长度,可以使用统一使用0 长度。这些你可以读读有关Fchg 函数的online book

说明。在http://edocs.bea.com 中有。

fadd32 是往buffer 中增加,occ 值依次累加,不能更改已经有的occ 的value,

但是fchg 函数却可以。通过occ 来控制。

19 BCB 开发Tuxedo 客户端配置详解!!

大家知道很多编程语言都可以开发 Tuxedo 客户端;Delphi,PB,Vc,BCB

等等。

今天就将用 BCB 开发Tuxedo 客户端的心得体会写出来,与大家共同探讨。

机器配置:win2k、Tuxedo7.1、BCB6.0;

通常要做以下 5 步:

1、把%TuxedoDir%\bin 目录下的wtuxws32.dll 用BCB 自带的implib 生成

wtuxws32.lib;


方法是 implib wtuxws32.lib wtuxws32.dll,这样就生成了符合BCB 的链接库

wtuxws32.lib。


2、把这个wtuxws32.lib 加到BCB的project 中(Project --> Add to Project) 。

3、在实现单元(如unit1.cpp)中要#include "atmi.h",当然你必须在project->option->

directories/conditional->include path 中加入%TuxedoDir%\inlude 这个目录。

4、在调用Tpinit 之前,必须加两条语句:tuxputenv("WSWADDR=//ip:端口");

tuxputenv("WSENVFILE=");


5、很关键,必须在服务器端的Tuxconfig 文件中的SERVICES 节点后加入:

WSL SRVGRP=GROUP1 SRVID=10 CLOPT="-t -- -n //192.168.0.236:6677"


(注:192.168.0.236 是服务器断的ip 地址,6677 是端口号);其次要在MACHINE

节点后面加入

MAXWSCLIENTS =5 ,可以不是5,但一定要非0;这一步很重要,否则客

户端始终连接不了服务器的应用。

如果不成功,可以察看C:\根目录下的ULOG.XXXX,里面会有详细的出错信息。

下面贴一段我用 BCB 改造的SimpApp:

#include <vcl.h>
#pragma hdrstop
#include "atmi.h"
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{ char *sendbuf, *rcvbuf;
      long sendlen, rcvlen;
      int ret;
      tuxputenv("WSNADDR=//192.168.0.235:6677");
      tuxputenv("WSENVFILE=");
      if (tpinit(NULL)==-1)
      {
            Panel1->Caption = "error";
      }
      else
      {
            Panel1->Caption = "ok";
            sendlen = LabeledEdit1->Text.Length();
            if((sendbuf = (char *) tpalloc("STRING", NULL, sendlen+1)) == NULL)
            {
                  ShowMessage("分配发送存贮空间失败!!") ;
                  tpterm();
            }
            if((rcvbuf = (char *) tpalloc("STRING", NULL, sendlen+1)) == NULL)
            {
                  ShowMessage("分配接受存贮空间失败!!") ;
                  tpfree(sendbuf);
                  tpterm();
            }
            StrCopy(sendbuf,(LabeledEdit1->Text).c_str());
            ret = tpcall("TOUPPER", sendbuf, 0, &rcvbuf, &rcvlen, 0);
            if (ret == -1)
            { ShowMessage("调用服务失败");
                  tpfree(sendbuf);
                  tpfree(rcvbuf);
                  tpterm();
                  Abort();
            }
            LabeledEdit2->Text = StrPas(rcvbuf);
            tpfree(sendbuf);
            tpfree(rcvbuf);
            tpterm();
      }
}


希望对大家有帮助!! --------------------------------------------------------------------------

#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//------


20 tuxedo6.5 和weblogic7.0 通过wtc 互联

昨天自己想试一下 wtc,发现网上没有很好的文档,只有徐春金的一个,是

针对weblogic6.0 的,和weblogic7.0 的配置区别还是挺大的,就写了写

版主,这个文章放在这可以吗?如果不行就删掉吧

TUXEDO6.5 与WEBLOGIC7.0 通过WTC 进行互连的配置

WEBLOGIC 与TUXEDO 的互连有两种方式, 通过JOLT 或通过

WTC(WEBLOGIC TUXEDO CONNECTOR)。它们都是BEA 公司的产品,WTC

不仅能让

WEBLOGIC 调用TUXEDO 中的SERVICE,而且能让TUXEDO 调用WEBLOGIC

中的EJB。

一、WTC 配置说明:

TUXEDO 与WEBLOGIC 之间通过DOMAIN 方式实现互相调用,在这个例子

中有两个DOMAIN:TUXEDO 所在的DOMAIN 名为TDOM1, WEBLOGIC 所

在的

DOMAIN 名为TDOM2。TDOM1 上有TOUPPER 它是一个TUXEDO

SERVEICE,TDOM2 上有TOLOWER 它是一个EJB,

下 面 以 WTC 安装带的例子simpapp( 在WTC 安装目录的

samples\server\src\examples\wtc\atmi\simpapp 下)说明配置过程:

TUXEO 版本: TUXEDO65

WEBLOGIC 版本: WEBLOGIC7.0

TUXEO 安装目录: D:\TUXEDO

WEBLOGIC 安装目录: D:\bea

操作系统: WIN2000

例子目录: E:\tuxedo-test(把samples\server\src\examples\wtc\atmi\simpapp 目录

COPY 到E:\tuxedo-test)

服务器名: localhost

二、TUXEDO 要做的配置

(1)首先确保你的PATH 环境变量已经包含了你的C 的编译器路径,如果没有

可以使用set 来设置。

(2)把samples\server\src\examples\wtc\atmi\simpapp 目录COPY 到E:\tuxedo-test

(3)进入到E:\tuxedo-test 路径,修改setEnv.cmd 文件:

set TUXDIR=D:\TUXEDO
set WSNADDR=//localhost:17000
set APPDIR=E:\tuxedo-test
set PATH=%TUXDIR%\bin;%APPDIR%;%PATH%
set TUXCONFIG=%APPDIR%\tuxconfig


运行该文件,使环境变量生效。最好能够逐个检查一下,因为在UNIX 系统上有

时候会设置不上。如果环境变量都生效了,就可以进行下一步了

建议大家在真正做的时候把这些环境变量加到:windows 放到系统的环境变量

中;如果是UNIX 加入到该用户的.profile 文件中,这样

在你下次进入的时候环境变量就已经正确设置了。

(4) 编译客户端和服务端程序:

buildclient -o simpcl - f simpcl.c
buildserver -o simpserv - f simpserv.c -s TOUPPER


这个编译应该不会有什么问题,只要环境变量设置正确

(5)从samples\server\src\examples\wtc\atmi\simpapp 路径拷贝ubbdomain 和

dom1config 文件到E:\tuxedo-test

(6)从samples\server\src\examples\wtc\atmi\simpserv 路径拷贝tolower.c 文件到

E:\tuxedo-test


(7)修改ubbdomain 文件,主要是<braced> 部分,例子如下:

APPDIR="E:\tuxedo-test"
TUXCONFIG="E:\tuxedo-test\tuxconfig"
TUXDIR="D:\TUXEDO"


(8)编译ubbdomain :

tmloadcf -y ubbdomain


(9)修改dom1config 文件如下:

*DM_RESOURCES
VERSION=U22
*DM_LOCAL_DOMAINS
TDOM1 GWGRP=GROUP2
TYPE=TDOMAIN
DOMAINID="TDOM1"
*DM_REMOTE_DOMAINS
TDOM2 TYPE=TDOMAIN
DOMAINID="TDOM2"
*DM_TDOMAIN
TDOM1 NWADDR="//localhost:18000"
TDOM2 NWADDR="//localhost:18001"
*DM_REMOTE_SERVICES
TOLOWER RDOM="TDOM2"


(10)编译dom1config:

set BDMCONFIG=E:\tuxedo-test\bdmconfig
dmloadcf -y dom1config


注意在编译前增加环境变量 BDMCONFIG,最好也是像前面的环境变量一样加

到系统环境变量或者.profile 文件中

(11)编译tolower 文件:

buildclient -v -f tolower.c -o tolower


此处编译可能会出错,原因是tolower.c 文件中一个注释写反了,修改后应该可

以编译

(12)启动server:

tmboot -y


(13)此时可以验证一下系统启动的情况,使用tmadmin-->psc,应该可以看到

启动的如下service:

DMADM, GWADM 和 GWTDOMAIN

TOUPPER---->simpserv 提供的
TOLOWER---->GWTDOMAIN 提供的


如果上面的 service 都正确的启动了,就可以作weblogic 的配置了.

三、WEBLOGIC 要做的配置:

(1) 启动WebLogic examplesServer , 可以从开始菜单启动, 或者直接运行

D:\bea\weblogic700\samples\server\config\


examples\setExamplesEnv.cmd, 然后运行

D:\bea\weblogic700\samples\server\config\examples\startExamplesServer.cmd


注意:1.确保没有WTCServer Mbeans 在这个server 上存在,否则会有问题.

2.在WebLogic 中增加一个用户TDOM1,如果没有增加,在运行tolower 的时候

后有如下错误:

Can't send request to service TOLOWER
Tperrno = 13


(2) 打开一个command 窗口, 进入到

D:\bea\weblogic700\samples\server\config\examples 路径下, 运行

setExamplesEnv.cmd


(3)编译wtc_toupper.jar :

ant


(4)修改setWTCMbeans 文件:

set wlsNWAddr=//localhost:18001
set tuxNWAddr=//localhost:18000
set interop




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论