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#a7157841 Sent from the ServiceMix - User mailing list archive at Nabble.com.
