应用服务器通过$PS_HOME/appserv下的psadmin工具进行管理。这是一个文本模式的工具,在Unix和Windows上具有相同的工作方式。域(domain)配置过程会编译以及产生一些Tuxedo配置文件,如下所示:

文件名                    描述

psappsrv.cfg          Tuxedo配置文件psappsrv.ubx和应用服务器中变量的参数值

psappsrv.val           用于交互式配置对话框的验证文件(在padmin工具中使用)

psappsrv.ubx         PeopleSoft Tuxedo 模版文件,用于指定psappsrv.ubb和psappsrv.env的布局

psappsrv.ubb        Tuxedo本地(native)域配置源文件。所有的变量已经被解析成文本值。

psappsrv.env         应用服务器环境文件,用于定义服务器进程的其他环境变量。

PSTUXCFG            编译过后的Tuxedo配置文件。

应用服务器域配置过程就是psadmin工具中的一些选项,如下所示:

要配置域就必须关闭域,为安全起见,psadmin会提示是否继续进行。当确认继续进行并选择Y时,会关闭域,然后显示快速配置菜单。

从PeopleTools 8.44 开始,PeopleSoft引入了一个叫作“特征与设置报告”的新的屏幕信息——快速配置菜单。在配置过程开始前显示该信息,如下所示。选项1-12(Features列)更改当前psadmin会话相应的配置变量,但是不会更新psappsrv.ubx文件。

当选择Custom configuration时,配置进程会询问是否更改配置值,如下所示。选项13“Load config as shown”会跳过选项14,然后直接产生配置文件。

Enter selection (1-26, h, or q): 14Warning:  no changes detected, some configuration files will not be updated.
Loading configuration...
Domain configuration complete.
Performing load prechecks ...
Loading validation table...
Do you want to change any config values (y/n)? [n]:y

如果选择Y,就会出现一系列的交互式对话框,是你能够编辑psappsrv.cfg文件中的变量。下图阐释各种配置文件是如何使用和产生的:

1-2. 大多数人经常直接编辑psappsrv.cfg配置文件,但是仍然可以在psadmin工具中使用交互式配置对话框。用户输入通过psappsrv.val文件中的指令进行验证。psappsrv.cfg配置文件中的密码只能够在该对话框中进行加密。
3-4. ubbgen进程读取psappsrv.cfg和psappsrv.ubx文件,然后产生psappsrv.ubb和psappsrv.env文件。
5-6. Tuxedo工具tmloadcf 将psappsrv.ubb 编译成二进制配置文件PSTUXCFG。
7. 当启动域时,BBL进程也启动,然后读取PSTUXCFG文件,启动域中的剩余部分。

ubbgen和tmloadcf进程紧接着继续运行,而不用暂停。
永远不要编辑psappsrv.ubb文件,该文件是配置进程产生的一个中间文件。然而,该文件对于查看配置Tuxedo域时使用的值具有很好的帮助。
如下部分讨论每个配置文件,解释它们是怎样被使用的以及一些参数的作用。例子取自PeopleTools 8.51,,但是从7.0开始,主要的结构没有发生多大变化。因为引入了更多的功能,PeopleSoft添加了更多的server。

psappsrv.ubx

该文件是PeopleSoft模版文件,用于产生psappsrv.ubb和psappsrv.env文件,这些文件必须遵循Tuxedo格式。该文件包含的变量的值在psappsrv.cfg文件中进行设置输出文件包含这些变量的文本值。从PeopleTools 8.50 开始在该文件的头部加入了如下的信息:

#  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#  Oracle does not support creating custom UBX templates nor modifying delivered UBX templates
#  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Oracle不支持任何对该文件的客户化操作。但是在本文中会对其进行一些修改。

Tuxedo模版文件和配置文件的关系

大多数域配置更改是在psappsrv.cfg文件中进行的。然而,更改模版文件psappsrv.ubx也是合理的。变量在psappsrv.cfg中进行设置,然后在psappsrv.ubx文件中引用。可以设计成只有一个psappsrv.ubx,该文件对所有域通用。例如,如果要启用Tuxedo service trace,就需要在psappsrv.ubx文件的服务命令行中加入-r选项。可以在psappsrv.cfg文件中的Trace区段创建一个新的变量,然后在psappsrv.ubx文件中引用。通过在配置文件中更改设置,就可以在不同的域上轻松的启用或者禁用该选项。

在psappsrv.cfg文件中设置该新变量:

;-------------------------------------------------------------------------
; when set to -r enables Tuxedo service trace, else set to a single space
TuxedoServiceTrace=-r

该变量可以在psappsrv.ubx文件中引用:

CLOPT="{$Trace\TuxedoServiceTrace} -o \"{REL_LOG}{FS}APPQ.stdout\" -e \"{REL_LOG}{FS}APPQ.stderr\" {$PSAPPSRV\Spawn Server} -s@psappsrv.lst -- -D {$DomainSettings\Domain ID} -S PSAPPSRV"

在psappsrv.ubb文件中会包含该变量的值,并且在该文件的“ubbgen substitution values”部分会显示所有变量的值。

