Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion modules/ROOT/pages/extending-neo4j/best-practices.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
= Best practices

It is important to consider any security implications of deploying customized code.
Refer to the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/security/securing-extensions[Operations Manual -> Securing Extensions] for details on best practices for securing user-defined procedures and functions.
Refer to the link:{neo4j-docs-base-uri}/operations-manual/current/security/securing-extensions[Operations Manual -> Securing Extensions] for details on best practices for securing user-defined procedures and functions.

Since you will be running custom-built code and Neo4j in the same JVM, there are a few things you should keep in mind:

Expand Down
6 changes: 3 additions & 3 deletions modules/ROOT/pages/extending-neo4j/customized-code.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Examples of use cases for procedures and functions are:

Procedures and functions are written in Java and compiled into JAR files.
They are deployed to the database by dropping that JAR file into the _plugins_ directory on each standalone or clustered server.
For the location of the _plugins_ directory, refer to link:{neo4j-docs-base-uri}/operations-manual/{page-version}/configuration/file-locations[Operations Manual -> Default file locations].
For the location of the _plugins_ directory, refer to link:{neo4j-docs-base-uri}/operations-manual/current/configuration/file-locations[Operations Manual -> Default file locations].
The database must be restarted on each server to pick up new procedures and functions.

Procedures and functions can take arguments and return results.
Expand Down Expand Up @@ -53,9 +53,9 @@ In addition, procedures can perform write operations on the database.

Neo4j also comes bundled with a number of _built-in_ procedures and functions.

The available built-in procedures vary depending on edition and mode, as described in link:{neo4j-docs-base-uri}/operations-manual/{page-version}/reference/procedures[Operations Manual -> Procedures].
The available built-in procedures vary depending on edition and mode, as described in link:{neo4j-docs-base-uri}/operations-manual/current/reference/procedures[Operations Manual -> Procedures].
Running `SHOW PROCEDURES` displays the full list of procedures available in your Neo4j DBMS, including user-defined procedures.

The built-in functions are described in link:{neo4j-docs-base-uri}/cypher-manual/{page-version}/functions[Cypher Manual -> Functions].
The built-in functions are described in link:{neo4j-docs-base-uri}/cypher-manual/current/functions[Cypher Manual -> Functions].
Running `SHOW FUNCTIONS` displays the full list of all the functions available in your Neo4j DBMS, including user-defined functions.

6 changes: 3 additions & 3 deletions modules/ROOT/pages/extending-neo4j/procedures.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ CALL org.neo4j.examples.findDenseNodes(1000)

`CALL` may be the only clause within a Cypher statement or may be combined with other clauses.
Arguments can be supplied directly within the query or taken from the associated parameter set.
For full details, see the documentation in link:{neo4j-docs-base-uri}/cypher-manual/{page-version}/clauses/call[Cypher Manual -> `CALL` procedure].
For full details, see the documentation in link:{neo4j-docs-base-uri}/cypher-manual/current/clauses/call[Cypher Manual -> `CALL` procedure].


[[user-defined-procedures]]
Expand Down Expand Up @@ -195,7 +195,7 @@ The classes that can be injected are:
All of the above classes are considered safe and future-proof and do not compromise the security of the database.
Several unsupported (restricted) classes can also be injected and can be changed with little or no notice.
Procedures written to use these restricted APIs are not loaded by default, and you need to use the `dbms.security.procedures.unrestricted` to load unsafe procedures.
Read more about this config setting in link:{neo4j-docs-base-uri}/operations-manual/{page-version}/security/securing-extensions[Operations Manual -> Securing extensions].
Read more about this config setting in link:{neo4j-docs-base-uri}/operations-manual/current/security/securing-extensions[Operations Manual -> Securing extensions].

[[memory-resource-tracking]]
== Memory Resource Tracking
Expand All @@ -206,7 +206,7 @@ The memory resource tracking API for the procedure framework is available for pr
Future versions of Neo4j might contain breaking changes to this API.
====

