tuxedo linux内核 msgmni,tuxedo錯誤解析和常用配置說明

tmboot之后的信息如下:

exec XServer :

CMDTUX_CAT:1685: ERROR: Application initialization failure

這個服務是一個數據庫的服務,連接用的用戶名、密碼、數據庫名字都正確,但還是啟動不了服務。

1685:Server failed to boot due to application initialization failure from tpsvrinit(3c).

ULOG:

CMDTUX_CAT:1685: ERROR: Application initialization failure

201838.dzyh!WSH.882.3086894784.0: 11-17-2008: Tuxedo Version 8.1, 32-bit

201838.dzyh!WSH.882.3086894784.0: LIBTUX_CAT:681: ERROR: Failure to create message queue

201838.dzyh!WSH.882.3086894784.0: WSNAT_CAT:1088: ERROR: tpinit() failed, tperrno = 7

201838.dzyh!WSL.878.3085956800.0: WSNAT_CAT:1079: ERROR: Error starting minimum number of handlers201838.dzyh!WSL.878.3085956800.0: LIBTUX_CAT:250: ERROR: tpsvrinit() failed

原因分析:Linux系統的內核參數msgmni設置太小無法滿足Tuxedo的需求而導致該服務啟動失敗

解決方法:

1.以tmloadcfg -c ubbcfg 所顯示要求的是系統最低的資源要求

2.

root登陸

sysctl -a

kernel.msgmni = 16 (默認值) //msgmni系統限制參數kernel.msgmax = 8192 (默認值)

vi /etc/sysctl.conf

#添加

kernel.msgmni = 260

kernel.msgmax = 16384

sysctl -p

tmboot -y====================================================================================================

1、執行tmadmin命令,出現如下錯誤

NLS:4: Cannot open message catalog TMADMIN_CAT, set 1, num 184; check TUXDIR=/home/dev/app/tuxedo8.1, LANG=zh_CN.GB18030可以肯定,這個錯誤是由字符集引起的,我用的是簡體中文linux

添加環境變量vi .bash_profile 添加如下內容

export LANG=C

保存退出,source .bash_profile 使環境變量生效

2、再執行tmadmin,這個錯誤消失,但是出現了如下錯誤:

tmadmin - Copyright (c) 1996-1999 BEA Systems, Inc.

Portions * Copyright 1986-1997 RSA Data Security, Inc.

All Rights Reserved.

Distributed under license by BEA Systems, Inc.

Tuxedo is a registered trademark.

TMADMIN_CAT:188: ERROR: Error while obtaining the Bulletin Board parameters分析上面的信息,因為沒有編譯生成TUXCONFIG指向的文件,即公告牌文件

經過上面一些配置,已經可以使用tuxedo了,后面配置公告文件和開發程序都是開發的內容

3、在tuxedo客戶端程序中,調用tpinit失敗,返回-1,tperrno=12:internal system error。

在用buildclient編譯客戶端程序的時候,如果加入了-w選項,那么必須設置WSADDR環境變量,如果沒有采用-w選項,那么默認請求本地的服務。

如果在編譯客戶端程序的時候,采用了-w選項,而又沒有正確設置WSADDR環境變量,那么tpinit失敗,返回-1,tperrno=12;

同時UBB中,需要訪問服務所在的組也必須設置WSL選項,如:

WSL SRVGRP=GROUP1 SRVID=2 MAXGEN=2 CLOPT=" -A -- -n //192.168.1.201:3195 -m 2 -M 6 -x 10"

同時在*MACHINE節點設置MAXWSCLIENTS=5,MAXWSCLIENTS是最大的WSL client數。

在客戶端程序運行的時候export WSNADDR=//192.168.1.201:3195,就可以訪問服務了。

如果在編譯客戶端程序的時候,沒有采用-w選項,默認訪問本地的服務,不需要設置WSADDR環境變量。

4.WSL啟動失敗

WSL啟動失敗的原因有很多,比如:UBB中沒配置MAXWSCLIENTS,WSL的端口和別人沖突等等。需要看ULOG才能確定具體原因。

5\tpcall有時莫名的返回-1

tpcall后,不管是否成功,都要釋放memory(上邊tpalloc等函數申請的memory)。然后才能tpterm。

6、啟動服務的時候現實如下的信息:

CMDTUX_CAT:819: INFO: Process id=1956 Assume started (pipe).這時需要看一下程序,是否在程序中tpsvrinit函數時已經異常退出。

7、啟動服務tmboot -y的時候出現如下的錯誤信息:

mboot: WARN: No BBL available on site srd. Will not attempt to boot server processes on that site.

注意:該方法錯誤: 去除MACHINES中的TLOGDEVICE="/home/srd/srdapp/bin/TLOG"定義就可以解決。

正確方法如下:

tmadmin登錄到管理界面,使用crdl和crlog創建tlog,比如:

> crdl -z /home/tuxedo/logs/tlog -b 2048

> crlog -m simple

8、在啟動tuxedo服務的時候,報如下錯誤信息:

LIBTUX_CAT:328: ERROR: No space in Bulletin Board for Server Table