CLOPT="-r -o \".\LOGS\APPQ.stdout\" -e \".\LOGS\APPQ.stderr\" -s@psappsrv.lst -- -D TESTSERV -S PSAPPSRV"

FEATURES、SETTINGS 和 PORT_SETTINGS
这个三个区段从PT8.44引入,用于产生“新特征和设置报告”。

*FEATURES
{"-label-"},{"-define-"},{"-on-"},{"-servers-"},{"-Oracle Env Manager Label-"}
{Pub/Sub Servers},{PUBSUB},{No},{PSBRK(DSP/HND), PSPUB(DSP/HND), PSSUB(DSP/HND)},{Publish/Subscribe Server (PUBSUB)}
{Quick Server},{QUICKSRV},{No},{PSQCKSRV},{Quick Server (PSQCKSRV)}
{Query Servers},{QUERYSRV},{No},{PSQRYSRV},{Query Server (PSQRYSRV)}
{Jolt},{JOLT},{Yes},{JSL, JREPSVR},{Jolt Service Listener (JSL)}
{Jolt Relay},{JRAD},{No},{JRAD},{Jolt Relay Adapter (JRAD)}
{WSL},{WSL},{No},{WSL},{WorkStation Listener (WSL)}
{PC Debugger},{DBGSRV},{Yes},{PSDBGSRV},{PeopleCode Debugger (PSDBGSRV)}
{Event Notification},{RENSRV},{Yes},{PSRENSRV},{Event Notification (PSRENSRV)}
{MCF Servers},{MCF},{No},{PSUQSRV, PSMCFLOG},{Multi-Channel Framework (MCF Servers)}
{Perf Collator},{PPM},{No},{PSPPMSRV},{Performance Collator (PSPPMSRV)}
{Analytic Servers},{ANALYTICSRV},{Yes},{PSANALYTICSRV},{Analytic Servers (PSANALYTICSRV)}
{Domains Gateway},{DOMAIN_GW},{No},{ DMADM, GWADM, GWTDOMAIN },{Domains Gateway (Remote Search)}
*END
*SETTINGS
{"-label-"},{-formal name-}{"-value-"}
{DBNAME},{Startup/DBName},{ }
{WINDOWS}
{DBTYPE},{Startup/DBType},{MICROSFT}
{WINDOWS}
{UNIX}
{DBTYPE},{Startup/DBType},{}
{UNIX}
{UserId},{Startup/UserId},{QEDMO}
{UserPswd},{Startup/UserPswd},{QEDMO}
{DomainID},{Domain Settings/Domain ID},{PT851}
{WINDOWS}
{AddToPATH},{Domain Settings/Add to PATH},{}
{WINDOWS}
{UNIX}
{AddToPATH},{Domain Settings/Add to PATH},{.}
{UNIX}
{ConnectID},{Startup/ConnectId},{people}
{ConnectPswd},{Startup/ConnectPswd},{peop1e}
{ServerName},{Startup/ServerName},{}
*END
*PORT_SETTINGS
{WSL Port},{Workstation Listener/Port},{7000}
{JSL Port},{JOLT Listener/Port},{9000}
{JRAD Port},{JOLT Relay Adapter/Listener Port},{9100}
*END

PS_DEFINES区段

PS_DEFINES区段是能够找到的唯一解释ubbgen进程和psappsrv.ubx格式的地方。ubbgen会用psappsrv.cfg文件中的文本值替换大括号{}中替代变量。有四种类型的变量:环境变量(environment)、配置变量(configuration)、特殊变量(special)、提示变量(prompted)。

环境变量

环境变量以$打头。ubbgen通过getenv()函数读取环境变量。然而,psadmin程序也可以设置一些环境变量。例如,在执行psadmin前必须设置Tuxedo安装目录%TUXDIR%环境变量。但是域配置文件所在目录的环境变量$PS_SERVDIR是通过psadmin设置的。之后这些变量就用于设置Tuxedo配置中MACHINES区段的TUXDIR和APPDIR参数:

*MACHINES
"{MACH}" LMID="{MACH}"                           # Machine name must be upper caseTUXDIR="{$TUXDIR}"                      # Paths cannot end in '\'
{UNIX}APPDIR="{$PS_SERVDIR}:{$PS_LIBPATH}"    # Append the PS LLP
{UNIX}
{WINDOWS}APPDIR="{$PS_SERVDIR}"
{WINDOWS}TUXCONFIG="{$TUXCONFIG}"ULOGPFX="{LOGDIR}{FS}TUXLOG"ENVFILE="{ENVFILE}"UID={UID}                               # Has to be 0 at this time.GID={GID}                               # Has to be 0 at this time.
{WINDOWS}TYPE="i386NT"
{WINDOWS}NETLOAD=0                               # We are not using multiple machines.{MAXWSCLIENTS}{MAXACCESSERS2}# ----------------------------------------------------------------------

