Skip to content
7 changes: 5 additions & 2 deletions modules/ROOT/content-nav.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -282,13 +282,16 @@
** xref:monitoring/fleet-management.adoc[]
** xref:monitoring/fleet-discovery.adoc[]
// ** xref:monitoring/cluster/index.adoc[]
// *** xref:monitoring/cluster/procedures.adoc[]
// *** xref:monitoring/cluster/procedures/built-in-procedures.adoc[]
// *** xref:monitoring/cluster/http-endpoints.adoc[]

* xref:neo4j-admin-neo4j-cli.adoc[]
* xref:cypher-shell.adoc[]

* xref:procedures.adoc[]
* Procedures
** xref:procedures/call-procedures.adoc[]
** xref:procedures/show-procedures.adoc[]
** xref:procedures/built-in-procedures.adoc[]

* Changes, deprecations, and removals
*** xref:changes-2025-2026.adoc[]
Expand Down
27 changes: 27 additions & 0 deletions modules/ROOT/images/call-procedure.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ this LDAP group will fail authentication, even if their credentials are correct.
|===

All settings are defined at server startup time in the default configuration file _xref:configuration/neo4j-conf.adoc[neo4j.conf]_ or can be modified at
runtime using xref:procedures.adoc#procedure_dbms_setConfigValue[`dbms.setConfigValue()`].
runtime using xref:procedures/built-in-procedures.adoc#procedure_dbms_setConfigValue[`dbms.setConfigValue()`].


[[auth-ldap-configure-provider]]
Expand Down
14 changes: 7 additions & 7 deletions modules/ROOT/pages/clustering/databases.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ For example, if only four servers exist, the command fails with an error.
Also, it fails if two servers are set up with a mode constraint of primary, and three servers are set up with a mode constraint of secondary.

If `TOPOLOGY` is not specified, the database is created according to xref:configuration/configuration-settings.adoc#config_initial.dbms.default_primaries_count[`initial.dbms.default_primaries_count`] and xref:configuration/configuration-settings.adoc#config_initial.dbms.default_secondaries_count[`initial.dbms.default_secondaries_count`] specified in _neo4j.conf_.
After cluster startup, you can overwrite these values using the xref:procedures.adoc#procedure_dbms_setDefaultAllocationNumbers[`dbms.setDefaultAllocationNumbers()`] procedure.
After cluster startup, you can overwrite these values using the xref:procedures/built-in-procedures.adoc#procedure_dbms_setDefaultAllocationNumbers[`dbms.setDefaultAllocationNumbers()`] procedure.

