Configurables - alphabetical list

The following table is an alphabetical list of the configurables. To see details about a configurable, click a letter and a name in the list.

Click a letter

ACDFIJLMNPRSTUZ

A

auth.2fa.persist
auth.autologinprompt
auth.default.method
auth.id
auth.ldap.cafile
auth.ldap.order.N
auth.ldap.pagesize
auth.ldap.sslciphers
auth.ldap.ssllevel
auth.ldap.timeout
auth.ldap.userautocreate
auth.licenseexpiry.warn
auth.licenseexpiry.warnthreshold
auth.sso.allow.passwd
auth.sso.args
auth.sso.nonldap
auth.tickets.nounlocked

C

client.readonly.dir
client.sendq.dir

D

db.checkpoint.bufsize
db.checkpoint.numfiles
db.checkpoint.threads
db.checkpoint.reqlevel
db.checkpoint.worklevel
db.monitor.addthresh
db.monitor.interval
db.monitor.shared
db.monitor.term.allow
db.peeking
db.peeking.usemaxlock
db.reorg.disable
db.replication
db.rt.io
dbjournal.bufsize
dbopen.nofsync
defaultChangeType
dm.annotate.maxsize
dm.batch.net
dm.domain.accessforce
dm.domain.accessupdate
dm.fetch.preservechangenumbers
dm.grep.maxrevs
dm.info.hide
dm.integ.streamspec
dm.keys.hide
dm.locks.excl.batch.net
dm.locks.global.batch.net
dm.locks.global.result.batch.net
dm.open.show.globallocks
dm.password.minlength
dm.populate.skipkeyed
dm.protects.allow.admin
dm.protects.exclusioncheck
dm.protects.streamspec
dm.proxy.protects
dm.repo.noautocreate
dm.repo.unpack
dm.resolve.attrib
dm.resolve.ignoredeleted
dm.rotatelogwithjnl
dm.shelve.accessupdate
dm.shelve.maxfiles
dm.shelve.maxsize
dm.shelve.promote
dm.stream.components
dm.stream.parentview
dm.sync.streamchange
dm.topology.lastseenupdate
dm.user.accessforce
dm.user.accessupdate
dm.user.allowselfupdate
dm.user.loginattempts
dm.user.noautocreate
dm.user.resetpassword
dm.user.setinitialpasswd

F

filesys.atomic.rename
filesys.binaryscan
filesys.bufsize
filesys.checklinks
filesys.depot.min
filesys.extendlowmark
filesys.P4JOURNAL.min
filesys.P4LOG.min
filesys.P4ROOT.min
filesys.TEMP.min
filesys.windows.lfn
filetype.maxtextsize

I

info.p4auth.usercheck

J

journalPrefix
journalPrefixBackup

L

lbr.autocompress
lbr.bufsize
lbr.proxy.case
lbr.rcs.existcheck
lbr.rcs.maxlen
lbr.replica.notransfer
lbr.replication
lbr.retry.max
lbr.stat.interval
lbr.storage.allowsymlink
lbr.storage.delay
lbr.storage.skipkeyed
lbr.storage.threads
lbr.verify.in
lbr.verify.out
lbr.verify.script.out
log.originhost

M

minClient
minClientMessage
monitor
monitor.lsof

N

net.autotune
net.backlog
net.heartbeat.interval
net.heartbeat.missing.count
net.heartbeat.missing.interval
net.heartbeat.missing.wait
net.heartbeat.wait
net.keepalive.count
net.keepalive.disable
net.keepalive.idle
net.keepalive.interval
net.maxclosewait
net.maxfaultpub
net.maxwait
net.mimcheck
net.parallel.batch
net.parallel.batchsize
net.parallel.max
net.parallel.min
net.parallel.minsize
net.parallel.shelve.batch
net.parallel.shelve.min
net.parallel.shelve.threads
net.parallel.submit.batch
net.parallel.submit.min
net.parallel.submit.threads
net.parallel.sync.svrthreads
net.parallel.threads
net.reuseport
net.rfc3484
net.tcpsize

