hey,
thanks for the suggestion but I coudnt understand it...

can you please elaborate a little...

thanks a ton.


Claus Ibsen-2 wrote:
> 
> Hi
> 
> Maybe we should let Camel add the endpoint a producer is sending to.
> 
> Then when you route using .to("xxx") then Camel will add a header such as
> Exchange.SENDTO_ENDPOINT
> 
> Which contains the XXX
> 
> That would allow you to easily know which service failed.
> 
> 
> 
> 
> On Sun, Oct 11, 2009 at 1:39 AM, tide08 <[email protected]> wrote:
>>
>> I would assume that uri would be available in header as per Camel-Http
>> Documentation:
>>
>> HttpProducer.HTTP_URI - for v1.6.x
>> Exchange.HTTP_URI - for v2.x
>>
>> or else as other approach you can just set header to distinguish between
>> uri's avoiding custom processor for errorHandler itself.
>>
>> Something like -
>>
>> <to uri="bean:soapMessageCreator"/>
>>                        <multicast>
>> <pipeline>
>> <setHeader headerName="serviceName">
>>        <constant>serviceone</constant>
>>    </setHeader>
>>
>>                        <to
>> uri="http://mpkl04l34h9g2:8080/serviceone/subscriber"/>
>> </pipeline>
>> <pipeline>
>> <setHeader headerName="serviceName">
>>        <constant>servicetwo</constant>
>>    </setHeader>
>>
>>                        <to
>> uri="http://mpkl04l34h9g2:8080/servicetwo/subscriber"/>
>> </pipeline>
>>                        </multicast>
>>
>> All the best!
>>
>>
>>
>>
>> terminator_007 wrote:
>>>
>>> thanks for the suggestion..i have one doubt here..how do i get the know
>>> in
>>> the processor class which delivery has failed...i am delivering to two
>>> destinations...so is there any property on the xchange message which
>>> will
>>> tell me the delivery to which destination has failed ?
>>>
>>> tide08 wrote:
>>>>
>>>> You can register a processor which is invoked before message to DLQ.
>>>> This
>>>> can be achieved by property onRedelivery on DeadLetterChannelBuilder.
>>>> So
>>>> following should work -
>>>>
>>>> <bean id="myDeadLetterErrorHandler"
>>>> class="org.apache.camel.builder.DeadLetterChannelBuilder">
>>>>            <property name="onRedelivery" ref="myErrorProcessor"/>
>>>>            <property name="deadLetterUri"
>>>> value="activemq:queue:queue.DeadLetter"/>
>>>>             <property name="redeliveryPolicy"
>>>> ref="myRedeliveryPolicyConfig"/>
>>>>                 <property name="useOriginalMessage" value="true"/>
>>>>
>>>>              <property name="handled" value="false"/>
>>>>       </bean>
>>>>
>>>> <bean id="myErrorProcessor" class="com.app.CustomErrorProcessor" />
>>>>
>>>> You can than manipulate message header before it goes to DLQ.
>>>>
>>>> Thanks!
>>>>
>>>>
>>>> terminator_007 wrote:
>>>>>
>>>>> This is my configuration file
>>>>>
>>>>>     <bean id="soapMessageCreator" class="XXX.SOAPMessageCreator"/>
>>>>>
>>>>>      <bean id="myDeadLetterErrorHandler"
>>>>> class="org.apache.camel.builder.DeadLetterChannelBuilder">
>>>>>            <property name="deadLetterUri"
>>>>> value="activemq:queue:queue.DeadLetter"/>
>>>>>            <property name="redeliveryPolicy"
>>>>> ref="myRedeliveryPolicyConfig"/>
>>>>>                <property name="useOriginalMessage" value="true"/>
>>>>>
>>>>>             <property name="handled" value="false"/>
>>>>>      </bean>
>>>>>      <bean id="myRedeliveryPolicyConfig"
>>>>> class="org.apache.camel.processor.RedeliveryPolicy">
>>>>>            <property name="maximumRedeliveries" value="4"/>
>>>>>            <property name="redeliverDelay" value="250"/>
>>>>>      </bean>
>>>>>
>>>>>    <camelContext id="camel"
>>>>> xmlns="http://camel.apache.org/schema/spring"; >
>>>>>         <package>org.apache.camel.example.jmstofile</package>
>>>>>          <route errorHandlerRef="myDeadLetterErrorHandler">
>>>>>                     <from
>>>>> uri="activemq:topic:topic.Patient?clientId=testCamelClient&durableSubscriptionName=zyz123"/>
>>>>>             <to uri="bean:soapMessageCreator"/>
>>>>>                     <multicast>
>>>>>                     <to
>>>>> uri="http://mpkl04l34h9g2:8080/serviceone/subscriber"/>
>>>>>                     <to
>>>>> uri="http://mpkl04l34h9g2:8080/servicetwo/subscriber"/>
>>>>>                     </multicast>
>>>>>
>>>>>         </route>
>>>>>    </camelContext>
>>>>>
>>>>> <bean id="http" class="org.apache.camel.component.http.HttpComponent">
>>>>>     <property name="camelContext" ref="camel"/>
>>>>>     <property name="httpConnectionManager"
>>>>> ref="myHttpConnectionManager"/>
>>>>> </bean>
>>>>>
>>>>> <bean id="myHttpConnectionManager"
>>>>> class="org.apache.commons.httpclient.MultiThreadedHttpConnectionManager">
>>>>>     <property name="params" ref="myHttpConnectionManagerParams"/>
>>>>> </bean>
>>>>>
>>>>> <bean id="myHttpConnectionManagerParams"
>>>>> class="org.apache.commons.httpclient.params.HttpConnectionManagerParams">
>>>>>     <property name="defaultMaxConnectionsPerHost" value="5"/>
>>>>> </bean>
>>>>>
>>>>>
>>>>> here, if one of my "to" destination is down, I see two messages in the
>>>>> DLQ.
>>>>> also, i want to modify the message header with the name of the
>>>>> destination that failed for example if service
>>>>> "http://mpkl04l34h9g2:8080/servicetwo/subscriber"; was down, I want  to
>>>>> add "http://mpkl04l34h9g2:8080/servicetwo/subscriber"; to
>>>>> messager/header/target before delivering the message to DLQ so that
>>>>> the
>>>>> admin process which checks messages in DLQ knows which are the targets
>>>>> which did not receive the message.
>>>>>
>>>>> Please suggest what can be done to achieve this.
>>>>>
>>>>
>>>>
>>>
>>>
>>
>> --
>> View this message in context:
>> http://www.nabble.com/modify-message-before-delivering-to-Dead-Letter-Queue-tp25827098p25838615.html
>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>
>>
> 
> 
> 
> -- 
> Claus Ibsen
> Apache Camel Committer
> 
> Open Source Integration: http://fusesource.com
> Blog: http://davsclaus.blogspot.com/
> Twitter: http://twitter.com/davsclaus
> 
> 

-- 
View this message in context: 
http://www.nabble.com/modify-message-before-delivering-to-Dead-Letter-Queue-tp25827098p25880385.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to