Configurables reference

View information about each configurable. To search for information on the page, use the browser search.

Alphabetical list

To view configurables starting with a letter, click the letter:

A | C | D | F | I | J | L | M | N | P | R | S | T | U | Z

A

Configurable Client, server, or proxy? Default value Description Server restart required?
auth.2fa.persist Server 1

To disable p4 login2 -p, set to 0.

To make p4 login-p implicitly invoke p4 login2 -p, set to 2.

No
auth.autologinprompt Server 1 The default value causes the command-line user to be prompted to log in. To disable, set to 0 No
auth.default.method

Server

perforce

The default method to use for authenticating new users.

  • perforce specifies that the user is to be authenticated using the db.user table. This is the default setting.

    If there are no active LDAP configurations, this setting might cause a new user to be authenticated against an AD/LDAP server, using an authentication trigger if such a trigger exists.

  • ldap specifies the user be authenticated against an AD/LDAP server without having to use authentication triggers.

    In addition, if you want new users to be automatically created when they have successfully authenticated against an AD/LDAP server, set the configurable auth.ldap.userautocreate to a non-zero value.

No
auth.id

Server

unset

An alphanumeric identifier that must be set for all servers in a distributed configuration if you want to implement single login to the central server The one server that is innermost in a multi-server deployment. In the server specification form field for Services, the central server might be specified as “standard” or “commit-server”. If edge servers are part of the multi-server deployment, the central server must be a commit server. See also 'upstream server'., which is then valid across all replica instances.

You must also set rpl.forward.login to 1 for each replica participating in the distributed configuration.

On edge servers:

See Explicit stop and restart.

auth.ldap.cafile

Server

unset

The path to a file that contains one or more PEM-formatted certificates used to verify the certificate presented by the AD/LDAP server when using SSL or TLS and auth.ldap.ssllevel is >=1.

No
auth.ldap.order.N

Server

unset

Specifies the name of the LDAP configuration to use for authentication and the order in which it should be used to search for a given user name. The lowest number confers the highest priority.

You may skip numbers. For example:

auth.ldap.order.1=UK_LDAP
auth.ldap.order.2=US_LDAP
auth.ldap.order.5=RU_LDAP

If you want LDAP authentication to replace trigger-based authentification, see LDAP authentication in the P4 Server Administration Documentation, and note that the Testing and enabling LDAP configurations procedure requires a server restart.

If LDAP Auth is working and you are adding a backup configuration, a restart is not required. However, the following applies after the first valid LDAP configuration is added to the list and after the last LDAP configuration is removed.

See Explicit stop and restart.

auth.ldap.pagesize

Server

0

Specifies the paging limit for LDAP searches with paged results. Set the configurable to a value less than the result limit of the LDAP server. The default value, 0, means that paging is not enabled.

No
auth.ldap.sslciphers

Server

unset

SSL/TLS ciphers to present to LDAP servers. LDAP uses the same defaults as SSL/TLS connections for the same OpenSSL implementation. The default is TSL 1.3 and the default ciphers and their priority are:

Priority 1: TLS_AES_256_GCM_SHA384

Priority 2: TLS_CHACHA20_POLY1305_SHA256

Priority 3: TLS_AES_128_GCM_SHA256

Priority 4: AES256-SHA

You can set non-default ciphers for LDAP with this configurable.

See Explicit stop and restart.

auth.ldap.ssllevel

Server

0

Level of SSL/TLS certificate validation:

  • 0: No validation; default.
  • 1: Certificate must be valid, but the common name is not checked.
  • 2: Certificate must be valid and the certificate common name matches the AD/LDAP server’s host name.
No
auth.ldap.timeout

Server

30

The time in seconds to wait before giving up on a connection attempt.

No
auth.ldap.userautocreate

Server

0

0 means no automatic creation of users.

1 means that if auth.default.method is set to ldap, users are auto-created when they log in to P4 Server and they have been successfully authenticated against an active directory AD/LDAP server using p4 login.

2 is similar to 1 but also requires the user already have permissions on the server through the protections table.

No
auth.licenseexpiry.warn Server 1

Enable license expiry warning:

0: No license expiry warning

1: Warn users with permission level admin or higher when they log in

2: Warn all users when they log in

No
auth.licenseexpiry.warnthreshold Server 7 Number of days prior to the expiration of the P4 license to start providing the warning if auth.licenseexpiry.warn is set. No
auth.sso.allow.passwd Server 0

To allow users who authenticate against the Perforce database (as opposed to LDAP or other auth triggers) to fall back to password authentication despite an auth-check-sso trigger being on the server, set to 1

If LDAP is enabled, see the auth.sso.nonldap configurable.

See p4 login behavior with auth-check-sso trigger under Single signon and auth-check-sso triggers in P4 Server Administration Documentation.

No
auth.sso.args Server unset

This configurable can be set to string value to send to the client-side P4LOGINSSO script when an auth-check-sso trigger is in use.

This string is substituted for the %ssoArgs% variable in the P4LOGINSSO environment variable, as the client executable is being invoked.

For example, the SAML agent can get the identity provider (IdP) URL as follows:

p4 configure set auth.sso.args=--idpUrl=yourURLforIdP

where

--idpUrl=yourURLforIdP

replaces

%ssoArgs%

No
auth.sso.nonldap Server 0
  • When set to 0 and LDAP authentication is enabled, users whose AuthMethod is perforce will authenticate by password against the Perforce database.
  • If set to 1, those users will be required to authenticate using a client-side P4LOGINSSO script.
  • Note: If this configurable and auth.sso.allow.passwd are both set to 1, users whose AuthMethod is perforce will be able to authenticate using a client-side P4LOGINSSO script, or fallback to authenticating by password against the Perforce database.

See p4 login behavior with auth-check-sso trigger under Single signon and auth-check-sso triggers in P4 Server Administration Documentation.

No
auth.tickets.nounlocked Server 0

If set to 1 or 2, prevents p4 login -a from issuing host unlocked tickets. In other words, 1 or 2 enforce host locked tickets, which are restricted to the one host with the correct IP address.

1 means the -a flag is silently ignored and the users are always issued host locked tickets.

2 means the -a flag is explicitly disabled and users get an error if they try to use it.

If either value is set, the tagged output from p4 info

p4 -ztag info

shows that unlockedTickets is disabled:

... unlockedTickets disabled

No

C

Configurable Client, server, or proxy? Default value Description Server restart required?
client.readonly.dir

Server

unset

The path of the directory on the P4 Server for the db.have.pt table of client workspaces of type readonly, partitioned, and partitioned-jnl.

For example, if client.readonly.dir is set to /perforce/1, when a user creates maria_wk as a readonly, partitioned, or partitioned-jnl client workspace, the db.have.pt table associated with this client will be located in the /perforce/1/server.dbs/client/hashdir/db.maria_wk directory. To learn more, see Client workspace types in P4 Server Administration Documentation.

No

client.sendq.dir

Server

 

unset

For parallel sync: To avoid lock contention on the database table used for processing parallel syncs, set the configurable. This specifies the directory that will contain a separate db.sendq table for each client. Consider specifying the same directory you use for client.readonly.dir.

No

D

Configurable Client, server, or proxy? Default value Description Server
restart
required?
db.checkpoint.bufsize Server 224K Minimum journal buffer size during checkpoint. No
db.checkpoint.numfiles Server 10

Used to determine how many checkpoint files should be generated during a multifile checkpoint operation. See To tune future checkpoint requests.

No
db.checkpoint.reqlevel Server 4 The depth of a table must be greater or equal to this value for it to be considered for splitting. See To tune future checkpoint requests. No
db.checkpoint.threads Server 0

Number of threads to use for checkpoint.

0: Do not use threads

N: Use the specified number of threads, up to 4096

The value can be overridden by the p4 admin checkpoint command as well as by the p4d utility. See Parallel checkpointing, dumping and recovery in P4 Server Administration Documentation.

No
db.checkpoint.worklevel Server 3

The page level examined within a database table that supplies the record keys used to split that table during a multifile checkpoint operation. See To tune future checkpoint requests.

No
db.journalrotate.warnthresh Server 0 If set to a value between 1 and 365, at login, if the last journal rotation is older than the set number of days, a warning reminds admins and users of type operator to do a journal rotation. No
db.monitor.addthresh Server 0 The value is in milliseconds. If the value of the monitor is set to 1 or 2, new connections will only be added to the db.monitor table if they run for longer than the number of milliseconds specified in this configurable, or if they become blocked waiting for a lock on a table in the schema. To learn more, see p4 monitor. No
db.monitor.interval

Server

30 since 2018.2 and 0 prior to 2018.2

The value of 0 means the feature is off.

A non-zero value specifies the number of seconds that the P4 Server waits before checking if any process in the monitor table is marked for termination. If the P4 Server determines that any such process is blocked because it is waiting for client input, the P4 Server terminates it.

See also:

No
db.monitor.shared

Server

256

This configurable is in units of 8 kilobyte pages to be stored in shared memory. The default of 256 pages is the equivalent of 2 MB, and a value of 4096 pages would be the equivalent of 32 MB.

The value sets the maximum size of memory allotted to the db.monitor table, which tracks the p4d commands that are currently running.

Setting this configurable to 0 means that the table is written to disk. However, writing the table to memory is recommended to improve performance.

If the size of the table exceeds the value of db.monitor.shared, an error is returned. Commands are still executed, but they are not recorded in the table.

The value is in database pages of 8 kilobytes.

See also the Options under the p4 configure command, and note that p4 configure show indicates the actual maximum, but p4 configure show allservers indicates a manual preference that is only enforced if sufficient memory is available.

See Explicit stop and restart.

db.monitor.term.allow

Server

0

To allow users to terminate their own processes, set to 1. To also allow users to pause and resume their own processes, set to 2.

