Serge Blais

« Need to increase IEP... | Main | Yahoo Geo Coder... »
Friday Aug 15, 2008

Need a steaming output to the IEP process...

No, I didn't forget the "r".....

If you have started using IEP by now, You have probably found out that for a complete IEP process, you are required to have a stream output, even if your output is a DB table. When I started, I used to have just a file output for the stream, that I would use for logging.

 Well, I found that that file can grow up pretty quickly. So I changed the file output to a JMS output. You can do that by manually editing the WSDL file that is generated by the IEP "compilation". Here is a summary of the modifications I do:

  1. Uncomment the soap output.
  2. Delete the file output. (don't feel bad about deleting it. If you change the IEP process in a way that the WSDL is regenerated, it is your changes that will be deleted...)
  3. Replace the SOAP references with the JMS references.
  4. Keep a backup of your WSDL.... (See why in step 2...)

This allows for a decentralized logging of what is happening. The interesting part about using topic, is, if there is no one listening, there is no long log files to clean up.... But if you wish to have a real log, you can always have an MDB that will log the xml message in a database or some other place.

At the bottom of this post, you'll see a file that I keep as a Cheat Sheet for implementing JMS in the WSDL for IEP. Feel free to use it. I deleted parts that are not affected by the binding.... The elements to change/add are in bold...

<definitions targetNamespace="AppName_iep"
xmlns:jms="http://schemas.sun.com/jbi/wsdl-extensions/jms/">

<!-- deleted a bunch of stuff not needed here for this... -->

<!-- http output binding and service-->

<binding name="OutputBinding_SteamingStep" type="defns:OutputPt_SteamingStep">

    <jms:binding/>

    <operation name="SteamingTopic">

            <jms:operation destination="SteamingTopic" destinationType="Topic" transaction="NoTransaction"/>

        <input>

            <jms:message messageType="TextMessage" textPart="output"/>

        </input>

    </operation>

</binding>

<service name="OutputService_SteamingOutput">

    <port name="OutputPort_SteamingOutput" binding="tns:OutputBinding_SteamingOutput">

<jms:address connectionURL="mq://localhost:7676" username="guest" password="guest"/>

    </port>

</service>

 <!--end of http output binding and service -->

</definitions>

For the reference to the JMS Binding syntax, go here....

Comments:

Post a Comment:
  • HTML Syntax: NOT allowed