You may want to try sending your problem on AMQ user list ... ;)

Cheers,
Guillaume Nodet

On 6/24/06, vineetc <[EMAIL PROTECTED]> wrote:


Hello Everybody,
I have built JMS components using ComponentSupport which are essentially
extensions of JmsInBinding and JmsInUsingJcaBinding for sending and recv.
JMS meesages using AMQ.
Sending and Receiving (using JCA) wrok fine but i am having troubles with
redelivery setting up DLQ.
For test purposes i throw out runtime exeception on the message sent and
from the log it looks like the message is neither getting redelivered nor
sent to DLQ
Following are the exceprts from the AMQ broker, Receiver and sender
component XML files.

RECEIVER:
<beans>
        <bean id="activationSpec" class="
org.activemq.ra.ActiveMQActivationSpec">
                <property name="destination"
value="org.wkhmr.cornerstone.business.intell.stats.jms.q" />
                <property name="destinationType" value="javax.jms.Queue"
/>
        </bean>
        <bean id="dlqActivationSpec"
class="org.activemq.ra.ActiveMQActivationSpec">
                <property name="destination"
value="org.wkhmr.cornerstone.business.intell.stats.jms.dlq" />
                <property name="destinationType" value="javax.jms.Queue"
/>
        </bean>
        <!-- the JCA container -->
        <bean id="jencks" name="jcaContainer" class="
org.jencks.JCAContainer"
singleton="true">
                <property name="bootstrapContext">
                        <bean   class="
org.jencks.factory.BootstrapContextFactoryBean">
                                <property name="threadPoolSize" value="18"
/>
                                <property name="transactionManager"
ref="transactionManager"/>
                        </bean>
                </property>
                <!-- the JCA Resource Adapter -->
                <property name="resourceAdapter">
                        <bean id="activeMQResourceAdapter"
class="org.activemq.ra.ActiveMQResourceAdapter" singleton="true">
                                <property name="serverUrl">

                                        <value>tcp://localhost:61616</value>
                                </property>
                                <property name="endpointWorkerType"
value="asf"/>
                        </bean>
                </property>
        </bean>

        <bean id="transactionManager"
class="org.jencks.factory.TransactionManagerFactoryBean"/>
        <bean id="transactionContextManager"
class="org.jencks.factory.TransactionContextManagerFactoryBean" />
</beans>.

SENDER:
<beans>
        <!-- message broker -->
        <bean id="broker" class="org.activemq.spring.BrokerFactoryBean">
                <property name="config"
value="file:C:/etc/opt/cornerstone/bus-intell/stats/statsActiveMQ.xml" />
        </bean>

        <bean id="jmsFactory" class="
org.activemq.pool.PooledConnectionFactory">
                <property name="connectionFactory">
                        <bean class="
org.activemq.ActiveMQConnectionFactory">
                                <property name="brokerURL">

                                        <value>tcp://localhost:61616</value>
                                </property>
                        </bean>
                </property>
        </bean>

        <bean id="template" class="
org.springframework.jms.core.JmsTemplate">
                <property name="connectionFactory">
                        <ref local="jmsFactory" />
                </property>
                <property name="defaultDestinationName"
value="org.cornerstone.business.intell.stats.jms.q" />
                <property name="pubSubDomain" value="false" />
                <!--  transactional properties -->
                <property name="sessionTransacted" value="true" />
                <property name="sessionAcknowledgeMode" value="0"/>
</beans>

AMQ Broker Config Xml:
<beans>
  <broker name="StatsBroker">
    <connector>
      <tcpServerTransport uri="tcp://localhost:61616" backlog="999"
useAsyncSend="true" maxOutstandingMessages="45">
        <wireFormat class="org.activemq.io.impl.DefaultWireFormat"/>
      </tcpServerTransport>
    </connector>

    <persistence><vmPersistence></vmPersistence>
    </persistence>

    <redeliveryPolicy backOffMode="true" maximumRetryCount="1">
    </redeliveryPolicy>

    <deadLetterPolicy
        deadLetterEnabled="true"
        storeNonPersistentMessages="true" >
        <!--
                        deadLetterPerDestinationName="false"
                        deadLetterName="
org.wkhmr.cornerstone.business.intell.stats.jms.dlq"
                        deadLetterQueueTTL="120000"
deadLetterTopicTTL="120000" ONLY when we
need to expire messages
                        allowDuplicates="false" useDatabaseLocking="true"
ONLY When JDBC
persistence is enabled
        -->
    </deadLetterPolicy>

  </broker>

Any insight into where i am goin wrong?
All help is appreciated.

Thanks,
Vineet
--
View this message in context:
http://www.nabble.com/SM-%2B-AMQ-%2B-JCA-with-DeadLetterQueue-t1841879.html#a5028073
Sent from the ServiceMix - User forum at Nabble.com.


Reply via email to