Chalk my complaint up to user error.  My code was something like this:

try {
  //import a ton of data
  Transaction.commit();
finally {
  Transaction.ensureTransactionClosed();
}

commit() was failing w/ an OutOfMemoryError out of the Neo tx
finish(), but I never saw this exception: before the exception is
logged, the finally block was executed, which called finish() on the
same Neo transaction.  This second call to finish also throws an
exception, saying "Tx status is: STATUS_COMMITING", which now makes
sense to me.  Because the second exception was thrown out of my
finally block, I lost the original exception.  Nasty!

I've changed ensureTransactionClosed() to trap exceptions, which
should help.  I wonder if a call to Transaction
Impl#finish() results in an exception, subsequent calls should be a no-op?

Adam

On Wed, Feb 24, 2010 at 4:14 AM, Johan Svensson <jo...@neotechnology.com> wrote:
> Hi,
>
> Yes we are working on monitoring tools. Since transactions are held in
> memory until committed larger transactions (containing many write
> operations) will consume more memory. It would be possible to not keep
> the full transaction in memory but that would kill read performance in
> that transaction since for every read we would have to check disk if
> the value being read has a local modification.
>
> Adam, do you have the full stacktraces/log messages from the
> IllegalStateException?
>
> Regards,
> -Johan
>
> On Tue, Feb 23, 2010 at 9:49 PM, Rick Bullotta
> <rick.bullo...@burningskysoftware.com> wrote:
>> I think it would be valuable to understand why the memory requirements are
>> so large and how best to manage these types of situations in addition to
>> increasing the heap, since it seems that in some cases this merely delays
>> the issue.  Is there any internal instrumentation on Neo memory usage that
>> could be used to help tune/tweak the settings?  If not, would it make sense
>> to add a couple of MBeans for this type of information?
>>
>> Rick
>>
>> -----Original Message-----
>> From: user-boun...@lists.neo4j.org [mailto:user-boun...@lists.neo4j.org] On
>> Behalf Of Adam Rabung
>> Sent: Tuesday, February 23, 2010 2:15 PM
>> To: Neo user discussions
>> Subject: Re: [Neo] IllegalStateException meaning
>>
>> I just got this same problem, and was able to defeat by upping heap
>> size.  It was very strange - does Transaction#finish do some
>> non-blocking work?
>>
>> Disclaimer: I'm using trunk neo-kernel from 2/10.
>>
>> Thanks,
>> Adam
>>
> _______________________________________________
> Neo mailing list
> User@lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user
>
_______________________________________________
Neo mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to