Disable Infinispan Clustering in Wildfly 10.1

I have two Wildfly 10.1.0 Final servers running on the same computer. Each of them has the same application, but for different clients. Each server is also configured to use Inifinispan 8.2.4 as a second-level cache.

Now, here is the situation: the first server starts up and it comes to the following log entries:

2017-04-19 06:25:29,414 INFO (ServerService Thread Pool -- 61) [org.infinispan.remoting.transport.jgroups.JGroupsTransport.start) ISPN000078: Starting JGroups channel infinispan-hibernate-cluster 2017-04-19 06:25:36,166 INFO (ServerService Thread Pool -- 61) [org.infinispan.remoting.transport.jgroups.JGroupsTransport.viewAccepted) ISPN000094: Received new cluster view for channel infinispan-hibernate-cluster: [XXX-56490|0] (1) [XXX-56490] 2017-04-19 06:25:36,170 INFO (ServerService Thread Pool -- 61) [org.infinispan.remoting.transport.jgroups.JGroupsTransport.startJGroupsChannelIfNeeded) ISPN000079: Channel infinispan-hibernate-cluster local address is XXX-56490, physical addresses are [127.0.0.1:7800] 

This is the log from the start of the second server:

 2017-04-19 06:26:16,869 INFO (ServerService Thread Pool -- 69) [org.infinispan.remoting.transport.jgroups.JGroupsTransport.start) ISPN000078: Starting JGroups channel infinispan-hibernate-cluster 2017-04-19 06:26:17,800 INFO (ServerService Thread Pool -- 69) [org.infinispan.remoting.transport.jgroups.JGroupsTransport.viewAccepted) ISPN000094: Received new cluster view for channel infinispan-hibernate-cluster: [XXX-56490|1] (2) [XXX-56490, XXX-29707] 2017-04-19 06:26:17,807 INFO (ServerService Thread Pool -- 69) [org.infinispan.remoting.transport.jgroups.JGroupsTransport.startJGroupsChannelIfNeeded) ISPN000079: Channel infinispan-hibernate-cluster local address is XXX-29707, physical addresses are [127.0.0.1:7801] 

At the same time, when the second server starts, this happens on the first server:

 2017-04-19 06:26:17,761 INFO (Incoming-2,XXX-56490) [org.infinispan.remoting.transport.jgroups.JGroupsTransport.viewAccepted) ISPN000094: Received new cluster view for channel infinispan-hibernate-cluster: [XXX-56490|1] (2) [XXX-56490, XXX-29707] 

plus a few messages like the ones below look like one for each cached object:

 2017-04-19 06:26:18,321 INFO (remote-thread--p11-t1) [org.infinispan.CLUSTER.broadcastRebalanceStart) ISPN000310: Starting cluster-wide rebalance for cache XXX.ear/XXX.jar#XXX.Section, topology CacheTopology{id=2, rebalanceId=2, currentCH=ReplicatedConsistentHash{ns = 256, owners = (1)[XXX-56490: 256]}, pendingCH=ReplicatedConsistentHash{ns = 256, owners = (2)[XXX-56490: 126, XXX-29707: 130]}, unionCH=null, actualMembers=[XXX-56490, XXX-29707]} 2017-04-19 06:26:18,327 INFO (remote-thread--p11-t1) [org.infinispan.CLUSTER.log) [Context=XXX.ear/XXX.jar#XXX.Section][Scope=XXX-56490]ISPN100002: Started local rebalance 2017-04-19 06:26:18,334 INFO (transport-thread--p13-t23) [org.infinispan.CLUSTER.log) [Context=XXX.ear/XXX.jar#XXX.Section][Scope=XXX-56490]ISPN100003: Finished local rebalance 2017-04-19 06:26:18,420 INFO (remote-thread--p11-t1) [org.infinispan.CLUSTER.log) [Context=XXX.ear/XXX.jar#XXX.Section][Scope=XXX-29707]ISPN100003: Finished local rebalance 2017-04-19 06:26:18,422 INFO (remote-thread--p11-t1) [org.infinispan.CLUSTER.endRebalance) ISPN000336: Finished cluster-wide rebalance for cache XXX.ear/XXX.jar#XXX.Section, topology id = 2 