配置变量 配置变量从传递给ubbgen的配置文件(默认是psappsrv.cfg)中读取。该变量以$打头,紧随其后是区段名加“”,然后是区段中的关键字名。如:$PSAPPSRV\Min Instances
配置变量是通过Tuxedo模版文件psappsrv.ubx定义的。ubbgen在psappsrv.cfg文件中查找配置变量的值,然后当ubbgen写Tuxedo配置文件psappsrv.ubb时用这个值替换模版文件中的配置变量。如下例,Min Instances变量从psappsrv.cfg配置文件中的PSAPPSRV区段读取:
截取自psappsrv.ubx:

#
# PeopleSoft Application Server
#
PSAPPSRV        SRVGRP=APPSRVSRVID=1MIN={$PSAPPSRV\Min Instances}MAX={$PSAPPSRV\Max Instances}RQADDR="APPQ"REPLYQ=YCLOPT="-o \"{REL_LOG}{FS}stdout\" -e \"{REL_LOG}{FS}stderr\" {$PSAPPSRV\Spawn Server} -s@psappsrv.lst -- -D {$Domain Settings\Domain ID} -S PSAPPSRV"

截取自psappsrv.cfg:

[PSAPPSRV]
;=========================================================================
; Settings for PSAPPSRV
;=========================================================================;-------------------------------------------------------------------------
; UBBGEN settings
Min Instances=2
Max Instances=2
Service Timeout=0

特殊变量

ubbgen直接通过名称识别这些变量,然后执行特殊处理以获取这些变量的值。如:DOMAINID, IPCKEY, MACH, WSNADDR, UID GID。

ubbgen会产生一些特殊变量,并且随着版本不同,产生的变量也有些差异。PT8.44中ubbgen产生的特殊变量如下表所示:

如果要为任何应用服务器配置多个队列的话,需要手动计算这些值,因为ubbgen不会考虑其他队列。

提示变量

所有其他的变量都假定为提示变量。ubbgen提示用户指定该变量的值。提示变量指定一些在配置时候询问的yes/no问题。这些变量以及Unix和Windows特殊变量的使用方式类似于C或者SQR中的#ifdef 和 #endif指令。

问题的默认答案被包含在方括号中。

*PS_DEFINE
....
{PUBSUB} Do you want the Publish/Subscribe servers configured (y/n)? [y]:
{QUICKSRV} Move quick PSAPPSRV services into a second server (PSQCKSRV) (y/n)? [n]:
{QUERYSRV} Move long-running queries into a second server (PSQRYSRV) (y/n)? [n]:
{JOLT} Do you want JOLT configured (y/n)? [y]:
{JRAD} Do you want JRAD configured (y/n)? [n]:
{WSL} Do you want WSL configured (y/n)? [n]:
{DBGSRV} Do you want to enable PeopleCode Debugging (PSDBGSRV) (y/n)? [n]:
{RENSRV} Do you want Event Notification configured (PSRENSRV) (y/n)? [n]:
{MCF} Do you want MCF servers configured (y/n)? [n]:
{PPM} Do you want Performance Collators configured (PSPPMSRV) (y/n)? [n]:
{ANALYTICSRV} Do you want Analytic servers configured (PSANALYTICSRV) (y/n) [y]:
{DOMAIN_GW} Do you want Domains Gateway (External Search Server) configured (y/n)? [n]:*END

例如,如果QUERYSRV特殊变量为true,那么在psappsrv.ubx文件的{QUERYSRV}区段之间配置的PSQRYSVR服务器就i有效:

{QUERYSRV}
#
# PeopleSoft Query Application Server
#
PSQRYSRV        SRVGRP=APPSRVSRVID=70MIN={$PSQRYSRV\Min Instances}MAX={$PSQRYSRV\Max Instances}RQADDR="QRYQ"REPLYQ=YCLOPT="-o \"{REL_LOG}{FS}stdout\" -e \"{REL_LOG}{FS}stderr\" {$PSQRYSRV\Spawn Server} -s@psqrysrv.lst -- -D {$Domain Settings\Domain ID} -S PSQRYSRV"
{QUERYSRV}

主要的Tuxedo区段

在psappsrv.ubx文件中,PS_DEFINES区段尾到PS_ENVFILE区段头之间的所有内容都会在变量值替换后被ubbgen复制到psappsrv.ubb文件中。psappsrv.ubb是一个Tuxedo格式的文件,可以参考Tuxedo文档。因此psappsrv.ubx中的模版必须产生这种格式。

Tuxedo配置文件由一些区段组成:RESOURCES、MACHINES、GROUPS、SERVERS 和 SERVICES。

RESOURCES区段

包含描述整个Tuxedo域的变量。该区段的模版如下:

*RESOURCES
IPCKEY          {IPCKEY}        # ( 32768 < IPCKEY < 262143 )
MASTER          "{MACH}"
DOMAINID        {$Domain Settings\Domain ID}_{IPCKEY}
MODEL           SHM
LDBAL           N
#
MAXMACHINES     256             # min, default=256
MAXGROUPS       100             # min, default=100
{MAXSERVERS}
{MAXSERVICES}
{MAXACCESSERS1}
#
......

当需要选择将服务请求放到哪些队列的时候,可以使用Tuxedo负载均衡。

MACHINES区段

