2017-01-10 3 views
1

私はNeo4j + Hibernate OGMに手をかけています。私はthis tutorialで始まりました。そこから始めて、エンティティを作成して更新し、JP-QLクエリを使用していくつかのカスタムクエリを実行できるようになりました:12UnexpectedUpgradingStoreVersionException - Neo4j ServerとHibernate OGMを使用する場合、 "期待された 'v0.A.3'ファイルですがバージョンは"

Neo4j Community Edition 3.1.0 for Windows 64 bitを使用して、埋め込みデータベースのデータディレクトリを選択し、Webビューにナビゲートして、データを正常に表示できます。

しかし、その後、私はJavaアプリケーションを実行しているときに次の問題に直面しました。

org.neo4j.kernel.StoreLockException::私は、アプリケーションを実行しようとしたとき、のNeo4jのCommunity Editionサーバーも実行されていると同時に、私は次のような問題に直面した

  1. ストアとそのロックファイルは別のプロセス:target \ test_data_dir \ store_lockによってロックされています。このデータベースを使用しているプロセスが他にないこと、およびそのディレクトリが書き込み可能であることを確認してください(読み取り専用アクセスであっても必要です)

このエラーは自明のようですが、サーバーを停止すると解決する可能性があります。私の質問は、私が同時に両方をさせるツール/設定があることです。すなわちアプリケーションを実行し、サーバ内のデータを見ることができる。

  • サーバーを停止してアプリケーションを再実行した後に直面したもう一つの重大なエラーは以下のとおりです。

    org.neo4j.kernel.impl.storemigration.StoreUpgrader $ UnexpectedUpgradingStoreVersionException:「G:\ワークスペース\ Javaの\ Neo4jTest \ターゲット\ test_data_dir \ neostore.nodestore.db私たちがからストアのバージョン番号アップグレードすることはできませんしました。 'v0.A.3'が必要ですが、ファイルはバージョン '

    です。データベースを削除してアプリケーションを(最初から)起動すると、サーバを起動するまでは問題ありません。どのようにこれを解決できますか?

  • 追加情報:

    • 私のMavenの依存関係:

      <dependencies> 
      
          <!-- https://mvnrepository.com/artifact/org.hibernate.ogm/hibernate-ogm-neo4j --> 
          <dependency> 
           <groupId>org.hibernate.ogm</groupId> 
           <artifactId>hibernate-ogm-neo4j</artifactId> 
           <version>5.0.4.Final</version> 
          </dependency> 
      
          <!-- https://mvnrepository.com/artifact/org.jboss.jbossts/jbossjta --> 
          <dependency> 
           <groupId>org.jboss.jbossts</groupId> 
           <artifactId>jbossjta</artifactId> 
           <version>4.16.6.Final</version> 
          </dependency> 
      
      </dependencies> 
      
    • マイpersitence.xml

      <?xml version="1.0" encoding="utf-8"?> 
      
      <persistence xmlns="http://java.sun.com/xml/ns/persistence"  
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
          xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" 
          version="2.0"> 
      
      <persistence-unit name="hikePu" transaction-type="RESOURCE_LOCAL"> 
          <provider>org.hibernate.ogm.jpa.HibernateOgmPersistence</provider> 
      
          <properties> 
           <property name="hibernate.ogm.datastore.provider" value="neo4j_embedded" /> 
           <property name="hibernate.ogm.datastore.database" value="HikeDB" /> 
           <property name="hibernate.ogm.neo4j.database_path" value="target/test_data_dir" /> 
           <property name="hibernate.ogm.neo4j.configuration_resource_name" value="target/test_data_dir/_myNeo4j.conf" /> 
          </properties> 
      </persistence-unit> 
      

    • _myNeo4j.conf

      #*************************************************************** 
      # Server configuration 
      #*************************************************************** 
      
      # This setting constrains all `LOAD CSV` import files to be under the `import` directory. Remove or uncomment it to 
      # allow files to be loaded from anywhere in filesystem; this introduces possible security problems. See the `LOAD CSV` 
      # section of the manual for details. 
      dbms.directories.import=import 
      
      # Require (or disable the requirement of) auth to access Neo4j 
      dbms.security.auth_enabled=true 
      
      # With default configuration Neo4j only accepts local connections. 
      # To accept non-local connections, uncomment this line: 
      #dbms.connectors.default_listen_address=0.0.0.0 
      
      # You can also choose a specific network interface, and configure a non-default 
      # port for each connector, by setting their individual listen_address. 
      
      # The address at which this server can be reached by its clients. This may be the server's IP address or DNS name, or 
      # it may be the address of a reverse proxy which sits in front of the server. This setting may be overridden for 
      # individual connectors below. 
      #dbms.connectors.default_advertised_address=localhost 
      
      # You can also choose a specific advertised hostname or IP address, and 
      # configure an advertised port for each connector, by setting their 
      # individual advertised_address. 
      
      # Bolt connector 
      dbms.connector.bolt.enabled=true 
      #dbms.connector.bolt.tls_level=OPTIONAL 
      #dbms.connector.bolt.listen_address=:7687 
      
      # HTTP Connector 
      dbms.connector.http.enabled=true 
      #dbms.connector.http.listen_address=:#{default.http.port} 
      
      # HTTPS Connector 
      dbms.connector.https.enabled=true 
      #dbms.connector.https.listen_address=:#{default.https.port} 
      
      # Certificates directory 
      # dbms.directories.certificates=certificates 
      
      #***************************************************************** 
      # Administration client configuration 
      #***************************************************************** 
      
      
      # Comma separated list of JAX-RS packages containing JAX-RS resources, one 
      # package name for each mountpoint. The listed package names will be loaded 
      # under the mountpoints specified. Uncomment this line to mount the 
      # org.neo4j.examples.server.unmanaged.HelloWorldResource.java from 
      # neo4j-examples under /examples/unmanaged, resulting in a final URL of 
      # http://localhost:${default.http.port}/examples/unmanaged/helloworld/{nodeId} 
      #dbms.unmanaged_extension_classes=org.neo4j.examples.server.unmanaged=/examples/unmanaged 
      
      #***************************************************************** 
      # HTTP logging configuration 
      #***************************************************************** 
      
      # HTTP logging is disabled. HTTP logging can be enabled by setting this 
      # property to 'true'. 
      dbms.logs.http.enabled=false 
      
      # Enable this to be able to upgrade a store from an older version. 
      dbms.allow_format_migration=true 
      
      # The amount of memory to use for mapping the store files, in bytes (or 
      # kilobytes with the 'k' suffix, megabytes with 'm' and gigabytes with 'g'). 
      # If Neo4j is running on a dedicated server, then it is generally recommended 
      # to leave about 2-4 gigabytes for the operating system, give the JVM enough 
      # heap to hold all your transaction state and query context, and then leave the 
      # rest for the page cache. 
      # The default page cache memory assumes the machine is dedicated to running 
      # Neo4j, and is heuristically set to 50% of RAM minus the max Java heap size. 
      #dbms.memory.pagecache.size=10g 
      
      # Enable this to specify a parser other than the default one. 
      #cypher.default_language_version=2.0 
      
      # Keep logical logs, helps debugging but uses more disk space, enabled for 
      # legacy reasons To limit space needed to store historical logs use values such 
      # as: "7 days" or "100M size" instead of "true". 
      #dbms.tx_log.rotation.retention_policy=7 days 
      
      # Enable shell server so that remote clients can connect via Neo4j shell. 
      #dbms.shell.enabled=true 
      # The network interface IP the shell will listen on (use 0.0.0.0 for all interfaces). 
      #dbms.shell.host=127.0.0.1 
      # The port the shell will listen on, default is 1337. 
      #dbms.shell.port=1337 
      
      allow_store_upgrade=true 
      

    答えて

    1

    一度に一つのプロセスが埋め込まのNeo4jのロックを取得することができます。

    したがって、OGMを使用している場合、Neo4jサーバーまたはvicecersaを使用してアクセスすることはできません。私は現時点でこの問題を解決する方法はないと思います。

    アプリケーションの実行中にDBをチェックする場合は、BoltプロトコルまたはHTTP APIを使用してサーバーに接続する必要があります。 HibernateのOGM設定ファイルを更新するだけです。

    Hibernate OGM 5.0.4.Finalは古いバージョンのNeo4jを使用しています。2.3.5 サーバを開いて閉じると、ファイルのバージョンが変更され、Hibernate OGMはこれを認識できません。

    Hibernate OGM 5.1.0.Beta3は現時点でNeo4j 3.0.8を使用していますが、アップグレードする際に問題が発生しました。

    +0

    ありがとうございました@あなたの答えと説明をお寄せください。 –

    +1

    リモートモードが5.1ベータ版でのみ利用可能であることを忘れてしまった – Davide

    関連する問題