TN Large Document Processing

Appreciate advice here

I have a B2B application where

  1. File Polling Port retrieves files from a Unix Folder
  2. The File Polling Port processing service (call service A) will
    receive the ffdata object, get the content, then invoke routeXml to
    post the document content to TN
  3. TN, based on sender/receiver/document type, will ‘SYNC’ invoke
    a processing flow service (call service B)
  4. The processing service, will process the content of bizdoc

My question is

  1. Is there any way to get webMethods TN to pass the bizdoc to the
    processing service B without the content (as Bytes).
    Our issue is some of the input files are large in size (4MB +) and
    TN, when passing the bizdoc to processing service B, is passing the
    content as Bytes. I would like to see whether I can just get TN
    to pass to service B the bizdoc only(without content as bytes), and
    then within service B, retrieve the content part as Streams

Note: We are not using TN Large Document Processing at all and since
it is system wide setting. We would like to know whether there is any other solution before we starts TN Large Document Processing and retrofit tons of existing application

Hey Stephen,

Happy Holidays.

Unfortunately to accomplish what you want you need to have LargeDoc configured. Then TN does not push the entire contents to you. You would then use getContentPartData, followed by streamToString.

If someone else knows a work around I’m very interested in hearing also.

Stephen,

Normally we try to avoid largeDoc processing as much as possible, but I guess you already know that 8) It kills performance, makes the whole processing logic a bit harder to understand, and lastly requires you to figure out where best to “chop” the document so that you don’t end up with multiple levels of “largeDocs”.

I’m guessing there’s two alternatives for you, w/o having to change the BigDocThreshold:

  1. persist only the filename into bizDoc, and have your processing service read in the file yourself. Definitely ugly, and you won’t have a record of what exactly you’ve processed in TN.

  2. I’m not sure if this will work, but might worth a try – Construct bizDoc yourself in step 2 (File Polling invoked service). Call wm.tn.doc:createNewEnvelope, and then wm.tn.doc:addContentPart, supplying storageType and storageRef. My thinking is by supplying the storage parameters, TN will treat the document as largeDoc irregardless of the BigDocThreshold. Unfortunately I don’t have time to try this, so I can offer it up as a possibility. 8(

Lastly, both RosettaNet and EDI (for TN and EDIINT) offer additional services to deal with largeDocs. FYR.