单个的Tuxedo域可以跨多个物理机器,以实现负载均衡机制。每个物理服务器上的Tuxedo机器类似于一个独立的Tuxedo域,但是具有额外的监听器以及可以将进程桥接给域中的其他机器。因此,Tuxedo服务可以传送给一个不同的、轻负载的Tuxedo机器。

MACHINES区段的模版指定的变量在不同的物理机器上可以设置不同值,录入路径或者环境变量。某些变量在RESOURCES和MACHINES都可以指定。MACHINES区段指定的值会覆盖RESOURCE区段中的一般值。

*MACHINES
"{MACH}" LMID="{MACH}"                           # Machine name must be upper caseTUXDIR="{$TUXDIR}"                      # Paths cannot end in '\'
{UNIX}APPDIR="{$PS_SERVDIR}:{$PS_LIBPATH}"    # Append the PS LLP
{UNIX}
{WINDOWS}APPDIR="{$PS_SERVDIR}"
{WINDOWS}TUXCONFIG="{$TUXCONFIG}"ULOGPFX="{LOGDIR}{FS}TUXLOG"ENVFILE="{ENVFILE}"UID={UID}                               # Has to be 0 at this time.GID={GID}                               # Has to be 0 at this time.
{WINDOWS}TYPE="i386NT"
{WINDOWS}NETLOAD=0                               # We are not using multiple machines.{MAXWSCLIENTS}{MAXACCESSERS2}# ----------------------------------------------------------------------

虽然配置一个PeopleSoft应用服务器域以使用多机器架构理论上是可行的,但是PeopleSoft要么不使用,要么就不支持该技术。事实上,你绝不会使用多台机器配置单个域,因为你可能更愿意在不同的物理机器上安装多个独立的应用服务器域。在多台机器上配置一个域会对物理应用服务器节点之间的网络连接要求严格,然而在多个单一机器上的应用服务器之间使用循环的(round-robin)连接以及故障切换(failover)会更加有效和可靠。PIA可以跨多个单节点应用服务器实现负载均衡。

GROUPS区段

在一个域中的应用服务器进程逻辑上会被划分成组。GROUPS区段具有一个指定默认机器名的DEFAULT子句。Tuxedo组允许相同的服务配置在不同组中的不同服务器上。

*GROUPS#
# Tuxedo Groups
# For application group numbers for new machines (LMIDs)
# use group numbers 101-199;  201-299;  etc.
#
DEFAULT:        LMID="{MACH}"BASE            GRPNO=1{DOMAIN_GW}
{VERITY_TYPE3}
DMADMGRP        GRPNO=101GWTGROUP        GRPNO=102
{VERITY_TYPE3}
{DOMAIN_GW}WATCH           GRPNO=10MONITOR         GRPNO=50{ANALYTICSRV}
ANALYTICGRP     GRPNO=80
{ANALYTICSRV}PPMGRP          GRPNO=91{RENSRV}
RENGRP          GRPNO=92
{RENSRV}{MCF}
MCFGRP          GRPNO=93
{MCF}{DBGSRV}
DBGSRV          GRPNO=97
{DBGSRV}{PUBSUB}
PUBSUB          GRPNO=98
{PUBSUB}APPSRV          GRPNO=99{JOLT}
#
# JOLT Groups
#
JREPGRP         LMID="{MACH}"GRPNO=94
JSLGRP          LMID="{MACH}"GRPNO=95
{JOLT}# ----------------------------------------------------------------------

随着后续的版本,PeopleSoft为新的服务器进程创建了单独的Tuxedo组。但是从PT7.57开始,每个服务只注册到一个队列上。默认的应用服务器配置中,PeopleSoft还没有因为实际的目的而使用组。也许PeopleSoft以后可能会,比如,将不同的Tuxedo参数应用到不同的服务器进程组中。

一些组((DMADMGRP, GWTGROUP, ANALYTICGRP, RENGRP, MCFGRP, PUBSUB, 和JOLT))只有当相应的提示值为true时才会被定义。

SERVERS区段

服务进程的数量随着PT版本的变化也跟着增加。域中的每一个服务器进程都在SERVERS区段进行指定:

*SERVERSDEFAULT:        CLOPT="-A"       # Advertise all services.REPLYQ=N         # Reply queue not needed for our simple setup.MAXGEN=3         # Max number of restarts in the grace period.GRACE=60         # Ten minutes grace period.RESTART={$Domain Settings\Restartable}SYSTEM_ACCESS=FASTPATH

在被标记为错误之前,服务器在60秒宽限期内(GRACE)能够启动3(MAXGEN)次.

DEFAULT指定应用到所有服务器的默认参数,除非在服务器定义中进行覆盖。Tuxedo文档在servopts(5)中单独的描述了命令行选项参数(command-line options parameter)(CLOPT)。

Tuxedo系统事件服务器

Tuxedo Event Broker,TMSYSEVT,是Tuxedo自带的唯一一个服务器进程。在PeopleSoft应用服务器中默认没有对其进行配置,但是将其注释掉了。只有当要使用Tuxedo Administrative Console管理域时才有用。

Watch Server(PSWATCHSRV)

PT8.4引入了PSWATCHSRV。该进程有点与众不同,因为它不会连接数据库,也不会advertise service或者handle service。他它的功能就是干掉卡住的以及不能够关掉的服务器进程。

