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