jboss - Combine Embedded and Server as Clustered Infinispan -


as proof of concept, try build infinispan cluster existing application starts embedded cache , 1 or more standalone infinispan servers.

same asked @ : https://developer.jboss.org/thread/261096 jboss forum question reference

the reasosing behind is, want show, there way of zero-configuration automatic creation of cluster starting freshly downloaded infinispan standalone servers. application runs embedded cache automatically "joined" new nodes.

i'm using default configuration infinispan , jgroups (see below).

the effect is, 2 or more of applications embedded cache "see each other" , 2 or more standalone infinispan servers see each other. none of nodes "see" standalone nodes , don't see nodes.

i use infinispan 7.2.3.

my embedded configuration like-

builder = new configurationbuilder();     globalconfigurationbuilder globalbuilder = globalconfigurationbuilder.defaultclusteredbuilder();     if (enablediskpersistance)     {         builder.jmxstatistics().enable().persistence().passivation(true).addsinglefilestore().location("data/cachedata").async().threadpoolsize(15).flushlocktimeout(15000).transaction().transactionmode(transactionmode.transactional);         builder.eviction().strategy(evictionstrategy.lirs).maxentries(10000l).expiration().maxidle(-1, timeunit.seconds);         builder.clustering().cachemode(cachemode.dist_async).l1().enable();     }     else     {         builder.jmxstatistics().enable().transaction().transactionmode(transactionmode.transactional);         builder.clustering().cachemode(cachemode.dist_async).hash().numowners(2).numsegments(20).l1().enable().compatibility().enable().locking().lockacquisitiontimeout(30000).concurrencylevel(1000);     }      globalbuilder.transport().clustername("clustered").nodename( "embedednode" )     .addproperty( "configurationfile", "jgroups.xml").globaljmxstatistics().enable().allowduplicatedomains(true).jmxdomain("clearinsight").build();     cachemanager = new defaultcachemanager(globalbuilder.build(),builder.build());      org.infinispan.cache<string, object> cache = cachemanager.getcache( "default" ); 

and jgroups.xml -

 <config xmlns="urn:org:jgroups"         xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"         xsi:schemalocation="urn:org:jgroups file:schema/jgroups-3.2.xsd">      <udp      mcast_addr="${jgroups.udp.mcast_addr:234.99.54.14}"      mcast_port="${jgroups.udp.mcast_port:45688}"      tos="8"      ucast_recv_buf_size="20m"      ucast_send_buf_size="640k"      mcast_recv_buf_size="25m"      mcast_send_buf_size="640k"      max_bundle_size="31k"      ip_ttl="${jgroups.udp.ip_ttl:2}"      enable_diagnostics="false"      bundler_type="sender-sends-with-timer"       thread_naming_pattern="pl"       thread_pool.enabled="true"      thread_pool.min_threads="2"      thread_pool.max_threads="30"      thread_pool.keep_alive_time="60000"      thread_pool.queue_enabled="true"      thread_pool.queue_max_size="100"      thread_pool.rejection_policy="discard"       oob_thread_pool.enabled="true"      oob_thread_pool.min_threads="2"      oob_thread_pool.max_threads="30"      oob_thread_pool.keep_alive_time="60000"      oob_thread_pool.queue_enabled="false"      oob_thread_pool.queue_max_size="100"      oob_thread_pool.rejection_policy="discard"       internal_thread_pool.enabled="true"      internal_thread_pool.min_threads="2"      internal_thread_pool.max_threads="10"      internal_thread_pool.keep_alive_time="60000"      internal_thread_pool.queue_enabled="true"      internal_thread_pool.queue_max_size="100"      internal_thread_pool.rejection_policy="discard"      />      <ping timeout="3000" num_initial_members="2"/>     <merge2 max_interval="30000" min_interval="10000"/>      <fd_sock/>     <fd_all timeout="15000" interval="3000"/>     <verify_suspect timeout="1500"/>      <pbcast.nakack2                 xmit_interval="1000"                 xmit_table_num_rows="100"                 xmit_table_msgs_per_row="10000"                 xmit_table_max_compaction_time="10000"                 max_msg_batch_size="100"/>     <unicast3           xmit_interval="500"           xmit_table_num_rows="20"           xmit_table_msgs_per_row="10000"           xmit_table_max_compaction_time="10000"           max_msg_batch_size="100"           conn_expiry_timeout="0"/>      <pbcast.stable stability_delay="500" desired_avg_gossip="5000" max_bytes="1m"/>     <pbcast.gms print_local_addr="false" join_timeout="3000" view_bundling="true"/>     <tom.toa/> <!-- toa needed total order transactions-->      <ufc max_credits="2m" min_threshold="0.40"/>     <mfc max_credits="2m" min_threshold="0.40"/>     <frag2 frag_size="30k" />     <rsvp timeout="60000" resend_interval="500" ack_on_delivery="false" /> </config> 

