Anyone using Neo4j Embedded (v 1.8.x) with JDK 7? - neo4j

I would like to know if anyone is using Neo4J 1.8.x Embedded with Sun JDK 7? IF so, have you hit any issues and what are they?
Let me also clarify, I'm not looking to build the Neo4J source code - only run Neo4j 1.8.1 Embedded on Sun Java 7.
I know that Neo4j 1.9 is the first version that will support Java 7, but if Neo 1.8.1 runs on Sun JDK 7 without any problems, we will be considering deploying with that.
There are a number of benefits (i.e. security, etc.) to going with Java 7, but if there are compatibility issues with Neo 1.8.1, we'd like to find out.
Thanks,
Bob

Java 7 has changed the built in sorting algorithm. The new sorting algorithm (TimSort) is more sensitive to concurrent modification. Where the sorting algorithm in Java 6 and earlier would just produce a result that wasn't perfectly sorted in the face of concurrent modification, TimSort will throw an exception.
Neo4j uses these sort() methods in its page cache.
These exceptions means that Neo4j will crash unexpectedly when running with multiple threads on Java 7.
The Neo Technology team are addressing this issue for Neo4j 1.9.

Related

Neo4j-admin load dump.file returning: Not a valid Neo4j archive

The dump comes from exporting a snapshot from AuraDB, as stated in Neo4j documentation.
im working with Neo4j Community 4.1.11 in Ubuntu, none of the other answers i found have been helpful...
Let me know what other piece of info you need to assess better the situation, thanks
when running the command...
You may need to upgrade your local version of Neo4j to something much more recent - an Aura database I just created couldn't be loaded into any version of Neo4j older than 4.4.1 (as at current date).
However, the specific version you need to use will change over time.
Guidance on the Aura support site indicates as much, and recommends using the latest possible local version of Neo4j as the target for the import (potentially to the point of needing to use pre-release versions), since Aura will typically be running bleeding-edge versions of the database store format.
An alternative might be to explore exporting to CSV or JSON and importing that way, since this output won't vary depending on Neo4j version of the source or target - you can do a stream-based export from Aura using apoc.export.csv.all or apoc.export.json.all which you could then load via script, though with large graphs this may not be practical.

How to detect Windows 11 using Delphi 10.3.3

I use TOSVersion.ToString function (uses SysUtils) to detect Windows version. However this is what I get in Windows11:
Windows 10 (Version 10.0, Build 21996, 64-bit Edition)
Is there any reliable way to detect Windows 11? I'm using Delphi 10.3.3.
UPDATE: Windows 11 is officially released and I tried again.
Here is what I get:
Windows 10 (Version 10.0, Build 22000, 64-bit Edition)
As Remy pointed out: using the WinAPI you risk of being in some compatibility mode, resulting in getting a version reported that is lower than the actual.
One alternative is to check the file version of expected files, i.e.
%windir%\system32\ntoskrnl.exe or
%windir%\explorer.exe
using GetFileVersionInfo() and VerQueryValue() - the HiWord(dwFileVersionLS)
should be 22000 or higher (according to Windows NT build/release number).
Another is to look in the Registry under HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ at the text values CurrentBuild and CurrentBuildNumber, checking if the highest of both is 22000 or higher.
David already wrote a detailled answer in Checking Windows version on W10 with even more alternatives, although concentrating on the high/low version numbers, not the build. But WMI might help.
(This only works in retrospective with confirmed knowledge.) Check which API exports are available: the idea is that specific functions were introduced with specific Windows releases/versions, so if importing fails for one you know you're on a version below. An outdated example and an outdated list of minimum versions per function will give you an idea. Now you "only" have to find out which new functions are introduced with Windows 11.
Those are all not bulletproof, but you could combine them and then draw conclusions. And after all that you can still try your approach to parse texts instead of relying on numbers only. It also shows how easily you can manipulate your system into reporting different versions as per which method is used.
Official major version number for Windows 11 is 10.
The official build number for the public preview of Windows 11 is
10.0.22000.168
Earlier builds:
10.0.22000.71
10.0.22000.65
10.0.22000.51
Microsoft Windows 11 FAQ
If you want to detect Preview versions, earliest build number was 10.0.22000.51 Windows 11 version history
TOSVersion relies on some hard coded names and logic to return OS name. You will have to implement your own detection, copy and modify TOSVersion record or make wrapper around it, where you can use existing logic for older versions and implement check based on Windows 11 build number to detect Windows 11.
For other general issues and approaches in detecting OS version you can refer to AmigoJack's answer
Except the very weak, atleast for me, solution of considering Windows 10 builds greater than 22000, such as Windows 11, the only solution I found which is actually working is the WMIs Win32_OperatingSystem class - Caption property.
On my dev Win10 machine, it gives the following string: Microsoft Windows 10 Pro.
On my another dev machine, with Win11 installed, the same function gives: Microsoft Windows 11 Pro.
The difference is in string values - "10" vs "11"- but this is at least something far better than the "build greater than" solution.
C# and C++ work well.
The simplest way is to get the version of Kernel32.dll and if Major Version is 10 and Build Version is >= 22000 then you have Windows 11.
See my code here: How can I find the Windows product name in Windows 11?

