2014-12-29 3 views
0

WSO2 ESB에서 프록시를 작성했습니다. 로그 파일 또는 모니터 기능을 사용하여 inSequence 시퀀스 조정자에서 모든 메시지 조정에 대한 로그를 볼 수 있지만 outSequence에 대한 로그를 찾을 수 없습니다. 내 프록시 예는 다음과 같습니다 프록시가 OUT_ONLY 활동에 대한 지원이WSO2 ESB 결과 로그를 보는 방법

<proxy name="FlightStatusService" 
      transports="https http" 
      startOnLoad="true" 
      trace="enable"> 
     <description/> 
     <target> 
     <inSequence> 
      <property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/> 
      <property name="OUT_ONLY" value="true"/> 
      <property name="TIME_1" 
         expression="get-property('SYSTEM_TIME')" 
         scope="default" 
         type="LONG"/> 
      <property xmlns:air="http://airline.services.esb.wso2.packt.com" 
         name="airlineInTransport" 
         expression="fn:concat('Airline Company - ', //air:updateStatus/air:airline)" 
         scope="transport"/> 
      <property name="airlineInDefault" 
         expression="get-property('transport','airlineInTransport')" 
         scope="default"/> 
      <switch xmlns:air="http://airline.services.esb.wso2.packt.com" 
        source="//air:updateStatus/air:airline"> 
       <case regex="EK"> 
        <event topic="flightStatus/emirates"/> 
       </case> 
       <case regex="AA"> 
        <event topic="flightStatus/aa"/> 
       </case> 
       <case regex="DL"> 
        <event topic="flightStatus/delta"/> 
       </case> 
       <default> 
        <log level="custom"> 
        <property name="noAirline" value="There is no Airline with these letters"/> 
        </log> 
       </default> 
      </switch> 
     </inSequence> 
     <outSequence> 
      <property name="TIME_2" 
         expression="get-property('SYSTEM_TIME')" 
         scope="default" 
         type="LONG"/> 
      <script language="js">var time1 = mc.getProperty("TIME_1"); 
var time2 = mc.getProperty("TIME_2"); 
var timeTaken = time2 - time1; 
print("-------------- " + timeTaken + " ms -----------------"); 
mc.setProperty("RESPONSE_TIME", timeTaken);</script> 
      <log level="full" category="DEBUG"> 
       <property name="airlineInTransport" 
         expression="get-property('default', 'airlineInDefault')"/> 
       <property name="Time Duration in ms: " expression="get-property('RESPONSE_TIME')"/> 
      </log> 
      <send/> 
     </outSequence> 
    </proxy> 

답변

2

때문에, outSequence이 명중되지 않습니다. 편집을 할

은 -> 참조를 위해 프록시를 추가

프록시

<proxy name="FlightStatusService" 
       transports="https http" 
       startOnLoad="true" 
       trace="enable"> 
      <description/> 
      <target> 
      <inSequence> 
       <property name="TIME_1" 
          expression="get-property('SYSTEM_TIME')" 
          scope="default" 
          type="LONG"/> 
       <property xmlns:air="http://airline.services.esb.wso2.packt.com" 
          name="airlineInTransport" 
          expression="fn:concat('Airline Company - ', //air:updateStatus/air:airline)" 
          scope="transport"/> 
       <property name="airlineInDefault" 
          expression="get-property('transport','airlineInTransport')" 
          scope="default"/> 
       <switch xmlns:air="http://airline.services.esb.wso2.packt.com" 
         source="//air:updateStatus/air:airline"> 
        <case regex="EK"> 
         <event topic="flightStatus/emirates"/> 
        </case> 
        <case regex="AA"> 
         <event topic="flightStatus/aa"/> 
        </case> 
        <case regex="DL"> 
         <event topic="flightStatus/delta"/> 
        </case> 
        <default> 
         <log level="custom"> 
         <property name="noAirline" value="There is no Airline with these letters"/> 
         </log> 
        </default> 
       </switch> 
       <loopback/> 
      </inSequence> 
      <outSequence> 
       <property name="TIME_2" 
          expression="get-property('SYSTEM_TIME')" 
          scope="default" 
          type="LONG"/> 
       <script language="js">var time1 = mc.getProperty("TIME_1"); 
    var time2 = mc.getProperty("TIME_2"); 
    var timeTaken = time2 - time1; 
    print("-------------- " + timeTaken + " ms -----------------"); 
    mc.setProperty("RESPONSE_TIME", timeTaken);</script> 
       <log level="full" category="DEBUG"> 
        <property name="airlineInTransport" 
          expression="get-property('default', 'airlineInDefault')"/> 
        <property name="Time Duration in ms: " expression="get-property('RESPONSE_TIME')"/> 
       </log> 
       <send/> 
      </outSequence> 
     </proxy> 
+0

당신에게 너무 많은 Vanji 감사를 참조하십시오. 나는 예제로 작업하기 시작했고 이전 구성으로 돌보지 않고 기능을 구현하도록 수정했습니다. – Pymoo

+0

안녕하세요 Vanji, 내 칭찬을 노래하기에는 아직 너무 빨랐어. (OUT_ONLY 및 FORCE_SC_ACCEPTED 속성 중재자를 제거했지만 퇴출 기록을 볼 수 없습니다.) 다른 팁이나 조언이 있습니까? – Pymoo

+1

안녕 Pymoo, 기본 흐름 중재가 클라이언트 (보냄 요청) -> InSquence-> Backend -> (응답 수신) 순서입니다. 귀하의 경우에는 백엔드가 없기 때문에 Outsquecen이 참여하지 않을 것입니다. 따라서 Loopback mediator [1] 이 기능은 WSO2 ESB 480 이후 버전에서도 지원됩니다. [1] https://docs.wso2.com/display/ESB481/Loopback+Mediator – Vanji