A minimum of read permission in the protections table is required for these users to be able to use p4 monitor terminate.

No
db.partition.dropondelete Server 0

If set to 1, during the partitioned client deletion, the individual records are not deleted but the table is deleted followed by the respective journal note Entries added to journals and checkpoints that provide information for subsequent users of the journal or checkpoint. For example, replica servers might take action based on the journal notes they process.. The table cannot be recovered but the performance is improved for the deletion. To learn more, see Journal notes in P4 Server Administration Documentation.

No
db.partition.verify Server 1

Enables the verification of partitioned have tables for clients of type readonly, partitioned, and partitioned-jnl. To disable, set to 0.

No
db.peeking

Server

2

Enable and configure lockless reads. When enabled, many common commands no longer block other commands attempting to update the database. To learn more, see Commands implementing lockless reads in the P4 Server Administration Documentation.

0: Disable peeking. Behavior is identical to 2013.2 and earlier.

1: New locking order is enabled, peeking is disabled, (diagnostic use only).

2: New locking order is enabled, peeking is enabled, hx/dx optimization on.

3: New locking order is enabled, peeking is enabled, hx/dx optimization is off.

To help you decide between 2 and 3, see Possible values for db.peeking in P4 Server Administration Documentation.

Beginning with the 2017.1 release, this configurable is dynamic and no server restart is required.

db.peeking.usemaxlock Server 0 When peeking, obey maxlocktime setting. To learn more, see Limiting database queries in P4 Server Administration Documentation. No
db.reorg.disable Server 1

1: The default disables passive B-tree reorganization, which we recommend for solid-state drive (SSD) storage.

0: Enable passive B-tree reorganization. This might:

  • be beneficial if data storage involves a spinning disk because it might reduce the need to periodically recreate database tables from a checkpoint to improve performance
  • increase the size of some database tables due to the allocation of new contiguous pages

Changing from the default value is not supported.

No
db.replication

Server

unset

Control behavior of commands that access metadata (db.* files) on the P4 Server server:

readonly: User commands that read metadata are accepted; commands that modify metadata are rejected.

Equivalent to starting a replica with the p4d -M readonly option.

This configurable cannot be set globally. You must specify a server id.

No
db.rt.io Server 0 Set to 1 to enable Database IO tracking by the rt.monitorfile configurable.

See Explicit stop and restart.

dbjournal.bufsize

Server

16K

Buffer size for journal and checkpoint read/write operations.

No
dbopen.nofsync

Server

0

For performance, set to 1 to disable the fsync() call when the server closes a db.* database file. This permits the operating system to determine when to write the modified data.

No
defaultChangeType

Server

unset

defaultChangeType

Default type for new changelists: either public or restricted. If unset, new changelists are public.

When changes are pushed or fetched, the Type: field for changes ignores the setting of this configurable on the target server.

No
dm.annotate.maxsize

Server

10M

Maximum revision size for p4 annotate. No
dm.batch.net

Server

10K

Maximum files per (un)lock message sent between edge and commit server.

No
dm.change.skipkeyed

Server

0

When set to 1, updates to a submitted changelist by p4 change -u or p4 change -f unset the checksum and filesize for +k type files instead of recalculating them.

These can be recalculated later with the p4 verify -u command, or, for a large number of revisions, with parallel processing by the p4 storage -U -n threads command.

No
dm.configure.comment.mandatory

Server

0

If set to 1, a comment must be provided when the value of a configurable is changed with the p4 configure command.
How to add comments is shown at Examples of p4 configure history.

No
dm.domain.accessforce

Server

3600

Wait this many seconds before forcibly updating an access time, even if server must wait for a lock.

No
dm.domain.accessupdate

Server

300

Wait this many seconds before requesting a write lock to update an access time.

No
dm.fetch.preservechangenumbers Server 0 If set to 1, DVCS (or the Distribution Server) preserves existing changelist numbers when pushes or fetches occur. No
dm.grep.maxrevs

Server

10K

Maximum number of revisions that can be searched with p4 grep.

No
dm.info.hide

Server

0

If set to 1, which is recommended, and the user is not authenticated, p4 info hides:
Server name
Server address
Server uptime
Server license ip address

and the license string is either none or Licensed.

No
dm.integ.streamspec Server 1

0: Stream spec integration is not allowed

1: Allow stream spec integration only for target streams with noinherit ParentViews. See 'p4 help streams' and 'p4 help streamcmds' to read about the stream ParentView property.

2: Allow stream spec integration for all streams

Changing from the default value is not supported.

No
dm.locks.excl.batch.net Server 10K Batch size for exclusively (un)locked files sent from an edge to a commit server. See +l at File type modifiers. No
dm.locks.global.batch.net Server 10K Batch size for globally (un)locked files sent from an edge to a commit server. See p4 lock -g, p4 fstat -OL, and dm.open.show.globallocks No
dm.locks.global.result.batch.net Server 10K Batch size for globally (un)locked files returned from a commit server to an edge server. (See p4 lock -g, p4 fstat -OL, and dm.open.show.globallocks) No
dm.keys.hide

Server

0

0: Default

1: p4 keys requires admin access

2: p4 key requires admin access, p4 keys requires admin access

No
dm.open.show.globallocks Server 0

0: Default

1: Commands that open files on an edge server report any global locks that affect those files. This setting has the overhead of a query to the commit server.

This is for global locks created through p4 lock, not +l, which is one of the File type modifiers .

No
dm.password.minlength

Server

8

Default minimum password length for servers where security is set to a non-zero value.

No
dm.populate.skipkeyed Server 0

0: Recalculates the digest and size fields for ktext files when the submitted changelist involving those revisions is updated.

1: Unsets the digest and size fields for ktext files when the submitted changelist involving those revisions is updated, which might improve the performance of p4 populate.

No
dm.protects.allow.admin

Server

0

Allow P4 administrators to use -a, -g, and -u with p4 protects. By default, only superusers can use these options.

Changing from the default value is not supported.

No
dm.protects.exclusioncheck Server 1

Revoking list access using an exclusionary protections entry with a path such as -//... revokes list access, as expected, for commands such as p4 changes and p4 describe. This default is the recommended setting for security purposes.

To revert to the legacy behavior (less secure), set this configurable to 0

No
dm.protects.streamspec Server 0

To start enforcing the stream spec permissions described at p4 protect, set to 1

No
dm.proxy.protects

Server

1

Determine (in accord with the use of IP addresses in the protections table) whether a user can access a server from a given IP address.

When P4 Server evaluates protections table entries, it also considers the setting of the dm.proxy.protects configurable.

dm.proxy.protects defaults to 1, which causes the proxy- prefix to be prepended to all client host addresses that connect through an intermediary proxy, broker, or replica. The proxy- prefix indicates that the connection is not direct. If you specify proxy-* for the Host field, that will affect all connections made via proxies, brokers, and replicas. A value such as proxy-10.0.0.5 identifies a client machine with an IP address of 10.0.0.5 that is connected to the server through an intermediary.

If dm.proxy.protects is set to 0, the proxy- prefix is removed. This allows you to write a single set of protection entries that apply both to directly-connected clients and clients that connect through a proxy, broker, or replica. A single set of protection entries is more convenient. However, in some cases a connection through one or more intermediaries might be less secure. If you use the 0 setting, all intermediaries must be at release 2012.1 or higher.

For more information, see the p4 protect command.

No
dm.repo.noautocreate

Server

0

Control behavior of automatic repo creation in a depot of type graph.

0: When a user does a git push, if that repo does not already exist in the graph depot, this new repo is added in the graph depot.

1: When a user does a git push, if that repo does not already exist in the graph depot, the git push fails and the repo is not added to the graph depot.

No
dm.repo.unpack Server 1

Control the retaining or unpacking of Git packfiles into loose objects when Git Connector imports the contents of an external Git repo into a P4 graph depot.

The first import creates (or does the initial population of) the repo.

Any subsequent imports (or mirroring) append new commits to the repo.

  Create Append
0 retain retain
1 retain unpack
2 unpack unpack

The value of 0 is consistent with the behavior prior to the 2020.2 release.

No
dm.resolve.attrib

Server

1

Enable resolve for attributes set with p4 attribute.

Changing from the default value is not supported.

No
dm.resolve.ignoredeleted Server 0

When a file has been deleted in branch A and not in branch B, a merge of B into A results in a conflict, and a subsequent p4 resolve -as does not resolve the conflict. However, if dm.resolve.ignoredeleted is set to 1, p4 resolve -as resolves the conflict by honoring the file deletion in branch A.

Changing from the default value is not supported.

No
dm.rotatelogwithjnl

Server

1

Set to 0 to disable log rotation after journal rotation.

By default, when the journal is rotated, any structured logs are also rotated. Disabling this behavior can help when you’re doing frequent journal rotations and you want the log rotated on a different schedule.

No
dm.shelve.accessupdate

Server

300 seconds

When a shelf is viewed or modified, update its access time if its last access time was longer than the limit specified by the value of dm.shelve.accessupdate

Use the p4 -Ztag change -o command to display the access time for shelved files.

No
dm.shelve.maxfiles

Server

10M

Maximum number of files that can be shelved with p4 shelve.

No
dm.shelve.maxsize

Server

0

Maximum size in bytes of a file revision to be shelved, with a valid range from 1 to 2147483647, or 0 for unlimited.

No
dm.shelve.promote

Server

0

Enable to make edge servers automatically promote shelved files to the commit server. An alternative is manual promotion with the -p option of p4 shelve.

To determine whether to set this configurable, see Explicitly promoting shelves under Promoting shelved changelist in P4 Server Administration Documentation.

No
dm.stream.components Server 0 0: default, stream components not enabled

1: stream components enabled