P

proxy.clearcachethresh
proxy.monitor.interval
proxy.monitor.level
pull.trigger.dir
push.unlocklocked

R

rcs.nofsync
rejectList
rpl.checksum.auto
rpl.checksum.change
rpl.checksum.table
rpl.compress
rpl.deferred.sends
rpl.forward.all
rpl.forward.login
rpl.jnl.batch.size
rpl.jnlwait.adjust
rpl.jnlwait.interval
rpl.jnlwait.max
rpl.journalcopy.location
rpl.labels.global
rpl.pull.archivedepots
rpl.pull.position
rpl.pull.reload
rpl.replay.userrp
rpl.submit.nocopy
rpl.track.behind
rpl.track.behind.interval
rpl.verify.cache
rt.monitorfile
run.clientexts.allow
run.renameclient.allow
run.unzip.user.allow
run.users.authorize

S

security
server
server.allowfetch
server.allowpush
server.allowremotelocking
server.allowrewrite
server.commandlimits
server.depot.root
server.extensions.allow.admin
server.extensions.allow.unsigned
server.extensions.dir
server.global.client.views
server.locks.archive
server.locks.dir
server.locks.global
server.locks.sync
server.maxcommands
server.maxcommands.allow
server.rolechecks
serverlog.bufsz.N
serverlog.counter.N
serverlog.file.N
serverlog.maxmb.N
serverlog.retain.N
serverlog.version.N
serviceUser
spec.hashbuckets
ssl.cipher.list
ssl.cipher.suites
ssl.client.ca.path
ssl.client.cert.validate
ssl.client.tls.version.min
ssl.client.tls.version.max
ssl.client.trust.name
ssl.secondary.suite
ssl.tls.version.min
ssl.tls.version.max
startup.N
statefile
submit.allowbgtransfer
submit.autobgtransfer
submit.collision.check
submit.identity
submit.noretransfer
submit.unlocklocked
sys.pressure.max.pause.time
sys.pressure.max.paused
sys.pressure.mem.high
sys.pressure.mem.high.duration
sys.pressure.mem.medium
sys.pressure.mem.medium.duration
sys.pressure.os.cpu.high
sys.pressure.os.cpu.high.duration
sys.pressure.os.mem.high
sys.pressure.os.mem.high.duration
sys.pressure.os.mem.medium
sys.pressure.os.mem.medium.duration
sys.rename.max
sys.rename.wait
sys.threading.groups

T
template.client
template.label
track
trait.storagedepot.min
triggers.io
U
unicode
Z
zerosyncPrefix
zlib.compression.level

A

Configurable Client or Server or Proxy? Default Value Meaning Server
Restart
Required for Change to Take Effect?
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 master, 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 (not the master):

After you change the value of this configurable, you must explicitly "stop" the server.

Note

p4 admin restart is not sufficient.

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

For Windows, see Starting and stopping the Helix Server.

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 Helix Core Server Administrator Guide, 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.

After you change the value of this configurable, you must explicitly "stop" the server.

Note

p4 admin restart is not sufficient.

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

For Windows, see Starting and stopping the Helix Server.

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 ciphers to present to LDAP servers

After you change the value of this configurable, you must explicitly "stop" the server.

Note

p4 admin restart is not sufficient.

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

For Windows, see Starting and stopping the Helix Server.

auth.ldap.ssllevel

Server

0

Level of SSL 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 Perforce 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 Helix Core 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 Helix Core Server Administrator Guide.

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 Helix Core Server Administrator Guide.

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 or Server or Proxy? Default Value Meaning Server
Restart
Required for Change to Take Effect?
client.readonly.dir

Server

unset

The path of the directory where db.* files for a read-only client will be placed.