A `CREATE DATABASE` command allocates the database, therefore there is no requirement to run `REALLOCATE DATABASES` (described in xref:clustering/servers.adoc#_hosting_databases_on_added_servers[Hosting databases on added servers]).

Expand Down Expand Up @@ -163,9 +163,9 @@ By default, a newly created database has both read and write access.

To relieve the load of a specific server(s), you can use one of the following procedures to deallocate databases, causing the databases to be removed from the server(s) under pressure:

* xref:procedures.adoc#procedure_dbms_cluster_deallocateDatabaseFromServer[`dbms.cluster.deallocateDatabaseFromServer("server-name", "database-name")`]
* xref:procedures.adoc#procedure_dbms_cluster_deallocateDatabaseFromServers[`dbms.cluster.deallocateDatabaseFromServers(["server-name1", "server-name2"\], "database-name")`]
* xref:procedures.adoc#procedure_dbms_cluster_deallocateNumberOfDatabases[`dbms.cluster.deallocateNumberOfDatabases("server-name", number)`]
* xref:procedures/built-in-procedures.adoc#procedure_dbms_cluster_deallocateDatabaseFromServer[`dbms.cluster.deallocateDatabaseFromServer("server-name", "database-name")`]
* xref:procedures/built-in-procedures.adoc#procedure_dbms_cluster_deallocateDatabaseFromServers[`dbms.cluster.deallocateDatabaseFromServers(["server-name1", "server-name2"\], "database-name")`]
* xref:procedures/built-in-procedures.adoc#procedure_dbms_cluster_deallocateNumberOfDatabases[`dbms.cluster.deallocateNumberOfDatabases("server-name", number)`]

[NOTE]
====
Expand Down Expand Up @@ -218,7 +218,7 @@ To rebalance all database allocations across the cluster, for example, because y
[[reallocate-databases-procedure]]
=== Reallocate databases using a procedure

You can use the procedure xref:procedures.adoc#procedure_dbms_cluster_reallocateDatabase[`dbms.cluster.reallocateDatabase`] to rebalance a specific database across the cluster, or xref:procedures.adoc#procedure_dbms_cluster_reallocateNumberOfDatabases[`dbms.cluster.reallocateNumberOfDatabases`] to rebalance a number of database allocations across the cluster and relieve overloaded servers.
You can use the procedure xref:procedures/built-in-procedures.adoc#procedure_dbms_cluster_reallocateDatabase[`dbms.cluster.reallocateDatabase`] to rebalance a specific database across the cluster, or xref:procedures/built-in-procedures.adoc#procedure_dbms_cluster_reallocateNumberOfDatabases[`dbms.cluster.reallocateNumberOfDatabases`] to rebalance a number of database allocations across the cluster and relieve overloaded servers.
Note that if the cluster is already balanced, no reallocations will happen when running these procedures.
These procedures do not require a server name and can be executed with or without a dry run.

Expand Down Expand Up @@ -258,7 +258,7 @@ This command can also be used with `DRYRUN` to preview the new allocation of dat
[CAUTION]
====
`REALLOCATE DATABASES` on a large cluster with many databases has the potential to move a lot of allocations at once, which might stress the cluster.
Consider starting with more limited reallocations, such as xref:procedures.adoc#procedure_dbms_cluster_reallocateNumberOfDatabases[`dbms.cluster.reallocateNumberOfDatabases`] with a small number, and let the databases complete their reallocation before calling it again, until no more reallocations are necessary.
Consider starting with more limited reallocations, such as xref:procedures/built-in-procedures.adoc#procedure_dbms_cluster_reallocateNumberOfDatabases[`dbms.cluster.reallocateNumberOfDatabases`] with a small number, and let the databases complete their reallocation before calling it again, until no more reallocations are necessary.
====

[source,cypher]
Expand Down Expand Up @@ -428,7 +428,7 @@ If the default database is initially created for you with a topology different t
[[change-default-database]]
=== Change the default database

You can use the procedure xref:procedures.adoc#procedure_dbms_setDefaultDatabase[`dbms.setDefaultDatabase("newDefaultDatabaseName")`] to change the default database for a DBMS.
You can use the procedure xref:procedures/built-in-procedures.adoc#procedure_dbms_setDefaultDatabase[`dbms.setDefaultDatabase("newDefaultDatabaseName")`] to change the default database for a DBMS.
Starting with Neo4j 2025.04, the default database can also be set to a local or remote database alias.

. Ensure that the database to be set as default exists, otherwise create it using the command `CREATE DATABASE <database-name>`.
Expand Down
2 changes: 1 addition & 1 deletion modules/ROOT/pages/clustering/monitoring/status-check.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
:page-role: enterprise-edition
= Monitor replication status

The xref:procedures.adoc#procedure_dbms_cluster_statusCheck[`dbms.cluster.statusCheck()`] procedure can be used to monitor the ability to replicate in clustered databases.
The xref:procedures/built-in-procedures.adoc#procedure_dbms_cluster_statusCheck[`dbms.cluster.statusCheck()`] procedure can be used to monitor the ability to replicate in clustered databases.
In most cases this means a clustered database is write available.
The procedure identifies which members of a clustered database are up-to-date and can participate in successful replication.
Therefore, it is useful in determining the fault tolerance of a clustered database.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -310,7 +310,7 @@ Otherwise, non-writer primaries (`followers`) and secondaries are used.

=== Defining a built-in routing policy

Routing policies are applied when the driver calls the xref:procedures.adoc#procedure_dbms_routing_getRoutingTable[`dbms.routing.getRoutingTable()`] procedure as part of client-side routing of read transactions.
Routing policies are applied when the driver calls the xref:procedures/built-in-procedures.adoc#procedure_dbms_routing_getRoutingTable[`dbms.routing.getRoutingTable()`] procedure as part of client-side routing of read transactions.

////
Together these two configuration settings produce four built-in routing policies that are expressed using a DSL.
Expand Down
10 changes: 5 additions & 5 deletions modules/ROOT/pages/clustering/servers.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -118,12 +118,12 @@ A server in a _cordoned_ state cannot be assigned to host any newly created data

This state is primarily used for <<server-error-handling, error handling>>.

To transition a server from the _enabled_ to the _cordoned_ state, run the xref:procedures.adoc#procedure_dbms_cluster_cordonServer[`dbms.cluster.cordonServer()`] procedure.
To transition a server from the _enabled_ to the _cordoned_ state, run the xref:procedures/built-in-procedures.adoc#procedure_dbms_cluster_cordonServer[`dbms.cluster.cordonServer()`] procedure.
Keep in mind that when decreasing the number of allocations of a database, allocations on cordoned servers are removed first.

A server in the _cordoned_ state can be transitioned to _deallocating_ state or back to _enabled_.
To re-enable a server, run the `ENABLE SERVER` command.
In Cypher 5, you can also use the xref:procedures.adoc#procedure_dbms_cluster_uncordonServer[`dbms.cluster.uncordonServer()`] procedure.
In Cypher 5, you can also use the xref:procedures/built-in-procedures.adoc#procedure_dbms_cluster_uncordonServer[`dbms.cluster.uncordonServer()`] procedure.



Expand All @@ -146,9 +146,9 @@ Once a server is in a deallocating state, it subsequently cannot have any furthe

However, you can deallocate databases from a server in a *reversible manner* by running one of the following procedures:

* xref:procedures.adoc#procedure_dbms_cluster_deallocateDatabaseFromServer[`dbms.cluster.deallocateDatabaseFromServer("server-name", "database-name")`]
* xref:procedures.adoc#procedure_dbms_cluster_deallocateDatabaseFromServers[`dbms.cluster.deallocateDatabaseFromServers(["server-name1", "server-name2"\], "database-name")`]
* xref:procedures.adoc#procedure_dbms_cluster_deallocateNumberOfDatabases[`dbms.cluster.deallocateNumberOfDatabases("server-name", number)`]
* xref:procedures/built-in-procedures.adoc#procedure_dbms_cluster_deallocateDatabaseFromServer[`dbms.cluster.deallocateDatabaseFromServer("server-name", "database-name")`]
* xref:procedures/built-in-procedures.adoc#procedure_dbms_cluster_deallocateDatabaseFromServers[`dbms.cluster.deallocateDatabaseFromServers(["server-name1", "server-name2"\], "database-name")`]
* xref:procedures/built-in-procedures.adoc#procedure_dbms_cluster_deallocateNumberOfDatabases[`dbms.cluster.deallocateNumberOfDatabases("server-name", number)`]

For details, see xref:clustering/databases.adoc#deallocate-databases[Managing databases in a cluster -> Deallocate databases].

Expand Down
2 changes: 1 addition & 1 deletion modules/ROOT/pages/clustering/settings.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ This server always only hosts those databases in `SECONDARY` mode.

| xref:configuration/configuration-settings.adoc#config_initial.dbms.automatically_enable_free_servers[`initial.dbms.automatically_enable_free_servers`]
| This setting allows for auto-enable of servers in the `FREE` state.
After startup, it can be changed with the xref:procedures.adoc#procedure_dbms_cluster_setAutomaticallyEnableFreeServers[`dbms.cluster.setAutomaticallyEnableFreeServers`] procedure.
After startup, it can be changed with the xref:procedures/built-in-procedures.adoc#procedure_dbms_cluster_setAutomaticallyEnableFreeServers[`dbms.cluster.setAutomaticallyEnableFreeServers`] procedure.

| xref:configuration/configuration-settings.adoc#config_server.cluster.system_database_mode[`server.cluster.system_database_mode`]
| Every cluster member hosts the `system` database.
Expand Down
4 changes: 2 additions & 2 deletions modules/ROOT/pages/clustering/setup/deploy.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -58,10 +58,10 @@ Points to consider:

* Any setting with the `initial` prefix is effective on the first startup of the DBMS and/or when a new server joins the cluster and has to be explicitly xref:clustering/servers.adoc#server-enabled-state[`ENABLED`].

* Changing the default number of primaries and secondaries dynamically can only be done with the xref:procedures.adoc#procedure_dbms_setDefaultAllocationNumbers[`dbms.setDefaultAllocationNumbers`] procedure.
* Changing the default number of primaries and secondaries dynamically can only be done with the xref:procedures/built-in-procedures.adoc#procedure_dbms_setDefaultAllocationNumbers[`dbms.setDefaultAllocationNumbers`] procedure.
See xref:clustering/databases.adoc#create-database[`CREATE DATABASE`] for more information.

* To view the current default settings, use the xref:procedures.adoc#procedure_dbms_showTopologyGraphConfig[`dbms.showTopologyGraphConfig`] procedure.
* To view the current default settings, use the xref:procedures/built-in-procedures.adoc#procedure_dbms_showTopologyGraphConfig[`dbms.showTopologyGraphConfig`] procedure.


[CAUTION]
Expand Down
2 changes: 1 addition & 1 deletion modules/ROOT/pages/clustering/setup/routing.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ Client-side routing means that the application decides which cluster server to s
Typically, this ensures that write operations are sent to the server currently acting as the `writer` for the target database, while read operations are sent to other servers.

Client-side routing is based on getting a routing table from a cluster server, and then using that information to make the routing decisions.
Use the xref:procedures.adoc#procedure_dbms_routing_getRoutingTable[`dbms.routing.getRoutingTable()`] procedure to obtain a routing table.
Use the xref:procedures/built-in-procedures.adoc#procedure_dbms_routing_getRoutingTable[`dbms.routing.getRoutingTable()`] procedure to obtain a routing table.

A routing table contains information about the servers and their roles as `writers`, `readers`, and `routers` for a specific database.
There is usually one `writer`, though there may be none if the database is read-only or unhealthy.
Expand Down
2 changes: 1 addition & 1 deletion modules/ROOT/pages/configuration/show-settings.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ For general information about the `SHOW` command, see the link:{neo4j-docs-base-
To retrieve settings on a specific server, you need to directly connect to it using `bolt` scheme.
For more information, see the link:{neo4j-docs-base-uri}/bolt/current/bolt[Bolt protocol documentation].

* Configurations settings can also be listed using the xref:procedures.adoc#procedure_dbms_listConfig[`dbms.listConfig()`] procedure.
* Configurations settings can also be listed using the xref:procedures/built-in-procedures.adoc#procedure_dbms_listConfig[`dbms.listConfig()`] procedure.
====

[[syntax]]
Expand Down
2 changes: 1 addition & 1 deletion modules/ROOT/pages/database-administration/index.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ A different name can be configured before starting Neo4j for the first time.
For details, see xref:database-administration/standard-databases/configuration-parameters.adoc[Configuration parameters].

In the Enterprise Edition, the default standard database `neo4j` can be deleted.
To delete it, you must first set another database as the default by calling the procedure xref:procedures.adoc#procedure_dbms_setDefaultDatabase[dbms.setDefaultDatabase] against the `system` database.
To delete it, you must first set another database as the default by calling the procedure xref:procedures/built-in-procedures.adoc#procedure_dbms_setDefaultDatabase[dbms.setDefaultDatabase] against the `system` database.
For more information, see the xref:clustering/databases.adoc#change-default-database[Change the default database].

The following image illustrates an installation of Neo4j containing the three standard databases, named `marketing`, `sales`, and `hr`, and the `system` database.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ When a database encounters a severe error during its normal run, which prevents
Meaning, it is not possible to restart it with a simple `START DATABASE` command.
You have to run `CALL dbms.unquarantineDatabase(server, database, operation)` to lift the quarantine, specifying the `server` with the failing database.

The `dbms.unquarantineDatabase()` procedure is introduced in Neo4j 2025.01 to replace the now-deprecated xref:procedures.adoc#procedure_dbms_quarantineDatabase[`dbms.quarantineDatabase`()].
The `dbms.unquarantineDatabase()` procedure is introduced in Neo4j 2025.01 to replace the now-deprecated xref:procedures/built-in-procedures.adoc#procedure_dbms_quarantineDatabase[`dbms.quarantineDatabase`()].

After lifting the quarantine, Neo4j automatically tries to bring the database to the desired state.

Expand Down Expand Up @@ -198,7 +198,7 @@ If there are two allocations in `quarantined` mode (meaning that the database is
In this case, it is recommended to recreate the database with quarantined allocations from a backup.
See xref:database-administration/standard-databases/recreate-database.adoc#uri-seed[Recreate a database -> Use a backup as a seed].

To monitor if a clustered database is write-available, it is recommended to run the xref:procedures.adoc#procedure_dbms_cluster_statusCheck[`dbms.cluster.statusCheck()`] procedure on each server hosting the database in primary mode.
To monitor if a clustered database is write-available, it is recommended to run the xref:procedures/built-in-procedures.adoc#procedure_dbms_cluster_statusCheck[`dbms.cluster.statusCheck()`] procedure on each server hosting the database in primary mode.
If any response returns xref:clustering/monitoring/status-check.adoc#_possible_values_of_replicationsuccessful[`replicationSuccessful = true`], you can use `replaceStateKeepStore` or `replaceStateReplaceStore` on one of the quarantined allocations of the database.
This works because a successful replication indicates that a majority of cluster members are available, allowing the new server to rejoin safely. +
See xref:clustering/monitoring/status-check.adoc[] for more information on the `dbms.cluster.statusCheck()` procedure.
Expand Down Expand Up @@ -231,7 +231,7 @@ neo4j@system> SHOW DATABASE foo;
====
A `quarantined` state is persisted for user databases.
This means that if a database is quarantined, it will remain so even if the Neo4j process is restarted.
You can remove the `quarantined` state only by running the xref:procedures.adoc#procedure_dbms_unquarantineDatabase[`dbms.unquarantineDatabase()`] procedure.
You can remove the `quarantined` state only by running the xref:procedures/built-in-procedures.adoc#procedure_dbms_unquarantineDatabase[`dbms.unquarantineDatabase()`] procedure.

The one exception to this rule is for the `system` database.
Any quarantine for that database is removed automatically after the Neo4j process restart.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ Remember that the recreate procedure results in downtime while the stores get up
The time is unbounded and may depend on different factors -- for example, the size of the store, network speed, etc.
====

In Neo4j 2025.04, the xref:procedures.adoc#procedure_dbms_cluster_recreateDatabase[`dbms.cluster.recreateDatabase()`] procedure is deprecated in favor of xref:procedures.adoc#procedure_dbms_recreateDatabase[`dbms.recreateDatabase()`].
In Neo4j 2025.04, the xref:procedures/built-in-procedures.adoc#procedure_dbms_cluster_recreateDatabase[`dbms.cluster.recreateDatabase()`] procedure is deprecated in favor of xref:procedures/built-in-procedures.adoc#procedure_dbms_recreateDatabase[`dbms.recreateDatabase()`].

=== Syntax

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ Old transaction logs cannot be safely archived or removed by external jobs since
Log pruning is called only after checkpoint completion to ensure at least one checkpoint and points to a valid place in the transaction log data.
In reality, this means that all transaction logs created between checkpoints are kept for some time, and only after a checkpoint, the pruning strategy removes them.
For more details on how to speed up checkpointing, see xref:database-internals/checkpointing.adoc#control-log-pruning[Control transaction log pruning].
To force a checkpoint, run the procedure xref:procedures.adoc#procedure_db_checkpoint[`CALL db.checkpoint()`].
To force a checkpoint, run the procedure xref:procedures/built-in-procedures.adoc#procedure_db_checkpoint[`CALL db.checkpoint()`].
+
[NOTE]
====
Expand Down
Loading