#
# PeopleSoft domain watchdog PSWATCHSRV
#
PSWATCHSRV      SRVGRP=WATCHSRVID=1MIN=1MAX=1RQADDR="WATCH"REPLYQ=YRESTART=YCLOPT="-o \"{REL_LOG}{FS}stdout\" -e \"{REL_LOG}{FS}stderr\" -A -- -ID {IPCKEY} -D {$Domain Settings\Domain ID} -S PSWATCHSRV"

提示:等号左边的参数都是Tuxedo参数,可以在Tuxedo servopts(5)中找到。等号右边的都会被传递给PeopleSoft在服务器中定义的tmsvrinit()函数。因此等号右边的都是PeopleSoft定义的参数,但是PeopleSoft没有提供文档以解释这些参数。

IPCKEY是Bulletin Board共享内存段的ID,传递给PSWATCHSRV。PSWATCHSRV只有一个实例。该服务器进程最大和最小实例数为1。

应用服务器(PSAPPSRV)

PSAPPSRV服务器进程处理大多数在线活动。

#
# PeopleSoft Application Server
#
PSAPPSRV        SRVGRP=APPSRVSRVID=1MIN={$PSAPPSRV\Min Instances}MAX={$PSAPPSRV\Max Instances}RQADDR="APPQ"REPLYQ=YCLOPT="-o \"{REL_LOG}{FS}stdout\" -e \"{REL_LOG}{FS}stderr\" {$PSAPPSRV\Spawn Server} -s@psappsrv.lst -- -D {$Domain Settings\Domain ID} -S PSAPPSRV"

服务器进程advertised的服务在CLOPT中通过-s参数指定。该参数具有三种格式,如下表。

Advertise Service 参数的格式:

该参数还可以指定多次,其效果是叠加起来的。

PSAPPSRV进程advertised的服务可以根据是否配置了PSQRYSRV和PSQCKSRV服务器进程而变化。如果配置了,服务就会从PSAPPSRV转移到这些服务器进程。

从PT8.50开始,PSAPPSRV的CLOPT是常量;psappsrv.lst文件通过将文件从$PS_HOME/appserv复制到域的目录下产生。如果没有配置PSQRYSV或者PSQCKSRV,那么在配置域的过程中,psqcksrv.lst和psqrysrv.lst的内容就会附加到psappsrv.lst。

PSAPPSRV命令行定义(一直到PT8.49)
{QUERYSRV}
{QUICKSRV}
CLOPT="{$PSAPPSRV\Spawn Server} -s@..{FS}psappsrv.lst -- -C {CFGFILE}
-D {$Domain Settings\Domain ID} -S PSAPPSRV"
{QUICKSRV}
{!QUICKSRV}
CLOPT="{$PSAPPSRV\Spawn Server} -s@..{FS}psappsrv.lst
-s@..{FS}psqcksrv.lst -- -C {CFGFILE} -D {$Domain Settings\Domain ID} -S PSAPPSRV"
{!QUICKSRV}
{QUERYSRV}
{!QUERYSRV}
{QUICKSRV}
CLOPT="{$PSAPPSRV\Spawn Server} -s@..{FS}psappsrv.lst -sICQuery
-sSqlQuery:SqlRequest -- -C {CFGFILE} -D {$Domain Settings\Domain ID} -S PSAPPSRV"
{QUICKSRV}
{!QUICKSRV}
CLOPT="{$PSAPPSRV\Spawn Server} -s@..{FS}psappsrv.lst
-s@..{FS}psqcksrv.lst -sICQuery -sSqlQuery:SqlRequest -- -C {CFGFILE}
-D {$Domain Settings\Domain ID} -S PSAPPSRV"
{!QUICKSRV}
{!QUERYSRV}

替代变量只可以嵌套至两层。如果启用了可选服务器,那么PSAPPSRV就不再需要advertise该服务器进程的服务。

应用服务器和进程调度器目录的位置

PT8.50引入了一个不同于PeopleTools home目录($PS_HOME)的配置文件home目录($PS_CFG_HOME)。该目录结构位于$PS_CFG_HOME/appserv下,用于保存应用服务器和进程调度器域。以前版本中是位于$PS_HOME/appserv下。

快速Server(PSQCKSRV)

PSQCKSRV几乎已经被废弃了。该服务器进程从PT 7引入,目的是单独的处理短期服务,例如简单的SQL查询,因此可以快速的通过应用服务器且不必在队列中等待更大更慢的服务。PSQCKSRV服务只在Windows三层客户端程序中使用。PIA不需要该服务器进程。在生产环境中没有必要使用三层模式的Application Designer(迁移必须在两层模式下进行)。即使在开发环境中使用三层模式的Application Designer,PSQCKSRV进程的数量也很好。总而言之,绝不要在PT 8.x 系统中对PSQCKSRV进行配置。