How to Configure SonarQube for delphi?

I want to configure SonarQube so it can analyze Delphi project too, and when I search online I saw there used to be a delphi plugin for SonarQube. But when I look at the plugins with the latest build it doesn't show the delphi plugin.
Is the plugin still available in an other way?
Or is it possible to configure SonarQube for delphi without the plugin?
As of G. Ann response was actually discontinued puglin for Sonar, but searching the internet, and recently (3 days) the developer Fabricio Columbus made it happen!
We tested and is running the current version of Sonar:
Compatible with SonarQube 4.5.x and SonarQube 5.1.2
https://github.com/fabriciocolombo/sonar-delphi
Release: https://github.com/fabriciocolombo/sonar-delphi/releases
JAR: https://github.com/fabriciocolombo/sonar-delphi/releases/download/0.3.3-SNAPSHOT/sonar-delphi-plugin-0.3.3-SNAPSHOT.jar
PS: Translated from Portuguese to English by Google Translate.
To analyze the files of language X, you need a plugin for language X that recognize's X's structure, syntax &etc. Without that you can't derive metrics (LOC, complexity, &etc.) or recognize bad code (i.e. raise issues for antipatterns.) So to answer your second question first, you won't be able to analyze Delphi code without some kind of Delphi plugin.
The Delphi plugin was deprecated quite a while ago because it seemed to suffer from a lack of interest all around & didn't evolve to maintain compatibility with the platform as it evolved.
If you look, you can find downloads of the old plugin, but to use it, you'd have to retrogress to a quite old version of the platform, & I don't recommend that. I'm not sure how far back you'd have to go - you could crack open the jar and get that from the pom - but it looks like the last mailing list activity on this plugin was Feb. 2012. So again, I don't recommend going this route.

Any known issues running embedded non-HA Neo4j 1.9 with Java 6?

While I am fully aware of the fact that an upgrade to Java 7 should be done, till that time, are there any known issues using Neo4j 1.9 (RC1) with Java 6?
I am using it in embedded mode, non-HA.
I'm using the exact same environment and haven't come across any problems. If you would be using SDN, you might just bump into some issues, but I guess they'll be solved soon. See e.g. DATAGRAPH-338.

How do you identify Informix version on Solaris?

We have Informix running on our Solaris server and under /usr/informix/bin there are several executables, such as 'dbaccess' and 'isql'.
Each of them produce different version information when typing 'isql -V' for example.
How do you identify the exact version of the SE running?
Output:
'esql -V'
INFORMIX-ESQL Version 6.00.UH1
'isql -V'
INFORMIX-SQL Version 6.03.UC1
'dbaccess -V'
DB-Access Version 7.13.UC1
Then in /usr/informix/release directory there is a file named "SE_7.1". So is it accurate to say that the version of Informix SE we are running is 7.13?
Most likely, you are running SE 7.13; the definitive answer is obtained from:
$INFORMIXDIR/lib/sqlexec -V
However, DB-Access is distributed with SE and would give the correct version unless there was at some time a copy of Informix Dynamic Server (or Informix OnLine Dynamic Server as it would have been labelled back then).
All the software is seriously archaic. Version 6.03 of ISQL was released circa 1996; SE 7.13 would be a little earlier, if anything. The ESQL/C was probably released in 1995; 6.00.UE1 was released in 1994 or 1995, and the UH1 release would have been a little later (a couple of fix packs). Formally, none of the software is guaranteed Y2K-compliant; you'd be using SE 7.24 and ISQL 6.05 (or possibly 7.20) and ESQL/C 7.24 as minimum version numbers. However, the problems with SE and Y2K were far less serious than with other versions. The main issue is that the code will add 1900 to 2-digit years, not 2000.
The current version of SE is 7.26; the current version of ISQL is 7.50; the current version of ESQL/C is (don't ask) 3.50.
Just to add to Jonathan's typically exhaustive answer, DB-Access is bundled with the engine, but isql and esql are both separate products. That's why you're getting different answers to the version number request. They're all correct answers to different questions ;-)

Resources