Environment:

Jboss 4.2.2
Jboss Messaging 1.4.0 SP3
Jdk 1.5.0_06
Windows XP

Two Jboss servers running on different hosts.  No clustering is used for Jboss 
or Jboss Messaging.  Server1 has a topic deployed, topic\securityReload.  
Server two does not.

Use case:

A message may be published from either Server1 or Server2 to 
topic\securityReload.  If the message originates from Server1 message gets 
consumed successfully.  If the message originates from Server2 no exceptions 
are observed on either server but message never gets through.

I have a stand-alone Java client that is able to send/receive messages 
successfully to two different queues deployed on Server1.

Why would a JMS client running in another instance of Jboss AS have trouble 
publishing to a topic on a remote Jboss AS?

Configuration files follow:

twia-destinations-service.xml:

  | <server>
  |   <!-- Destination without a configured SecurityManager or without a 
  |        a SecurityConf will default to role guest with read=true, write=true,
  |        create=false.
  |   -->
  |   
  |    <mbean code="org.jboss.jms.server.destination.QueueService"
  |       name="jboss.messaging.destination:service=Queue,name=testQueue"
  |       xmbean-dd="xmdesc/Queue-xmbean.xml">
  |       <depends 
optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
  |       <depends>jboss.messaging:service=PostOffice</depends>
  |       <attribute name="SecurityConfig">
  |          <security>
  |             <role name="guest" read="true" write="true"/>
  |             <role name="publisher" read="true" write="true" create="false"/>
  |             <role name="noacc" read="false" write="false" create="false"/>
  |          </security>
  |       </attribute>
  |    </mbean>
  | 
  |   <!-- reload destination is hosted on this server so this section is 
needed -->
  |    <mbean code="org.jboss.jms.server.destination.TopicService"
  |       name="jboss.messaging.destination:service=Topic,name=securityReload"
  |       xmbean-dd="xmdesc/Topic-xmbean.xml">
  |       <depends 
optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
  |       <depends>jboss.messaging:service=PostOffice</depends>
  |    </mbean>
  |   
  |   
  |    <mbean code="org.jboss.jms.server.destination.QueueService"
  |       name="jboss.messaging.destination:service=Queue,name=claimBatch"
  |       xmbean-dd="xmdesc/Queue-xmbean.xml">
  |       <depends 
optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
  |       <depends>jboss.messaging:service=PostOffice</depends>
  |    </mbean>
  | 
  |    <mbean code="org.jboss.jms.server.destination.QueueService"
  |       
name="jboss.messaging.destination:service=Queue,name=taskActionExecute"
  |       xmbean-dd="xmdesc/Queue-xmbean.xml">
  |       <depends 
optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
  |       <depends>jboss.messaging:service=PostOffice</depends>
  |    </mbean>
  | 
  |    <mbean code="org.jboss.jms.server.destination.QueueService"
  |       name="jboss.messaging.destination:service=Queue,name=requestReply"
  |       xmbean-dd="xmdesc/Queue-xmbean.xml">
  |       <depends 
optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
  |       <depends>jboss.messaging:service=PostOffice</depends>
  |    </mbean>
  | 
  | </server>
  | 

jms-ds.xml:

  | <connection-factories>
  |  
  |   <!-- ==================================================================== 
-->
  |   <!-- JMS Stuff                                                            
-->
  |   <!-- ==================================================================== 
-->
  | 
  |   <!-- The JMS provider loader -->
  |   <mbean code="org.jboss.jms.jndi.JMSProviderLoader"
  |      name="jboss.messaging:service=JMSProviderLoader,name=JMSProvider">
  |     <attribute name="ProviderName">DefaultJMSProvider</attribute>
  |     <attribute name="ProviderAdapterClass">
  |       org.jboss.jms.jndi.JNDIProviderAdapter
  |     </attribute>
  |     <!-- The combined connection factory -->
  |     <attribute name="FactoryRef">java:/XAConnectionFactory</attribute>
  |     <!-- The queue connection factory -->
  |     <attribute name="QueueFactoryRef">java:/XAConnectionFactory</attribute>
  |     <!-- The topic factory -->
  |     <attribute name="TopicFactoryRef">java:/XAConnectionFactory</attribute>
  |     <!-- Uncomment to use HAJNDI to access JMS
  |     <attribute name="Properties">
  |        java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
  |        java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
  |        java.naming.provider.url=localhost:1100
  |     </attribute>
  |     -->
  |   </mbean>
  | 
  |   <!-- The server session pool for Message Driven Beans -->
  |   <mbean code="org.jboss.jms.asf.ServerSessionPoolLoader"
  |      name="jboss.messaging:service=ServerSessionPoolMBean,name=StdJMSPool">
  |     <depends 
