Neo4j-enterprise does not allow deletions - neo4j

I have been having this error for a while:
The environment I am using is:
Neo4j-enterprise 4.1.0 (AWS Ami ami-02a68ff704cf9a737)
I am trying to do a DETACH DELETE for cleaning up some nodes and I keep getting this error:
Neo4jError: Writing in reading access mode not allowed. Attempted to write to internal graph 0 (neo4j)
I have tried several things:
set flag dbms.read_only=false
create new users with permissions.
Signup for the startup program of neo4j with the same email I am using in AWS.
At this point, I am quite lost. I have to check many resources but I do not find the reason of this error.
Do you have any clue about this problem?
Thanks in advance!

I discovered the problem. It was nothing related to the Neo4j setup or with the configuration.
The problem is produced by an ORM I am using in JavaScript, Neode. I was using the function query, and it seems for some reason I had to use writeCypher after version 4.1.0 of Neo4j.

Related

apoc installed on neo4j desktop but no apoc procedures registered for database

I cannot get APOC to work on neo4j.
Documentation is good ... when present!
I installed the apoc library via Neo4j Desktop:
Launch Neo4j Desktop
Locate DBMS
Select Plugins tab on right
installed the plugin
Then I open a project.
I try:
CALL apoc.load.json("file:///person.json")
YIELD value
RETURN value;
but
There is no procedure with the name `apoc.load.json` registered for this database instance. Please ensure you've spelled the procedure name correctly and that the procedure is properly deployed.
Indeed The available procedures does not display apoc, in spite it is installed.
Then, after I cleared out that Neo4j Desktop is not using the installed community edition I had, and found that i can find the installed versions under the "more" options > Terminal:
I checked that my neoj4.conf file have these lines:
# Leaving this unconfigured will load all procedures found.
#dbms.security.procedures.allowlist=apoc.coll.*,apoc.load.*,gds.*
(commented out, to load everything, so apoc should load...)
I think I have done OK, as here:
APOC installation neo4j desktop
I also tried to delete the project and set it up again:
https://community.neo4j.com/t5/general-discussions/some-apoc-procedures-not-available/m-p/41590
but still not working...
--
How do I get APOC to work ??
Do I have to install it for each project ?
Do I need to configure it for each DB in the project ?
I am using neo4j desktop 1.5.6.
#Edited
today I replicated steps of yesterday, paying attention to the recommendations of #William Lion answer.
At launch of neo4j Desktop, I was prompted an alert that "Local graph password has been changed".
That is strange, because I have not changed it...
It did not accept nor my previous password (the one I use for the server), nor the default 'neo4j', but could pass the alert because I could ignore this change until the next Graph start.
So I ignored it, and was prompted to enter the password to connect with the neo4j server. And this time, apoc were found.
I tried to close the neo4j desktop, quitting from all open projects, and relaunch. This time I was not asked to input the password for the local dbms. So, I assumed the to have restarted the next Graph, following the previous alert, and I was expected to be requested to input the password again.
Maybe the problem was here. So, to avoid future hiccups:
does neo4j reset the password of local dbms itself after a while or after certain conditions ?
after neo4j desktop closes, am I sure all server and open dmbs instances are properly shut down ? What does until the next Graph start actually mean ?
Plugins must be installed for each DBMS instance in Neo4j Desktop (there can be multiple DBMS instances in each project). Also, there can only be one active DBMS in Neo4j Desktop at a given time. Make sure that you have installed the plugin for the DBMS instance that you want to work with AND that DBMS is the one that is currently running. I'm guessing that you successfully installed the plugin for one DBMS, but tried querying with a different active DBMS that did not have the plugin.

How do I edit neo4j.conf in an AuraDB instance?

I am trying to edit the settings of my AuraDB hosted neo4j instance, specifically, trying to set the following line:
apoc.import.file.enabled=true
I have looked at the official tutorial and many other places, and for the life of me, I am not able to find out where either the "settings" button is located, or how to locate the neo4j.conf or apoc.conf files. It seems that something has possibly changed in a newer version. I have tried both in the browser at https://console.neo4j.io/#databases and in Neo4J Desktop. For the desktop application, I am running it on Ubuntu via the .appimage. I created my database on the website and connected via remote connection following this guide.
Some things that might help me solve the issue:
Is it possible to open a shell in auradb to let me run normal bash commands?
Is the .conf accessible "within" the .appimage?
From the official description of File locations, I am supposedly able to do the following in Neo4j Desktop to find the configuration file:
From the Open dropdown menu of your Neo4j instance, select Terminal,
and navigate to /conf/neo4j.conf.
Yet, when I press the Open dropdown menu, I do not see a Terminal option. What I get is Neo4j Browser, Neo4j Bloom, and Neo4j ETL Tool.
Aura is a managed database - which is to say that you don't get low-level access to configuration of the kind you're describing. The documentation you're looking at relates to self-hosted instances of Neo4j, where you're the one managing and configuring the instance from scratch and where you have that level of access to the underlying configuration.
To the problem you're trying to solve, the following article entitled Loading data into Neo4j Aura is your best bet for the currently available options for loading data into your managed database.
Per the documentation, APOC is installed in Aura databases, but only a limited set of functions and procedures are enabled (as of May 2022). In particular, only a small subset of apoc.import procedures are available - from what I can see, CSV and GraphML support is enabled via apoc.load.csv and apoc.load.graphml, while you also have access to apoc.load.json and apoc.load.xml.
Lists of the currently supported procedures and functions are available at the foot of that document:
Neo4j Aura Supported APOC procedures (updated).json
Neo4j Aura Supported APOC functions (updated).json
From a Neo4j Aura Knowledge Article:
In Aura, we currently do not support changing any property that may
exist in the Neo4j product and defined in neo4j.conf.

