0

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

他の誰かがこの問題に遭遇し、それを解決する方法を見つけましたか? 私の小さなサンプル アプリケーションでは大したことではありませんが、実稼働アプリケーションにこのテクノロジを選択するかどうかを確認したいメッセージではありません。

4

1 に答える 1

0

ピーターは正しいです。これは、Neo4j または Spring Neo4j の問題ではありません。どうやら、STS 内で tc-server のローカル開発者コピーを実行し、サーバーを停止することを選択すると、STS はシャットダウン シグナルを送信するのではなく、それを強制終了します。したがって、Spring コンテキストでライフサイクル イベントが呼び出されることはなく、何もクリーンアップされません。これは、STS イシュー トラッカーの問題であるはずです。しばらく時間が取れたら、これについてフォローアップする可能性が高いです。

于 2013-05-31T00:51:30.227 に答える