Enable/Disable 通过 jboss-cli 的 Eclipselink 共享缓存

Enable/Disable Eclipselink Shared Cache via jboss-cli

我希望能够通过 jboss-cli 启用或禁用 eclipselink 共享缓存(二级缓存)。

我们通常将 shared-cache-mode 设置为 DISABLE_SELECTIVE,但在某些部署中我们希望能够禁用它。如果我们可以通过 jboss-cli 执行此操作并避免编辑我们的 persistence.xml.

,那就太好了

有人有类似的想法或经验吗?

我在下面包含了我们的 persistence.xml。我很乐意提供任何其他可能有用的信息。

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
            http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
             version="2.1">

    <persistence-unit name="AppPu">
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
        <jta-data-source>app.datasource</jta-data-source>
        <exclude-unlisted-classes>false</exclude-unlisted-classes>
        <shared-cache-mode>DISABLE_SELECTIVE</shared-cache-mode>

        <properties>
            <property name="eclipselink.persistence-context.flush-mode" value="commit" />
            <property name="eclipselink.jdbc.batch-writing" value="jdbc" />
            <property name="eclipselink.jdbc.batch-writing.size" value="500"/>
            <property name="eclipselink.session-event-listener" value="com.demo.app.common.eclipselink.GeometryInitializer"/>

            <property name="eclipselink.logging.logger" value="DefaultLogger"/>
            <property name="eclipselink.logging.file" value="sqldump.log"/>
            <property name="eclipselink.logging.parameters" value="true"/>


        </properties>
    </persistence-unit>

</persistence>

以防其他人试图这样做...

编辑您的 persistence.xml,将 shared-cache-mode 设置为如下变量:

<shared-cache-mode>${SHARED_CACHE_MODE}</shared-cache-mode>

然后您可以通过向您的 jboss-cli 发送以下命令(视情况替换 DISABLE_SELECTIVE),将此变量添加到您的 standalone.xml 中:

/system-property=SHARED_CACHE_MODE:add(value=DISABLE_SELECTIVE)

以下文章在这方面对我们帮助很大:http://www.mastertheboss.com/jboss-frameworks/hibernate-jpa/jpa-configuration/how-to-use-an-env-variable-in-your-persistencexml