Alternate server definitions
The Helix Broker can direct user requests to an alternate server to reduce the load on the target server. These alternate servers must be replicas (or brokers, or proxies) connected to the intended target server.
To set up and configure a replica server, see Replication. The broker works with both metadata-only replicas and with replicas that have access to both metadata and versioned files.
You can define any number of alternate replica servers in a broker configuration file.
The syntax for specifying an alternate server is:
altserver: name { target=[protocol:]host:port; }
For example:
altserver: rep_18310 { target=10.5.10.118:18310; } altserver: rep_18320 { target=10.5.10.118:18320; } altserver: rep_18330 { target=10.5.10.118:18330; }
The name you assign to the alternate server is used in Command handler specifications.
Configuring alternate servers to work with central authorization servers
Alternate servers require users to authenticate themselves when they run
commands. For this reason, the
Helix Broker
must be used in conjunction with a central authorization server
(P4AUTH
). For more information about setting up
a central authorization server, see
Authorization and changelist servers.
When used with a central authorization server, a single p4 login
request can create a ticket that is valid for the
user across all servers in the
Helix Broker’s
configuration, enabling the user to log in once. The
Helix Broker
assumes that a ticket granted by the target server is valid across all
alternate servers.
If the target server in the broker configuration file is a central
authorization server, the value assigned to the target
parameter must precisely match the setting of P4AUTH
on the
alternate server machine(s). Similarly, if an alternate sever defined in
the broker configuration file is used as the central authorization
server, the value assigned to the target
parameter for the
alternate server must match the setting of P4AUTH
on the
other server machine(s).
Example of a P4Broker configuration file
If you choose to use a broker instead of a forwarding replica, edit the P4Broker configuration file to add the target, listen port, and other broker information.
target = master:11111; listen = 33333; directory = /p4broker/root/; logfile = broker.log; debug-level = server=1; admin-name = "your name"; admin-phone = x1234; admin-email = [email protected] redirection = selective; # # Add an "altserver" for the replica: # altserver: replica1 { target = replica:22222; } # # Add command handlers to redirect read-only metadata commands to the replica # command: ^(branches|changes|clients|counters|depots|dirs \ |filelog|files|fstat|groups|interchanges|jobs|labels|opened \ |sizes|fixes|where|workspaces|users)$ { action = redirect; destination = replica1; } # # Prevent user joe from invoking p4 submit from the # buildonly client workspace. # command: submit { user = joe; workspace = buildonly; action = reject; message = "Submit failed: Please do not submit from this workspace."; } # # Allow user 'maria' to run 'p4 opened -a' but not without the '-a' option # command: opened { flags = -a; user = maria; action = pass; } command: opened { user = maria; action = reject; message = "Please use 'p4 opened -a'"; }