optional-attribute-name="XidFactory">jboss:service=XidFactory</depends>
  |     <attribute name="PoolName">StdJMSPool</attribute>
  |     <attribute name="PoolFactoryClass">
  |       org.jboss.jms.asf.StdServerSessionPoolFactory
  |     </attribute>
  |   </mbean>
  | 
  |   <!-- bug 2370 -->  
  |   <mbean code="org.jboss.jms.jndi.JMSProviderLoader" 
  |            
name="jboss.messaging:service=JMSProviderLoader,name=RemoteMQProvider,server=localhost">
  |       <attribute name="ProviderName">QueuehostJMSProvider</attribute>
  |       <attribute name="ProviderAdapterClass">
  |             org.jboss.jms.jndi.JNDIProviderAdapter
  |             </attribute>
  |       <attribute name="QueueFactoryRef">ConnectionFactory</attribute>
  |       <attribute name="TopicFactoryRef">ConnectionFactory</attribute>
  |             <attribute name="Properties">
  |             
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
  |             java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
  |             java.naming.provider.url=jnp://remotehostname:1099
  |     </attribute>
  |   </mbean>
  |   
  |   <tx-connection-factory>
  |      <jndi-name>JmsXARemote</jndi-name>
  |      <xa-transaction/>
  |      <rar-name>jms-ra.rar</rar-name>
  |      
<connection-definition>org.jboss.resource.adapter.jms.JmsConnectionFactory</connection-definition>
  |      <config-property name="SessionDefaultType" 
type="java.lang.String">javax.jms.Topic</config-property>
  |      <config-property name="JmsProviderAdapterJNDI" 
type="java.lang.String">java:/QueuehostJMSProvider</config-property>
  |      <max-pool-size>20</max-pool-size>
  |      <security-domain-and-application />
  |   </tx-connection-factory>
  |   <!-- bug 2370 -->  
  |   
  |   
  |   <!-- JMS XA Resource adapter, use this to get transacted JMS in beans -->
  |   <tx-connection-factory>
  |     <jndi-name>JmsXA</jndi-name>
  |     <xa-transaction/>
  |     <rar-name>jms-ra.rar</rar-name>
  |     
<connection-definition>org.jboss.resource.adapter.jms.JmsConnectionFactory</connection-definition>
  |     <config-property name="SessionDefaultType" 
type="java.lang.String">javax.jms.Topic</config-property>
  |     <config-property name="JmsProviderAdapterJNDI" 
type="java.lang.String">java:/DefaultJMSProvider</config-property>
  |     <max-pool-size>20</max-pool-size>
  |     
<security-domain-and-application>JmsXARealm</security-domain-and-application>
  |   </tx-connection-factory>
  | 
  | </connection-factories>
  | 

remoting-bisocket-service.xml:

  | <server>
  | 
  |    <!-- Standard bisocket connector - the bisocket transport only opens 
connection from client->server
  |         so can be used with firewalls where only outgoing connections are 
allowed.
  |         For examples of HTTP and SSL transports see docs/examples -->
  |    <mbean code="org.jboss.remoting.transport.Connector"
  |           name="jboss.messaging:service=Connector,transport=bisocket"
  |           display-name="Bisocket Transport Connector">
  |       <attribute name="Configuration">
  |          <config>
  |             <invoker transport="bisocket">
  |             
  |                <!-- There should be no reason to change these parameters - 
warning!
  |                     Changing them may stop JBoss Messaging working 
correctly -->            
  |                <attribute name="marshaller" 
isParam="true">org.jboss.jms.wireformat.JMSWireFormat</attribute>
  |                <attribute name="unmarshaller" 
isParam="true">org.jboss.jms.wireformat.JMSWireFormat</attribute>
  |                <attribute name="dataType" isParam="true">jms</attribute>
  |                <attribute name="socket.check_connection" 
isParam="true">false</attribute>
  |                <attribute name="timeout" isParam="true">0</attribute>
  |                <attribute 
