I assume jms would not work better with FTP since it is asynchronous; anyway I will try to setup something else to review JMS/JCA flows.
mart wrote: > > I don't know if this may change anything but in fact I am using the VFS > component. Would JMS flow work? > > gnodet wrote: >> >> Currently, the ftp component only send JBI exchanges synchronously, >> so the JCA flow will never accept those exchanges and they will use >> the SEDA flow. Of course, this should change. >> >> On 11/3/06, mart <[EMAIL PROTECTED]> wrote: >>> >>> This lack of documentation is confusing me as well. I have a current >>> workflow >>> that seems to use SEDA. JCA seems to be configured in the default >>> servicemix.xml file: >>> >>> <sm:flows> >>> <sm:sedaFlow /> >>> <sm:jcaFlow bootstrapContext="#bootstrapContext" >>> connectionManager="#connectionManager" >>> jmsURL="tcp://localhost:61616" /> >>> </sm:flows> >>> >>> How can I make my current workflow use JCA (for persistence & >>> reliability, >>> maybe clustering in the long term)? Where do I have to set up my >>> exchange ? >>> >>> My current workflow is ftp => drools based router => different Transform >>> Component => Different destinations (mail/FTP) and I have many cases >>> where >>> my message can be lost. >>> >>> Thanks for any info. >>> >>> >>> gnodet wrote: >>> > >>> > Not at all. >>> > But do not blame yourself as this is not documented :( >>> > When choosing a flow, several QoS requirements will be checked: >>> > * synchonous / asynchronous: if the exchange was sent using sendSync >>> or >>> > send >>> > * persistent: if the message need to be peristent >>> > * transactional: if the message is enlisted in an xa transaction >>> > * clustered: if the destination endpoint is clustered (activated on >>> > another clustered jbi container) >>> > >>> > The transactional attribute can be set by setting the transaction in >>> the >>> > needed property of the exchange ( >>> > MessageExchange.JTA_TRANSACTION_PROPERTY_NAME). This can also be done >>> > automatically by servicemix using autoEnlistInTransaction attribute on >>> the >>> > container (if an xa transaction is running, the property will be set). >>> > Persistent feature may be set using the persistent attribute on the >>> > container, on the activation spec or on the exchange itself ( >>> > org.apache.servicemix.JbiConstants.PERSISTENT_PROPERTY_NAME). >>> > >>> > Each flow will check if it can fullfill the needed requirements, and >>> the >>> > first flow to answer yes will be used (this can be customized). >>> > For example, the jms flow will reject any transactional exchange, >>> whereas >>> > the jca flow will reject any synchronous exchange and seda/st flow >>> will >>> > reject any persistent or clustered exchanges. >>> > Note that you can force the NMR to choose a given flow by using the >>> > JbiConstants.FLOW_PROPERTY_NAME property on the exchange. >>> > >>> > The only combination that is not handled at all by servicemix is: >>> > clustered >>> > + transactional + synchronous. >>> > >>> > However things should be improved regarding to clustering: the seda/st >>> > should accept clustered exchanges if the target endpoint is also >>> activated >>> > locally. >>> > >>> > Hope this helps, >>> > Guillaume Nodet >>> > >>> > On 5/17/06, William Blackburn <[EMAIL PROTECTED]> wrote: >>> >> >>> >> Sorry, I swear this is my last post on this topic! >>> >> >>> >> Requesting a particular Q0S - is this done when creating the >>> >> exchange? i.e. getExchangeFactory().createInOnlyExchange() would use >>> >> seda by default while getExchangeFactory().createRobustInOnlyExchange >>> >> () would use jca? >>> >> >>> >> B.J. >>> >> >>> >> On May 16, 2006, at 5:12 PM, Guillaume Nodet wrote: >>> >> >>> >> > Configuration is not difficult. >>> >> > Try something like >>> >> > <sm:container flowNames="seda,jca?jmsURL=tcp://localhost:61616" >>> >> > >>> >> > Depending on the requested QoS for the exchange, one of the flow >>> will >>> >> > be choosen. >>> >> > You can change the default implementation by setting the >>> >> > defaultFlowChooser property on the Broker -- i have just seen that >>> i >>> >> > forgot to add getter / setter :( >>> >> > >>> >> > Anyway, if you use a sendSync on jca flow, an exception should be >>> >> > thrown. If you have multiple flows (including a seda / st flow), >>> >> > sendSync calls should use the seda flow. >>> >> > >>> >> > If your problem is the http binding, you could try using the >>> >> > servicemix-http component which uses send and not sendSync. >>> >> > >>> >> > Cheers, >>> >> > Guillaume Nodet >>> >> > >>> >> > >>> >> > On 5/17/06, William Blackburn <[EMAIL PROTECTED]> wrote: >>> >> >> Success! Got the JCA flow up and running - thank you very much. I >>> did >>> >> >> run into that problem with sendSync though. I use an httpBinding >>> >> >> component to introduce some messages. It uses sendSync internally, >>> >> >> and now I get sporadic io errors when I attempt to use it. >>> >> >> >>> >> >> I may simply choose to use a jmsbinding for this message >>> insertion, >>> >> >> but you mentioned that multiple flows can be configured - does >>> this >>> >> >> mean that the httpBinding could use seda or jms, while everything >>> >> >> else uses jca? I haven't seen an example of this - if its not too >>> >> >> much trouble, could you elaborate? >>> >> >> >>> >> >> Thanks again for all your help so far. >>> >> >> >>> >> >> B.J. >>> >> >>> >> >>> >> >>> > >>> > >>> > -- >>> > Cheers, >>> > Guillaume Nodet >>> > >>> > >>> >>> -- >>> View this message in context: >>> http://www.nabble.com/Questions-on-JMSFlow-cluster-configuration-tf1630154s12049.html#a7155558 >>> Sent from the ServiceMix - User mailing list archive at Nabble.com. >>> >>> >> >> >> -- >> Cheers, >> Guillaume Nodet >> >> > > -- View this message in context: http://www.nabble.com/Questions-on-JMSFlow-cluster-configuration-tf1630154s12049.html#a7160634 Sent from the ServiceMix - User mailing list archive at Nabble.com.