{QUICKSRV}
#
# PeopleSoft Quick Application Server
#
PSQCKSRV        SRVGRP=APPSRVSRVID=50MIN={$PSQCKSRV\Min Instances}MAX={$PSQCKSRV\Max Instances}RQADDR="QCKQ"REPLYQ=YCLOPT="-o \"{REL_LOG}{FS}stdout\" -e \"{REL_LOG}{FS}stderr\" {$PSQCKSRV\Spawn Server} -s@psqcksrv.lst -- -D {$Domain Settings\Domain ID} -S PSQCKSRV"
{QUICKSRV}

查询 Server(PSQRYSRV)
PSQRYSRV处理PIA和三层模式Windows客户端中PS/Query和nVison工具执行的一些长时间运行的查询。如果Crystal Reports运行在三层模式下,PeopleSoft ODBC驱动也会提交SqlQuery服务请求。

{QUERYSRV}
#
# PeopleSoft Query Application Server
#
PSQRYSRV        SRVGRP=APPSRVSRVID=70MIN={$PSQRYSRV\Min Instances}MAX={$PSQRYSRV\Max Instances}RQADDR="QRYQ"REPLYQ=YCLOPT="-o \"{REL_LOG}{FS}stdout\" -e \"{REL_LOG}{FS}stderr\" {$PSQRYSRV\Spawn Server} -s@psqrysrv.lst -- -D {$Domain Settings\Domain ID} -S PSQRYSRV"
{QUERYSRV}

PSSAMSRV

只用于三层模式,特别是当提交请求给进程调度器时。不能够被禁止。

#
# PeopleSoft SQL Access Application Server
#
PSSAMSRV        SRVGRP=APPSRVSRVID=100MIN={$PSSAMSRV\Min Instances}MAX={$PSSAMSRV\Max Instances}RQADDR="SAMQ"REPLYQ=YCONV=YCLOPT="-o \"{REL_LOG}{FS}stdout\" -e \"{REL_LOG}{FS}stderr\" -A -- -D {$Domain Settings\Domain ID} -S PSSAMSRV"

Performance Collator Server(PSPPMSRV)
PSPPMSRV从PT 8.44引入,用于PeopleSoft性能监控器以收集指标然后插入数据库。这些服务器应该配置在收集性能指标的系统上,而不是被测量的系统上。

{PPM}
# Performance Collator.  No services, just managed by Tuxedo.
PSPPMSRV        SRVGRP=PPMGRPSRVID=100MIN={$PSPPMSRV\Min Instances}MAX={$PSPPMSRV\Max Instances}RQADDR="PPMQ2"REPLYQ=YRESTART=YCLOPT="-o \"{REL_LOG}{FS}stdout\" -e \"{REL_LOG}{FS}stderr\" -A -- -D {$Domain Settings\Domain ID} -S PSPPMSRV"
{PPM}

调试server(PSDBGSRV)

调试服务器进程允许开发人员运行PIA会话的时候在Application Designer中逐步调试PeopleCode。AD与服务器进行套接字连接。应用服务器中只能配置一个调试服务器。

{DBGSRV}
#
# PeopleCode Debugger PSDBGSRV
#
PSDBGSRV        SRVGRP=DBGSRVSRVID=1MIN=1MAX=1RQADDR="DBGQ"REPLYQ=YCLOPT="-o \"{REL_LOG}{FS}stdout\" -e \"{REL_LOG}{FS}stderr\" -A -- -D {$Domain Settings\Domain ID} -S PSDBGSRV"{DBGSRV}

实时通知Server(PSRENSRV)

PSRENSRV服务器进程从PT 8.4引入,是一个修改过的轻量级的web服务器,用于向PIA用户发送实时的事件通知,例如报告通知,同时也用于MultiChannel Framework。

{RENSRV}
# Event Notification server.
PSRENSRV        SRVGRP=RENGRPSRVID=101MIN=1MAX=1RQADDR="RENQ1"REPLYQ=YRESTART=YCLOPT="-o \"{REL_LOG}{FS}stdout\" -e \"{REL_LOG}{FS}stderr\" -A -- -D {$Domain Settings\Domain ID} -S PSRENSRV"
{RENSRV}

多渠道框架Servers

MCF从PT 8.4引入,支持多交互渠道,用于呼叫中心代理或者其他必须响应从这些通道上收到的请求和通知的PeopleSoft用户。

{MCF}
# MCF Universal Queue server.  These are stateful and unique; hence, each needs
# a unique ID on the command line "PSUQSRVn", where 1 <= n <= 9.
PSUQSRV         SRVGRP=MCFGRPSRVID=110MIN=1MAX=1RQADDR="UQSRV"REPLYQ=YRESTART=YCLOPT="-o \"{REL_LOG}{FS}stdout\" -e \"{REL_LOG}{FS}stderr\" -A -- -D {$Domain Settings\Domain ID} -S PSUQSRV1"
# MCF Logging server.  These are stateful and unique; hence, each needs
# a unique ID on the command line "PSMCFLOGn", where 1 <= n <= 9.
PSMCFLOG        SRVGRP=MCFGRPSRVID=120MIN=1MAX=1RQADDR="MCFLG"REPLYQ=YRESTART=YCLOPT="-o \"{REL_LOG}{FS}stdout\" -e \"{REL_LOG}{FS}stderr\" -A -- -D {$Domain Settings\Domain ID} -S PSMCFLOG1"
{MCF}