name="serverBindAddress">${jboss.bind.address}</attribute>
  |                <attribute name="serverBindPort">4457</attribute>
  |                <attribute name="clientSocketClass" 
isParam="true">org.jboss.jms.client.remoting.ClientSocketWrapper</attribute>
  |                <attribute 
name="serverSocketClass">org.jboss.jms.server.remoting.ServerSocketWrapper</attribute>
  |                <attribute name="numberOfCallRetries" 
isParam="true">1</attribute>
  |                <attribute name="pingFrequency" 
isParam="true">214748364</attribute>
  |                <attribute name="pingWindowFactor" 
isParam="true">10</attribute>
  |                <attribute 
name="onewayThreadPool">org.jboss.jms.server.remoting.DirectThreadPool</attribute>
  |                <!-- End immutable parameters -->
  |                
  |                <!-- Periodicity of client pings. Server window by default 
is twice this figure -->                               
  |                <attribute name="clientLeasePeriod" 
isParam="true">10000</attribute>
  | 
  |                <!-- Number of seconds to wait for a connection in the 
client pool to become free -->
  |                <attribute name="numberOfRetries" 
isParam="true">10</attribute>
  | 
  |                <!-- Max Number of connections in client pool. This should 
be significantly higher than
  |                     the max number of sessions/consumers you expect -->
  |                <attribute name="JBM_clientMaxPoolSize" 
isParam="true">200</attribute>
  |                
  |                <!-- Use these parameters to specify values for binding and 
connecting control connections to 
  |                     work with your firewall/NAT configuration
  |                <attribute name="secondaryBindPort">xyz</attribute>          
                 
  |                <attribute name="secondaryConnectPort">abc</attribute>       
        
  |                -->
  |                           
  |             </invoker>
  |             <handlers>
  |                <handler 
subsystem="JMS">org.jboss.jms.server.remoting.JMSServerInvocationHandler</handler>
  |             </handlers>
  |          </config>
  |       </attribute>
  |    </mbean>
  | 
  | </server>
  | 

from standardjboss.xml:

  |   <invoker-proxy-bindings>
  | 
  |    <!-- bug 2370 -->  
  |     <invoker-proxy-binding>
  |       <name>RemoteSecurityReloadInvoker</name>
  |       <invoker-mbean>default</invoker-mbean>
  |       
<proxy-factory>org.jboss.ejb.plugins.jms.JMSContainerInvoker</proxy-factory>
  |       <proxy-factory-config>
  |         
<JMSProviderAdapterJNDI>QueuehostJMSProvider</JMSProviderAdapterJNDI>
  |         
<ServerSessionPoolFactoryJNDI>StdJMSPool</ServerSessionPoolFactoryJNDI>
  |         <CreateJBossMQDestination>false</CreateJBossMQDestination>
  |         <!-- WARN: Don't set this to zero until a bug in the pooled 
executor is fixed -->
  |         <MinimumSize>1</MinimumSize>
  |         <MaximumSize>3</MaximumSize>
  |         <KeepAliveMillis>30000</KeepAliveMillis>
  |         <MaxMessages>1</MaxMessages>
  |         <MDBConfig>
  |           <ReconnectIntervalSec>10</ReconnectIntervalSec>
  |           <DLQConfig>
  |             <DestinationQueue>queue/DLQ</DestinationQueue>
  |             <MaxTimesRedelivered>1</MaxTimesRedelivered>
  |             <TimeToLive>0</TimeToLive>
  |           </DLQConfig>
  |         </MDBConfig>
  |       </proxy-factory-config>
  |     </invoker-proxy-binding>
  |    <!-- bug 2370 -->  
  |     
  | ...
  | 

from MDB deployment - jboss.xml:

  |             <!-- bug 2370 -->       
  |             <message-driven>
  |                     <ejb-name>SecurityReloadMDB</ejb-name>
  |                     
<destination-jndi-name>topic/securityReload</destination-jndi-name>
  |                     <configuration-name>Standard Message Driven 
Bean</configuration-name>
  |                     <invoker-bindings>              
  |                             <invoker>      
  |                             
<invoker-proxy-binding-name>RemoteSecurityReloadInvoker</invoker-proxy-binding-name>
  |                             </invoker>              
  |                     </invoker-bindings>              
  |             </message-driven>
  |             <!-- bug 2370 -->  
  | 

This seems like it should be a simple configuration problem but I haven't been 
able to track it down.


View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4163091#4163091

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4163091
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to