If your procedure or function allocates significant amounts of heap memory, you can register allocations to count towards the configured transaction limits, see link:{neo4j-docs-base-uri}/operations-manual/{page-version}/performance/memory-configuration/#memory-configuration-limit-transaction-memory[Operations Manual -> Limit transaction memory usage] for more information.
If your procedure or function allocates significant amounts of heap memory, you can register allocations to count towards the configured transaction limits, see link:{neo4j-docs-base-uri}/operations-manual/current/performance/memory-configuration/#memory-configuration-limit-transaction-memory[Operations Manual -> Limit transaction memory usage] for more information.
This allows you to avoid `OutOfMemory` errors that cause database restarts.
Memory allocations also show up in query profiles.

Expand Down
2 changes: 1 addition & 1 deletion modules/ROOT/pages/extending-neo4j/security-plugins.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Neo4j provides authentication and authorization plugin interfaces to support rea

The SPI (Service Provider Interface) lives in the `com.neo4j.server.security.enterprise.auth.plugin.spi` package.

Customized-built plugins have access to the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/configuration/file-locations[_<neo4j-home>_] directory in case you want to load any customized settings from a file located there.
Customized-built plugins have access to the link:{neo4j-docs-base-uri}/operations-manual/current/configuration/file-locations[_<neo4j-home>_] directory in case you want to load any customized settings from a file located there.
Plugins can also write to the security event log.


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ When writing unmanaged extensions, you have greater control over the amount of m
If you keep too much state around, it can lead to more frequent full Garbage Collection and subsequent unresponsiveness by the Neo4j server.

A common way that state can increase, is the creation of JSON objects to represent the result of a query, which is then sent back to your application.
Neo4j's Transactional Cypher HTTP endpoint (see link:{neo4j-docs-base-uri}/http-api/{page-version}/actions[HTTP API Docs -> transactional Cypher endpoint]) streams responses back to the client.
Neo4j's Transactional Cypher HTTP endpoint (see link:{neo4j-docs-base-uri}/http-api/current/actions[HTTP API Docs -> transactional Cypher endpoint]) streams responses back to the client.
For example, the following unmanaged extension streams an array of a person's colleagues:

//https://github.com/neo4j/neo4j-documentation/blob/dev/server-examples/src/main/java/org/neo4j/examples/server/unmanaged/ColleaguesResource.java
Expand Down
2 changes: 1 addition & 1 deletion modules/ROOT/pages/extending-neo4j/values-and-types.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
[[extending-neo4j-procedures-and-functions-values-and-types]]
= Values and types

The _input_ and _output_ to and from a procedure or a function must be one of the supported types, as described in link:{neo4j-docs-base-uri}/cypher-manual/{page-version}/values-and-types/[Cypher Manual -> Values and types].
The _input_ and _output_ to and from a procedure or a function must be one of the supported types, as described in link:{neo4j-docs-base-uri}/cypher-manual/current/values-and-types/[Cypher Manual -> Values and types].

Composite types are supported via:

Expand Down
4 changes: 2 additions & 2 deletions modules/ROOT/pages/java-embedded/cypher-java.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
[[cypher-java]]
= Cypher queries

In Java, you can use the link:{neo4j-docs-base-uri}/cypher-manual/{page-version}/[Cypher query language] as per the example below.
In Java, you can use the link:{neo4j-docs-base-uri}/cypher-manual/current/[Cypher query language] as per the example below.

[TIP]
====
Expand Down Expand Up @@ -118,5 +118,5 @@ You should instead use only one and if you need the facilities of the other meth

For more information on the Java interface to Cypher, see the link:{neo4j-javadocs-base-uri}/index.html[Neo4j Javadocs^].

For more information and examples for Cypher, see link:{neo4j-docs-base-uri}/cypher-manual/{page-version}/[Neo4j Cypher Manual].
For more information and examples for Cypher, see link:{neo4j-docs-base-uri}/cypher-manual/current/[Neo4j Cypher Manual].

4 changes: 2 additions & 2 deletions modules/ROOT/pages/java-embedded/indexes.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@
[[java-embedded-new-index]]
= Using indexes