and cluster.xml -

<server xmlns="urn:jboss:domain:2.1"> <extensions>     <extension module="org.infinispan.server.endpoint"/>     <extension module="org.jboss.as.clustering.infinispan"/>     <extension module="org.jboss.as.clustering.jgroups"/>     <extension module="org.jboss.as.connector"/>     <extension module="org.jboss.as.deployment-scanner"/>     <extension module="org.jboss.as.jdr"/>     <extension module="org.jboss.as.jmx"/>     <extension module="org.jboss.as.logging"/>     <extension module="org.jboss.as.modcluster"/>     <extension module="org.jboss.as.naming"/>     <extension module="org.jboss.as.remoting"/>     <extension module="org.jboss.as.security"/>     <extension module="org.jboss.as.threads"/>     <extension module="org.jboss.as.transactions"/>     <extension module="org.wildfly.extension.io"/> </extensions> <management>     <security-realms>         <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">             <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" relative-to="jboss.server.data.dir" path="audit-log.log"/>         </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:2.0">         <console-handler name="console">             <level name="info"/>             <formatter>                 <named-formatter name="color-pattern"/>             </formatter>         </console-handler>         <periodic-rotating-file-handler name="file" autoflush="true">             <formatter>                 <named-formatter name="pattern"/>             </formatter>             <file relative-to="jboss.server.log.dir" path="server.log"/>             <suffix value=".yyyy-mm-dd"/>             <append value="true"/>         </periodic-rotating-file-handler>         <logger category="com.arjuna">             <level name="warn"/>         </logger>         <logger category="org.apache.tomcat.util.modeler">             <level name="warn"/>         </logger>         <logger category="org.jboss.as.config">             <level name="debug"/>         </logger>         <logger category="sun.rmi">             <level name="warn"/>         </logger>         <logger category="jacorb">             <level name="warn"/>         </logger>         <logger category="jacorb.config">             <level name="error"/>         </logger>         <root-logger>             <level name="info"/>             <handlers>                 <handler name="console"/>                 <handler name="file"/>             </handlers>         </root-logger>         <formatter name="pattern">             <pattern-formatter pattern="%d{yyyy-mm-dd hh:mm:ss,sss} %-5p [%c] (%t) %s%e%n"/>         </formatter>         <formatter name="color-pattern">             <pattern-formatter pattern="%k{level}%d{hh:mm:ss,sss} %-5p [%c] (%t) %s%e%n"/>         </formatter>     </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:infinispan:server:endpoint:7.2">         <hotrod-connector socket-binding="hotrod" cache-container="clustered">             <topology-state-transfer lazy-retrieval="false" lock-timeout="1000" replication-timeout="5000"/>         </hotrod-connector>         <memcached-connector socket-binding="memcached" cache-container="clustered"/>         <rest-connector socket-binding="rest" cache-container="clustered" security-domain="other" auth-method="basic"/>         <websocket-connector socket-binding="websocket" cache-container="clustered"/>     </subsystem>     <subsystem xmlns="urn:jboss:domain:datasources:2.0">         <datasources/>     </subsystem>     <subsystem xmlns="urn:infinispan:server:core:7.2" default-cache-container="clustered">         <cache-container name="clustered" default-cache="default" statistics="true">             <transport executor="infinispan-transport" lock-timeout="60000"/>             <distributed-cache name="default" mode="sync" segments="20" owners="2" remote-timeout="30000" start="eager">                 <locking acquire-timeout="30000" concurrency-level="1000" striping="false"/>                 <transaction mode="none"/>             </distributed-cache>             <distributed-cache name="memcachedcache" mode="sync" segments="20" owners="2" remote-timeout="30000" start="eager">                 <locking acquire-timeout="30000" concurrency-level="1000" striping="false"/>                 <transaction mode="none"/>             </distributed-cache>             <distributed-cache name="namedcache" mode="sync" start="eager"/>             <distributed-cache name="transactionalcache" mode="sync" start="eager">                 <transaction mode="non_xa" locking="pessimistic"/>             </distributed-cache>         </cache-container>         <cache-container name="security"/>     </subsystem>     <subsystem xmlns="urn:jboss:domain:io:1.1">         <worker name="default"/>         <buffer-pool name="default"/>     </subsystem>     <subsystem xmlns="urn:jboss:domain:jca:2.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:infinispan:server:jgroups:7.0" default-stack="${jboss.default.jgroups.stack:udp}">         <stack name="udp">             <transport type="udp" socket-binding="jgroups-udp"/>             <protocol type="ping"/>             <protocol type="merge3"/>             <protocol type="fd_sock" socket-binding="jgroups-udp-fd"/>             <protocol type="fd_all"/>             <protocol type="verify_suspect"/>             <protocol type="pbcast.nakack2"/>             <protocol type="unicast3"/>             <protocol type="pbcast.stable"/>             <protocol type="pbcast.gms"/>             <protocol type="ufc"/>             <protocol type="mfc"/>             <protocol type="frag2"/>         </stack>         <stack name="tcp">             <transport type="tcp" socket-binding="jgroups-tcp"/>             <protocol type="mping" socket-binding="jgroups-mping"/>             <protocol type="merge3"/>             <protocol type="fd_sock" socket-binding="jgroups-tcp-fd"/>             <protocol type="fd_all"/>             <protocol type="verify_suspect"/>             <protocol type="pbcast.nakack2">                 <property name="use_mcast_xmit">false</property>             </protocol>             <protocol type="unicast3"/>             <protocol type="pbcast.stable"/>             <protocol type="pbcast.gms"/>             <protocol type="mfc"/>             <protocol type="frag2"/>         </stack>         <stack name="s3">             <transport type="tcp" socket-binding="jgroups-tcp"/>             <protocol type="s3_ping">                 <property name="location">${jgroups.s3.bucket:}</property>                 <property name="access_key">${jgroups.s3.access_key:}</property>                 <property name="secret_access_key">${jgroups.s3.secret_access_key:}</property>                 <property name="pre_signed_delete_url">${jgroups.s3.pre_signed_delete_url:}</property>                 <property name="pre_signed_put_url">${jgroups.s3.pre_signed_put_url:}</property>                 <property name="prefix">${jgroups.s3.prefix:}</property>             </protocol>             <protocol type="merge3"/>             <protocol type="fd_sock" socket-binding="jgroups-tcp-fd"/>             <protocol type="fd_all"/>             <protocol type="verify_suspect"/>             <protocol type="pbcast.nakack2">                 <property name="use_mcast_xmit">false</property>             </protocol>             <protocol type="unicast3"/>             <protocol type="pbcast.stable"/>             <protocol type="pbcast.gms"/>             <protocol type="mfc"/>             <protocol type="frag2"/>         </stack>         <stack name="google">             <transport type="tcp" socket-binding="jgroups-tcp"/>             <protocol type="google_ping">                 <property name="location">${jgroups.google.bucket:}</property>                 <property name="access_key">${jgroups.google.access_key:}</property>                 <property name="secret_access_key">${jgroups.google.secret_access_key:}</property>             </protocol>             <protocol type="merge3"/>             <protocol type="fd_sock" socket-binding="jgroups-tcp-fd"/>             <protocol type="fd_all"/>             <protocol type="verify_suspect"/>             <protocol type="pbcast.nakack2">                 <property name="use_mcast_xmit">false</property>             </protocol>             <protocol type="unicast3"/>             <protocol type="pbcast.stable"/>             <protocol type="pbcast.gms"/>             <protocol type="mfc"/>             <protocol type="frag2"/>         </stack>     </subsystem>     <subsystem xmlns="urn:jboss:domain:jmx:1.3">         <expose-resolved-model/>         <expose-expression-model/>         <remoting-connector/>     </subsystem>     <subsystem xmlns="urn:jboss:domain:modcluster:1.2">         <mod-cluster-config advertise-socket="modcluster" connector="ajp">             <dynamic-load-provider>                 <load-metric type="cpu"/>             </dynamic-load-provider>         </mod-cluster-config>     </subsystem>     <subsystem xmlns="urn:jboss:domain:naming:2.0">         <remote-naming/>     </subsystem>     <subsystem xmlns="urn:jboss:domain:remoting:2.0">         <endpoint worker="default"/>         <http-connector name="http-remoting-connector" connector-ref="default" security-realm="applicationrealm"/>     </subsystem>     <subsystem xmlns="urn:jboss:domain:security:1.2">         <security-domains>             <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-domains>     </subsystem>     <subsystem xmlns="urn:jboss:domain:threads:1.1">         <thread-factory name="infinispan-factory" group-name="infinispan" priority="5" thread-name-pattern="%g %f-%t"/>         <unbounded-queue-thread-pool name="infinispan-transport">             <max-threads count="25"/>             <keepalive-time time="0" unit="milliseconds"/>             <thread-factory name="infinispan-factory"/>         </unbounded-queue-thread-pool>     </subsystem>     <subsystem xmlns="urn:jboss:domain:transactions:2.0">         <core-environment>             <process-id>                 <uuid/>             </process-id>         </core-environment>         <recovery-environment socket-binding="txn-recovery-environment" status-socket-binding="txn-status-manager"/>     </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="hotrod" port="11222"/>     <socket-binding name="jgroups-mping" port="0" multicast-address="${jboss.default.multicast.address:234.99.54.14}" multicast-port="45700"/>     <socket-binding name="jgroups-tcp" port="7600"/>     <socket-binding name="jgroups-tcp-fd" port="57600"/>     <socket-binding name="jgroups-udp" port="55200" multicast-address="${jboss.default.multicast.address:234.99.54.14}" multicast-port="45688"/>     <socket-binding name="jgroups-udp-fd" port="54200"/>     <socket-binding name="memcached" port="11211"/>     <socket-binding name="modcluster" port="0" multicast-address="224.0.1.115" multicast-port="23364"/>     <socket-binding name="rest" port="8080"/>     <socket-binding name="txn-recovery-environment" port="4712"/>     <socket-binding name="txn-status-manager" port="4713"/>     <socket-binding name="websocket" port="8181"/> </socket-binding-group> 