For example, if you create a read-only client whose name is myroc and client.readonly.dir is set to /perforce/1, then syncing files using this client will write to the database /perforce/1/server.dbs/client/hashdir/db.myroc. See Using read-only and partitioned clients in automated builds in Helix Core Server Administrator Guide.

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 or Server or Proxy? Default Value Meaning Server
Restart
Required for Change to Take Effect?
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 Helix Core Server Administrator Guide.

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.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 Helix Server waits before checking if any process in the monitor table is marked for termination. If the Helix Server determines that any such process is blocked because it is waiting for client input, the Helix Server terminates it.

To learn more, see:

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.

Note

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.

After you change the value of this configurable, you must explicitly "stop" the server.

Note

p4 admin restart is not sufficient.

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

For Windows, see Starting and stopping the Helix Server.

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.

Note

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

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. See Commands implementing lockless reads in the Helix Core Server Administrator Guide .

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 learn more, see Possible values for db.peeking in Helix Core Server Administrator Guide.

Note

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 Helix Core Server Administrator Guide. 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
Note

Changing from the default value is not supported.

No
db.replication

Server

unset

Control behavior of commands that access metadata (db.* files) on the Helix 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.

After you change the value of this configurable, you must explicitly "stop" the server.

Note

p4 admin restart is not sufficient.

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

For Windows, see Starting and stopping the Helix Server.

dbjournal.bufsize

Server

16K

Buffer size for journal and checkpoint read/write operations.

No
dbopen.nofsync

Server

0

Set to 1 to disable fsync() call when server closes a db.* database file, and permit the OS to determine when to write the modified data.

No
defaultChangeType

Server

unset

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

Note

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.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, 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

Note

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. To learn more, 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. To learn more, 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. To learn more, 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.

Note

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 Helix Core administrators to use -a, -g, and -u with p4 protects. By default, only superusers can use these options.

Note

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

Iin accord with the use of IP addresses in the protections table, determine whether a user can access a server from a given IP address.

When Helix Core 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.

To learn more, 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 Helix Core 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.
 CreateAppend
0retain retain
1retain unpack
2unpack 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.

Note

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.

Note

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 Helix Core Server Administrator Guide.

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

1: stream components enabled

See Stream Components in Helix Core Command-Line (P4) Guide.

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.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 of her or his %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.accessupdate

Server

300

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

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.

Warning

By default, Helix Server creates a new user whenever a previously unknown user invokes any command that can update the repository or its metadata. When executed by a nonexistent user, most Perforce commands cause a user to be created. You can control this behavior by setting the configurable with the p4 configure command. For greatest security, we recommend that only the Helix 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 Helix 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, 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 levelClosed 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 Helix Core Command-Line (P4) Reference., and whose password is already set, can set the initial password for users. All users can reset their own password after logging in with an initial password set by a super user.

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

Warning

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 Helix Core Server. Make sure that at least one user with super access has a password before setting this configurable to 0. A super user with a password can set the initial password for other super users if necessary.

No

F

Configurable Client or Server or Proxy? Default Value Meaning Server
Restart
Required for Change to Take Effect?
filesys.atomic.rename

Server

1

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

Yes
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.

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

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
    succeeds
  • p4 add -f /path/to/an/embeddedSymlink/readme.txt
    succeeds

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 -f is used
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.

Note

Changing from the default value is not supported.

No
filetype.maxtextsize

Server

10M

Maximum file size for text type detection.

No

I

Configurable Client or Server or Proxy? Default Value Meaning Server
Restart
Required for Change to Take Effect?
info.p4auth.usercheck

Server

1

Validate username against P4AUTH server

No

J

Configurable Client or Server or Proxy? Default Value Meaning Server
Restart
Required for Change to Take Effect?
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 or Server or Proxy? Default Value Meaning Server
Restart
Required for Change to Take Effect?
lbr.autocompress

Server

1

The default value of 1 means that all newly added files are stored in compressed format.

To override the default to add a specific file in the uncompressed RCS format, which stores deltas, specify the text+D filetype modifier. See Examples for p4 add.

If you set this configurable to 0, newly added text files are stored in RCS format, which was the default prior to the 2022.1 release.