It is possible to create and use all the index types described in link:{neo4j-docs-base-uri}/cypher-manual/{page-version}/indexes-for-search-performance[Cypher Manual -> Indexes].
It is possible to create and use all the index types described in link:{neo4j-docs-base-uri}/cypher-manual/current/indexes-for-search-performance[Cypher Manual -> Indexes].

This section demonstrates how to work with indexes with an example of a user database.
For information about how to create an index on all `User` nodes that have a `username` property, see link:{neo4j-docs-base-uri}/cypher-manual/{page-version}/indexes-for-search-performance#administration-indexes-create-a-single-property-index-for-nodes[Cypher Manual -> Create a single-property index for nodes].
For information about how to create an index on all `User` nodes that have a `username` property, see link:{neo4j-docs-base-uri}/cypher-manual/current/indexes-for-search-performance#administration-indexes-create-a-single-property-index-for-nodes[Cypher Manual -> Create a single-property index for nodes].

[TIP]
====
Expand Down
2 changes: 1 addition & 1 deletion modules/ROOT/pages/java-embedded/property-values.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,6 @@ If these objects are returned from procedures, the original types cannot be recr
[NOTE]
====
Strings that contain special characters can have inconsistent or non-deterministic ordering in Neo4j.
For details, see link:{neo4j-docs-base-uri}/cypher-manual/{page-version}/syntax/values#property-types-sip-note[Cypher Manual -> Sorting of special characters].
For details, see link:{neo4j-docs-base-uri}/cypher-manual/current/syntax/values#property-types-sip-note[Cypher Manual -> Sorting of special characters].
====

2 changes: 1 addition & 1 deletion modules/ROOT/pages/java-embedded/query-parameters.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

The following examples illustrate how to use parameters when executing Cypher queries from Java.

For more information on parameters, see the link:{neo4j-docs-base-uri}/cypher-manual/{page-version}/[Neo4j Cypher Manual].
For more information on parameters, see the link:{neo4j-docs-base-uri}/cypher-manual/current/[Neo4j Cypher Manual].


//https://github.com/neo4j/neo4j-documentation/blob/dev/cypher/cypher-docs/src/test/java/org/neo4j/cypher/example/JavaExecutionEngineDocTest.java
Expand Down
4 changes: 2 additions & 2 deletions modules/ROOT/pages/java-embedded/setup.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ The following examples use the top-level artifact approach.
====
The examples are only valid for Neo4j Community Edition.
To add Neo4j Enterprise Edition as a dependency, please get in contact with link:https://neo4j.com/contact-us/[Neo4j Professional Services^].
See link:{neo4j-docs-base-uri}/operations-manual/{page-version}/introduction[Operations Manual -> Introduction] for details about the Community and Enterprise Editions.
See link:{neo4j-docs-base-uri}/operations-manual/current/introduction[Operations Manual -> Introduction] for details about the Community and Enterprise Editions.
====


Expand Down Expand Up @@ -127,7 +127,7 @@ registerShutdownHook( managementService );

If you are using the Enterprise Edition of Neo4j in embedded mode, you have to create your database with the link:{com-neo4j-dbms-api-EnterpriseDatabaseManagementServiceBuilder}[`com.neo4j.dbms.api.EnterpriseDatabaseManagementServiceBuilder`^] to enable the Enterprise Edition features.
If you intend to operate embedded clusters, you need to provide the appropriate configuration to the instances you create (for example ports and discovery endpoints).
For maintainability purposes, you can define your embedded DBMS configuration in the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/configuration/neo4j-conf[_neo4j.conf_] file as follows:
For maintainability purposes, you can define your embedded DBMS configuration in the link:{neo4j-docs-base-uri}/operations-manual/current/configuration/neo4j-conf[_neo4j.conf_] file as follows:

//https://github.com/neo4j/neo4j-documentation/blob/dev/embedded-examples/src/main/java/org/neo4j/examples/EmbeddedNeo4jClusterUsingBuilder.java
//EmbeddedNeo4jClusterUsingBuilder.java[tag=neo4jConf]
Expand Down
2 changes: 1 addition & 1 deletion modules/ROOT/pages/java-embedded/unique-nodes.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -82,5 +82,5 @@ You might also be tempted to use Java synchronization for pessimistic locking, b
By mixing locks in Neo4j and the Java runtime, it is possible to produce deadlocks that are not detectable by Neo4j.
As long as all locking is done by Neo4j, all deadlocks will be detected and avoided.

For more information on locks and deadlocks, see link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-internals/locks-deadlocks.adoc#_locks[Operations Manual -> Locks and deadlocks^].
For more information on locks and deadlocks, see link:{neo4j-docs-base-uri}/operations-manual/current/database-internals/locks-deadlocks.adoc#_locks[Operations Manual -> Locks and deadlocks^].

6 changes: 3 additions & 3 deletions modules/ROOT/pages/jmx-metrics.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,20 @@
This topic describes how to access JMX for Neo4j DBMS to monitor metrics.

Neo4j provides different levels of monitoring facilities to supply a continuous overview of the system's health.
For a description of the monitoring options, see link:{neo4j-docs-base-uri}/operations-manual/{page-version}/monitoring[Neo4j Operations Manual -> Monitoring].
For a description of the monitoring options, see link:{neo4j-docs-base-uri}/operations-manual/current/monitoring[Neo4j Operations Manual -> Monitoring].
Many of the metrics are exposed through link:https://www.oracle.com/java/technologies/javase/javamanagement.html[JMX^].

[NOTE]
====
The available JMX MBeans and their names have been updated in Neo4j 4.0.
Beans that duplicate metrics or monitoring options, described in link:{neo4j-docs-base-uri}/operations-manual/{page-version}/monitoring/metrics/reference/#jvm-metrics[Neo4j Operations Manual -> Monitoring], have been removed.
Beans that duplicate metrics or monitoring options, described in link:{neo4j-docs-base-uri}/operations-manual/current/monitoring/metrics/reference/#jvm-metrics[Neo4j Operations Manual -> Monitoring], have been removed.
====

[[jmx-remote]]
== Adjusting remote JMX access to Neo4j

By default, the Neo4j Enterprise edition does not allow remote JMX connections.
To enable this feature, you need to enable JMX Remote Management and also configure JMX for secure remote access, in the link:{neo4j-docs-base-uri}/operations-manual/{page-version}/configuration/neo4j-conf[_conf/neo4j.conf_ file].
To enable this feature, you need to enable JMX Remote Management and also configure JMX for secure remote access, in the link:{neo4j-docs-base-uri}/operations-manual/current/configuration/neo4j-conf[_conf/neo4j.conf_ file].


[[enable-jmx-remote]]
Expand Down
4 changes: 2 additions & 2 deletions modules/ROOT/pages/transaction-management.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
====
This page describes only some specific aspects of transaction management when used with the Neo4j Java API and provides some examples of how to avoid deadlocks, and how to register a transaction event listener for a specific database and perform basic operations on top of the transaction change set.

Therefore, it is highly recommended that you read link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-internals/[Operations Manual -> Database internals and transactional behavior] before you continue reading this page.
Therefore, it is highly recommended that you read link:{neo4j-docs-base-uri}/operations-manual/current/database-internals/[Operations Manual -> Database internals and transactional behavior] before you continue reading this page.
====

[[transactions-overview]]
Expand All @@ -31,7 +31,7 @@ The interaction cycle of working with transactions follows the steps:
[NOTE]
====
It is crucial to finish each transaction because the locks or memory acquired by a transaction are only released upon completion.
For more information on locks and deadlocks, see link:{neo4j-docs-base-uri}/operations-manual/{page-version}/database-internals/locks-deadlocks[Operations Manual -> Locks and deadlocks^].
For more information on locks and deadlocks, see link:{neo4j-docs-base-uri}/operations-manual/current/database-internals/locks-deadlocks[Operations Manual -> Locks and deadlocks^].
====

The idiomatic use of transactions in Neo4j is to use a `try-with-resources` statement and declare `transaction` as one of the resources.
Expand Down