应用消息Servers

可以配置至多六个不同的服务器进程以支持应用消息(也指代Integration Broker)。每个handler server可以配置多个实例(至少有两个),但是对于三个dispatcher servers(Broker、Publication、Subscription)来说,每一个只能有一个实例。

#######################################################################################
#
# Publish/Subscribe Servers
#
# THIS SECTION SHOULD NEVER BE EDITED MANUALLY, PSADMIN REQUIRES THIS EXACT FORMAT.
# -----
#######################################################################################
# DEFAULT Publication broker handler
PSBRKHND SRVGRP=PUBSUBSRVID=101MIN={$PSBRKHND_dflt\Min Instances}MAX={$PSBRKHND_dflt\Max Instances}RQADDR="BRKHQ_dflt"REPLYQ=YCLOPT="{$Trace\TuxedoServiceTrace} -o \"{REL_LOG}{FS}PUBQ.stdout\"-e \"{REL_LOG}{FS}Stderr\" {$PSBRKHND_dflt\Spawn Server} -s   PSBRKHND_dflt:BrkProcess-- -D {$Domain Settings\Domain ID} -S PSBRKHND_dflt"
# DEFAULT Publication broker server (dispatcher)
PSBRKDSP SRVGRP=PUBSUBSRVID=100MIN=1MAX=1RQADDR="BRKDQ_dflt"REPLYQ=YCLOPT="{$Trace\TuxedoServiceTrace} -o \"{REL_LOG}{FS}PUBQ.stdout\"-e \"{REL_LOG}{FS}Stderr\" -s PSBRKDSP_dflt:Dispatch -- -D {$Domain     Settings\Domain ID}-S PSBRKDSP_dflt"
# DEFAULT publication contract handler
PSPUBHND SRVGRP=PUBSUBSRVID=201MIN={$PSPUBHND_dflt\Min Instances}MAX={$PSPUBHND_dflt\Max Instances}RQADDR="PUBHQ_dflt"REPLYQ=YCLOPT="{$Trace\TuxedoServiceTrace} -o \"{REL_LOG}{FS}PUBQ.stdout\"-e \"{REL_LOG}{FS}Stderr\" {$PSPUBHND_dflt\Spawn Server} -s   PSPUBHND_dflt:PubConProcess-- -D {$Domain Settings\Domain ID} -S PSPUBHND_dflt"
# DEFAULT Publication contractor server (dispatcher)
PSPUBDSP SRVGRP=PUBSUBSRVID=200MIN=1MAX=1RQADDR="PUBDQ_dflt"REPLYQ=YCLOPT="{$Trace\TuxedoServiceTrace} -o \"{REL_LOG}{FS}PUBQ.stdout\"-e \"{REL_LOG}{FS}Stderr\" -s PSPUBDSP_dflt:Dispatch -- -D {$Domain     Settings\Domain ID}-S PSPUBDSP_dflt"
# DEFAULT subscription contract handler
PSSUBHND SRVGRP=PUBSUBSRVID=301MIN={$PSSUBHND_dflt\Min Instances}MAX={$PSSUBHND_dflt\Max Instances}RQADDR="SUBHQ_dflt"REPLYQ=YCLOPT="{$Trace\TuxedoServiceTrace} -o \"{REL_LOG}{FS}PUBQ.stdout\"-e \"{REL_LOG}{FS}Stderr\" {$PSSUBHND_dflt\Spawn Server} -s   PSSUBHND_dflt:SubConProcess-- -D {$Domain Settings\Domain ID} -S PSSUBHND_dflt"
# DEFAULT Subscription contractor server (dispatcher)
PSSUBDSP SRVGRP=PUBSUBSRVID=300MIN=1MAX=1RQADDR="SUBDQ_dflt"REPLYQ=YCLOPT="{$Trace\TuxedoServiceTrace} -o \"{REL_LOG}{FS}PUBQ.stdout\"-e \"{REL_LOG}{FS}Stderr\" -s PSSUBDSP_dflt:Dispatch -- -D {$Domain     Settings\Domain ID}-S PSSUBDSP_dflt"
#_@_APSRV WARNING: DO NOT MODIFY THIS LINE. Marker for append point used by PSADMIN
#######################################################################################
# END Publish/Subscribe Servers section
#######################################################################################
{PUBSUB}

在开发环境中,应用消息服务器的负载很重要。当创建应用服务器域时,可以选择一个备用的开发模版,在开发模版中只有两个消息服务器,如下所示:

