Implementing a dead letter channel (enterprise integration pattern) as a 
mediator
---------------------------------------------------------------------------------

                 Key: ESBJAVA-446
                 URL: https://wso2.org/jira/browse/ESBJAVA-446
             Project: WSO2 ESB
          Issue Type: New Feature
          Components: Core Engine
    Affects Versions: 1.5, NIGHTLY, 1.6
            Reporter: Jens Goldhammer
            Assignee: Asankha Perera
            Priority: Critical


I am working with two Synapse/WSO2 ESB which work as a proxy for two bpel 
engines.
bpel 1<->synapse 1<->synapse 2<->bpel 2

If the bpel engine invokes an other process in bpel 2, Synapse 1 is called and 
it tries to connect to the other synapse (2).
If the synapse instance 2 is down, I will have the problem that Synapse 1 only 
tries one time to send the request. BPEL engine 1 is believing that everything 
is ok (long running process), so that I have no chance to retry the request to 
the synapse instance 2. As long as ws-rm does not work correctly, what can I do?

It would be really cool to have a dead-letter-channel (see gregor hohpe eip) 
where all lost messages will be make persistent with the date of the last try 
for sending and to have the ability to resend the message manually from the 
admin console. I would prefer a list of messages to see their content, the date 
of last try for sending and the value of  the to-header. Then you can select 
several messages, press the button retry and all selected messages will be send 
to the destination. It would be nice to have a mechanism to determine if a 
request of a proxy service to another service should be make persistent in the 
dead-letter-channel, maybe by specifiying it in the send-mediator! Furthermore 
it would be great to notify the admin after a message was inserted in the dead 
letter channel by taking the im-mediator... 

See following example:
<-- dead letter config-->
<syn:deadletter>
<!-- specify the target of the deadletter channel-->
jms queue??
 <!-- specify the mechanism of notitifying-->
<xslt key="im-publish.xslt" target="imMessage"/>
<im to="[EMAIL PROTECTED]" protocol="msn" username="[EMAIL PROTECTED]"
password="instantmessaging">
<message xmlns:s11="http://schemas.xmlsoap.org/soap/envelope/"; 
xpath="s11:Body/message"
xpathSource="imMessage"/>
</im>
<!-- email-notifier-->
           <email-notify/>
</syn:deadletter>

    <syn:proxy name="Einsatzinitiierungsprozess" transports="https http" 
startOnLoad="true" statistics="enable" trace="enable">
        <syn:target>
             <syn:inSequence>
                <syn:log level="full" separator=","/>
                <syn:send dead-letter="true">
                    <syn:endpoint>
                        <syn:address 
uri="http://localhost:8082/ode/processes/Prozess_Feuerwehreinsatzleitsystem/processes/Einsatzinitiierungsprozess/Process_Layer/Client_Layer";>
                            <syn:enableAddressing/>
                        </syn:address>
                    </syn:endpoint>
                </syn:send>
            </syn:inSequence>
            <syn:outSequence>
                <syn:log level="full" separator=","/>
                <syn:send/>
            </syn:outSequence>
        </syn:target>
    </syn:proxy>


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://wso2.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

_______________________________________________
Esb-java-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/esb-java-dev

Reply via email to