[Design-Time ubroker.properties]Classic AppServer and WebSpeed configurations are defined in a file named
ubroker.properties. A default configuration file in the
<install-dir[DLC]>\properties folder is used unless a different properties file is specified when the AdminService used to manage the broker is started:
$ proadsv -start -f <path>/myubroker.properties
The properties which store the location and name of the Broker and Server logs being used by a resource are
brokerLogFile and
srvrLogFile respectively.
The UBroker itself uses inheritance to allow specifying default property values by category of resource, then breaks down to the actual broker definition.
The ubroker.properties inheritance:
- [UBroker]
- [UBroker.<broker-type>]
- [UBroker.<broker-type>.<broker-name>]
For example: The following sections of the
ubroker.properties file need to be examined for the comprehensive definition of an AppServer resource named
asbroker1
- [UBroker]
- [UBroker.AS]
- [UBroker.AS.asbroker1]
[Configuration Utilities]Once a Broker definition is defined in a properties file, it can be a bit of a task to extrapolate which properties are being used by a specific broker instance. The properties are expressed in multiple sections of the file and it's easy to miss the definition of a property that was defined, then redefined in another section of the file which takes precedence. Additionally, when environment variables are used in the properties file, the value they resolve to may be different depending upon what was set when the AdminServer governing the Broker instance was started.
The
ASCONFIG and
WSCONFIG utilities can be used online or offline to resolve a fixed (alphabetical) list of property values that apply to a specific broker resource
General usage of ASCONFIG and WSCONFIG utilities:<AppServer>
ASCONFIG -name <broker-name> [-propfile <path-to-ubroker.properties>] -validate
<WebSpeed>
WSCONFIG -name <broker-name> [-propfile <path-to-ubroker.properties>] -validate
For example: To see the full set of properties for a WebSpeed broker named
wsbroker1:
proenv> $DLC/bin/wsconfig -i wsbroker1 -validate
Sample WSCONFIG
logfile related configuration output for wsbroker1
brkrLogAppend: 1
brkrLogEntries: 0
brkrLogEntryTypes: 0
brkrLoggingLevel: 2
brkrLogThreshold: 0
brkrNumLogFiles: 3
brokerLogFile: @{WorkPath}\wsbroker1.broker.log (D:\wrk\wsbroker1.broker.log)
srvrLogAppend: 1
srvrLogEntries: 0
srvrLogEntryTypes: 0
srvrLogFile: @{WorkPath}\wsbroker1.server.log (D:\wrk\wsbroker1.server.log)
srvrLoggingLevel: 2
srvrLogThreshold: 0
srvrLogWatchdogInterval: 60
srvrNumLogFiles: 3
[Checking at Runtime]The problem with the methods outlined above, is when it is not known which
ubroker.properties file was being used to define a given resource when it was started. Different configuration files are needed to preserve debug parameters or distinct Server references for example.
If when the AdminService was started it used a different properties file, then the
-propfile parameter needs to be specified with the
ASCONFIG or
WSCONFIG utility. Otherwise the default
<DLC>/properties/ubroker.properties file is read and validated, rather than the one that is actually being used to define the running instance of the Broker. Different property values may be reported when that UBroker resource configuration is defined in other configuration files.
Operating System appropriate command/functionality can be used to view details about a running Broker or Agent process, to find the correct configuration
properties file to use in conjunction with the
ASCONFIG or
WSCONFIG utility.
For example:
On Windows,
Task Manager can be used with the "Command Line" column to view details about the processes associated with an AppServer or WebSpeed Broker and/or Agent process.
On UNIX / Linux, the
ps command can be used
A. [Broker Log File]1. First find the process id (PID) of the Broker process. This can be found by using either
WTBMAN or
ASBMAN to query the running Broker.
For example: The ASBMAN command produces following output for an AppServer resource named
asbroker1, which includes the Broker and Server PIDs:
proenv>$DLC/bin/asbman -i asbroker1 -query
Connecting to Progress AdminServer using rmi://localhost:20931/Chimera (8280)
Searching for asbroker1 (8288)
Connecting to asbroker1 (8276)
Broker Name : asbroker1
Operating Mode : State-reset
Broker Status : ACTIVE
Broker Port : 3090
Broker PID : 47682
Active Servers : 1
Busy Servers : 0
Locked Servers : 0
Available Servers : 1
Active Clients (now, peak) : (0, 0)
Client Queue Depth (cur, max) : (0, 0)
Total Requests : 0
Rq Wait (max, avg) : (0 ms, 0 ms)
Rq Duration (max, avg) : (0 ms, 0 ms)
PID State Port nRq nRcvd nSent Started Last Change
47711 AVAILABLE 02003 000000 000000 000000 <date time> <date time>
2. Locate the Broker PID through Task Manager or ps utilities and view the command line to find the physical address of the configuration properties file being used.
For example, the following command shows the full command line used to start the Broker (java) process on UNIX/Linux systems:
$ ps -eaf | fgrep 47682
<owner> 47682 1 2 10:58 ? 00:00:02 /tools/linuxx86_64/java64/jdk1.8.0_101/jre/bin/java
-classpath /tools/linuxx86_64/java64/jdk1.8.0_101/lib/tools.jar:/usr/dlc/java/progress.jar
-DInstall.Dir=/usr/dlc
-Djava.security.policy=/usr/dlc/java/java.policy
-DCanonicalName= com.progress.ubroker.broker.ubroker
-t AS
-i asbroker1
-r rmi://localhost:20931/asbroker1
-f /usr/dlc/properties/ubroker.properties
3. Use the physical address of the ubroker.properties file for the
-propfile parameter with the
ASCONFIG utility.
- Review the brokerLogFile property in the output to find the location of the Broker log file.
- Review the srvrLogFile property in the output to find the location of the Server log file.
For example:
proenv>$DLC/bin/asconfig -name asbroker1 -propfile /usr/dlc/properties/ubroker.properties -validate
The parsed Broker and Server (Agent) Logfile configuration output from the ASCONFIG:
brokerLogFile: $WRKDIR/asbroker1.broker.log (/usr/wrk/logs/asbroker1.broker.log)
srvrLogFile: $WRKDIR/wsbroker1.server.log (/usr/wrk/logs/wsbroker1.server.log)
B. [Agent Log File]A similar method is used to find only the Server log file for running Agents.
1. Use either
WTBMAN or
ASBMAN to query the Broker to find the process id (PID) of the Server
2. Locate the Server PID through Task Manager on Windows or ps utilities (as outlined above) and view the command line.
For the agent process, the
-logfile parameter value in the startup command defines the path and logfile for that resource.
Additionally the
-ubpropfile parameter value shows the physical address of the ubroker.properties file to use in conjunction with the ASCONFIG utility if needed.
For example:
Assume the PID has been identified as
47711 for one of the AppServer Agents from
ASBMAN -query output for the running AppServer Broker.
The Command Line column from Task Manager shows the value of the
-logfile parameter used by the running Agents.
"C:\bin\_proapsv.exe"
-logginglevel 3
-logfile "D:\wrk\logs\asbroker1.server.log"
-ubpid 13184
-Ms 1
-logname asbroker1
-logentrytypes ASPlumbing,DB.Connects -logthreshold 0
-numlogfiles 3
-ASID 2
-ubpropfile "C:\prgs\properties\ubroker.properties"
-ipver IPv4