I would like to completely disable this behavior and start two instances without exchanging information.

I found in the infinispan-core-8.2.4.Final.jar module three default configuration files (jgroups-tcp, jgroups-google, jgroups-ec2) containing the port installed on 7800.

I already checked several documents, but could not find the answer.

Perhaps I need to disable any clustering feature in wildfly directly? Is it enabled by default?

This is the standalone.xml file used from the wildfly / standalone / configuration / folder directory:

 <?xml version='1.0' encoding='UTF-8'?> <server xmlns="urn:jboss:domain:4.2"> <extensions> <extension module="org.jboss.as.clustering.infinispan"/> <extension module="org.jboss.as.connector"/> <extension module="org.jboss.as.deployment-scanner"/> <extension module="org.jboss.as.ee"/> <extension module="org.jboss.as.ejb3"/> <extension module="org.jboss.as.jaxrs"/> <extension module="org.jboss.as.jdr"/> <extension module="org.jboss.as.jmx"/> <extension module="org.jboss.as.jpa"/> <extension module="org.jboss.as.jsf"/> <extension module="org.jboss.as.logging"/> <extension module="org.jboss.as.mail"/> <extension module="org.jboss.as.naming"/> <extension module="org.jboss.as.pojo"/> <extension module="org.jboss.as.remoting"/> <extension module="org.jboss.as.sar"/> <extension module="org.jboss.as.security"/> <extension module="org.jboss.as.transactions"/> <extension module="org.jboss.as.webservices"/> <extension module="org.jboss.as.weld"/> <extension module="org.wildfly.extension.batch.jberet"/> <extension module="org.wildfly.extension.bean-validation"/> <extension module="org.wildfly.extension.io"/> <extension module="org.wildfly.extension.messaging-activemq"/> <extension module="org.wildfly.extension.request-controller"/> <extension module="org.wildfly.extension.security.manager"/> <extension module="org.wildfly.extension.undertow"/> </extensions> <management> <security-realms> <security-realm name="XXXXX-system-realm"> <authentication> <jaas name="XXXXX-login"/> </authentication> </security-realm> <security-realm name="ManagementRealm"> <authentication> <local default-user="$local" skip-group-loading="true"/> <properties path="mgmt-users.properties" relative-to="jboss.server.config.dir"/> </authentication> <authorization map-groups-to-roles="false"> <properties path="mgmt-groups.properties" relative-to="jboss.server.config.dir"/> </authorization> </security-realm> <security-realm name="ApplicationRealm"> <server-identities> <ssl> <keystore path="application.keystore" relative-to="jboss.server.config.dir" keystore-password="password" alias="server" key-password="password" generate-self-signed-certificate-host="localhost"/> </ssl> </server-identities> <authentication> <local default-user="$local" allowed-users="*" skip-group-loading="true"/> <properties path="application-users.properties" relative-to="jboss.server.config.dir"/> </authentication> <authorization> <properties path="application-roles.properties" relative-to="jboss.server.config.dir"/> </authorization> </security-realm> </security-realms> <audit-log> <formatters> <json-formatter name="json-formatter"/> </formatters> <handlers> <file-handler name="file" formatter="json-formatter" path="audit-log.log" relative-to="jboss.server.data.dir"/> </handlers> <logger log-boot="true" log-read-only="false" enabled="false"> <handlers> <handler name="file"/> </handlers> </logger> </audit-log> <management-interfaces> <http-interface security-realm="ManagementRealm" http-upgrade-enabled="true"> <socket-binding http="management-http"/> </http-interface> </management-interfaces> <access-control provider="simple"> <role-mapping> <role name="SuperUser"> <include> <user name="$local"/> </include> </role> </role-mapping> </access-control> </management> <profile> <subsystem xmlns="urn:jboss:domain:logging:3.0"> <some logging config> </subsystem> <subsystem xmlns="urn:jboss:domain:batch-jberet:1.0"> <default-job-repository name="in-memory"/> <default-thread-pool name="batch"/> <job-repository name="in-memory"> <in-memory/> </job-repository> <thread-pool name="batch"> <max-threads count="10"/> <keepalive-time time="30" unit="seconds"/> </thread-pool> </subsystem> <subsystem xmlns="urn:jboss:domain:bean-validation:1.0"/> <subsystem xmlns="urn:jboss:domain:datasources:4.0"> <datasources> <datasource jta="true" jndi-name="java:/XXXXXDS" pool-name="PostgreSQLPool" enabled="true" use-java-context="true" use-ccm="true"> <connection-url>jdbc:postgresql://localhost:5432/XXXXX</connection-url> <driver-class>org.postgresql.Driver</driver-class> <driver>postgresql-9.4.1209.jar</driver> <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation> <pool> <min-pool-size>10</min-pool-size> <max-pool-size>100</max-pool-size> <prefill>true</prefill> <use-strict-min>false</use-strict-min> <flush-strategy>FailingConnectionOnly</flush-strategy> </pool> <security> <user-name>XXXXX</user-name> <password>XXXXX</password> </security> </datasource> </datasources> </subsystem> <subsystem xmlns="urn:jboss:domain:deployment-scanner:2.0"> <deployment-scanner path="deployments" relative-to="jboss.server.base.dir" scan-interval="5000" runtime-failure-causes-rollback="${jboss.deployment.scanner.rollback.on.failure:false}"/> </subsystem> <subsystem xmlns="urn:jboss:domain:ee:4.0"> <spec-descriptor-property-replacement>false</spec-descriptor-property-replacement> <concurrent> <context-services> <context-service name="default" jndi-name="java:jboss/ee/concurrency/context/default" use-transaction-setup-provider="true"/> </context-services> <managed-thread-factories> <managed-thread-factory name="default" jndi-name="java:jboss/ee/concurrency/factory/default" context-service="default"/> </managed-thread-factories> <managed-executor-services> <managed-executor-service name="default" jndi-name="java:jboss/ee/concurrency/executor/default" context-service="default" hung-task-threshold="60000" keepalive-time="5000"/> </managed-executor-services> <managed-scheduled-executor-services> <managed-scheduled-executor-service name="default" jndi-name="java:jboss/ee/concurrency/scheduler/default" context-service="default" hung-task-threshold="60000" keepalive-time="3000"/> </managed-scheduled-executor-services> </concurrent> <default-bindings context-service="java:jboss/ee/concurrency/context/default" datasource="java:/XXXXXDS" jms-connection-factory="java:jboss/DefaultJMSConnectionFactory" managed-executor-service="java:jboss/ee/concurrency/executor/default" managed-scheduled-executor-service="java:jboss/ee/concurrency/scheduler/default" managed-thread-factory="java:jboss/ee/concurrency/factory/default"/> </subsystem> <subsystem xmlns="urn:jboss:domain:ejb3:4.0"> <session-bean> <stateless> <bean-instance-pool-ref pool-name="slsb-strict-max-pool"/> </stateless> <stateful default-access-timeout="5000" cache-ref="simple" passivation-disabled-cache-ref="simple"/> <singleton default-access-timeout="5000"/> </session-bean> <mdb> <resource-adapter-ref resource-adapter-name="${ejb.resource-adapter-name:activemq-ra.rar}"/> <bean-instance-pool-ref pool-name="mdb-strict-max-pool"/> </mdb> <pools> <bean-instance-pools> <strict-max-pool name="slsb-strict-max-pool" derive-size="from-worker-pools" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/> <strict-max-pool name="mdb-strict-max-pool" derive-size="from-cpu-count" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/> </bean-instance-pools> </pools> <caches> <cache name="simple"/> <cache name="distributable" passivation-store-ref="infinispan" aliases="passivating clustered"/> </caches> <passivation-stores> <passivation-store name="infinispan" cache-container="ejb" max-size="10000"/> </passivation-stores> <async thread-pool-name="default"/> <timer-service thread-pool-name="default" default-data-store="default-file-store"> <data-stores> <file-data-store name="default-file-store" path="timer-service-data" relative-to="jboss.server.data.dir"/> </data-stores> </timer-service> <remote connector-ref="http-remoting-connector" thread-pool-name="default"/> <thread-pools> <thread-pool name="default"> <max-threads count="10"/> <keepalive-time time="100" unit="milliseconds"/> </thread-pool> </thread-pools> <default-security-domain value="XXXXX-login"/> <default-missing-method-permissions-deny-access value="true"/> <log-system-exceptions value="true"/> </subsystem> <subsystem xmlns="urn:jboss:domain:io:1.1"> <worker name="default"/> <buffer-pool name="default"/> </subsystem> <subsystem xmlns="urn:jboss:domain:infinispan:4.0"> <cache-container name="server" default-cache="default" module="org.wildfly.clustering.server"> <local-cache name="default"> <transaction mode="BATCH"/> </local-cache> </cache-container> <cache-container name="web" default-cache="passivation" module="org.wildfly.clustering.web.infinispan"> <local-cache name="passivation"> <locking isolation="REPEATABLE_READ"/> <transaction mode="BATCH"/> <file-store passivation="true" purge="false"/> </local-cache> <local-cache name="persistent"> <locking isolation="REPEATABLE_READ"/> <transaction mode="BATCH"/> <file-store passivation="false" purge="false"/> </local-cache> <local-cache name="concurrent"> <file-store passivation="true" purge="false"/> </local-cache> </cache-container> <cache-container name="ejb" aliases="sfsb" default-cache="passivation" module="org.wildfly.clustering.ejb.infinispan"> <local-cache name="passivation"> <locking isolation="REPEATABLE_READ"/> <transaction mode="BATCH"/> <file-store passivation="true" purge="false"/> </local-cache> <local-cache name="persistent"> <locking isolation="REPEATABLE_READ"/> <transaction mode="BATCH"/> <file-store passivation="false" purge="false"/> </local-cache> </cache-container> <cache-container name="hibernate" default-cache="local-query" module="org.hibernate.infinispan"> <local-cache name="entity"> <transaction mode="NON_XA"/> <eviction strategy="LRU" max-entries="10000"/> <expiration max-idle="100000"/> </local-cache> <local-cache name="local-query"> <eviction strategy="LRU" max-entries="10000"/> <expiration max-idle="100000"/> </local-cache> <local-cache name="timestamps"/> </cache-container> </subsystem> <subsystem xmlns="urn:jboss:domain:jaxrs:1.0"/> <subsystem xmlns="urn:jboss:domain:jca:4.0"> <archive-validation enabled="true" fail-on-error="true" fail-on-warn="false"/> <bean-validation enabled="true"/> <default-workmanager> <short-running-threads> <core-threads count="50"/> <queue-length count="50"/> <max-threads count="50"/> <keepalive-time time="10" unit="seconds"/> </short-running-threads> <long-running-threads> <core-threads count="50"/> <queue-length count="50"/> <max-threads count="50"/> <keepalive-time time="10" unit="seconds"/> </long-running-threads> </default-workmanager> <cached-connection-manager/> </subsystem> <subsystem xmlns="urn:jboss:domain:jdr:1.0"/> <subsystem xmlns="urn:jboss:domain:jmx:1.3"> <expose-resolved-model/> <expose-expression-model/> <remoting-connector/> </subsystem> <subsystem xmlns="urn:jboss:domain:jpa:1.1"> <jpa default-datasource="" default-extended-persistence-inheritance="DEEP"/> </subsystem> <subsystem xmlns="urn:jboss:domain:jsf:1.0"/> <subsystem xmlns="urn:jboss:domain:mail:2.0"> <mail-session name="default" jndi-name="java:jboss/mail/Default"> <smtp-server outbound-socket-binding-ref="mail-smtp"/> </mail-session> </subsystem> <subsystem xmlns="urn:jboss:domain:naming:2.0"> <remote-naming/> </subsystem> <subsystem xmlns="urn:jboss:domain:pojo:1.0"/> <subsystem xmlns="urn:jboss:domain:remoting:3.0"> <endpoint/> <http-connector name="http-remoting-connector" connector-ref="default" security-realm="XXXXX-system-realm"/> </subsystem> <subsystem xmlns="urn:jboss:domain:resource-adapters:4.0"/> <subsystem xmlns="urn:jboss:domain:request-controller:1.0"/> <subsystem xmlns="urn:jboss:domain:sar:1.0"/> <subsystem xmlns="urn:jboss:domain:security-manager:1.0"> <deployment-permissions> <maximum-set> <permission class="java.security.AllPermission"/> </maximum-set> </deployment-permissions> </subsystem> <subsystem xmlns="urn:jboss:domain:security:1.2"> <security-domains> <security-domain name="XXXXX-login" cache-type="default"> <authentication> <login-module code="Remoting" flag="optional"> <module-option name="password-stacking" value="useFirstPass"/> </login-module> <login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule" flag="required"> <module-option name="hashAlgorithm" value="MD5"/> <module-option name="hashEncoding" value="hex"/> <module-option name="dsJndiName" value="java:/XXXXXDS"/> <module-option name="principalsQuery" value="SELECT u.password AS PASSWD FROM XXXXX"/> <module-option name="rolesQuery" value="SELECT DISTINCT f.name AS ROLEID, 'Roles' AS Roles FROM XXXXX=?"/> <module-option name="unauthenticatedIdentity" value="guest"/> </login-module> </authentication> </security-domain> <security-domain name="other" cache-type="default"> <authentication> <login-module code="Remoting" flag="optional"> <module-option name="password-stacking" value="useFirstPass"/> </login-module> <login-module code="RealmDirect" flag="required"> <module-option name="password-stacking" value="useFirstPass"/> </login-module> </authentication> </security-domain> <security-domain name="jboss-web-policy" cache-type="default"> <authorization> <policy-module code="Delegating" flag="required"/> </authorization> </security-domain> <security-domain name="jboss-ejb-policy" cache-type="default"> <authorization> <policy-module code="Delegating" flag="required"/> </authorization> </security-domain> <security-domain name="jaspitest" cache-type="default"> <authentication-jaspi> <login-module-stack name="dummy"> <login-module code="Dummy" flag="optional"/> </login-module-stack> <auth-module code="Dummy"/> </authentication-jaspi> </security-domain> </security-domains> </subsystem> <subsystem xmlns="urn:jboss:domain:transactions:3.0"> <core-environment> <process-id> <uuid/> </process-id> </core-environment> <recovery-environment socket-binding="txn-recovery-environment" status-socket-binding="txn-status-manager"/> </subsystem> <subsystem xmlns="urn:jboss:domain:undertow:3.1"> <buffer-cache name="default"/> <server name="default-server"> <http-listener name="default" socket-binding="http" redirect-socket="https" enable-http2="true"/> <host name="default-host" alias="localhost"> <location name="/" handler="welcome-content"/> <filter-ref name="server-header"/> <filter-ref name="x-powered-by-header"/> </host> </server> <servlet-container name="default"> <jsp-config/> <websockets/> </servlet-container> <handlers> <file name="welcome-content" path="${jboss.home.dir}/welcome-content"/> </handlers> <filters> <response-header name="server-header" header-name="Server" header-value="WildFly/10"/> <response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/> </filters> </subsystem> <subsystem xmlns="urn:jboss:domain:webservices:2.0"> <wsdl-host>${jboss.bind.address:127.0.0.1}</wsdl-host> <endpoint-config name="Standard-Endpoint-Config"/> <endpoint-config name="Recording-Endpoint-Config"> <pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM"> <handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/> </pre-handler-chain> </endpoint-config> <client-config name="Standard-Client-Config"/> </subsystem> <subsystem xmlns="urn:jboss:domain:weld:3.0"/> <subsystem xmlns="urn:jboss:domain:messaging-activemq:1.0"> <server name="default"> <security-setting name="#"> <role name="guest" send="true" consume="true" create-non-durable-queue="true" delete-non-durable-queue="true"/> </security-setting> <address-setting name="#" dead-letter-address="jms.queue.DLQ" expiry-address="jms.queue.ExpiryQueue" redelivery-delay="5000" max-delivery-attempts="3" max-size-bytes="10485760" page-size-bytes="2097152" message-counter-history-day-limit="10"/> <in-vm-connector name="in-vm" server-id="0"/> <in-vm-acceptor name="in-vm" server-id="0"/> <jms-queue name="ExpiryQueue" entries="java:/jms/queue/ExpiryQueue"/> <jms-queue name="DLQ" entries="java:/jms/queue/DLQ"/> <pooled-connection-factory name="activemq-ra" entries="java:/JmsXA java:jboss/DefaultJMSConnectionFactory" connectors="in-vm" transaction="xa"/> </server> </subsystem> </profile> <interfaces> <interface name="management"> <inet-address value="${jboss.bind.address.management:127.0.0.1}"/> </interface> <interface name="public"> <inet-address value="${jboss.bind.address:127.0.0.1}"/> </interface> </interfaces> <socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}"> <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/> <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9993}"/> <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/> <socket-binding name="http" port="${jboss.http.port:8082}"/> <socket-binding name="https" port="${jboss.https.port:8443}"/> <socket-binding name="txn-recovery-environment" port="4712"/> <socket-binding name="txn-status-manager" port="4713"/> <outbound-socket-binding name="mail-smtp"> <remote-destination host="localhost" port="25"/> </outbound-socket-binding> </socket-binding-group> 

