通过 jboss-cli 启用/禁用 Eclipselink 共享缓存

Posted

技术标签:

【中文标题】通过 jboss-cli 启用/禁用 Eclipselink 共享缓存【英文标题】:Enable/Disable Eclipselink Shared Cache via jboss-cli 【发布时间】:2019-11-14 05:58:33 【问题描述】:

我希望能够通过 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>

【问题讨论】:

【参考方案1】:

万一其他人试图这样做......

编辑您的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

【讨论】:

以上是关于通过 jboss-cli 启用/禁用 Eclipselink 共享缓存的主要内容,如果未能解决你的问题,请参考以下文章

如何启用/禁用选择标签并通过淘汰赛发布(即使禁用)

通过删除属性启用和禁用按钮[重复]

通过输入条件禁用/启用按钮 [AngularJS]

reactjs通过一个不起作用的功能启用禁用按钮

无法使用 NVAPI 启用/禁用 Mosaic

通过代码在 Windows 操作系统上启用和禁用 DST