To change the file type of any existing file, see the -t type option of 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.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 Helix Core Server Administrator Guide. 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.replication

Server

unset

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

readonly: Replicates version files when they are updated on the master.

shared: For shared storage. To learn more, see Configuring a replica with shared archives in Helix Core Server Administrator Guide.)

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

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.

After you change the value of this configurable, you must explicitly "stop" the server.

Note

p4 admin restart is not sufficient.

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

For Windows, see Starting and stopping the Helix Server.

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.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.

If you have installed P4P, you can see the proxy help by typing p4p -h at the command line.

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.

After you change the value of this configurable, you must explicitly "stop" the server.

Note

p4 admin restart is not sufficient.

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

For Windows, see Starting and stopping the Helix Server.

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

M

Configurable Client or Server or Proxy? Default Value Meaning Server
Restart
Required for Change to Take Effect?
minClient

Server

unset

Lowest version of client software permitted to connect to this server. The minClient version can be lower than, or equal to, the server version, but not higher than the server version. The syntax to set this configurable is:

p4 configure set minClient=version

The value of version can be a version string:

p4 configure set minClient=2017.2

or a client protocol level:

p4 configure set minClient=83

Note

To discover which client protocol version corresponds to a given P4V version string, see the server log. The following server log entry shows that P4V 2017.3 is using v83 as the protocol version:

P4V/MACOSX1011X86_64/2017.3/1582486/v83

The minClientMessage configurable allows you to provide a message to your users if they need to upgrade their client. To learn more, see Require a minimum client version and Protocol levels: server/client in the Helix Core Server Administrator Guide.

No
minClientMessage

Server

unset

Message to issue if client software is too old, set by p4 configure set minClientMessage=message.

No
monitor

Server

0

Valid values for the monitor configurable are:

  • 0: Server process monitoring off. (Default)
  • 1: monitor active commands
  • 2: active commands and idle connections
  • 3: same as 2, but also includes connections that failed to initialize (stuck at the Init() phase)
  • 5: same as 2, but also includes a list of the files locked by the command for more than one second
  • 10: same as 5, but also includes lock wait times
  • 25: same as 10, except that the list of files locked by the command includes files locked for any duration

See the p4 monitor command.

Not for changes between 1 and 25. However, if setting from 0 or to 0, the following applies:

After you change the value of this configurable, you must explicitly "stop" the server.

Note

p4 admin restart is not sufficient.

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

For Windows, see Starting and stopping the Helix Server.

monitor.lsof

Server

unset

When set on Unix platforms, enables the use of the p4 monitor command to display a list of locked files. Set to the following value:

$ path/lsof -F pln

The value for path varies with the version of Unix you are using. For example:

$ /usr/bin/lsof -F pln

For the list of valid value for this configurable, see the Description of the p4 monitor command.

No

N

Configurable Client or Server or Proxy? Default Value Meaning Server
Restart
Required for Change to Take Effect?
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.

Note

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/Mac) any send and receive buffer sizes

Autotune defaults to being enabled on Helix Server versions:

  • 2019.1 and later

  • 2017.1 (unpatched)

Autotune defaults to being disabled on Helix Server versions:

  • 2018.2

  • 2018.1

  • 2017.2

  • 2017.1 (when patched)

After you change the value of this configurable, you must explicitly "stop" the server.

Note

p4 admin restart is not sufficient.

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

For Windows, see Starting and stopping the Helix Server.

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.heartbeat.interval Server 2000

Milliseconds between sending heartbeats to the target server.

Tip

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 before the heartbeat is considered non-responsive or dead. To learn more, see net.heartbeat.missing.wait.

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 Helix Core Server Administrator Guide.

Tip

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.

Tip

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 Helix Core Server Administrator Guide.

Tip

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 Helix Core Server Administrator Guide.

Tip

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.

After you change the value of this configurable, you must explicitly "stop" the server.

Note

p4 admin restart is not sufficient.

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