See Stream Components in P4 CLI Documentation.

No
dm.stream.parentview Server 0

When creating a development, release, or mainline stream without the --parentview parameter, this configurable determines the default value for the ParentView field of the stream spec.

0: All new streams have an inherit ParentView

1: All new mainline, development and release streams have a noinherit ParentView. All new task and virtual streams have an inherit ParentView.

2: All new release streams have a noinherit ParentView. All new streams that are not a release stream have an inherit ParentView.

No
dm.stream.sparse.branchmax Server 100000

Maximum number of depot files in the branch view of a sparse stream.

0: No limit

See Sparse streams in P4 CLI Documentation.

No
dm.sync.streamchange Server 0

See the --use-stream-change option of p4 sync.

No
dm.topology.lastseenupdate Server 300

Number of seconds that determines whether to update the lastSeenDate field in the db.topology table. If an update occurs before the number of seconds has passed, the lastSeenDate is not updated.

No
dm.user.allowselfupdate Server 1

(MFA): The default of 1 allows a user to set the value for that user's %email% and %fullname% variables.

To prevent users from changing the value of these variables, set to 0.

No
dm.user.accessforce

Server

3600

Wait this many seconds before forcibly updating an access time, even if server must wait for a lock.

No
dm.user.accessmode Server 1

Conditions for updating user access times:

0: Access times are only updated on command start.

1: Access times for users with an IdleTimeout are updated periodically during and at the end of a command.

2: All user's access times are periodically updated.

3: Like 2, but also includes service users.

No
dm.user.accessupdate

Server

300

Wait this many seconds before requesting a write lock to update an access time.

No
dm.user.hideinvalid Server 0 Set to the recommended value of 1, which requests a password even if the username does not exist. In addition, we recommend that the security configurable be set to 4 or higher, and that both dm.users.hideinvalid and run.users.authorize be set to 1. No
dm.user.loginattempts

Server

3

Number of password attempts before delay. When the number of consecutive failed login attempts equal this value, a delay is added before next attempt is possible. The delay is 1 second plus 1 second for every next failed attempt up to the maximum of 10 seconds.

No
dm.user.noautocreate

Server

0

Control behavior of automatic user creation.

By default, P4 Server creates a new user whenever a previously unknown user invokes any command that can update the repository or its metadata Information that P4 Server maintains, such as who created file revisions in the depot, whether the file is a 'lazy copy,, the current state of client workspaces, protections, groups, users, labels, streams, and branches. Metadata is stored in the server database and is separate from the 'archive files' that users submit from their client workspace into the depot.. When executed by a nonexistent user, most P4 Server commands cause a user to be created. You can control this behavior by setting the configurable with the p4 configure command. For security, we recommend that only the P4 Server superuser be allowed to create new users.

p4 configure set dm.user.noautocreate=2

0: A user record is created whenever any new user invokes any command that updates the depot or its metadata (default). Many such commands exist, including p4 ping.

1: New users must create their own user records by explicitly running p4 user.

2: Only the P4 Server superuser can create a new user, and the superuser does so by explicitly running p4 user -f username.

No
dm.user.resetpassword

Server

0

If set to 1, which is recommended, all new users created with a password are forced to reset their password before issuing any commands.

This configurable applies only if the passwords for newly created users are set using the Password: field of the user specification. The password reset behavior for new users that get initial passwords using the p4 passwd command after the user is created is not affected by the setting of this configurable.

No
dm.user.setinitialpasswd

Server

1

Initial password behavior:

0: Only users with the super access level A permission assigned to a user to control which commands the user can run. See also the 'protections' entry in this glossary and the 'p4 protect' command in the P4 CLI Reference., and whose password is already set, can set the initial password for other users. All users can reset their own password after logging in with an initial password set by a super user. Before setting this configurable to 0, ensure that you already have super user, and that this super user already has a strong password set.

1: All users can set their own passwords (default).

If this configurable is set to 0, and the security level is 1 or higher, all users without a password are unable to set their own password, and thus unable to log in to the P4 Server. Make sure that at least one user with super access has a password before setting this configurable to 0, which is recommended. A super user with a password can set the initial password for other super users if necessary.
No

F

Configurable Client, server, or proxy? Default value Description Server restart required?
filesys.atomic.rename

Server

1

If set to 1 on a P4 Server running Windows Server 2016 and newer, enables journal rotation with an atomic rename, rather than requiring a copy and truncate operation. (If you want to disable this feature, set the value to 0 and restart the server.) Note that atomic rename is the default on Linux.

See Explicit stop and restart.

filesys.binaryscan

Client, Server

64K

Scan the first filesys.binaryscan bytes for binary data when running p4 add.

No
filesys.bufsize

Client, Server

64K

Buffer size for client-side read/write operations.

No
filesys.checklinks

Server

0

Use to control symbolic links.

0: No link checking, so directory symlinks can occur.

1: Blocks attempts to p4 add a symlink to a directory, such that both the following fail:

  • p4 add /path/to/a/symlinkDirectory
  • p4 add /path/to/an/embeddedSymlink/readme.txt

2: Same as 1 except allows the user to bypass the check by using the -f (force) option:

  • p4 add -f /path/to/a/symlinkDirectory
  • p4 add -f /path/to/an/embeddedSymlink/readme.txt

3: allows a symlink to a directory that terminates the path without having to use -f:

  • p4 add /path/to/a/symlinkDirectory

    succeeds without using -f because the directory that is represented by a symlink is at the end of the path.

  • p4 add /path/to/an/embeddedSymlink/subdirectory/readme.txt

    fails because the directory that is represented by a symlink is not at the end of the path.

  • p4 add -f /path/to/an/embeddedSymlink/subdirectory/readme.txt
    succeeds because of the -f option.
No
filesys.depot.min

Server

250M

Minimum disk space required for each depot. The server rejects commands from those depots, if any, that fail to meet this minimum.

To specify size, use the following binary abbreviations, which are slightly different from the more familiar decimal abbreviations:

t or T for tebibytes (1 T is approximately 1.1 TB)
g or G for gibibytes (1 G is approximately 1.07 GB)
m or M for mebibytes (1 M is approximately 1.05 MB)
k or K for kibibytes (1 K is 1,024 bytes)

You can also use a percentage to specify the relative amount of free disk space required.

No
filesys.extendlowmark

Client

32K

Minimum filesize before preallocation (Windows).

No
filesys.P4JOURNAL.min

Server

250M

Minimum disk space required on server journal filesystem before server rejects commands.

To specify size, use the following binary abbreviations, which are slightly different from the more familiar decimal abbreviations:

t or T for tebibytes (1 T is approximately 1.1 TB)
g or G for gibibytes (1 G is approximately 1.07 GB)
m or M for mebibytes (1 M is approximately 1.05 MB)
k or K for kibibytes (1 K is 1,024 bytes)

You can also use a percentage to specify the relative amount of free disk space required.

No
filesys.P4LOG.min

Server

250M

Minimum disk space required on server log filesystem before server rejects commands.

To specify size, use the following binary abbreviations, which are slightly different from the more familiar decimal abbreviations:

t or T for tebibytes (1 T is approximately 1.1 TB)
g or G for gibibytes (1 G is approximately 1.07 GB)
m or M for mebibytes (1 M is approximately 1.05 MB)
k or K for kibibytes (1 K is 1,024 bytes)

You can also use a percentage to specify the relative amount of free disk space required.

No
filesys.P4ROOT.min

Server

250M

Minimum disk space required on server root filesystem before server rejects commands.

To specify size, use the following binary abbreviations, which are slightly different from the more familiar decimal abbreviations:

t or T for tebibytes (1 T is approximately 1.1 TB)
g or G for gibibytes (1 G is approximately 1.07 GB)
m or M for mebibytes (1 M is approximately 1.05 MB)
k or K for kibibytes (1 K is 1,024 bytes)

You can also use a percentage to specify the relative amount of free disk space required.

No
filesys.TEMP.min

Server

250M

Minimum disk space required for temporary operations before server rejects commands.

To specify size, use the following binary abbreviations, which are slightly different from the more familiar decimal abbreviations:

t or T for tebibytes (1 T is approximately 1.1 TB)
g or G for gibibytes (1 G is approximately 1.07 GB)
m or M for mebibytes (1 M is approximately 1.05 MB)
k or K for kibibytes (1 K is 1,024 bytes)

You can also use a percentage to specify the relative amount of free disk space required.

No
filesys.windows.lfn

Server, Client, Proxy

1

Set to 1 to support filenames longer than 260 characters on Windows platforms.

Depending on the depth of your workspace path, this might need to be set on the client, server, and/or proxy (which acts as a client).

A file name length of up to 32,767 characters is allowed. Each component of the path is limited to 255 characters. The server root or client root cannot be a long path.

Changing from the default value is not supported.

No
filetype.maxtextsize

Server

10M

Maximum file size for text type detection.

No

I

Configurable Client, server, or proxy? Default value Description Server restart required?
info.p4auth.usercheck

Server

1

Validate username against P4AUTH server

No

J

Configurable Client, server, or proxy? Default value Description Server restart required?
journalPrefix

Server

unset

Prefix or directory location for rotated journals and checkpoints:

p4 configure show journalPrefix
master#journalPrefix=/p4/ckps/master (configure)

p4 admin checkpoint

p4 -F %jfile% journals -m2
/p4/ckps/master.ckp.539
/p4/ckps/master.jnl.538

No
journalPrefixBackup Server unset

Can be set to specify a secondary storage location on the commit server and still support edge server activity. For example, your commit server machine might have access to a location where storage is more economical. Setting this configurable enables the commit server to read the rotated journal files from the secondary location, provided that the journal files have been moved to that location, which is a manual task.

No

L

