在处理这个问题前,首先需要区分下Tuxedo的本地客户端和远程客户端(其实还有JOLT客户端,这里暂且不去管他)。
Tuxedo的本地客户端与Tuxedo服务器之间是通过系统的IPC资源进行通信,而远程客户端则是通过TCP/IP与服务器进行通信。本地客户端与远程客户端在编程上没有区别,区别是在编译客户端源程序的时候,如果你使用buildclient -f client.c -o client,那么编译出来的就是本地客户端,buildclient -f client.c -o client -w编译出来的就是远程客户端。
当发生远程客户端不能调用Tuxedo服务端程序的时候,你需要做以下确认和问题排查工作:
1、客户端与服务端之间网络是否通畅
从客户端先ping服务端 IP,再telnet IP:PORT,当然首先telnet端口得打开。
2、查看服务端WSL进程是否正常
WSL是服务端负责监听远程客户端请求的进程,若WSL配置不正确或未能正常启动,那么客户端的请求当然是不会被服务端受理的。
ps -ef|grep WSL看下,如果WSL在,并且正在很认真的监听端口,那么下面的你可以不用看了,请直接第3点;若是不是,那么继续。
WSL是在配置文件的*SERVERS节配置的,
配置示例:WSL SRVGRP=GROUP1 SRVID=10 CLOPT="-A -- -n //10.190.101.2:3200 -m 2 -M 5 -x 10"。
需要注意,-m表示该WSL下负责启动的