For Windows, see Starting and stopping the Helix Server.

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.

After you change the value of this configurable, you must explicitly "stop" the server.

Note

p4 admin restart is not sufficient.

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

For Windows, see Starting and stopping the Helix Server.

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 Perforce 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.

After you change the value of this configurable, you must explicitly "stop" the server.

Note

p4 admin restart is not sufficient.

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

For Windows, see Starting and stopping the Helix Server.

net.parallel.batch

Server

8

Specifies the number of files in a batch.

See p4 sync on Parallel processing.

No
net.parallel.batchsize

Server

512

Specifies the number of bytes in a batch.

See p4 sync on Parallel processing.

No
net.parallel.max

Server

0

Specifies your maximum number of concurrent threads for p4 sync, p4 shelve, and p4 submit.

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

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.submit.* configurables to automate parallel processing, you do not need to use the --parallel option.

Tip

To enable parallel processing, you must set this configurable to a value greater than zero and also greater than or equal to a non-zero value of net.parallel.threads.

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 processing.

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 processing.

No
net.parallel.shelve.batch

Server

8

For automatic parallel processing: specifies the number of files in a batch. To learn more, see 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. To learn more, see 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 monitor show 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.

Tip

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

See also Parallel processing.

The specified threads grab work in batches.

No
net.reuseport

Server

0

Set SO_REUSEPORT for listening socket.

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

After you change the value of this configurable, you must explicitly "stop" the server.

Note

p4 admin restart is not sufficient.

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

For Windows, see Starting and stopping the Helix Server.

net.rfc3484

Client, Server

0

0

The server connection defaults to IPV4 addressing.

A IPV6 connection requires using P4PORT or setting the net.rfc3484 configurable.

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.

After you change the value of this configurable, you must explicitly "stop" the server.

Note

p4 admin restart is not sufficient.

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

For Windows, see Starting and stopping the Helix Server.

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. To learn more, see net.autotune.

After you change the value of this configurable, you must explicitly "stop" the server.

Note

p4 admin restart is not sufficient.

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

For Windows, see Starting and stopping the Helix Server.

P

Configurable Client or Server or Proxy? Default Value Meaning Server
Restart
Required for Change to Take Effect?
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 Helix Core Server Administrator Guide.

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 or Server or Proxy? Default Value Meaning Server
Restart
Required for Change to Take Effect?
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. To learn more, see "Blocking Clients" in Helix Core Server Administrator Guide.

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 a journal note 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.

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 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.

No
rpl.compress

Server

0

Enable replica/master network compression:

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 master or commit 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.

Tip

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.

To learn more, see Authenticating users in Helix Core Server Administrator Guide.

On edge servers (not the master):

After you change the value of this configurable, you must explicitly "stop" the server.

Note

p4 admin restart is not sufficient.

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

For Windows, see Starting and stopping the Helix Server.

 

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:

After you change the value of this configurable, you must explicitly "stop" the server.

Note

p4 admin restart is not sufficient.

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

For Windows, see Starting and stopping the Helix Server.

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. See "Introduction to federated services" in Helix Core Server Administrator Guide.

0 means local is the default 1 changes default to global
a local label is restricted to the single edge server on which it is created and updated, 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.

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 (not the master):

After you change the value of this configurable, you must explicitly "stop" the server.

Note

p4 admin restart is not sufficient.

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

For Windows, see Starting and stopping the Helix Server.

rpl.pull.position Server

0

Interval in milliseconds for pull position reports.

If set, 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, 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

After you change the value of this configurable, you must explicitly "stop" the server.

Note

p4 admin restart is not sufficient.

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

For Windows, see Starting and stopping the Helix Server.

rpl.track.behind.interval Server

10000

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

After you change the value of this configurable, you must explicitly "stop" the server.

Note

p4 admin restart is not sufficient.

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

For Windows, see Starting and stopping the Helix Server.

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.

After you change the value of this configurable, you must explicitly "stop" the server.

Note

p4 admin restart is not sufficient.

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

