Я новичок в WSO2 и Apache Synapse. Я создаю прокси-сервис для маршрутизации некоторых файлов в другую папку, но когда я смотрю JConsole, там работает только 1 поток.

Как я могу настроить этот параметр для одновременной работы нескольких потоков и обработки одной и той же исходной папки? Я настраиваю пул потоков следующим образом:

-Dsnd_t_core=3 \
-Dsnd_t_max=5000 \
-Dsnd_qlen=-1 \

А мой прокси-сервис выглядит так:

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://ws.apache.org/ns/synapse">
   <registry provider="org.wso2.carbon.mediation.registry.WSO2Registry">
      <parameter name="cachableDuration">15000</parameter>
   </registry>
   <proxy name="Service1"
          transports="vfs"
          startOnLoad="true"
          trace="enable"
          statistics="enable">
      <description/>
      <target>
         <inSequence>
            <log level="custom">
               <property name="Message" value="Routing start"/>
               <property name="filename"
                         expression="fn:concat(get-property('transport', 'FILE_NAME'), '.xml')"/>
            </log>
         </inSequence>
         <outSequence>
            <property name="OUT_ONLY" value="true"/>
         </outSequence>
      </target>
      <parameter name="transport.vfs.Streaming">false</parameter>
      <parameter name="transport.vfs.ActionAfterProcess">MOVE</parameter>
      <parameter name="transport.PollInterval">1</parameter>
      <parameter name="transport.vfs.FileURI">file:///home/user/test/target2</parameter>
      <parameter name="transport.vfs.MoveAfterProcess">file:///home/user/test/target</parameter>
      <parameter name="transport.vfs.MoveAfterFailure">file:///home/user/test/failure</parameter>
      <parameter name="transport.vfs.Locking">disable</parameter>
      <parameter name="transport.vfs.FileNamePattern">.*.*</parameter>
      <parameter name="transport.vfs.ContentType">text/plain</parameter>
      <parameter name="transport.vfs.ActionAfterFailure">MOVE</parameter>
   </proxy>
   <sequence name="fault">
      <log>
         <property name="MESSAGE" value="Executing default &#34;fault&#34; sequence"/>
         <property name="ERROR_CODE" expression="get-property('ERROR_CODE')"/>
         <property name="ERROR_MESSAGE" expression="get-property('ERROR_MESSAGE')"/>
      </log>
      <drop/>
   </sequence>
   <sequence name="main">
      <in>
         <filter source="get-property('To')" regex="http://localhost:9000.*">
            <send/>
         </filter>
      </in>
      <out>
         <send/>
      </out>
      <description>The main sequence for the message mediation</description>
   </sequence>
</definitions>
0
Mari_Yaguchi 8 Апр 2013 в 14:55

1 ответ

Лучший ответ

Насколько я понимаю из вашей проблемы, вы пытаетесь одновременно обслуживать одно и то же сообщение и хранить их в файле в параллельном исполнении.

Если так, то способ добиться этого - использовать посредника клонирования. Посредник клонов разделит сообщение на несколько идентичных сообщений, которые будут обрабатываться параллельно.

Вы можете обратиться к документации посредника клонов по [1].

В соответствии с вашим сценарием вы можете использовать посредник итерации для итерации в соответствии с именами файлов в ваших параграфах. Примеры на посреднике итерации можно найти в [2], а образец в [3]

[1]. http://docs.wso2.org/wiki/display/ESB460/Clone+Mediator

[2]. http : //docs.wso2.org/wiki/display/ESB460/Sample+400%3A+Message+Splitting+and+Aggregating+the+Responses

[3]. http://docs.wso2.org/wiki/display/ESB460 / Iterate + Mediator

Спасибо, Дхаршана.

1
Dharshana 12 Апр 2013 в 09:18
Спасибо за ответ. Мое состояние - у меня тысячи файлов в папке, и я хочу перенаправить эти файлы в другую папку. Но я обнаружил из jConsole, что только 1 vfs-worker обрабатывает мою службу. Как сделать так, чтобы служба обрабатывалась несколькими потоками? Может ли WSO2 поддерживать использование ThreadPool?
 – 
Mari_Yaguchi
16 Апр 2013 в 06:12
У меня похожая ситуация и не вижу, как ответят выше яблоки. Любая дополнительная информация об этом варианте использования будет полезна.
 – 
eptx
21 Ноя 2013 в 00:39