Configurable Client, server, or proxy? Default value Description Server restart required?
lbr.autocompress

Server

1

Specific for the Base filetypes that are stored in RCS format. This excludes binary, which is always compressed.

1: all files are compressed. (The default since 2022.1)

0: new files except binary are stored without compression. (The default prior to 2022.1)

However, any typemap settings set with p4 typemap override this configurable. For example, if a file is specified as type text+D in the typemap, it will be stored as uncompressed.

In addition, the typemap override can itself be overridden by using the -t type option of p4 add or p4 edit.

No
lbr.bufsize

Server, Proxy

64K

Buffer size for read/write operations to server’s archive of versioned files.

No
lbr.proxy.case

Proxy

1

1: File paths are always case-insensitive.

2: File paths are case-insensitive if server is case-insensitive.

3: File paths are always case-sensitive.

No
lbr.rcs.existcheck Server 1 Perform RCS validation check during submit No
lbr.rcs.maxlen Server 10M Maximum line length in a +k file. No
lbr.replica.notransfer Server 0 If set to 1, suppresses direct on-demand file fetch, which forces the use of pull-archive triggers for transfers. See Triggers for external file transfer in P4 Server Administration Documentation. No
lbr.replication

Server

unset

Define the behavior for replication of versioned files on the P4 Server:

readonly: Replicates version files when they are updated on the target server The immediately upstream server for replica servers, edge servers, standby servers, proxies and brokers. See also 'upstream server' and 'central server'..

shared: For shared storage. See Configuring a replica with shared archives in P4 Server Administration Documentation.

cache: Replicates version files only when referenced if they do not already exist on the replica.

ondemand: Replicates versioned files only when referenced if they do not already exist on the server. File revisions are not deleted based on received journal records and there is no checking that the storage for file revisions is shared with the upstream server. The commands p4 pull -u, p4 verify -t, and p4 cachepurge are not supported with this setting.

none: Versioned files are not replicated and no user access to versioned files is permitted for read-only replica and read-only standby servers.

This configurable cannot be set globally. You must specify a server id.

Equivalent to starting a replica p4d process with one of the -D readonly, -D shared, -D cache, or -D none options.

See Explicit stop and restart.

lbr.retry.max

Server

50

In the event of a failed transfer, a replica will make lbr.retry.max attempts to retrieve the file.

No
lbr.s3.uploadretries Server 5 Number of times to retry uploads to S3 that generate a response code error between 500 and 599. See Explicit stop and restart.
lbr.stat.interval Server 0

Proxy file status interval. If set to a value, such as 30, the LbrStatus table entry for a large file will be updated every 30 seconds, indicating that the proxy is making progress on the file transfer. If the proxy has not read some data for that file within the 30 seconds then the entry will not be updated.

For more information, if you have installed the P4P, see the proxy help by typing at the command line p4p -h

No
lbr.storage.allowsymlink

Server

0 To allow symlinks, set to 1 This should only be done if all the symlinks only reference files and directories that are not under any scanned directory. See p4 storage. No
lbr.storage.delay Server 86400 Required number of seconds before p4 storage -d scanner considers deleting storage records. 86400 seconds equates to 24 hours. This delay is to allow any in-progress submits and in-progress shelves to complete. No
lbr.storage.skipkeyed Server 2

If 2, the default value, no digest is created for keyword revisions and no message is logged.

If 1, no digest is created for keyword revisions and a warning message is logged.

If 0, a digest is created for all keyword revisions.

See Explicit stop and restart.

lbr.storage.threads Server 0

Number of threads to use for a p4 storage -U request.

0: Don't use threads

N: Use N threads to compute the digests

No
lbr.verify.in

Server

1

Verify contents from the client to server? (1 for yes, 0 for no)

No
lbr.verify.out

Client, Server

1

Verify contents from the server to client? (1 for yes, 0 for no)

No
lbr.verify.script.out

Server

1

Set to 0 to prevent files of type +X from having their digest checked when transmitted from server to client.

When source watermarking is used, sites have configured a +X archive trigger script that returns different results each time a file is sync’d or printed, in order to embed a user-specific string into the file contents during sync. This defeats the digest verification performed when sending the file to disk. Setting lbr.verify.script.out disables digest verification in this situation. Other files are still verified normally, as determined by the setting of lbr.verify.out.

No
log.originhost

Server

1

Origin and peer IPs in the structured logs.

No

N

Configurable Client, server, or proxy? Default value Description Server restart required?
net.autotune

Server, Client, Proxy, Broker

1

TCP connection changes to improve performance over long latency connections.

To disable, set to 0. Clients set this configurable by using p4 set or P4CONFIG files. Servers set this configurable by using p4 configure.

On Windows-based platforms, send buffer sizes are not autotuned but are manually configurable with net.tcpsize.

If net.autotune has a non zero value, the following are ignored:

  • (Windows) any net.tcpsize setting for receive buffer sizes

  • (Linux/macOS) any send and receive buffer sizes

Autotune defaults to being enabled on server versions:

  • 2019.1 and later

  • 2017.1 (unpatched)

Autotune defaults to being disabled on server versions:

  • 2018.2

  • 2018.1

  • 2017.2

  • 2017.1 (when patched)

Not since 2025.1. Prior to 2025.1, see Explicit stop and restart.
net.backlog

Server, Proxy

128

Maximum length of queue for pending connections. Consider increasing if users cannot connect to servers that are heavily loaded.

No
net.delta.rpl.minsize Server 131,072

Minimum file size to perform replica delta transfer. Must be non-zero on both upstream and downstream servers to activate delta transfer. Upstream server values are used for replica delta transfer.

Default of 131,072 bytes corresponds to 128 * 1024.

No
net.delta.rpl.threshold Server 90

Determines when to send the full file instead of delta chunks. If the percentage of differing chunks to total chunks is the greater than the threshold, the full file transfer will be initiated.

No
net.delta.transfer.minsize Client, Server 131,072

Submits and syncs to files of type binary+F use a delta transfer mechanism to only send the modified portion of file content from the client to the server. This is an optimization for remote clients.

If 0 on the client, the feature is disabled locally.
If 0 on the server, the feature is disabled globally.

Default of 131,072 bytes corresponds to 128 * 1024.
Non-zero values on the client represent the minimum file size in bytes that a delta transfer will be performed on.

No
net.delta.transfer.threshold Client 90

Maximum percentage of file size to perform delta transfer before reverting to streaming the complete file.
On a low-bandwidth remote client, reducing file transfers improves performance and the default of 90% is likely to be appropriate.
On a client with a fast network, a lower threshold minimizes the overhead of the delta transfer.

No
net.heartbeat.interval Server 2000

Milliseconds between sending heartbeats to the target server.

You can interactively invoke p4 heartbeat to observe the effect of varying the value for this configurable.

The server must be restarted for any background heartbeat threads to start using the updated value for this configurable.

net.heartbeat.missing.count Server 5

The number of consecutive missed heartbeat responses (see net.heartbeat.missing.wait) before the heartbeat is considered non-responsive or dead.

When the count of consecutive missed responses reaches net.heartbeat.missing.count, your heartbeat-dead trigger will fire. See Triggering on heartbeat (server responsiveness) in P4 Server Administration Documentation.

You can interactively invoke p4 heartbeat to observe the effect of varying the value for this configurable.

The server must be restarted for any background heartbeat threads to start using the updated value for this configurable.

net.heartbeat.missing.interval Server 2000

Milliseconds between sending heartbeats after a missing response.

You can interactively invoke p4 heartbeat to observe the effect of varying the value for this configurable.

The server must be restarted for any background heartbeat threads to start using the updated value for this configurable.

net.heartbeat.missing.wait Server 4000

Milliseconds to wait for a response from the target server after a missed response.

If the response arrives before the request times out, your heartbeat-resumed trigger will fire. See Triggering on heartbeat (server responsiveness) in P4 Server Administration Documentation.

You can interactively invoke p4 heartbeat to observe the effect of varying the value for this configurable.

The server must be restarted for any background heartbeat threads to start using the updated value for this configurable.

net.heartbeat.wait Server 2000

Milliseconds to wait for a response from the target server. If this interval is exceeded, your heartbeat-missing trigger will fire if this is the first missing response. See Triggering on heartbeat (server responsiveness) in P4 Server Administration Documentation.

You can interactively invoke p4 heartbeat to observe the effect of varying the value for this configurable.

The server must be restarted for any background heartbeat threads to start using the updated value for this configurable.

net.keepalive.count

Client, Server

0

Number of unacknowledged keepalives before failure. Similar to tcp_keepalive_probes at https://linux.die.net/man/7/tcp

If 0, defaults to the operating system behavior.

See the TCP keepalive section in the Administrators Guide.

No
net.keepalive.disable

Client, Server

0

If 0 and keepalive functionality is supported by the OS, keepalives are enabled on the socket.

If 1, keepalives are disabled on the socket.

See the TCP keepalive section in the Administrators Guide.

No
net.keepalive.idle

Client, Server

0

Idle time (in seconds) before starting to send keepalives. Similar to tcp_keepalive_time at https://linux.die.net/man/7/tcp

If 0, defaults to the operating system behavior.

See the TCP keepalive section in the Administrators Guide.

No
net.keepalive.interval

Client, Server

0

Interval (in seconds) between sending keepalive packets. Similar to tcp_keepalive_intvl at https://linux.die.net/man/7/tcp

If 0, defaults to the operating system behavior.

See the TCP keepalive section in the Administrators Guide.

No
net.maxclosewait Server 1000 Milliseconds to wait for a network close No
net.maxfaultpub

Proxy

100

A value in megabytes that controls the proxy’s cache faulting behavior. A single p4 sync will not publish more than net.maxfaultpub megabytes of faults into pdb.lbr.

