Google

Friday, September 10, 2004

在tmadmin的pq中监察到# Queued的数字较大!该如何处理!

能否说一下具体的多少.这个数字大了一般有问题,如果server处理堵塞的时候很容易出现,还有就是service数量的时间较长,而请求的并发又比较 多的时候也会出现.我想可以从几个方面改进,首先看能否减少service的处理时间,比如改进程序,优化SQL等.另外对付大量并发请求时可以将 server启多份或者用MSSQ.另外也可以看一下数据库那边是否效率不高.总之要多方面的找原因,然后想办法改进.

j2ee与tuxedo

我觉得tuxedo的大部分功能用j2ee都可以实现,如Request/Response communication and Conversational communication 可用 Session Bean 实现;Event-Based Bean 可用Message Driver Bean 实现,J2ee的用户更多,相比之下,用tuxedo有什么好处呢——菜鸟弱弱的问

呵呵,这个问题有点意思。首先TUXEDO历史比J2EE应该长十几年,如果从83年BELL LAB的那个算起。所以不是有了J2EE之后再去弄个TUXEDO。其实你如果仔细看看J2EE的一些方式,我个人觉得很多是借鉴了传统交易中间件的思 想。
确 实从功能上讲,很多用TUXEDO实现的,用J2EE可以实现。但是很多大的关键系统还是使用交易中间件,我想是出于稳定性(毕竟是经过很多年和无数系统 的考验的),效率(这个和编程语言也有关)等方面的考虑。TUXEDO主要关注的是事务处理,这就像它的名字指出的一样,而J2EE我觉得是一个更庞大全 面的结构。现在也有很多系统用J2EE实现,包括一些大的系统。但是我认为在相当长的一段时间内,很多系统还是回用TUXEDO等交易中间件来实现。个人 观点,仅供参考。

请教如何打开更高级别的LOG

设置TMTRACE环境变量.例如:
TMTRACE="*:ulog:dye:"
具体看tuxedoSection 5 - File Formats and Data Descriptions 文档吧!

如何将 Tuxedo 服务发布到internet(公网)上

公网ip,你需要使用防火墙做转换,那么你使用的是防火墙映射后的ip,所以你只需要更改WSL的配置就可以了.
例如:
WSL=" -n //inter IP:port(内网) -H //outer IP:port(公网)

client :

set WSNADDR=//公网ip:port就可以了.

请教在HP UNIX 11I下怎么安装tuxedo7.1的PATCH?急

以前在HP主机,tuxedo6.5的环境下打过补丁,过程是
将补丁放到tuxedo的目录下
设置环境变量 TUXDIR
解压 uncompress XXXXxxxx.tar.Z
tar -xvf XXXXxxxx.tar
停止tuxedo :
tmshutdown -y
安装
./install
输入用户名、组和目录
用户名就是你tuxedo的用户 , 组为它对应的组
输入目录时回车即可

Another version from
dev2dev.bea.com.cn
1、确定你的操作系统和现在的tuxedo版本及PATCH号;
2、打800-810-2327获得ftp地址、帐户和密码;800电话的服务时间是早上9点-晚上6点。
3、下载对应的压缩包,压缩包名字一般按操作系统_位数_PATCH号来命名的。一般ftp的权限是3天有效;同时,找到对应的SDK license。
4、备份你现在运行的TUXEDO系统,由于有时打PATCH时,TUXEDO卸载得不完全。
5、解压PATCH包,里面有README文件和INSTALL文件。你可以手工copy文件到相应目录进行更新,也可以直接运行INSTALL。
6、INSTALL时有关于JOLT和TUXEDO安装目录的询问。运行INSTALL文件要用安装TUXEDO的系统帐户。
7、运行INSTALL完毕,可以从UDATAOBJ目录中的PATCHLEV看到更新的PATCH号。
8、将UDATAOBJ中的RDT license更新为SDK license;
9、重新编译所有运行的TUXEDO程序。

Orace user settings