ubb中的MAXWSCLIENTS,MAXACCESSERS參數值太小,適當修改這個兩個參數值就可以了.

9、在執行tmloadcf的時候,報如下錯誤:

CMDTUX_CAT:1615: ERROR: Identifier or number must be followed by white space or punctuation

說明某個關鍵字后面需要有空格或者回車,根據錯誤信息在相應出錯的位置添加空格就可以了。

10、執行tmboot -y啟動服務的時候,報如下錯誤:

TPELIMIT - a system limit has been reached

CMDTUX_CAT:1685: ERROR: Application initialization failure

No space in Bulletin Board for Service Table有上面的信息可以看出,是tuxedo配置的一些資源有限制,可以修改ubbconfig配置文件中的參數 MAXACCESSERS,MAXSERVERS,MAXSERVICES,MAXGTT來申請更多的資源,將上面的參數適當增大知道不出現錯誤信息為止,具體增加多少根據自己的系統配置和需求決定。

11、WSNAT_CAT:1042:ERROR: tpcall() call failed, tperrno= 6„該信息的出現是由於被調用服務不存在導致,生產系統重啟應用服務進程會導致該信息出現一級BOSS系統

12、WSL.926452.1.0:WSNAT_CAT:1175: WARN: Disconnecting listener connection to workstation, requesttimed out WSL.926452.1.0: WSNAT_CAT:1175: WARN: Disconnecting listenerconnection to workstation, request timed out WSH.517126.1.0: WSNAT_CAT:1023:WARN: No client context space available in handler

WSH耗盡,重啟釋放資源

13、WSH.12961.1.0: LIBTUX_CAT:1122: ERROR: Nospace in Bulletin Board

WSH.12961.1.0:LIBTUX_CAT:582: ERROR: Unable to register, registry table full

解決方法:增大MAXACCESSERS值或MAXWSCLIENTS值

„MAXACCESSERS的含義

„客戶端和服務進程可以同時訪問BB的最大數目

„MAXACCESSERS>(MAXWSCLIENTS+MAXSERVERS+totalnum(JSH+WSH+ISH))

14、WSNAT_CAT:1287:WARN: Forced shutdown of client

這個問題主要可能的原因有三個:

一是Client端由於長時間連接Server,但卻沒有作任何的請求,這時,他會被斷掉;

二是由於Server在處理Client的請求時,發生超時引起的;

三是由於在處理Client發起的事務時,超過tpbegin所制定的時間,也會報告這個信息。這個問題所有tuxedo機器上都有發現。解決辦法:及時斷開連接,增加BLOCKTIME的時間和tpbegin的時間。

15、JSL.7022.1.0: JOLT_CAT:1175: "WARN: Disconnecting listener connection to Jolt client, request timed out"

可能是JSL服務異常  解決辦法重啟JSL

tmshutdown -s JSL     tmboot -s JSL

------------------------------------------------------------------------------------------------------------

1. ubbconfig配置中機器名配置:windows環境中一定要大寫,unix中可用uname -n查看。

2. tmboot 起不來常與這幾個參數相關,並容易混淆,建議關注。

MAXACCESSERS,MAXSERVERS,MAXSERVICES:這三個參數控制該TUXEDO應用系統對IPC資源的使用情況。

MAXACCESSERS: 在本系統的一個節點(一台服務器)上,同時可以有多少個進程可以訪問該TUXEDO系統的公告板,默認值為50,它包括本地客戶端進程,SERVER進程,但不包括管理進程如:BBL,DBBL等。

MAXSERVERS: 在本系統中,總共可以有多少個SERVER存在,包括進行管理的SERVER,如:BBL,TMS等。默認值為50。

MAXSERVICES: 在本系統中,總共可以有多少個SEVICE存在, 默認值為100。

MAXCONV: 在一台服務器上最多可以有多少個會話同時存在。范圍:0-32768,默認為10

3. 不同版本的tuxedo互連問題:如果是WSL模式:低聯高版本在WSL中加入-t參數,如CLOPT=”-A -t ??n//機器名:端口號,高聯低版本應在環境變量中設置WSINTOPPRE71=yes;如果是域模式:低聯高版本應該在ubbconfig中的 SERVERS配置GWADM的CLOPT中加入-t參數,例如GWADM SRVGRP=LGWGRP SRVID=3 REPLYQ=N CLOPT="-A -t -- "

4. 在dmconfig中如果配置了多個域,並且指定遠端域服務時應該指定域服務路由(即遠端服務的本地域是什么,遠端域是什么),否則報協議錯誤,例如*DM_REMOTE_SERVICES

SERV_1 LDOM=TDOM1 RDOM=TDOM3 RNAME=SERV_1

SERV_2 LDOM=TDOM1 RDOM=TDOM3 RNAME=SERV_2

5. 用戶用tmadmin進入了管理進程,如果沒有退出,另外用戶用tmadmin進入管理進程,就成為受限管理用戶,部分命令不能使用。

6. Tuxedo Domain-level Failover 的工作特點和配置方式:

特點