You must restart the server after changing the value of this configurable.

See Explicit stop and restart.

net.maxwait

Client, Server, Proxy

0

Time, in seconds, before a network connection times out.

Note that the default of 0 means the configurable is not activated.

Best practice is not to set server-wide: if set on server, requires that users complete command-line forms within this limit. If set in user’s individual P4CONFIG file, applies to user’s workstation (and requires only that the versioning service reply to user requests within the allotted time limit).

You must restart the server after changing the value of this configurable.

See Explicit stop and restart.

net.mimcheck

Server, Proxy

1

Man-in-the-middle network security level: This enables checks for possible interception or modification of data such as using an SSH tunnel or other TCP forwarder for users with passwords set.

0: Disable MitM checks.

1: Check proxy/broker connections in legacy contexts.

2: Connections from clients are checked for TCP forwarding.

3: Connections from clients, proxies, and brokers are checked for TCP forwarding.

4: All connections are checked; client software older than release 2010.1 cannot connect.

5: Requires that proxies, brokers, and all intermediate servers have valid logged-in service users associated with them. This allows administrators to prevent unauthorized proxies and services from being used.

You must restart the server after changing the value of this configurable.

See Explicit stop and restart.

net.nagle Client, Server, Proxy 2

Whether the Nagle algorithm is used. This algorithm clears the TCP_NODELAY socket option, which delays sending small packets of data in the hope of bundling them with other data to create larger, more efficient packets.

0 : Disable the Nagle algorithm to send data as soon as possible.
1 : Enable the Nagle algorithm.
2 : Disable the Nagle algorithm for SSL but use the system default for TCP, which on most systems is to enable the Nagle algorithm.

See also net.quickack.

No
net.parallel.batch

Server

8

Specifies the number of files in a batch.

See p4 sync on Parallel syncs.

No
net.parallel.batchsize

Server

512K

Default of 524288 is equivalent to 512 KB.

Specifies the number of bytes in a batch.

See p4 sync on Parallel syncs.

No
net.parallel.max

Server

0

The maximum number of concurrent threads for a single p4 sync, p4 shelve, or p4 submit command.

A value greater than 1 enables parallel processing up to the specified number of threads. Values can range between 0 and 100.

Too many threads can reduce performance due the overhead associated with starting, managing, and stopping threads. Often, 8 threads perform better than 20. Make sure to also set net.parallel.sync.svrthreads on every server that sets net.parallel.max.

In addition to setting this variable, you must also use the --parallel option of p4 sync, p4 shelve, or p4 submit. However, If you use net.parallel.threads, net.parallel.submit.threads, or net.parallel.shelve.threads to automate parallel processing, you do not need to use the --parallel option.

See also:

No
net.parallel.min

Server

9

Specifies the minimum number of files in a parallel sync. A sync that is too small does not initiate parallel file transfers.

See p4 sync on Parallel syncs.

No
net.parallel.minsize

Server

576K

Specifies the minimum number of bytes in a parallel sync. A sync that is too small does not initiate parallel file transfers.

See p4 sync on Parallel syncs.

No
net.parallel.shelve.batch

Server

8

For automatic parallel processing: specifies the number of files in a batch. (See also net.parallel.submit.batch)

No
net.parallel.shelve.min

Server

9

For automatic parallel processing: specifies the minimum number files for auto parallel shelve. A shelf that is too small does not initiate parallel file transfers.

(See also net.parallel.submit.min)

No
net.parallel.shelve.threads

Server

0

For automatic parallel processing, specifies the number of threads for sending files in parallel. Can be overridden on the command line, but cannot be greater than net.parallel.max., which must be set to 2 or more threads.

The specified threads grab work in batches. The size of a batch is specified using the net.parallel.shelve.batch configurable.

No
net.parallel.submit.batch

Server

8

For automatic parallel processing: specifies the number of files in a batch.

See the p4 submit command on Parallel submits.

No
net.parallel.submit.min

Server

9

For automatic parallel processing: specifies the minimum number of files to be sent in a parallel submit. A submit that is too small does not initiate parallel file transfers.

See the p4 submit command on Parallel submits.

No
net.parallel.submit.threads

Server

0

For automatic parallel processing, specifies the number of threads for sending files in parallel. Can be overridden on the command line, but cannot be greater than net.parallel.max, which must be set to 2 or more threads.

The specified threads grab work in batches. The size of a batch is specified using the net.parallel.submit.batch configurable.

See the p4 submit command on Parallel submits.

No
net.parallel.sync.svrthreads

Server

0

Can help prevent the degradation of network response. Reduces the number of parallel transmit threads for sync commands when the total number of concurrent user-transmit threads from all commands, including submit, would exceed the value of this configurable.

Does NOT reduce parallel transmit threads for submit commands.

To determine the value for this configurable, consider the average network utilization of each user-transmit thread and how much spare bandwidth to allocate for occasional peak loads.

If parallel syncs are saturating the network, use the p4 monitorshow command to find out how many concurrent transmit threads are executing in the server. The default value of 0 means no reduction of parallel sync threads. For this configurable to take effect, also set the monitor configurable to 1 or greater.

No
net.parallel.threads

Server

0

Specifies your default number of threads for syncing files concurrently.

To enable automatic parallel processing, set this configurable to a value greater than 1, but less than or equal to the value of net.parallel.max.

See also Parallel syncs.

The specified threads grab work in batches.

No
net.quickack Client, Server, Proxy

0

Whether the TCP_QUICKACK socket option is set for acknowledgements (ACKs) of received messages.

0: Disable quick ACKs, which delays sending ACKs.

1: Enable quick ACKs, which sends ACKs immediately.

See also net.nagle.

No
net.reuseport

Server

0

Set SO_REUSEPORT for listening socket.

You must restart the server after changing the value of this configurable.

See Explicit stop and restart.

net.rfc3484

Client, Server

0

If 0, The server connection defaults to IPV4 addressing. A IPV6 connection requires using P4PORT or setting the net.rfc3484 configurable.