For Windows, see Starting and stopping the Helix Server.

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 1, requires a user to authenticate before running p4 users.

No

S

Configurable Client or Server or Proxy? Default Value Meaning Server
Restart
Required for Change to Take Effect?
security

Server

0

Server security level:

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: All of the above restrictions. Also, authenticated service users must be used for all replica server and remote depot connections to this server.

5: Requires that any intermediary (such as a proxy or broker) has a valid authenticated service user.

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 details, see Server security levels in Helix Core Server Administrator Guide.

No
server Server 1

Server command logging level:

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

To learn more, see:

No
server.allowfetch

Server

0

Determines whether changes can be fetched.

  • If set to 1, this server can fetch from other servers.
  • If set to 2, other servers can fetch from this server.
  • If set to 3, both 1 and 2 are allowed.
No
server.allowpush

Server

0

Determines whether changes can be pushed.

  • If set to 1, this server can push to other servers.
  • If set to 2, other servers can push to this server.
  • If set to 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.

To learn about +l, see the Helix Core Command-Line (P4) Guide 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. To learn more, see the p4 depot command.

No
server.extensions.allow.admin Server 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 super user. To prevent admin users to install and configure or delete such server-side extensions, set to 0

After you change the value of this configurable, you must explicitly "stop" the server.

Note

p4 admin restart is not sufficient.

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

For Windows, see Starting and stopping the Helix Server.

server.extensions.allow.unsigned Server 0 Controls whether the super user can install unsigned extensions. By default, not allowed. To allow, set to 1

After you change the value of this configurable, you must explicitly "stop" the server.

Note

p4 admin restart is not sufficient.

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

For Windows, see Starting and stopping the Helix Server.

server.extensions.allow.admin Server 0 A user with super access level in the protections table can set this configurable to 1 to allow a user with admin access level in the protections table to modify the configuration (not the code) of an existing Extension. No
server.extensions.allow.unsigned Server 0 Set this configurable to 1 to allow an Extension to be unsigned. By default, the signing certificate must be installed prior to the Extension by using the --install --cert options. The --comment flag goes with --cert to describe the certificate. No
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; you can disable locking by setting 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

When set, the p4 sync command takes a client workspace lock in shared mode. The default value of 0 prevents sync from taking a client workspace lock.

If db.peeking is enabled, the server.locks.dir directory must exist. The changes to locking behavior that occur when you enable db.peeking obviate the need to set server.locks.dir to disabled, but if performance issues arise with respect to multiple concurrent, large, and/or interrupted p4 sync commands, you can obtain the old behavior for syncing by setting 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:

  • Helix Core Server refuses to accept more than this many simultaneous command requests
  • users receive the TooManyCommands error

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

See also server.maxcommands.allow.

After you change the value of this configurable, you must explicitly "stop" the server.

Note

p4 admin restart is not sufficient.

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

For Windows, see Starting and stopping the Helix Server.

server.maxcommands.allow Server 1

Allow super and operator users access to a subset of commands even if server.maxcommands is reached. For the list of these commands, see Commands that super and operator users can always run under Limiting simultaneous connections in the Helix Core Server Administrator Guide.

To disable, set to 0.

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

After you change the value of this configurable, you must explicitly "stop" the server.

Note

p4 admin restart is not sufficient.

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

For Windows, see Starting and stopping the Helix Server.

server.rolechecks Server 0 Should server enforce p4 server settings. No
serverlog.bufsz.N Server unset If set, the maximum number of bytes in the buffer for the log file. By default, there is no buffer. A buffer improves performance because the server only writes to the log file when the command has completed or the buffer has been filled. We recommend 10240 as the setting for this configurable. Be aware that data loss is possible if the server crashes before the buffer's content is written to the log file. No
serverlog.counter.N

Server

unset

The counter name for the structured log file designated by N. (For example, if the structured log file is errors.csv, N is 3.)

See "Logging and structured files" in the Helix Core Server Administrator Guide for more information.

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.