i able connect both servers getting warning log stack trace -

2015-07-08 11:02:52,463 error [org.jgroups.blocks.requestcorrelator] (oob-4,shared=udp) failed unmarshalling buffer return value: java.io.streamcorruptedexception: unexpected byte found when reading object: 0 @ org.jboss.marshalling.river.riverunmarshaller.doreadobject(riverunmarshaller.java:754) [jboss-marshalling-osgi-1.4.10.final.jar:1.4.10.final] @ org.jboss.marshalling.river.riverunmarshaller.doreadobject(riverunmarshaller.java:209) [jboss-marshalling-osgi-1.4.10.final.jar:1.4.10.final] @ org.jboss.marshalling.abstractobjectinput.readobject(abstractobjectinput.java:41) [jboss-marshalling-osgi-1.4.10.final.jar:1.4.10.final] @ org.jboss.marshalling.modularclassresolver.resolveclass(modularclassresolver.java:95) [jboss-marshalling-osgi-1.4.10.final.jar:1.4.10.final] @ org.jboss.marshalling.river.riverunmarshaller.doreadclassdescriptor(riverunmarshaller.java:948) [jboss-marshalling-osgi-1.4.10.final.jar:1.4.10.final] @ org.jboss.marshalling.river.riverunmarshaller.doreadnewobject(riverunmarshaller.java:1255) [jboss-marshalling-osgi-1.4.10.final.jar:1.4.10.final] @ org.jboss.marshalling.river.riverunmarshaller.doreadobject(riverunmarshaller.java:276) [jboss-marshalling-osgi-1.4.10.final.jar:1.4.10.final] @ org.jboss.marshalling.river.riverunmarshaller.doreadobject(riverunmarshaller.java:209) [jboss-marshalling-osgi-1.4.10.final.jar:1.4.10.final] @ org.jboss.marshalling.abstractobjectinput.readobject(abstractobjectinput.java:41) [jboss-marshalling-osgi-1.4.10.final.jar:1.4.10.final] @ org.infinispan.distribution.ch.impl.replicatedconsistenthash$externalizer.doreadobject(replicatedconsistenthash.java:327) [infinispan-core.jar:7.2.3.final] @ org.infinispan.distribution.ch.impl.replicatedconsistenthash$externalizer.doreadobject(replicatedconsistenthash.java:314) [infinispan-core.jar:7.2.3.final] @ org.infinispan.commons.marshall.instancereusingadvancedexternalizer.readobject(instancereusingadvancedexternalizer.java:102) [infinispan-commons.jar:7.2.3.final] @ org.infinispan.marshall.core.externalizertable$externalizeradapter.readobject(externalizertable.java:436) [infinispan-core.jar:7.2.3.final] @ org.infinispan.marshall.core.externalizertable.readobject(externalizertable.java:227) [infinispan-core.jar:7.2.3.final] @ org.infinispan.marshall.core.jbossmarshaller$externalizertableproxy.readobject(jbossmarshaller.java:153) [infinispan-core.jar:7.2.3.final] @ org.jboss.marshalling.river.riverunmarshaller.doreadobject(riverunmarshaller.java:354) [jboss-marshalling-osgi-1.4.10.final.jar:1.4.10.final] @ org.jboss.marshalling.river.riverunmarshaller.doreadobject(riverunmarshaller.java:209) [jboss-marshalling-osgi-1.4.10.final.jar:1.4.10.final] @ org.jboss.marshalling.abstractobjectinput.readobject(abstractobjectinput.java:41) [jboss-marshalling-osgi-1.4.10.final.jar:1.4.10.final] @ org.infinispan.topology.cachetopology$externalizer.doreadobject(cachetopology.java:201) [infinispan-core.jar:7.2.3.final] @ org.infinispan.topology.cachetopology$externalizer.doreadobject(cachetopology.java:186) [infinispan-core.jar:7.2.3.final] @ org.infinispan.commons.marshall.instancereusingadvancedexternalizer.readobject(instancereusingadvancedexternalizer.java:102) [infinispan-commons.jar:7.2.3.final] @ org.infinispan.marshall.core.externalizertable$externalizeradapter.readobject(externalizertable.java:436) [infinispan-core.jar:7.2.3.final] @ org.infinispan.marshall.core.externalizertable.readobject(externalizertable.java:227) [infinispan-core.jar:7.2.3.final] @ org.infinispan.marshall.core.jbossmarshaller$externalizertableproxy.readobject(jbossmarshaller.java:153) [infinispan-core.jar:7.2.3.final] 


Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -

How to provide Authorization & Authentication using Asp.net, C#? -