{PUBSUB}
# Message Broker
PSMSGDSP        SRVGRP=PUBSUBSRVID=100MIN=1MAX=1CLOPT="-o \"{REL_LOG}{FS}stdout\" -e \"{REL_LOG}{FS}stderr\" -sPSBRKDSP_dflt:Dispatch -sPSPUBDSP_dflt:Dispatch -sPSSUBDSP_dflt:Dispatch -- -D {$Domain Settings\Domain ID} -S PSMSGDSP"
# Message Broker Handler
PSMSGHND        SRVGRP=PUBSUBSRVID=101MIN={$PSMSGHND\Min Instances}MAX={$PSMSGHND\Max Instances}RQADDR="MBHQ"REPLYQ=YCLOPT="-o \"{REL_LOG}{FS}stdout\" -e \"{REL_LOG}{FS}stderr\" {$PSMSGHND\Spawn Server} -sPSBRKHND_dflt:BrkProcess -sPSPUBHND_dflt:PubConProcess -sPSSUBHND_dflt:SubConProcess -- -D {$Domain Settings\Domain ID} -S PSMSGHND"
{PUBSUB}

PeopleSoft 配置文件相关推荐

  1. PeopleSoft如何配置SMTP邮件服务

    PeopleSoft系统本身提供了能进行邮件发送的SMTP服务,下面介绍一下如何进行SMTP服务配置: 本文将分三部分来进行介绍:1.配置系统的SMTP最基本的需要的配置:2.系统SMTP服务的其他相 ...

  2. Oracle OAM实现PeopleSoft SSO单点登录

    本文将介绍如果使用OAM实现PeopleSoft(PS) 单点登录,PeopleSoft系统以下简称PS,在OHS和Webgete配置完成的前提下,步骤如下: 1.配置OAM 资源保护 第一步.登录h ...

  3. PeopleSoft如何查找jar包冲突

    PeopleSoft要查找jar包冲突问题,不像maven可以打印出所有依赖,但既然是在JVM上运行,就可以启用JVM参数 路经:%ps_cfg_home%\appserv\Domain 文件名:ps ...

  4. golang通过RSA算法生成token,go从配置文件中注入密钥文件,go从文件中读取密钥文件,go RSA算法下token生成与解析;go java token共用

    RSA算法 token生成与解析 本文演示两种方式,一种是把密钥文件放在配置文件中,一种是把密钥文件本身放入项目或者容器中. 下面两种的区别在于私钥公钥的初始化, init方法,需要哪种取哪种. 通过 ...

  5. Dockerfile springboot项目拿走即用,将yml配置文件从外部挂入容器

    Dockerfile 将springboot项目jar包打成镜像,并将yml配置文件外挂. # 以一个镜像为基础,在其上进行定制.就像我们之前运行了一个 nginx 镜像的容器,再进行修改一样,基础镜 ...

  6. 在kotlin companion object中读取spring boot配置文件,静态类使用@Value注解配置

    在kotlin companion object中读取配置文件 静态类使用@Value注解配置 class Config {@Value("\${name}")fun setNam ...

  7. 基于Golang的监听读取配置文件的程序包开发——simpleConfig_v1

    基于Golang的监听&读取配置文件的程序包开发--simpleConfig_v1 [阅读时间:约10分钟] 一.配置文件概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 ...

  8. Go 学习笔记(82)— Go 第三方库之 viper(解析配置文件、热更新配置文件)

    1. viper 特点 viper 是一个完整的 Go应用程序的配置解决方案,它被设计为在应用程序中工作,并能处理所有类型的配置需求和格式.支持特性功能如下: 设置默认值 读取 JSON.TOML.Y ...

  9. jupyter qtconsole 配置文件的生成和修改

    jupyter qtconsole 配置文件的生成和修改 安装 Anaconda 之后默认会安装 IPython, 但是输入 ipython qtconsole 之后默认的 Jupyter QtCon ...

最新文章

  1. python基础教程:3种控制流语句(if,for,while)
  2. 1043 输出PATest (20分)_23行代码满分
  3. pat 团体天梯赛 L2-012. 关于堆的判断
  4. 倍增:喷泉 深度解析(洛谷P7167)
  5. 程序员写的数字代表什么_代表性不足的国家的程序员可以取得成功的6种方法...
  6. 赚钱的公式是资源加经营
  7. CentOS 7 配置Java环境变量
  8. Yolo训练自己的数据集,将json格式转换成txt文件格式
  9. 公司计算机程序员英语怎么说,计算机程序员英文求职信范文模板
  10. 机械制造业信息化的基础是管理变革
  11. React-Native之轮播组件looped-carousel的介绍与使用
  12. 【STM32训练—TOF激光测距模块】第一篇、STM32驱动TOF10120测量距离
  13. 零中频数字接收机原理
  14. 当编程语言都变成女孩子,你会不会喜欢她们!
  15. 关于中标麒麟系统的经历
  16. 淦、我的服务器又被攻击了
  17. Java读取word文档里的复杂型表格(任免表)
  18. 电子商务网站功能模块汇总
  19. MOS管栅极串联电阻作用
  20. Mcu芯片行业的发展前景怎么样?

热门文章

  1. Git分布式版本控制系统简介和使用
  2. 用python的列表构建一棵树
  3. Oracle ASM理论及实践介绍
  4. .netcore基础知识(一)
  5. linux怎么恢复删除的文件
  6. oracle 11g 服务端下载地址及安装说明
  7. uni-app 188修复弹框问题
  8. 一篇搞定 SpringBoot+Mybatis+Shiro 实现多角色权限管理
  9. Java 对一组时间进行处理 提出连续的时间段
  10. bootstrap4学习路线