On 9/3/07, carmichs <[EMAIL PROTECTED]> wrote: > > Hi, I have clients successfully connecting via two binding components (one > JMS and one HTTP) on the inbound side working and talking to my JSR181 > service engine which wraps/implements a couple of biz services. Now I have > one of my biz services that needs to go out across the NMR to another > (different JMS BC) binding component that will place a message on a queue > to be picked up a mainframe backend and return a response. > > I assume this is just a matter of creating another JMS binding component, > change the connection info and switch the role from consumer to provider.
You need to create either a second SU to configure the second endpoint or you could put a second configuration into the SU that you already have deployed for the servicemix-jms component. Remember, that a SU is simply a configuration for a JBI component. See the FAQ entries on SUs and SAs here: http://incubator.apache.org/servicemix/what-is-a-jbi-su-and-how-do-i-create-one.html http://incubator.apache.org/servicemix/what-is-a-jbi-sa-and-how-do-i-create-one.html > (a) Is that a correct assumption? > (b) If so, what do I put in my xbean file for my jms binding component when > I just want the binding component to put the message on a mainframe > queue.... Well you've got most of it below, but there is an example of connecting to IBM WebsphereMQ here: http://incubator.apache.org/servicemix/how-do-i-integrate-the-servicemix-jms-component-with-webspheremq.html > Basically I have the following... Its what goes in the ? marks, I can't seem > to figure out. (And assuming I am on the right track... )The connection info > I am ok on. > > <jms:endpoint service="???" Give the service a new name above. > endpoint="???" And give the endpoint a new name above. > targetService="????" > targetEndpoint="????" The targetService and targetEndpoint designate the name of a service and endpoint to which the component should send the message next (i.e., is this component sending messages to another component deployed in the JBI container?). Depending on your situation, this may not be needed. > role="provider" > soap="true" > destinationStyle="queue" > processorName="standard" > jmsProviderDestinationName="MAINFRAME.RQ" > connectionFactory="#connectionFactory" > defaultMep="http://www.w3.org/2004/08/wsdl/in-out" > > /> > > <bean id="connectionFactory" > class="com.ibm.mq.jms.MQQueueConnectionFactory"> > <property name="transportType" value="1"/> > <property name="queueManager" value="<QUEUE_MANAGER>" /> > <property name="hostName" value="<IP ADDRESS>" /> > <property name="channel" value="<CHANNEL NAME>" /> > <property name="port" value="1414" /> > </bean> > > (c) What is the best way to send the request in code to route to the > binding component. Well you're going to need to send a message to this service (whatever its name is) and this service will then route the messages to the queue on the mainframe. Creating the message that you send to this service could be done in many ways but because you're already using JMS, I'd suggest creating a third SU that contains a JMS consumer service that sends it's messages to the JMS provider SU that you are creating above. This way the component flow will look like this: servicemix-jms consumer SU -> servicemix-jms provider SU -> remote queue The only thing left to do then is to create a JMS message and send it to the queue that the servicemix-jms consumer is watching. Then it will pick up messages from that queue and send them to the servicemix-jms provider which will send the messages to the remote queue. Bruce -- perl -e 'print unpack("u30","D0G)[EMAIL PROTECTED]&5R\"F)R=6-E+G-N>61E<D\!G;6%I;\"YC;VT*" );' Apache ActiveMQ - http://activemq.org/ Apache ServiceMix - http://servicemix.org/ Apache Geronimo - http://geronimo.apache.org/ Castor - http://castor.org/