请确认是否对ORACLE做了如下配置
1.用internal用户(缺省的口令是oracle)进入SQLPLUS
$ sqlplus internal/oracle
2.运行ORACLE的安装路径下的/rdbms/admin/xaview.sql
SQL>@/oracle/ rdbms/admin/xaview.sql
3.授权
SQL>grant select on v$xatrans$ to public with grant option;
SQL>grant select on v$pending_xatrans$ to public with grant option;
4.用system用户(缺省的口令是manager)连接并授权
SQL>connect system/manager
SQL>grant select any table to public;

Transaction Timeout

如果你真要这么做,很简单,blocktime和begin的超时时间都必须设置很大,否则就完完。最好别通过tuxedo插入大批量数据,tuxedo最适合做典型的联机事务处理,而不是大批量的查询或者插入.

Relevant parameters:
WSL中可以配置的-T(客户端idle时间)、-I(client init时间)参数
另外配置RESOURCE section的BLOCKTIME、SCANUNIT

Structure of RM

RM文件包含所有的资源管理器的入口,它们被tuxedo应用访问。RM文件在$TUXDIR/udataobj目录下。每一个入口使用冒号分隔。
第一个字段是资源管理器的唯一名字。你可以使用任何指定的名字,通常启比较被人容易理解的名字。
第二个字段是xa_switch_t 结构名字。Oracle叫做 xaosw,oracle7引用的是静态注册。从oracle后使用另外一个结构xaoswd 用来动态注册。(具体的查看the Oracle8i Application Developer's Guide - Fundamentals 获得更多信息)
第三个字段是使用空格分隔的建立TM所需要的lib库文件列表。这些库文件通过访问RM文件建立tuxedo server 还是需要的。 一旦资源管理器入口正确建立到该RM文件中,就可以build事务管理server了。
RM的例子如下:
如果你没有使用cobol,oracle的RM使用:
Oracle_XA:xaosw:-L${ORACLE_HOME}/lib -lclntsh
如果使用cobol:
Oracle_XA:xaosw:-L${ORACLE_HOME}/lib ${ORACLE_HOME}/precomp/lib/cobsqlintf.o -lclntsh

RM的配置和oracle版本有关,和使用的位数也有关。
如果数据库是64bit的,估计还要加上+DA2.0W +DS2.0之类的参数

http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=4&threadID=3824&tstart=855

Thursday, September 09, 2004

CSG config file for log

>cat OM.ini
# OM.ini -- Order Entry initialization file
[ServerConfig]
# NONE : No Messages
# LOW : FATAL, ALARM, ERROR
# MEDIUM : FATAL, ALARM, ERROR, WARN, INFORM
# HIGH : FATAL, ALARM, ERROR, WARN, INFORM, DEBUG, UNKNOWN
LogLevel=MEDIUM
# 0, 1
Debug=0

How to compress and encryp?

压缩可以在UBB配置文件中设置:
MACHINES
CMPLIMIT=string_value1[,string_value2]

string_value1:数字,当远端报文数据量大于此数值时开始使用压缩
string_value2:数字,当本地报文数据量大于此数值时开始使用压缩

加密部分需要在代码中使用一系列API
tpkey_open()
tpkey_getinfo()
……
详细使用方法可参照联机文档

Comparison of COM+ and TUXEDO

我们这里对COM+和TUXEDO的比喻是:
COM+是一个傻瓜相机,而TUXEDO是个专业相机。
如果对于企业内部应用的软件,用户数不多,开发任务紧的情况下,是否可以用COM+开发比较好?
而如果是大并发用户和实时要求高的情况,用TUXEDO比较好?比如银行的转帐和电信的计费。
如果是中间件只负责调用存储过程,那TUXEDO和COM+开发难度区别不大,而我理解此时纯是两个的后台运行比较了。
请问TUXEDO调用存储过程还是直接在其中写基础的SQL语言比较可以发挥它的优势?
谢谢。

TP error code set

tperrno=4 invalid parameter
tperrno=6是TPENOENT错误,没有找到service

#define TPMINVAL 0 /* minimum error message */
#define TPEABORT 1
#define TPEBADDESC 2
#define TPEBLOCK 3
#define TPEINVAL 4
#define TPELIMIT 5
#define TPENOENT 6
#define TPEOS 7
#define TPEPERM 8
#define TPEPROTO 9
#define TPESVCERR 10
#define TPESVCFAIL 11
#define TPESYSTEM 12
#define TPETIME 13
#define TPETRAN 14
#define TPGOTSIG 15
#define TPERMERR 16
#define TPEITYPE 17
#define TPEOTYPE 18
#define TPERELEASE 19
#define TPEHAZARD 20
#define TPEHEURISTIC 21
#define TPEEVENT 22
#define TPEMATCH 23
#define TPEDIAGNOSTIC 24
#define TPEMIB 25
#define TPMAXVAL 26 /* maximum error message */

The following list describes the general meaning of each error:
TPEABORT
A transaction could not commit because either the work performed by the
initiator or by one or more of its participants could not commit.
TPEBADDESC
A call descriptor is invalid or is not the descriptor with which a conversational
service was invoked.
TPEBLOCK
A blocking condition exists and TPNOBLOCK was specified.
TPEDIAGNOSTIC
The enqueuing of a message on the specified queue failed. The reason for
failure can be determined by the diagnostic returned via ctl.
TPEEVENT
An event occurred; the event type is returned in revent.
TPEGOTSIG
A signal was received and TPSIGRSTRT was not specified.
TPEHAZARD
Due to some failure, the work done on behalf of the transaction could have
been heuristically completed.
TPEHEURISTIC
Due to a heuristic decision, the work done on behalf of the transaction was
partially committed and partially aborted.
TPEINVAL
An invalid argument was detected.
TPEITYPE
The type and subtype of the input buffer is not one of the types and subtypes
that the service accepts.
TPELIMIT
The caller’s request was not sent because the maximum number of
outstanding requests or connections has been reached.
TPEMATCH
svcname is already advertised for the server but with a function other than
func.
TPEMIB
The administrative request failed. outbuf is updated and returned to the
caller with FML32 fields indicating the cause of the error, as described in
MIB(5) and TM_MIB(5).
TPENOENT
Cannot send to svc because it does not exist or is not the correct type of
service.
TPEOS
An operating system error has occurred.
TPEOTYPE
The type and subtype of the reply are not known to the caller.
TPEPERM
A client cannot join an application because it does not have permission to do
so or because it has not supplied the correct application password.
TPEPROTO
A library routine was called in an improper context.
TPERELEASE
When the TPACK is set and the target is a client from a prior release of the BEA
Tuxedo system that does not support the acknowledgment protocol.
TPERMERR
A resource manager failed to open or close correctly.
TPESVCERR
A service routine encountered an error either in tpreturn() or
tpforward() (for example, bad arguments were passed).
TPESVCFAIL
The service routine sending the caller’s reply called tpreturn() with
TPFAIL. This is an application-level failure.
TPESYSTEM
A BEA Tuxedo system error has occurred.
TPETIME
A timeout occurred.
TPETRAN
The caller cannot be placed in transaction mode.

Have a rest

人寿-》人瘦-》忍受……

Useful tuxedo commands

tmadmin:
psr,psc,help xxx,pg,pnw

System Side:
ulimit -a #get and set user limits

Time of connection between Tuxedo and Oracle

Q:比如:我通过tuxedo查询,oracle数据库select要10分钟,但现在tuxedo在1分中左右就报错,
我的配置中是这样配的:
OPENINFO="Oracle_XA:Oracle_XA+Acc=P/xx/xx+SqlNet=ora+SesTm=600+MaxCur=9+LogDir=."
服务是这样的:
tpbegin(600,0)

A:你的tpbegin中的600秒虽然够了,但是还有ubb文件中的一些超时设置肯定没有改,比如service的svctimeout时间,还有resource段中的blocktime改了吗?
OPENINFO配置的SesTm=600,应该大于tpbegin的600,还有SesTm的时间需要小于oracle的init.ora的配置时间
三个时间有个大小顺序,不然xa方式的时候很容易造成锁表的。

Commens: My env. is SesTm=300

dev2dev.bea.com.cn