n may not 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 can be set to retain a level prior to an upgrade. See Protocol levels: server/client in Helix Core Server Administrator Guide.

No
serviceUser

Server

unset

The service user as which a server (or proxy) authenticates against a master server in a replication/proxy configuration, or against a remote server in the context of remote depots.

No
spec.hashbuckets

Server

99

Maximum number of subdirectories for hashed directory structures.

Limits the number of subdirectories into which files are hashed in the:

99: default

0: disables hashing

No
ssl.cipher.list Server unset The list of OpenSSL ciphers the server will allow when establishing a TLS 1.2 or below connection, overriding the the OpenSSL defaults.

After you change the value of this configurable, you must explicitly "stop" the server.

Note

p4 admin restart is not sufficient.

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

For Windows, see Starting and stopping the Helix Server.

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

After you change the value of this configurable, you must explicitly "stop" the server.

Note

p4 admin restart is not sufficient.

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

For Windows, see Starting and stopping the Helix Server.

ssl.client.ca.path Client, Server unset

Can be set on a "client", including a Server that acts as a "client" to another Server.

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.

After you change the value of this configurable, you must explicitly "stop" the server.

Note

p4 admin restart is not sufficient.

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

For Windows, see Starting and stopping the Helix Server.

ssl.client.cert.validate Client, Server 1

Can be set on a "client", including a Server that acts as a "client" to another Server.

0: use P4TRUST, no certificate validation

1: validate the certificate chain against the certificate authority (CA)

2: validate that the subject matches the P4PORT

After you change the value of this configurable, you must explicitly "stop" the server.

Note

p4 admin restart is not sufficient.

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

For Windows, see Starting and stopping the Helix Server.

ssl.client.tls.version.min
and
ssl.client.tls.version.max
Client, Server 12 (min)

and

13 (max)

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 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.

Important

These "client" and Server of 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.

After you change the value of this configurable, you must explicitly "stop" the server.

Note

p4 admin restart is not sufficient.

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

For Windows, see Starting and stopping the Helix Server.

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

By default, Perforce’s SSL support is based on the AES256-SHA cipher suite. To use CAMELLIA256-SHA, set this to 1.

No

ssl.tls.version.min

and

ssl.tls.version.max

Server and optionally on the client for testing

10 (min)

and

13 (max)

Determines which TLS version(s) that the Server, Broker, or Proxy allows for SSL 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 version that the Server, Broker, or Proxy allows.

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

Important

For security, choose a value that is at least 12, and, for details on how to use these configurables, see SSL and TLS Protocol Versions in Helix Core Server Administrator Guide.

After you change the value of this configurable, you must explicitly "stop" the server.

Note

p4 admin restart is not sufficient.

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

For Windows, see Starting and stopping the Helix Server.

startup.N

Server

unset

For replica servers, set startup.1 through startup.N to be p4 pull threads to be spawned at startup.

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. Any commands after a gap are ignored.

After you change the value of this configurable, you must explicitly "stop" the server.

Note

p4 admin restart is not sufficient.

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

For Windows, see Starting and stopping the Helix Server.

statefile

Server

state

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

No
submit.allowbgtransfer Server 0

To enable background archive transfer, set to 1 on those edge servers, if any, that you want to have this feature.

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:

After you change the value of this configurable, you must explicitly "stop" the server.

Note

p4 admin restart is not sufficient.

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

For Windows, see Starting and stopping the Helix Server.

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 Helix Core Server Administrator Guide.

After you change the value of this configurable, you must explicitly "stop" the server.

Note

p4 admin restart is not sufficient.

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

For Windows, see Starting and stopping the Helix Server.

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. For example:

$ p4 files ...
//depot/foo/bar/myfile#1 - add change 10 (text)
$ p4 add bar
//depot/foo/bar#1 - opened for add
$ p4 submit -d test Submitting change 11.
Locking 1 files ...
Cannot add file '//depot/foo/bar', filename collides with an existing directory path in the depot.

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. This is relevant for users of the Helix Core Server’s distributed versioning (DVCS) features.

  • uuid generates the id in uuid format.
  • checksum generates the id in checksum format.
  • serverid generates the id in serverid+change format.

