activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Muzza <stephen.mur...@amt-sybex.com>
Subject AMQ 4.0.x & MDB Listener not connecting
Date Mon, 28 Aug 2006 18:48:17 GMT

Hi,

Using AMQ 4.0.1 and 4.0.2 and Websphere AS 5.1.11

I have an MDB deployed which will pick up and process messages from an AMQ
persistent queue. All is fine if the queue is cleared down before starting
my application.

However, if I start AMQ and put a message on the Queue via Hermes and then
start up my application in WAS 5.1 I never get a connection to the queue via
ListenerPort in WAS 5.1.

I'm suspecting that this may be a security / permissions problem when
accessing the queue, but can't see what would cause this to only kick in
when there are messages on the queue.

I do see errors like the following in a ServerException log within WAS,
would anyone have an idea on this or come across this problem before ?

Log from WAS 5.1 :

Index  Occur Time of last Occurence   Exception SourceId ProbeId
       ences
-----------------------------------------------------------------------
1      1     28/08/06 19:21:58:703 IST java.io.FileNotFoundException
com.ibm.ejs.jms.listener.AsyncMessageLog.readRequestLogFile 128
-----------------------------------------------------------------------
+2      1     28/08/06 19:21:59:203 IST java.lang.ClassNotFoundException
com.ibm.ws.activity.ActivityServiceInterceptor.loadMigrationImpls 424
+3      1     28/08/06 19:21:59:766 IST
com.ibm.ws.naming.jcache.CacheEntryNotFoundException
com.ibm.ws.naming.util.WsnInitCtxFactory.getInitialContextInternal 367
+4      1     28/08/06 19:22:00:062 IST
javax.naming.NameAlreadyBoundException
com.ibm.ws.naming.ipcos.WsnOptimizedNamingImpl.do_bind_new_corba_context
1042
+5      1     28/08/06 19:22:00:062 IST
org.omg.CosNaming.NamingContextPackage.AlreadyBound
com.ibm.ws.naming.jndicos.CNContextImpl.doCreateSubcontext 2155
+6      1     28/08/06 19:22:00:062 IST
javax.naming.NameAlreadyBoundException
com.ibm.ws.naming.jndicos.CNContextImpl.createSubcontext 756
+7      1     28/08/06 19:22:00:438 IST
org.omg.CosNaming.NamingContextPackage.NotFound
com.ibm.ws.naming.cosbase.WsnOptimizedNamingImplBase.bind_new_corba_context
944
+8      1     28/08/06 19:22:00:438 IST
org.omg.CosNaming.NamingContextPackage.NotFound
com.ibm.ws.naming.jndicos.CNContextImpl.doCreateSubcontext 2161
+9      1     28/08/06 19:22:00:438 IST javax.naming.NameNotFoundException
com.ibm.ws.naming.jndicos.CNContextImpl.createSubcontext 756
+10     1     28/08/06 19:22:00:453 IST javax.naming.NameNotFoundException
com.ibm.ws.naming.urlbase.UrlContextImpl.lookup 1226
+11     1     28/08/06 19:22:00:469 IST javax.naming.NameNotFoundException
com.ibm.ws.naming.urlbase.UrlContextImpl.lookup 1252
+12     1     28/08/06 19:22:01:922 IST java.io.FileNotFoundException
com.ibm.ejs.jms.DurableSubscriptionManagerImpl.readDurableSubscriptionFile
236
+13     1     28/08/06 19:22:03:172 IST javax.naming.NameNotFoundException
com.ibm.ejs.container.BeanMetaData.BeanMetaData 2507

and my config is pretty basic in activemq.xml :

<!-- START SNIPPET: example -->
<beans xmlns="http://activemq.org/config/1.0">

  <!-- Allows us to use system properties as variables in this configuration
file -->
  <bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/>
  
  <broker persistent="true" useJmx="true">
  
    <!--  Use the following to set the broker memory limit (in bytes) 1mb
below)
    <memoryManager>  
        <usageManager id="memory-manager" limit="1048576"/>
    </memoryManager>
    -->
    
    <!-- Use the following to configure how ActiveMQ is exposed in JMX
    <managementContext>
       <managementContext connectorPort="1099"
jmxDomainName="org.apache.activemq"/>
    </managementContext>
    -->

    <!-- In ActiveMQ 4, you can setup destination policies -->  
    <destinationPolicy>
      <policyMap><policyEntries>
        
          <policyEntry topic="FOO.>">
            <dispatchPolicy>
              <strictOrderDispatchPolicy />
            </dispatchPolicy>
            <subscriptionRecoveryPolicy>
              <lastImageSubscriptionRecoveryPolicy />
            </subscriptionRecoveryPolicy>
          </policyEntry>

      </policyEntries></policyMap>
    </destinationPolicy>
  
  
    <persistenceAdapter>
        <journaledJDBC journalLogFiles="5"
dataDirectory="${activemq.home}/activemq-data"/>
      <!-- To use a different datasource, use th following syntax : -->
      <!-- 
      <journaledJDBC journalLogFiles="5" dataDirectory="../activemq-data"
dataSource="#postgres-ds"/>
       -->
    </persistenceAdapter>
  
    <transportConnectors>
       <transportConnector name="default" uri="tcp://localhost:61666"
discoveryUri="multicast://default"/>
       <transportConnector name="stomp"   uri="stomp://localhost:61663"/>
    </transportConnectors>
    
    <networkConnectors>
      <!-- by default just auto discover the other brokers -->
      <networkConnector name="default" uri="multicast://default"/>
      <!--
      <networkConnector name="host1 and host2"
uri="static://(tcp://host1:61616,tcp://host2:61616)" failover="true"/>
      -->
    </networkConnectors>
    
  </broker>
  
  <!--  This xbean configuration file supports all the standard spring xml
configuration options -->
  
  <!-- Postgres DataSource Sample Setup -->
  <!-- 
  <bean id="postgres-ds" class="org.postgresql.ds.PGPoolingDataSource">
    <property name="serverName" value="localhost"/>
    <property name="databaseName" value="activemq"/>
    <property name="portNumber" value="0"/>
    <property name="user" value="activemq"/>
    <property name="password" value="activemq"/>
    <property name="dataSourceName" value="postgres"/>
    <property name="initialConnections" value="1"/>
    <property name="maxConnections" value="10"/>
  </bean>
  -->
  
  <!-- MySql DataSource Sample Setup -->
  <!-- 
  <bean id="mysql-ds" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
    <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
    <property name="url"
value="jdbc:mysql://localhost/activemq?relaxAutoCommit=true"/>
    <property name="username" value="activemq"/>
    <property name="password" value="activemq"/>
    <property name="poolPreparedStatements" value="true"/>
  </bean>
  -->  
   
  <!-- Embedded Derby DataSource Sample Setup -->

  <!--bean id="derby-ds" class="org.apache.derby.jdbc.EmbeddedDataSource">
    <property name="databaseName" value="derbydb"/>
    <property name="createDatabase" value="create"/>
  </bean-->


</beans>
<!-- END SNIPPET: example -->

Any help greatly appreciated, as I say it works fine when the request queue
is blank but if still has some existing messages then the MDB doesn't fire.

Thanks,
Steve.
-- 
View this message in context: http://www.nabble.com/AMQ-4.0.x---MDB-Listener-not-connecting-tf2179115.html#a6025868
Sent from the ActiveMQ - User forum at Nabble.com.


Mime
View raw message