AttributeNotFoundException when using ServiceBinding to chan
mfrost Jun 29, 2004 10:58 AMHello,
I am trying to use the ServiceBindingManager to change the mcast_addr setting. We use this service successfully to allow us to run more than 1 JBoss node on a machine but also want to do this so that we can run independent clusters. Ideally I only want 1 version of cluster-service.xml and use ServiceBinding to change the mcast_addr value.
I am using the XSLTConfigDelegate to do this. I supply the cluster-service.xml extract along with my service-config.
I get the following exception:
14:25:25,678 INFO [MainDeployer] Starting deployment of package: file:/J:/3rdparty_javadev_vob/jboss/server/ro1/deploy/cluster-service.xml 14:25:25,819 WARN [ServiceConfigurator] Failed to apply service binding override javax.management.AttributeNotFoundException: Readable attribute 'PartitionConfig' not found at org.jboss.mx.capability.ReflectedMBeanDispatcher.getAttribute(ReflectedMBeanDispatcher.java:136) at org.jboss.mx.server.MBeanServerImpl.getAttribute(MBeanServerImpl.java:453) at org.jboss.services.binding.XSLTConfigDelegate.applyConfig(XSLTConfigDelegate.java:73) at org.jboss.services.binding.ServiceBindingManager.applyServiceConfig(S
It states that PartitionConfig is not readable.
When I look at my DefaultPartition MBean through jmx-console it shows that PartitionConfig is WRITE-ONLY. Is there a reason for this? Could this be causing my problem?
Many thanks in advance.
Regards
mark
CLUSTER XML
<!-- ==================================================================== -->
<!-- Cluster Partition: defines cluster -->
<!-- ==================================================================== -->
<mbean code="org.jboss.ha.framework.server.ClusterPartition"
name="jboss:service=DefaultPartition">
<attribute name="PartitionConfig">
<Config>
<!-- UDP: if you have a multihomed machine,
set the bind_addr attribute to the appropriate NIC IP address -->
<!-- UDP: On Windows machines, because of the media sense feature
being broken with multicast (even after disabling media sense)
set the loopback attribute to true -->
<!--<UDP mcast_addr="${uk.co.hemscott.UDP.mcast_addr}" mcast_port="45566" -->
<UDP mcast_addr="228.1.2.5" mcast_port="45566"
ip_ttl="64" ip_mcast="true"
mcast_send_buf_size="150000" mcast_recv_buf_size="80000"
ucast_send_buf_size="150000" ucast_recv_buf_size="80000"
loopback="false" />
<PING timeout="2000" num_initial_members="3"
up_thread="true" down_thread="true" />
<MERGE2 min_interval="5000" max_interval="10000" />
<FD shun="true" up_thread="true" down_thread="true"
timeout="2500" max_tries="5" />
<VERIFY_SUSPECT timeout="3000" num_msgs="3"
up_thread="true" down_thread="true" />
<pbcast.NAKACK gc_lag="50" retransmit_timeout="300,600,1200,2400,4800"
up_thread="true" down_thread="true" />
<pbcast.STABLE desired_avg_gossip="20000"
up_thread="true" down_thread="true" />
<UNICAST timeout="5000" window_size="100" min_threshold="10"
down_thread="true" />
<FRAG frag_size="8192"
down_thread="true" up_thread="true" />
<pbcast.GMS join_timeout="5000" join_retry_timeout="2000"
shun="true" print_local_addr="true" />
<pbcast.STATE_TRANSFER up_thread="true" down_thread="true" />
</Config>
</attribute>
<!-- Name of the partition being built -->
<attribute name="PartitionName">DefaultPartition</attribute>
<!-- Determine if deadlock detection is enabled -->
<attribute name="DeadlockDetection">False</attribute>
<!-- The JGroups protocol configuration -->
</mbean>
SERVICE BINDING XML
<service-config name="jboss:service=DefaultPartition"
delegateClass="org.jboss.services.binding.XSLTConfigDelegate"
>
<delegate-config>
<xslt-config configName="PartitionConfig"><![CDATA[
<xsl:stylesheet
xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'>
<xsl:output method="xml" />
<!--<xsl:param name="port"/>
<xsl:variable name="portAJP" select="$port - 71"/>-->
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match = "UDP">
<UDP>
<xsl:for-each select="@*">
<xsl:choose>
<xsl:when test="(name() = 'mcast_addr'">
<!--<xsl:attribute name="mcast_addr"><xsl:value-of select="$port"/></xsl:attribute>-->
<xsl:attribute name="mcast_addr">228.1.2.4</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="{name()}"><xsl:value-of select="." /></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</UDP>
</xsl:template>
<xsl:template match="*|@*">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
]]>
</xslt-config>
</delegate-config>
<!--<binding port="8180" />-->
</service-config>