tc サーバーが停止している場合 (STS 内でこれを実行しているだけ)、組み込みの neo4j データベースで shutdown() が正しく呼び出されていないようです。
これが私が見るログメッセージです:
16:03:43.358 [localhost-startStop-1] INFO neo4j.xafactory - Non clean shutdown detected on log [/home/billy/target/data/graph.db/nioneo_logical.log.1]. Recovery started ...
INFO: Non clean shutdown detected on log [/home/billy/target/data/graph.db/index/lucene.log.1]. Recovery started ...
SpringフォーラムとSOで同様の問題を検索しましたが、見つけたのはこの投稿だけでした
ただし、コンテキストがシャットダウンされたときにSpringがこれを処理する必要があるため、ここでは関係ないと思います。
<neo4j:config storeDirectory="target/data/graph.db"/>
<neo4j:repositories base-package="com.example.repository"/>
このタグの XML パーサーは、Bean に shutdown() destroy メソッドを明確に登録します。
private String handleStoreDir(Element element, ParserContext context, BeanDefinitionBuilder configBuilder) {
String storeDir = element.getAttribute("storeDirectory");
if (!hasText(storeDir)) return null;
BeanDefinitionBuilder graphDefinitionBuilder = BeanDefinitionBuilder.rootBeanDefinition(EmbeddedGraphDatabase.class);
graphDefinitionBuilder.addConstructorArgValue(storeDir);
graphDefinitionBuilder.setScope("singleton");
graphDefinitionBuilder.setDestroyMethodName("shutdown");
context.getRegistry().registerBeanDefinition(GRAPH_DATABASE_SERVICE, graphDefinitionBuilder.getBeanDefinition());
configBuilder.addPropertyReference(GRAPH_DATABASE_SERVICE, GRAPH_DATABASE_SERVICE);
return GRAPH_DATABASE_SERVICE;
}
また、私のログ メッセージに混乱しないでください。私の DB は実際には webapps ディレクトリにありません。アプリ サーバー上のアプリケーションへのパスは実際には次のとおりです。
/home/billy/DevTools/springsource/vfabric-tc-server-developer-2.8.2.RELEASE/base-instance/wtpwebapps
他の誰かがこの問題に遭遇し、それを解決する方法を見つけましたか? 私の小さなサンプル アプリケーションでは大したことではありませんが、実稼働アプリケーションにこのテクノロジを選択するかどうかを確認したいメッセージではありません。