jboss缓存位置指向env var

时间:2015-11-02 10:39:43

标签: java linux batch-file tomcat jboss

我的config xml文件中有以下代码:

<jbosscache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="urn:jboss:jbosscache-core:config:3.2">
    <locking isolationLevel="READ_COMMITTED" nodeLockingScheme="mvcc"
        useLockStriping="false" concurrencyLevel="1500"
        lockParentForChildInsertRemove="false" lockAcquisitionTimeout="10000"
        writeSkewCheck="true" />
    <!-- 0 = no eviction -->
    <eviction wakeUpInterval="500" />

    <loaders passivation="false" shared="false">
        <preload>
            <node fqn="/" />
        </preload>
        <loader class="org.jboss.cache.loader.FileCacheLoader" async="false"
            fetchPersistentState="true">
            <properties>
                location=/${env.VG_HOME}/cacheloader
            </properties>
        </loader>
    </loaders>

</jbosscache>

其中VG_HOME是一个指向本地文件夹的env var。

我已经使用Jetty服务器在Linux和Windows上测试了这个设置,它按预期工作。

在tomcat 7下,我使用set&#34; VG_HOME = C:\ config&#34;创建了setenv.sh/bat。但是,在启动应用程序时,将在根(windows / linux)下创建cacheloader文件夹,其名称为$ {env.VG_HOME}。我怀疑xml中的location属性没有看到setenv.sh/bat文件中设置的env。

有关修复的任何想法,这意味着应用程序在使用Tomcat时会在正确的位置创建文件夹。

谢谢!

1 个答案:

答案 0 :(得分:1)

在深入了解@Maraboc答案之后,我找到了合适的地方来解决它。 转到您的setenv文件并添加以下内容:

  

设置CATALINA_OPTS =&#34; -Denv.VG_HOME =%VG_HOME%&#34;

如果您使用的是TC6,它将无法使用,您需要将其添加到备注下方的catalina.bat文件中。