If 1, The operating system determines whether IPv4 or IPv6 is used when resolving hostnames. This is applicable only if a host name is used, either a FQDN (Fully Qualified Domain Name, such as host1.company.com, or an unqualified name, such as host1.

  • If an IPv4 literal address is used, such as 127.0.0.1, the transport is tcp4.

  • If an IPv6 literal address is used, such as https://[2001:db8:85a3:8d3:1319:8a2e:370:7348]:443/, the transport is tcp6.

See Explicit stop and restart.

net.tcpsize

Client, Server, Proxy

512K

TCP send and receive buffer sizes, set on connection. Consider increasing for high-latency connections, such as the Proxy. Actual buffer size is the larger of this value and that defined by the OS.

(See also net.autotune)

Not since 2025.1. Prior to 2025.1, see Explicit stop and restart.

P

Configurable Client, server, or proxy? Default value Description Server restart required?
proxy.clearcachethresh

Proxy

0

If set to a value greater than 0, that value sets the threshold for deleting inactive files from the proxy cache when p4p --cache-purge is run. For example, 30 means files that have been inactive for more than 30 days are deleted from the proxy cache when p4p --cache-purge is run. See Proxy options in P4 Server Administration Documentation.

No
proxy.monitor.interval

Proxy

10

Set the proxy monitoring interval. Default is 10 seconds.

No
proxy.monitor.level

Proxy

0

0: Monitoring disabled (default).

1: Monitor file transfers only.

2: Monitor all operations.

3: Monitor all traffic for all operations.

No
pull.trigger.dir

Server

unset

Temporary directory for alternative archive copy.

No

push.unlocklocked

Server

0

When set, unlock locked files if p4 push fails.

No

R

Configurable Client, server, or proxy? Default value Description Server restart required?
rcs.nofsync

Server

0

Set to 1 to disable fsync() call when server writes to a versioned file in RCS format, and permit the OS to determine when to write the modified data.

No
rejectList

Server

unset

 

Specifies one or more clients whose requests should be blocked. For more information, see Blocking Clients in P4 Server Administration Documentation.

No
rmt.allow.remoteuser Server 0 0: Prevent the remote user from being used, regardless of the value of the security configurable.

1: Allow the remote user to be used unless security is set to 4 or higher.

Regardless of the setting of the rmt.allow.remoteuser configurable, the remote user might appear in log files as the user running background startup commands. This characteristic of logging does not indicate access by a remote user. If a service user is defined, that user will appear instead.
No
rpl.checksum.auto

Server

0

Level of database table checksum verification to perform when rotating a journal. Each level corresponds to a larger set of database tables.

0: Disable checksums.

1: Verify only the most important system and revision tables:

db.config, db.depot, db.graphindex, db.graphperm, db.group, db.groupx, db.haveg, db.integed, db.integedss, db.integtx, db.ldap, db.object, db.protect, db.pubkey, db.ref, db.rev, db.revcx, db.revdx, db.revhx, db.revstg, db.revtx, db.stream, db.streamq, db.streamrelation, db.streamview, db.streamviewx, db.submodule, db.ticket, db.trigger, db.user

2: Verify all of level 1, plus tables that hold metadata that does not vary between replicas:

db.bodtext, db.bodtextcx, db.bodtexthx, db.counters, db.excl, db.exclg, db.exclgx, db.fix, db.fixrev, db.haveview, db.ixtext, db.ixtexthx, db.job, db.logger, db.message, db.nameval, db.property, db.refhist, db.remote, db.repo, db.revbx, db.review, db.revsx, db.revux, db.rmtview, db.server, db.svrview, db.topology, db.traits, db.uxtext

3: Verify all tables.

No
rpl.checksum.change

Server

0

Level of on-the-fly changelist verification to perform.

0: Perform no verification.

1: Write journal notes Entries added to journals and checkpoints that provide information for subsequent users of the journal or checkpoint. For example, replica servers might take action based on the journal notes they process. when a p4 submit, p4 fetch, p4 populate, p4 push, or p4 unzip command completes. The value of the rpl.checksum.change configurable will determine the level of verification performed for the command.

2: Replica verifies changelist summary and writes to integrity.csv if the changelist does not match.

3: Replica verifies changelist summary and writes to integrity.csv even if the changelist does match.

To learn more, see Journal notes in P4 Server Administration Documentation.

No
rpl.checksum.table

Server

0

Level of table checksumming to perform.

0: Perform table-level checksumming only.

1: When a table is unloaded or scanned, journal notes Entries added to journals and checkpoints that provide information for subsequent users of the journal or checkpoint. For example, replica servers might take action based on the journal notes they process. are written. These notes are processed by the replica and are logged to integrity.csv if the check fails.

2: When a table is unloaded or scanned, journal notes are written, and the results of journal note processing are logged even if the results match.

To learn more, see Journal notes in P4 Server Administration Documentation.

No
rpl.compress

Server

0

Enable network compression in a replicated environment:

0: No data stream compression.

1: Data streams used for archive transfer to the replica (p4 pull-u) are compressed.

2: Data streams used by p4 pull -u and p4 pull are compressed.

3: All data streams (p4 pull -u, p4 pull, and data streams for commands forwarded to the upstream server Any server in the inward direction, that is, toward the central server. For example, in an edge-to-edge configuration with a commit, edge1, and edge2, both edge1 and the commit server are upstream servers for edge2. See also 'central server'. are compressed.

4: Compress only the journal pull and journal copy connections between the replica and the master.

No
rpl.deferred.sends Server

0

Allow pull -u threads to fetch missing archives during sync on edge and build servers.

1 is intended to improve performance for syncing from an edge or build server if:

  • File content for a number of revisions is not in the archives of the edge or build server.

  • The edge or build server has pull -u threads running.

  • The lbr.replication configurable on the edge or build server is set to readonly

No

rpl.forward.all Server 0

When set to 1 on a replica, commands that are not read-only commands are forwarded to the upstream sever.

Instead of setting this configurable, we recommend setting the Services: field to forwarding-replica in the server spec. See p4 server > Form Fields > Services.

On the replica server, issue the p4 admin restart command.

rpl.forward.login

Server

0

Set to 1 on each replica to enable single-sign-on authentication for users in a distributed configuration. The auth.id configurable must also be the same for all servers participating in a distributed configuration.

For more information, see Authenticating users in P4 Server Administration Documentation.

On edge servers:

See Explicit stop and restart.

 

rpl.jnl.batch.size

Server

100M

Maximum size of a single journal transfer in bytes.

Limits the amount of data that the target server can send back to journalcopy in a single flush. Set this configurable on the server executing the journalcopy, which is generally a standby server, to tune the maximum size of journal fragments sent to journalcopy.

The following applies to the server that executes the journalcopy:

See Explicit stop and restart.

rpl.jnlwait.adjust

Server

25

The additional time in milliseconds to add to the wait before checking for journal updates after no updates were seen. The total will not exceed the value specified by rpl.jnlwait.max. For guidance in adjusting values, contact Perforce Support.

No
rpl.jnlwait.interval

Server

50

The longest time in milliseconds to wait before checking for journal updates. Incremented by rpl.jnlwait.adjust each time no updates are seen. For guidance in adjusting values, contact Perforce Support.

No
rpl.jnlwait.max

Server

1000

The longest time in milliseconds to wait before checking for journal updates. For guidance in adjusting values, contact Perforce Support.

No
rpl.journalcopy.location

Server

0

Set to 0 means that the journalcopy thread writes the journal directly to the filepath with a prefix of the standby server's journalPrefix.

Set to 1 means that the journalcopy thread writes the journal to where the standby server's P4JOURNAL would be written. The journal is then rotated to the filepath with a prefix of the standby server's journalPrefix.

Note that journals written by the journalcopy thread always have their journal number in the suffix.

Changing this configurable takes effect when the standby server replicates the P4TARGET's journal rotation.

No
rpl.labels.global

Server

0

A multi-site deployment supports both local and global labels.

0 means local is the default 1 changes default to global
A local label is is created and updated on a single edge server, and cannot be used on other servers. A global label is created and updated on the commit server, and visible to all servers.
The -g option of p4 label, p4 labelsync, and p4 tag specifies whether the label being applied is local to an edge server, or globally available from the commit server:

To create or update a global label on an edge server, use the -g option. For example,

p4 label -g myGlobalLabel

The command

p4 configure set rpl.labels.global=1

means that any new label will be global.

Existing local labels remain local. To update a local label, use the -g option.

To convert a local label into a global label, use p4 unload, then p4 reload to load the label onto the commit server.

To learn more, see Commit-edge in P4 Server Administration Documentation.

No
rpl.pull.archivedepots Server 0 To enable the propagation of archive files to a replica, such as a standby server, set this to 1 On edge servers:
See Explicit stop and restart.
rpl.pull.position Server

0

Interval in milliseconds for pull position reports.

If set to 1, the position in the P4TARGET's journal of the last journal fragment applied by the replica is written (that is, reported) to the replica's server log and the replica's journal at the specified interval.

For most installations, changes take effect within a few minutes, provided the configurable was set when the replication thread was started.

For all installations, changes take effect when the replication thread is restarted, which typically necessitates restarting the replica for which this configurable was changed.

rpl.replay.userrp

Server

0

To replicate the db.user.rp table, set to 1 .

The db.user.rp table contains information about users who have directly logged into and used a replica. It records the ticket that the replica issued to the user and the last time the user accessed the replica. This table is currently journaled, but it is not replicated by default.

Typically you would not want to replicate this data. But there are times when this might be needed. For example, if you are chaining a read-only replica to another replica to provide a warm standby for failover, you might want your warm standby to replicate the db.user.rp table. This would disable the automatic filtering of db.user.rp records, and your replica would then replay (and re-journal) all the db.user.rp journal records it receives from its target.

No
rpl.submit.nocopy

Server

0

Disable default submit archive file copy

No
rpl.track.behind Server

0

If set to 1 or 2, report journals/total bytes not replicated:

0: No reporting

1: pull logs at rpl=1 and via rt.monitorfile

2: pull -l -j logs at rpl=1

See Explicit stop and restart.

rpl.track.behind.interval Server

10000

Maximum interval in milliseconds for pull lag reports. The default is the equivalent of 10 seconds.

See Explicit stop and restart.

rpl.pull.reload Server 6000 Interval in milliseconds for p4 pull to reload any configuration changes. No
rpl.verify.cache

Server

0

If set, a replica server will re-verify the integrity of a cached file every time it delivers the file to the user, If the files do not match, it will re-fetch the file from the upstream server. This is computationally expensive on the replica and typically only useful in conjunction with Perforce technical support.

No
rt.monitorfile Server unset

Enable real-time monitoring of server performance, if this configurable is set to specify a file that backs the shared memory. For example,

rt.monitorfile=monfile.mem

The real-time monitoring output cannot be viewed from a text editor. However, you can display real-time monitoring values on the command line by using any of the following:

  • p4d -r P4ROOT --show-realtime

  • p4 monitor realtime

  • p4 monitor rt

See also p4 monitor realtime.

See Explicit stop and restart.

run.clientexts.allow

Server

1

Allow client-side Extensions to run.

No
run.renameclient.allow Server 1

Allow the p4 renameclient command.

0: disallow for all users

1: allow for client owners, admins, and super

2: allow for admins and super

3: allow for super

No
run.unzip.user.allow Server 0 Should p4 unzip allow -u No
run.users.authorize

Server

0

If set to the recommended value of 1, requires a user to authenticate before running the p4 users command. To hide the user list from unauthenticated users, set to 1. For security, also set dm.user.hideinvalid.

No

S

Configurable Client, server, or proxy? Default value Description Server restart required?
security

Server

0

Server security level 4 or higher is recommended. Each level includes the restrictions of lower levels and adds further restrictions:

0: Legacy support: passwords not required, strength requirements unenforced.

1: Strong passwords required, existing passwords not reset, compatible with pre-2003.2 client software.

2: Strong passwords required, existing passwords reset, requires 2003.2 or higher client software.

3: Passwords must be strong, and ticket-based authentication (p4 login) is required.

4: Authenticated service users must be used for all replica server and remote depot connections to this server, and all replicas need server specs.

5: Requires that any intermediary has a valid authenticated service user. Intermediaries include, but are not limited to, P4 Broker, P4 Proxy, P4 Code Review, and P4 DAM.

6: Requires each intermediary to have a valid server spec, where the service user must match the user named in the User field of the spec.

For succesful configuration at various levels, see Server security levels in P4 Server Administration Documentation.
No
security.digest Server sha256 The digest algorithm used in the round trip tamper checking. If unset or set to an unknown algorithm, the default sha256 algorithm will be used. In the case of invalid algorithms or algorithms considered insecure, reports will be written to the server log. No
server Server, Proxy, Broker 3

Server command logging level (levels are additive):

server=0 fatal errors and some system events will be logged.

server=1 ensures that the start information for each command is logged.

server=2 extends server tracing to include command start and stop.

server=3 adds a compute end message and Sync Network Estimates for p4 sync.

server=4 adds errors sent to the client.

server=5 adds database locking, monitor and resource pressure information.

See also Diagnostic flags for monitoring the server in P4 Server Administration Documentation and P4LOG

No
server.allowfetch

Server

0

Determines whether changes can be fetched.

1: This server can fetch from other servers.

2: Other servers can fetch from this server.

3: Both 1 and 2 are allowed.

No
server.allowpush

Server

0

Determines whether changes can be pushed.

1: This server can push to other servers.

2: Other servers can push to this server.

3: Both 1 and 2 are allowed.

No
server.allowremotelocking

Server

0

DVCS configurations with files of type +l can use the --remote flag on the p4 edit, p4 delete, and p4 revert commands. This locks +l file types exclusively on the shared server. The locks are released automatically when the modified files are pushed.

The shared server must be a commit server and this configurable must have 1, not 0, as its value.

See +l in the P4 CLI Documentation on File type modifiers.

No
server.allowremotelocking

Server

0

DVCS configurations with files of type +l can use the --remote flag on the p4 edit, p4 delete, and p4 revert commands. This locks +l file types exclusively on the shared server. The locks are released automatically when the modified files are pushed.

The shared server must be a commit server and this configurable must have 1, not 0, as its value.

See +l in the P4 CLI Documentation on File type modifiers.

No
server.allowrewrite Server 0 If set to a non-zero value, allows this server to run the p4 unsubmit and p4 fetch -t commands. No
server.commandlimits

Server

0

Policy for per-command resource limits:

0: All command-line users can override these limits in p4 group specs:
MaxResults, MaxScanRows, MaxLockTime, MaxOpenFiles, MaxMemory

1: Per-command options can specify lower, but not higher, resource limits.

2: All command-line resource limit options are silently ignored and the spec limits are not overridden.

No
server.depot.root

Server

unset

The filesystem location, an absolute path, with respect to which a relative address given in the Map: field of a depot form is evaluated. If it is not set, the Map: field relative address is evaluated with respect to the value stored in P4ROOT. For more information, see the p4 depot command.

No
server.extensions.allow.admin Server 1

0: Prevents admin users to install and configure or delete server-side extensions.

1: Allows admin users to install and configure or delete server-side extensions if these extensions are signed and verified by a trusted certificate from the list provided by the super user.

See Explicit stop and restart.

server.extensions.allow.unsigned Server 0

0: Prevents the super user to install unsigned extensions.

1: Allows the super user to install unsigned extensions.

See Explicit stop and restart.

server.extensions.dir Server

P4ROOT/server.extensions.dir

Directory for Extension-owned storage, which defaults to P4ROOT/server.extensions.dir No
server.global.client.views

Server

0

Controls whether the view maps (or client maps) of a non-stream client on an edge server are made global when a client is modified.

View maps of a client on a replica must be made global if that client is to be used as a template on another server.

This configurable can be set globally, or individually for each server.

Setting this configurable can make client view maps global upon the subsequent client modification. Clearing this configurable does not delete the view maps of any clients, but does prevent subsequent changes to a client’s view map from being propagated to other servers. If a client with global view maps is deleted, its view maps are also deleted globally regardless of the value of server.global.client.views.

No
server.locks.archive

Server

1

By default, p4 archive and p4 restore lock the global metadata while archiving or restoring revisions. To disable locking, set the value of this configurable to 0.

No
server.locks.dir

Server

server.locks

Directory for server locks, specified relative to P4ROOT. To disable server locking, set this configurable to disabled. If db.peeking is nonzero (enabled), server.locks cannot be disabled. To disable locking, set server.locks.sync to 0.

No
server.locks.global

Server

0

Set this configurable to 1 to make p4 lock from an edge server take global locks on the commit server by default.

No
server.locks.sync

Server

0

0: Unset prevents sync from taking a client workspace lock.

When set, the p4 sync command takes a client workspace lock in shared mode.

If db.peeking is enabled, the server.locks.dir directory must exist. The changes to locking behavior that occur when you enable db.peeking eliminate the need to set server.locks.dir to disabled, but if performance issues arise with respect to multiple concurrent, large, or interrupted p4 sync commands, set server.locks.sync to 0.

No
server.maxcommands

Server

0

If monitoring is enabled, this configurable is set to a nonzero value, and the limit is exceeded, p4d refuses to accept more than this many simultaneous command requests and users receive the TooManyCommands error. See server.maxcommands.allow.

See Explicit stop and restart.

server.maxcommands.allow Server 1

Enables super and operator users to access to a subset of commands, even if server.maxcommands is reached. See Commands that super and operator users can always run under Limiting simultaneous connections in the P4 Server Administration Documentation. To disable, set to 0.

See Explicit stop and restart.

server.rolechecks Server 0

1 : Recommended because it enforces p4 server settings and adds more security.

0: Default does not consider the p4 server settings.

Consider changing from the default value. Setting server.rolechecks to 1 adds security. For example, the Services field is enforced.
No
server.start.unlicensed Server 0 When enabled, the server can start even if the license is invalid. User commands will be rejected until a valid license is installed. No
server.startup.autorestart Server 0 If set to 1, the server automatically restarts the startup commands that are set by the startup.N configurable. No
serverlog.bufsz.N Server

unset

 

Unset: By default, there is no buffer.

10240: Typical value. If set, the maximum number of bytes in the buffer for the log file. A buffer improves performance because p4d only writes to the log file when the command has completed or the buffer has been filled. Data loss is possible if p4d crashes before the buffer's content is written to the log file.

No
serverlog.counter.N

Server

unset

Rarely used because if unset, p4d controls the rotated log names, which are incremented from 0.

No
serverlog.file.N

Server

unset

Server log file name associated with each structured log file. See p4 logparse for a list of valid filenames. Note that n cannot exceed 500.

No
serverlog.maxmb.N

Server

unset

For each structured log file, the size, in megabytes, at which the associated log file is rotated.

No
serverlog.retain.N

Server

unset

For each structured log file, the number of rotated log files to retain on the server at any one time.

No
serverlog.version.N Server the current server protocol level

The serverlog version matches a server protocol level and retains a level prior to an upgrade. See Protocol levels: server/client in P4 Server Administration Documentation.

No
serviceUser

Server

unset

The service user that represents a server or proxy when authenticating against a central server The one server that is innermost in a multi-server deployment. In the server specification form field for Services, the central server might be specified as “standard” or “commit-server”. If edge servers are part of the multi-server deployment, the central server must be a commit server. See also 'upstream server'., or a remote server.

No
spec.hashbuckets

Server

99

Maximum number of subdirectories for hashed directory structures. This limits the number of subdirectories into which files are hashed in the spec depot - see Working with spec depots, unload depot - see Unloading infrequently-used metadata in the P4 Server Administration Documentation, and the server.locks.dir directory.

99: default

0: disables hashing

No
ssl.cipher.list Server unset The list of OpenSSL ciphers p4d allows when establishing a connection at TLS 1.2 or below, overriding the OpenSSL defaults.

Not since 2025.1. Prior to 2025.1, see Explicit stop and restart.

ssl.cipher.suites Server unset The list of OpenSSL cipher suites p4d allows when establishing a TLS 1.3 connection, overriding the OpenSSL defaults

Not since 2025.1. Prior to 2025.1, see Explicit stop and restart.

ssl.client.ca.path Client, Server unset

Can be set on a client, including a p4d that acts as a client to another p4d. The path of the Certificate Authority (CA) Privacy-Enhanced Mail (PEM) file to validate the server certificate. The certificate authority (CA) path can be specified with this client-side configurable if the CA is not present in the system's CA store or if validation against a specific CA is required.

Not since 2025.1. Prior to 2025.1, see Explicit stop and restart.

ssl.client.cert.validate Client, Server 1

Can be set on a client, including a p4d that acts as a client to another p4d. 0: use P4TRUST, no certificate validation , 1: validate the certificate chain against the certificate authority (CA), 2: validate that the subject matches the P4PORT.

See Explicit stop and restart.

ssl.client.cipher.list Client, Server, Proxy, Broker unset

The list of OpenSSL ciphers the client will allow when establishing a TLS 1.2 or below connection, overriding the default, or ssl.cipher.list if set.

No
ssl.client.cipher.suites Client, Server, Proxy, Broker unset The list of OpenSSL cipher suites the client will allow when establishing a TLS 1.3 connection, overriding the OpenSSL defaults, or ssl.cipher.suites if set. No
ssl.client.timeout Server 30 Timeout in seconds for SSL handshake negotiation on client connects. If net.maxwait is longer, net.maxwait is used instead. No
ssl.client.tls.version.min Client, Server 12

Can be set on a client, including a server, broker, or proxy that acts as a client to another server. Determines which TLS versions the client allows for SSL/TLS connections. The connection uses the highest version in common between Server and client. 12 means TLS 1.2 and 13 means TLS 1.3. If the client is not explicitly set, explicitly setting the server's ssl.tls.version.min and ssl.tls.version.max applies to client connections for backwards compatibility.

These client and server configurables can be used in servers, proxies, or brokers where both upstream (client-side) and downstream (server-server) connections are made. For example, in edge-to-edge chaining, one edge server acts as a client to another edge server. This aspect of a server as a client applies to other scenarios as well, such as centralized authorization server (P4AUTH), centralized changelist server (P4CHANGE), and when one server accesses a remote depot on another server.

See Explicit stop and restart.


ssl.client.tls.version.max
Client, Server 13

Can be set on a client, including a server, broker, or proxy that acts as a client to another server. Determines which TLS version(s) the client allows for SSL/TLS connections. The connection uses the highest version in common between Server and client. 12 means TLS 1.2 and 13 means TLS 1.3. If the client is not explicitly set, explicitly setting the Server's ssl.tls.version.min and ssl.tls.version.max applies to client connections for backwards compatibility.

These client and server configurables can be used in servers, proxies, or brokers where both upstream (client-side) and downstream (server-server) connections are made. For example, in edge-to-edge chaining, one edge server acts as a client to another edge server. This aspect of a server as a client applies to other scenarios as well, such as centralized authorization server (P4AUTH), centralized changelist server (P4CHANGE), and when one server accesses a remote depot on another server.

See Explicit stop and restart.

ssl.client.trust.name Client 1

If you run p4 trust against a server that has a certificate that is not self-signed,

0: Only the IP address can be recorded.
1: (default) Both the hostname and IP address can be recorded.
2: Only the hostname can be recorded.

No

ssl.secondary.suite

Server

0

0: By default, SSL/TLS support is based on the AES256-SHA cipher suite.

1: Use CAMELLIA256-SHA instead.

No

ssl.tls.version.min

Server and optionally on the client for testing 12

Determines which TLS versions the server, broker, or proxy allows for SSL/TLS connections. The connection uses the highest version in common between the server, broker, or proxy and its client. See also the corresponding client-side configurables: ssl.client.tls.version.min and ssl.client.tls.version.max.

See Explicit stop and restart.

ssl.tls.version.max

Server and optionally on the client for testing

13

Determines which TLS versions the server, broker, or proxy allows for SSL/TLS connections. The connection uses the highest version in common between the server, broker, or proxy and its client. See also the corresponding client-side configurables: ssl.client.tls.version.min and ssl.client.tls.version.max.

ssl.tls.version.min specifies the lowest version that the server, broker, or proxy allows, and ssl.tls.version.max specifies the highest allowed version.

Valid values are 10 for TLSv1.0, 11 for TLSv1.1, 12 for TLSv1.2, and 13 for TLSv1.3.

For security, choose a value that is at least 12. To learn how to use these configurables, see SSL and TLS Protocol Versions in P4 Server Administration Documentation.

See Explicit stop and restart.

startup.N

Server

unset

For replica servers, set startup.1 through startup.N to be p4 pull threads to be spawned when p4d starts. All servers with a configured ServerID can set startup.1 through startup.N to be background tasks to be spawned at startup. The startup.N configurables are processed sequentially. Processing stops at the first gap in the numerical sequence, so any commands after a gap are ignored. (See also server.startup.autorestart.)

See Explicit stop and restart.

statefile

Server

state

For replica servers, the file used to track the current journal position.

No
submit.allowbgtransfer Server 0

To enable background archive transfer, set to 1 on those edge servers.

To cause the commit server's p4 sync command to wait for the completion of queued background file transfer for files submitted from edge servers, set to 1 on the commit server.

See submit.autobgtransfer and Background archive transfer for edge server submits in P4 Server Administration Documentation.

See Explicit stop and restart.

submit.autobgtransfer Server 0

If you have set submit.allowbgtransfer to 1 on one or more the edge servers that participate in your replicated environment, to make p4 submit function as if it were an alias for p4 submit -b on those edge servers, also set submit.autobgtransfer to 1 on those same edge servers. See Background archive transfer for edge server submits in P4 Server Administration Documentation.

See Explicit stop and restart.

submit.collision.check Server 1

The default, 1, prevents submitting a changelist that contains what the server perceives as a name collision between directory name and file name. To remove the check, set this configurable to 0 and be aware of the risk of accidentally overwriting file content.

No
submit.identity

Server

unset

Enable the generation of global changelist ids for DVCS: uuid generates the id in uuid format, checksum generates the id in checksum format, serverid generates the id in serverid+change format. See Track a changelist’s identity from server to server in P4 Server Administration Documentation.

No
submit.noretransfer

Server

0

0: Always re-transfer files after a failed submit.

1: Check whether files are already in the expected archive location and not re-transfer such files.

You can override the set behavior by using the --noretransfer option to the p4 submit command.

See Explicit stop and restart.

submit.storagefields

Server

0

Regarding the compCksum field in a storage record:
0: Do not compute the digest of the incoming archive files on the server during a submit.
1: Compute the digest of the incoming archive files on the server during a submit.

No
submit.unlocklocked

Server

0

If set to 1, open files that users have locked (with the p4 lock command) are unlocked after a failed p4 submit.

No
sys.pressure.max.pause.time Server 300 If set, the number of seconds a command can be in the paused state before an error returns to the client. Setting this configurable to 0 disables pausing commands. For all the sys.pressure.* configurables, see System resources in P4 Server Administration Documentation. No
sys.pressure.max.paused Server 1000 If set, the maximum number of concurrently-paused client commands. New incoming commands above this threshold are rejected with an error. For all the sys.pressure.* configurables, see System resources in P4 Server Administration Documentation. No
sys.pressure.mem.high Server 95

If set to a non-zero value, while the server is above this threshold, commands might be canceled and return an error to the client. For all the sys.pressure.* configurables, see System resources in P4 Server Administration Documentation.

If set to 0, disables this memory threshold check.

No
sys.pressure.mem.high.duration Server 1000

The period in milliseconds used for averaging sys.pressure.mem.high. For all the sys.pressure.* configurables, see System resources in P4 Server Administration Documentation.

No
sys.pressure.mem.medium Server 80 If set, when commands begin pausing. For all the sys.pressure.* configurables, see System resources in P4 Server Administration Documentation. No
sys.pressure.mem.medium.duration Server 1000 Number of milliseconds for averaging sys.pressure.mem.medium. No
sys.pressure.os.cpu.high Server 100

(Linux) If set to a non-zero value, CPU monitoring is only available if cgroups v2 support is configured. This configurable represents the amount of time some processes on the system are stalled waiting for CPU time. For Linux cgroup support, only the system-wide /proc/pressure/* files are considered. For all the sys.pressure.* configurables, see System resources in P4 Server Administration Documentation.

If set to 0, disables this threshold checking.

No
sys.pressure.os.cpu.high.duration Server 2000 Number of milliseconds for averaging sys.pressure.os.cpu.high. For all the sys.pressure.* configurables, see System resources in P4 Server Administration Documentation. No
sys.pressure.os.mem.high Server 70

(Windows and Linux) If set to a non-zero value, the amount of time some processes on the system are stalled waiting for memory. New incoming commands received by p4d are rejected. Existing commands that request more memory might be canceled and return an error to the client. When p4d limits its work, it does not distinguish between memory used by other processes on the operating system and its own. For example, if a large external process consumes a large amount of memory, p4d can throttle itself. For all the sys.pressure.* configurables, see System resources in P4 Server Administration Documentation.

If set to 0, disables this check on stalled processes.

No
sys.pressure.os.mem.high.duration Server 2000 Number of milliseconds for averaging sys.pressure.mem.high. For all the sys.pressure.* configurables, see System resources in P4 Server Administration Documentation. No
sys.pressure.os.mem.medium Server 40 (Linux) The server tries to keep memory usage below this level. For all the sys.pressure.* configurables, see System resources in P4 Server Administration Documentation. No
sys.pressure.os.mem.medium.duration Server 2000 Number of milliseconds for averaging sys.pressure.os.mem.medium. For all the sys.pressure.* configurables, see System resources in P4 Server Administration Documentation. No
sys.rename.max

Server and client

10

Limit for the number of retries to rename a file if renaming fails. Affects Windows Rename() retry loop. Set on the server and each client. Changing from the default value is not supported.

No
sys.rename.wait

Server and client

1000

Timeout in microseconds between file rename attempts. Affects Windows Rename() retry loop. Set on the server and each client. Changing from the default value is not supported.

No
sys.threading.groups Server 0 If set to 1, adds support for utilizing multiple processor groups.

See Explicit stop and restart.

T

Configurable Client, server, or proxy? Default value Description Server restart required?
template.client

Server

unset

Specifies the default client to be used as a template if the user omits the -t option on the p4 client command.

No
template.label

Server

unset

Specifies the default label to be used as a template if the user omits the -t option on the p4 label command.

No
track Server -1 Set by the server. See Performance Tracking under Diagnostic flags for monitoring the server in P4 Server Administration Documentation. No
trait.storagedepot.min Server 0

If unset or set to 0, attribute values are stored in the db.traits table.

If set to a value greater than 0, the value of a newly created attribute is stored in the trait depot if its size in bytes matches or exceeds the setting of this configurable.

Retrieving trait values from the trait depot with p4 fstat -Oa incurs a performance hit. Set this configurable to a value that stores only huge traits in the trait depot. A recommended value for this configurable would be the minimum size of huge traits.

See also Attribute values and the trait depot in the p4 attribute topic.

No
triggers.io

Server

0

If set to 1, specifies that triggers will not receive their parameters via command line variables. Rather, they will receive a dictionary of key/value pairs sent to their STDIN. Triggers can use their dictionary response to reply to the server via STDOUT.

No

U

Configurable Client, server, or proxy? Default value Description Server restart required?
unicode

Server

unset

If set, the server will assume all data is encoded in utf8 and enable file content translation for files of type unicode. Clients must specify a valid P4CHARSET when communicating with the server.

Unicode mode cannot be disabled and should only be enabled by the p4d -xi command.

See Explicit stop and restart.

Z

Configurable Client, server, or proxy? Default value Description Server restart required?
zerosyncPrefix

Server

unset

If set, changes default behavior of p4 sync such that if a client workspace begins with this prefix, all sync operations to affected workspaces assume p4 sync -k, and do not alter contents of the workspace.

No
zlib.compression.level Server, Client unset

Provides a way to find a balance between file size and compression time:

  • the default, unset value corresponds to 6

  • 2 is faster than 6 and the file size increase might be relatively small

  • 9 takes the longest and the amount of file size reduction might not be worth the cost in time

No

Categories

A configurable can be in one or more categories. For example, a configurable in the Security and Performance categories might affect security and performance.

Items in all capital letters are Environment and registry variables, not configurables.

Explicit stop and restart

Some configurables have "See Explicit stop and restart." in the Server restart required? column. Changes to those configurables do not take effect unless you explicitly "stop" the server. The p4 admin restart command is not sufficient.

For UNIX, see Stopping the Perforce Service and Starting the Perforce Service.

For Windows, see Starting and stopping the P4 Server.