< All Topics
Print

Fault Sequence

תפקידו של הfault sequence הוא לייצר רצף פעולות מסוים במקרה של שגיאה ולספק לנו מידע אודותיה.
ישנם 4 מאפיינים המספקים מידע על השגיאה:
ERROR_CODE – מזהה השגיאה
ERROR_MESSAGE – הודעת השגיאה
ERROR_DETAIL – פרטים נוספים אודות השגיאה
ERROR_EXCEPTION – השגיאה שנזרקה
כאשר מילים אלו הן מילים שמורות במערכת.

נצטרך להגדיר אותו בתוך הresource בצורה הבאה:

  <resource faultSequence="Sequence_name" methods="POST">

וכעת נצטרך לייצר את ה sequence שנרצה שיפעל בעת שגיאה.
בהמשך לדוגמא שלנו- "Sequence_name" שולח מייל באמצעות mailgun עם פרטים אודות השגיאה ובנוסף מדפיס log עם פרטי השגיאה:

<sequence name="Sequence_name" trace="disable" xmlns="http://ws.apache.org/ns/synapse">
 <property name="RecpMail" scope="default" type="STRING" value="[email protected]"/>
 <property name="RecpMail2" scope="default" type="STRING" value="[email protected]"/>
    <log>
        <property expression="get-property('ERROR_EXCEPTION')" name="ERROR_EXCEPTION"/>
        <property expression="get-property('ERROR_MESSAGE')" name="ERROR MESSAGE"/>
        <property expression="get-property('ERROR_DETAIL')" name="ERROR DETAIL"/>
        <property expression="get-property('ERROR_CODE')" name="ERROR CODE"/>
    </log>
    <payloadFactory media-type="json">
        <format>{"domain":"domain","from":"[email protected];","to":"$5,$6","subject":"Test Mail","template":Fault Seq Mail",
"h:X-Mailgun-Variables":"{\"ERROR_CODE\":\"$1\",\"ERROR_MESSAGE\":\"$2\",\"ERROR_DETAIL\":\"$3\",\"ERROR_EXCEPTION\":\"$4\"}"}</format>
        <args>
            <arg evaluator="xml" expression="get-property('ERROR_CODE')"/>
            <arg evaluator="xml" expression="get-property('ERROR_MESSAGE')"/>
            <arg evaluator="xml" expression="get-property('ERROR_DETAIL')"/>
            <arg evaluator="xml" expression="get-property('ERROR_EXCEPTION')"/>
            <arg evaluator="xml" expression="get-property('RecpMail')"/>
            <arg evaluator="xml" expression="get-property('RecpMail2')"/>
        </args>
    </payloadFactory>
    <header name="Content-Type" scope="transport" value="application/x-www-form-urlencoded"/>
    <header name="Authorization" scope="transport" value="ghgjgjgggjgjgjgygugbhhhkjhkjTUyMjJkYjU1"/>
    <property name="messageType" scope="axis2" type="STRING" value="application/x-www-form-urlencoded"/>
    <property name="DISABLE_CHUNKING" scope="axis2" type="STRING" value="true"/>
    <call>
        <endpoint>
            <http method="post" uri-template="https://api.eu.mailgun.net/v3/mg.doxi-sign.com/messages">
                <suspendOnFailure>
                    <initialDuration>-1</initialDuration>
                    <progressionFactor>-1</progressionFactor>
                    <maximumDuration>0</maximumDuration>
                </suspendOnFailure>
                <markForSuspension>
                    <retriesBeforeSuspension>0</retriesBeforeSuspension>
                </markForSuspension>
            </http>
        </endpoint>
    </call>
</sequence>
תוכן עיניינים