Hibernate Books

All times are UTC - 5 hours [ DST ]



Post new topic Reply to topic  [ 2 posts ] 
Author Message
 Post subject: UnexpectedUpgradingStoreVersionException - Expected 'v0.A.3'
PostPosted: Tue Jan 10, 2017 5:25 pm 
Newbie

Joined: Tue Jan 10, 2017 5:03 pm
Posts: 1
I am trying my hand on Neo4j + Hibernate OGM. I started with this tutorial. Starting from there I am now able to create and update entities, and also run some custom queries using JP-QL queries: 1, 2.

Using Neo4j Community Edition 3.1.0 for Windows 64 bit, selecting the data directory of my embedded database, and navigating to the web view, I am able to view the data successfully.

However, after that, I faced the following problems while running my Java application.

  1. When I tried to run the application, at the same time the Neo4j Community Edition server is also running, I faced the following problem:
    Quote:
    org.neo4j.kernel.StoreLockException: Store and its lock file has been locked by another process: target\test_data_dir\store_lock. Please ensure no other process is using this database, and that the directory is writable (required even for read-only access)

    This error seems to be quite self explanatory, which might be resolved by stopping the server. My question is, is there any tool/configuration, which let me do both at the same time; i.e. run the application, and view the data in server.

  2. Another major error that I faced after stopping the server and running the application again, is the below one.

    Quote:
    org.neo4j.kernel.impl.storemigration.StoreUpgrader$UnexpectedUpgradingStoreVersionException: 'G:\Workspace\Java\Neo4jTest\target\test_data_dir\neostore.nodestore.db' has a store version number that we cannot upgrade from. Expected 'v0.A.3' but file is version '

    If I delete the database and start application (from scratch) again, then everything is okay till I start the server. How this can be resolved?

Additional Info:

  1. My Maven dependencies:

    Code:
          <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>

  2. My persitence.xml:

    Code:
    <?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>
        </persistence>

  3. _myNeo4j.conf:

    Code:
            #***************************************************************
            # 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

P.S. I have also posted this question in StackOverflow, but without any luck so far.


Top
 Profile  
 
 Post subject: Re: UnexpectedUpgradingStoreVersionException - Expected 'v0.A.3'
PostPosted: Wed Jan 11, 2017 7:03 am 
Hibernate Team
Hibernate Team

Joined: Fri Sep 09, 2011 3:18 am
Posts: 280
Hi,
thanks for the feedback,

I have answered to you question on StackOverflow: http://stackoverflow.com/questions/4156 ... -is-versio

In brief, iHibernate OGM is currently beind in term of versions supported, Hibernate OGM 5.0.4.Final requires Neo4j 2.3.5, Hibernate OGM 5.1.0.Beta3 uses Neo4j 3.0.8.
The fact that you are using Neo4j 3.1.0 causes the problems in embedded mode


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 2 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.