Cosmos DB and Azure.iOS data query issues

I'm fairly new to Cosmos DB so for starters I created a MongoDB based instance. I then wanted to add a document to it, just as a "Hello World" test. I'm using a self made iOS app for this which uses the official Azure.iOS library from GitHub.
Once I run the "create" command (with the proper collection id set) on AzureData the framework returns me a "success" inside the response with a resource id etc. However once I use an external tool such as Robo3T or the mongo shell the given collection is said to be empty, or returns this error:
{"code":400,"body":"Command find failed: Unknown server error occurred when processing this request.."}
The connection to the DB however is successful since I can display the collection stats and so on.
Now if I open my app again and query the collection documents through the Azure.iOS framework it returns me the result I just saved. This makes me feel a bit puzzled. Did I miss doing something inside the app, or do all MongoDB tools fail listing the documents? The documentation for the framework is rather sparse so any help would be appreciated.
Actually the issue that happened for me is very hard to debug. Since the error messages don't tell anything.
My Cosmos DB is using the MongoDB backend which seems to create issues together with the mentioned Azure.iOS framework.
The issue is further described here:
Cosmos Mongodb query fails but azure storage explorer works fine?
TL;DR what happened is that the iOS framework was not creating a "_id" which is necessary for MongoDB and that lead to corrupted data. I had to switch from MongoDB to the SQL backend. This solved my issue and now everything works fine.

neo4j-APOC plugin stopped working

Plugin APOC was working for me for a long time which means I have it copied at right place and I have edited config file correctly. But today I needed to create same graph on different data set so I stopped neo4j service, removed database directy, restarted it, changed password then copied plugins directory in neo4j directory(as I'm not using shell) and again restarted neo4j serivice. Then tried to execute the same query again and got error messgae.
There is no procedure with the name apoc.create.relationship registered for this database instance. and the query I'm using is as following
CALL apoc.create.relationship(n, network.connection, {}, m) yield rel
I have made following change based on a stackoverflow post,
uncommented following line
#dbms.directories.plugins=plugins
and added plugin directory path, restarted service even restarted system but still not working. I have done this(removing neo4j directory...) in past multiple times but this has never happened to me. Even I have tried replacing old apoc.jar with newly downloaded one before. I have neo4j3.3.0 with apoc3.3.0.1jar with windows10. Can anybody tell me what have I done wrong this time? Thanks in advance.
EDIT 1: when I uncomment above line in config file my other plugins also stop working but after commenting it other plugins like graph algorithms are working but not APOC
Since you are using APOC procedures and graph algorithms, I think you have configured your config file this way:
dbms.security.procedures.unrestricted=algo.*
dbms.security.procedures.unrestricted=apoc.*
If it is the case, change these lines to:
dbms.security.procedures.unrestricted=algo.*,apoc.*
I really don't know what the problem was, I uninstalled it with logs and config files, downloaded latest version which didn't pose any headaches of editing config file for csv files and for plugins and it worked.
If someone is reading this question and has done everything correctly. Set the correct permissions on the plugins directory, uncommented the whitelisted and unrestricted sections of the /etc/neo4j.conf, checked if the version of the Apoc jar you're loading is the same version as neo4j, etc. and can't make it work.
Try to restart your PC, that was what did it for me, for some weird reason.

Neo4j http.log empty

I'm trying to turn on http logging for an Enterprise 2.0 Neo4j server.
After following this documentation, and adding the following likes to neo4j-server.properties:
org.neo4j.server.http.log.enabled=true
# Logging policy file that governs how HTTP log output is presented and
# archived. Note: changing the rollover and retention policy is sensible, but
# changing the output format is less so, since it is configured to use the
# ubiquitous common log format
org.neo4j.server.http.log.config=conf/neo4j-http-logging.xml
the data/log/http.log file is still zero bytes even after restarting the server and then running a basic Ruby script that inserts nodes (upon request if needed).
I'm guessing I'm missing something completely obvious here so bear with me. Thanks.
UPDATE on 9/26/14
I'm still seeing this issue for Neo4j 2.1.2
has anyone managed to get the http logs to work?
There was a possible solution on google groups that you could touch the http.log file before starting the server, but still get an empty log file.
For the time being we might try to put a reverse proxy in to log the req and response.
I am seeing this problem in Neo4j 2.0.1. I added an issue to the Neo4j Github issue tracker in hopes of a resolution.
https://github.com/neo4j/neo4j/issues/2219

Resources