I've just pushed an update to handle the attachThreadToJVM stuff
automatically, I ran your test, Michael, on the DB after that, and it seems
to shut down properly. You may want to double check though.

You can build this now, by checking out
https://github.com/neo4j/python-embedded/ and following the instructions in
the readme.


This will be part of the 1.5 release, which is currently a delayed, but can
probably be expected within a week or two.

/Jake

On Thu, Nov 3, 2011 at 4:48 PM, Johan Lundberg <[email protected]> wrote:

> On 2011-11-03 11:08, Jacob Hansson wrote:
> > On Thu, Nov 3, 2011 at 6:55 AM, Tim McNamara <
> [email protected]>wrote:
> >
> >> Here are a few notes of my own from using Neo4j with Python embedded.
> >> I know that this isn't the right place .
> >>
> >> Ubuntu doesn't set $JAVA_HOME. I ended up hard coding the location of my
> >> JVM.
> >>
> >> I seem to encounter unclean shutdowns all the time when running with
> >> the iPython REPL. Is there a db.shutdown() command that I've been
> >> neglecting to use?
> >>
> >
> > Yeah, as long as you call db.shutdown(), things should be ok. See here:
> >
> >
> http://docs.neo4j.org/chunked/snapshot/python-embedded-reference-core.html
> >
> >
> > We should perhaps set up the db to shut itself down properly
> automatically
> > if it detects that python is shutting down.. We decided against that
> > before, since we felt like "we don't own the application lifecycle".
> WDYT?
> >
>
> I found this snippet to work great for my modules:
> def _close_db():
>    try:
>        neo4jdb.shutdown()
>    except NameError:
>        print 'Could not shutdown Neo4j database. Is it open in \
> another process?'
>
> import atexit
> atexit.register(_close_db)
>
>
This looks like a good option, I'll create an issue for adding this.

/Jake


> >
> >>
> >> Tim
> >>
> >>
> >> On 3 November 2011 17:28, Michael Rene Armida <[email protected]> wrote:
> >>> I'm having some weird problems with threading on shutdown.  As I
> >> previously
> >>> discovered, using neo4j in a multi-threaded Python app requires
> complete
> >>> segregation of neo4j into a single thread.  That all works fine for
> >>> creating a database, however, it appears that shutting one down is a
> bit
> >> of
> >>> a mystery.  I wrote a test program to minimally illustrate the
> >> difficulty:
> >>>
> >>> http://pastebin.com/gg204kae
> >>>
> >>> Threading is always easy to get wrong, so I added a simple switch to
> >> remove
> >>> neo4j from the picture.  When I disable neo, the program starts up and
> >>> shuts down cleanly.  When I re-enable neo, some of the print statements
> >>> never get run, and the app mysteriously exits.
> >>>
> >>> I am testing this by saving it into a script and running it on the
> >> command
> >>> line.  Any time after the worker thread finishes creating the neo db, I
> >> hit
> >>> ctrl-c, and the two scenarios play out as above.
> >>>
> >>> It seems that the embedded Python API is not exactly at the forefront
> of
> >>> popular use, and so I understand if nobody knows what's up with this.
>  I
> >>> just thought I should add something, for the record.  I hope my script
> >>> doesn't have an obvious bug.
> >>>
> >>> Thanks,
> >>> Michael
> >>
> >
> > I had a discussion with Tobias this morning about threading with JPype,
> and
> > am currently writing a fix that will allow full threading support for
> > neo4j-embedded.
> >
> > I'll make sure to run this script as well after that fix is implemented,
> to
> > make sure it gets fixed as well.
> >
> > As far as the forefront of use goes, there is a surprising amount of pypy
> > downloads of neo4j-embedded (4000 new installs in the last 30 days), so
> the
> > feedback you are providing here is gonna end up helping a lot of people
> :)
> > Thank you so much for taking the time to document the issues you are
> having.
> >
> > /jake
> >
> >
> >>> _______________________________________________
> >>> Neo4j mailing list
> >>> [email protected]
> >>> https://lists.neo4j.org/mailman/listinfo/user
> >>>
> >> _______________________________________________
> >> Neo4j mailing list
> >> [email protected]
> >> https://lists.neo4j.org/mailman/listinfo/user
> >>
> >
> >
> >
>
>
> --
> Johan Lundberg
> NORDUnet A/S
> [email protected]
> +46730714375
> Tulegatan 11
> 113 53 Stockholm
> Sweden
> _______________________________________________
> Neo4j mailing list
> [email protected]
> https://lists.neo4j.org/mailman/listinfo/user
>



-- 
Jacob Hansson
Phone: +46 (0) 763503395
Twitter: @jakewins
_______________________________________________
Neo4j mailing list
[email protected]
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to