Category: Java/C++ Runtime

Q

Why does my application crash on exit?

A

An on-exit crash could be a problem related to a bug in your own, or it could be something that we have encountered in the past.

The infamous on exit crash has occurred for a couple of customers and as we could never reproduce it, it was very hard to figure out what was going on. It turns out that sometimes the operating system will unload a dynamically loaded JVM before it executes the cleanup code of our statically allocated proxy wrapper objects. When these objects' destructructors get invoked by the C++ runtime they want to perform some Java cleanup, and find the JVM gone...

We implemented a workaround that involves the setting of a configuration option that disables proxy-related cleanup at program termination. You can set this option programmatically via:

    loader.setNoShutdownProcessing( true ); 

or in your XML config file via:

    <add key="NoShutdown" value="true" />

This option only affects the cleanup behavior after application shutdown has been detected. If this does not help, you can explicitly specify (in your orderly shutdown procedure) that you're entering shutdown mode:

    xmog_jvm_loader::enterShutdownMode(); 

If neither of these options helps, it's either your bug or a problem we've never seen before and that we will want to hear about.


Copyright 2006-2011 by Codemesh, Inc., ALL RIGHTS RESERVED

:
frequently asked questions
home products support customers partners newsroom about us contact us