For more information on global changelist ids, see the section "Track a changelist’s identity from server to server" in the Fetching and Pushing chapter of Using Helix Core Server for Distributed Versioning.

No
submit.noretransfer

Server

0

Always re-transfer files after a failed submit.

Set to 1 if you want the server to 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.

After you change the value of this configurable, you must explicitly "stop" the server.

Note

p4 admin restart is not sufficient.

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

For Windows, see Starting and stopping the Helix Server.

submit.unlocklocked

Server

0

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

No
sys.pressure.max.pause.time Server 300 If set, the number of seconds a command is able to spend in the paused state before Helix Core Server returns an error to the client. Setting this configurable to 0 disables pausing commands entirely. For all the sys.pressure.* configurables, see System resources in Helix Core Server Administrator Guide. No
sys.pressure.max.paused Server 1000 If set, the maximum number of concurrently-paused client commands on the Helix Core Server. New incoming commands above this threshold will be rejected with an error. For all the sys.pressure.* configurables, see System resources in Helix Core Server Administrator Guide. No
sys.pressure.mem.high Server 95

If set, 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 Helix Core Server Administrator Guide.

No
sys.pressure.mem.high.duration Server 1000 Number of milliseconds for averaging sys.pressure.mem.high. For all the sys.pressure.* configurables, see System resources in Helix Core Server Administrator Guide. No
sys.pressure.mem.medium Server 80 If set, when commands begin pausing. For all the sys.pressure.* configurables, see System resources in Helix Core Server Administrator Guide. No
sys.pressure.mem.medium.duration Server 1000 Number of milliseconds for averaging sys.pressure.mem.medium. For all the sys.pressure.* configurables, see System resources in Helix Core Server Administrator Guide, No
sys.pressure.os.cpu.high Server 100 (Linux) CPU monitoring is only available if cgroups v2 support is configured. This configurable represents the amount of time some processes on the system are spending 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 Helix Core Server Administrator Guide. No
sys.pressure.os.cpu.high.duration Server 2000 Number of milliseconds for averaging sys.pressure.os.mem.high. For all the sys.pressure.* configurables, see System resources in Helix Core Server Administrator Guide. No
sys.pressure.os.mem.high Server 70 (Windows and Linux) Amount of time some processes on the system are spending stalled waiting for the memory. New incoming commands received by the server while at this threshold are rejected. Existing commands that request more memory while the server is above this threshold might be canceled and return an error to the client. When the Helix Core Server 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 comes and consumes a large amount of memory, the Helix Core Server can throttle itself in response. For all the sys.pressure.* configurables, see System resources in Helix Core Server Administrator Guide. 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 Helix Core Server Administrator Guide. No
sys.pressure.os.mem.medium Server 40 (Linux) The server tries to keep memory usage below the 'medium' level. For all the sys.pressure.* configurables, see System resources in Helix Core Server Administrator Guide. 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 Helix Core Server Administrator Guide. No
sys.rename.max

Server and client

10

Limit the number to retries to rename a file if renaming fails. Affects Windows Rename() retry loop. Set on the server and each client.

Note

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.

Note

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.

After you change the value of this configurable, you must explicitly stop the Windows service.

Note

p4 admin restart is not sufficient.

See Starting and stopping the Helix Server.

T

Configurable Client or Server or Proxy? Default Value Meaning 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   Set by the server. See "Performance Tracking" under Diagnostic flags for monitoring the server in Helix Core Server Administrator Guide. 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.

Important

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, 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 or Server or Proxy? Default Value Meaning 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.

After you change the value of this configurable, you must explicitly "stop" the server.

Note

p4 admin restart is not sufficient.

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

For Windows, see Starting and stopping the Helix Server.

Z

Configurable Client or Server or Proxy? Default Value Meaning 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