當本地domain與主的遠端domain連接失敗時,本地Domain將請求轉發到另一個備份的遠端domain上。支持自動failback。當主 domain恢復正常時,本地domain可以將請求轉發回主domain。CONNECTION_POLICY必須配置成ON_STARTUP或者是 INCOMING_ONLY 。Domain-level要求本地domain與主domain和備份domain之間都建立好socket連接。可以有多個遠端的備份domain

配置方法

在Domain 配置文件(dmconfig)中的DM_REMOTE_SERVICES處按以下方法配置Service,用逗號分割Service所在的遠端 domain ID,如:RDOM=identifier_1, identifier_2, identifier_3

*DM_REMOTE_SERVICES

DEFAULT: RDOM=R1, R2, R3

TOUPPER

TOLOWER

R1是主domain,后面的是備份domain

7. Tuxedo7.1及其以后的版本才正式支持多線程環境。在6.5版本,在Windows上有個客戶端的多線程附加包,安裝后可以用多線程方式並發調用服務,而在unix環境下6。5版不支持。

8. 如何在Tuxedo7.1中使用Fprint打印中文,應該配置環境變量 FML_PRINT_NOHEX =yes

9. unix環境下可以通過配置環境變量TUXCONFIG和BDMCONFIG的不同目錄,可以在一個用戶中啟動兩套完全獨立的BBL和兩套應用,並在相應的環境變量下管理相應的應用。

10. 在Tuxedo中有許多關於時間方面的參數,

SCANUNIT :

BBL系統進程對Bulletin Board的管理和監控是基於時間片的輪詢方式,時間片的大小就是SCANUNIT的值,SCANUNIT是Tuxedo對系統進行管理的最基本時間單位,其他許多時間方面的參數均是SCANUNIT的倍數。每隔SCANUNIT,BBL對Bulletin Board進行一次檢查,看看有無超時的事務或服務請求。SCANUNIT必須是大於0的5的倍數,最大是60,缺省10,單位為秒。

BLOCKTIME:

服務請求的超時值,BBL發現有超時的Request時,會給相應的Client端發信息,Client端如果在調用時未加TPNOTIME標記,會報錯返回,tperrno值為13。由於BLOCKTIME是以SCANUNIT為單位的,所以時間的絕對值為(BLOCKTIME * SCANUNIT),BLOCKTIME缺省為(60/SCANUNIT)。

SANITYSCAN

健全性檢查掃描,健全性檢查主要檢查Server進程狀態和Bulletin Board數據結構, BBL檢查Server進程是否存活,如果已經不存在,會清理Bulletin Board中相應的數據項及IPC資源,並根據參數配置決定是否重新啟動,如果設了RESTART=Y,所占的Message Queue不會被清,Queue中的Request得到保留,仍會被處理。如果是MP模式,BBL還會給DBBL發狀態消息。SANITYSCAN缺省為 (120/SCANUNIT)。

BBLQUERY

BBL檢查,在MP模式下,DBBL會每隔一段時間檢查是否所有的BBL都發了" I am ok "心跳信息給自己,如果沒有收到某個BBL的信息,它會發Request給那個BBL,如果等了DBBLWAIT后仍然沒有回復,DBBL會認為那台機器有問題,將其partition。BBL QUERY缺省為(300/SCANUNIT),DBBLWAIT缺省為(20/SCANUNIT)。BBLQUERY必須大於等於 SANITYSCAN,tmloadcf 時會強制檢查,如果設的值小於SANITYSCAN,tmloadcf會自動調整為SANITYSCAN。

其它和時間相關的參數還有:

WSL [-I init-timeout]

WorkStation Client和后台建立連接的超時參數值,缺省60秒

WSL [-T Client-timeout]

WorkStation Client和WSH建立連接后,如果在指定的時間內沒有信息交互,WSH會自動釋放和這個Client端的連接,並將此Client在Bulletin Board中的數據項請空,RollBack它未完成的事務 。

WSL [-N network-timeout]

此值實際上是WorkStation Client在做receive時的超時值,如果發生超時,此操作會出錯,WorkStation Client會斷開和后台的連接。

SERVICES中的SVCTIMEOUT

如果SERVICE執行時間超過SVCTIMEOUT,BBL會自動將此Server進程Kill掉。

SERVICES中的TRANTIME

如果此SERVICE設置了AUTOTRAN=Y,則此值為事務超時值,超時后Transaction

Manager會自動RollBack此transaction

JSL:長連接

java通過jolt調用tuxedo服務ubbconfig配置:

在group  和 server 中添加    JSLGRP  LMID=lw GRPNO = 2

JREPGRP LMID=lw GRPNO = 3

JSL SRVGRP=JSLGRP SRVID=301

CLOPT="-A -- -n //192.168.0.166:9878 -M 10 -x 10 -m 2"

JREPSVR SRVGRP=JREPGRP SRVID=302

CLOPT="-A -- -W -P E:/bea/tuxedo9.0/udataobj/jolt/repository/jrepository"

然后配置jrepository文件。

WSL: 短連接   使用C調用tuxedo

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值