And this is persistence.xml

  <?xml version="1.0" encoding="UTF-8"?> <persistence> <persistence-unit name="XXX"> <jta-data-source>java:/XXXDS</jta-data-source> <shared-cache-mode>ENABLE_SELECTIVE</shared-cache-mode> <!--<shared-cache-mode>ALL</shared-cache-mode>--> <class>XXXXX</class> <properties> <property name="hibernate.show_sql" value="false"/> <property name="hibernate.format_sql" value="true"/> <property name="hibernate.use_sql_comments" value="false"/> <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/> <property name="hibernate.id.new_generator_mappings" value="false"/> <property name="hibernate.default_batch_fetch_size" value="100"/> <property name="hibernate.cache.use_second_level_cache" value="true"/> <property name="hibernate.cache.region.factory_class" value="org.hibernate.cache.infinispan.InfinispanRegionFactory"/> <property name="hibernate.transaction.factory_class" value="org.hibernate.transaction.CMTTransactionFactory"/> <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTransactionManagerLookup"/> <property name="hibernate.cache.infinispan.entity.eviction.strategy" value="LRU"/> <property name="hibernate.cache.infinispan.entity.eviction.wake_up_interval" value="1000"/> <property name="hibernate.cache.infinispan.entity.eviction.max_entries" value="10000"/> <property name="hibernate.cache.infinispan.entity.expiration.lifespan" value="-1"/> <property name="hibernate.cache.infinispan.entity.expiration.max_idle" value="10000"/> </properties> </persistence-unit> </persistence> 

Any clues?

Regards, Manuel

+5
source share
2 answers

I think there is a port conflict, not a cluster.

In your standalone.xml, socket-binding-group, instead of defining, for example, http port 8082, you can define:

 port-offset="${jboss.socket.binding.port-offset:200}" 

and restore the default ports in http and other services. After that, the http port will be 8080 + 200 = 8280, and the same for other sockets.

+1
source

There are several examples of standalone.xml in the configuration folder. Normal standalone.xml does not include the modules needed for endless clustering.

A non-clustered basic configuration defines the infinity of caches as a โ€œlocal cacheโ€ (comparison: replicated cache or distributed cache).

If you do not require additional features included in stand-alone ha or stand-alone half ha, then simply revert to the original version.

For more information about setting up individual subsystems, see: https://docs.jboss.org/author/display/WFLY10/Subsystem+configuration

0
source

Source: https://habr.com/ru/post/1266594/


All Articles