Expand my Community achievements bar.

SOLVED

how to use multi-threaded file conversions ?

Avatar

Level 2

Hi,

     I am able to convert .doc,.jpg file in pdf and marge them,

      I like to Thank all the people in this forum for helping me to get this thing done.

     In Installing and deploying livecycle guide I have seen that for multi threaded convertion I have to create at least 3 user with admin right.

     but my question is how can I ues those user programatically to successfully done this multithreaded convertion?

     I can not log in using those user to admin ui..why?

  

   

     Thank you.

     Barun Barik

1 Accepted Solution

Avatar

Correct answer by
Level 8

The user's aren't LiveCycle users, they are operating system users.Those users are used by LiveCycle when it launches the "native" applications used for conversions.  The users are needed because many of the native applications (such as Microsoft Word) don't allow multi-threading and thread saftey becomes a concern.

For example:  Say I have three system users that are allowed to open Microsoft Office - Allen, Bob and Carl.  When I install LiveCycle I tell it about the the three users during the setup.  Later, I make a few requests to convert Word documents into PDFs.  If the requests come in at the same time, then the first one will be converted using Allen's account, the second using Bob's and the third using Carl's.  A fourth request will be queued until one of the other conversions is complete.

As a developer, you don't need to make the request on behalf of one of these users, that is controlled by LiveCycle.

View solution in original post

10 Replies

Avatar

Correct answer by
Level 8

The user's aren't LiveCycle users, they are operating system users.Those users are used by LiveCycle when it launches the "native" applications used for conversions.  The users are needed because many of the native applications (such as Microsoft Word) don't allow multi-threading and thread saftey becomes a concern.

For example:  Say I have three system users that are allowed to open Microsoft Office - Allen, Bob and Carl.  When I install LiveCycle I tell it about the the three users during the setup.  Later, I make a few requests to convert Word documents into PDFs.  If the requests come in at the same time, then the first one will be converted using Allen's account, the second using Bob's and the third using Carl's.  A fourth request will be queued until one of the other conversions is complete.

As a developer, you don't need to make the request on behalf of one of these users, that is controlled by LiveCycle.

Avatar

Level 2

Hi Hodmi,

   

          Thanks for very quick and clear response

          What I understood from your reply is I don't need to do any thing with those user except just add those user to livecycle

           application,and I must ensure that those user must have admin right,is that right?

 

          I have one more question ....

          I have used  createPDF2() function to convert  documents(no of document and type may change ),and converting them to pdf one after one

          using java program.after converting them to pdf I dynamically generate ddx file for marging those pdf, and calling invokeDdx().

         some time it is giving result and some time it is showing error occurred and error messege is "null".

       

          I have cheked all my java code.I think there is no error in my java code. Is this a problem with livecycle process.I mean I am calling those

          function(createPDF2() ,invokeDdx().) process one after one with no gap of time.so is this a problem with calling those function back to back.

         I think This is the last problem I am facing,If I get solution I will be through with my demo Application ,so need your help guys

       Thank You.

        Barun Barik.

Avatar

Level 8

That's pretty much correct.  I don't believe they need admin rights, just the rights to launch the native apps.

For the other issue:

     As long as you are waiting for the resulting documents to be returned from createPDF2 before sending it to invokeDDX, you should be okay.  The error "null" doesn't give much information.  Is it possible to get the stack trace from one of these errors?  The server side log should have more information.

Having said that, there is an easier way to do the whole thing.  If you pass invokeDDX the original documents, it will recognize them as non-PDFs and will call createPDF2 itself.  In other words, you can skip the createPDF2 step and just let LiveCycle do the conversions for you.

Avatar

Level 2

Thank you  for your reply Hodmi   I didnt knew about that feature of invokeDDX() function.It help me a lot.

That's pretty much correct.  I don't believe they need admin rights, just the rights to launch the native apps.

May be you are right,but I read it at "Installing and Deploying LiveCycle® ES2 Using JBoss® Turnkey Adobe" pg no 60 at section

6.14.7  that  "

Click

Add and enter the user name and password of a user who has administrative privileges on the

LiveCycle ES2 server

"

any way no prob with that......


Avatar

Level 2

Does Assembler's invokeDDX support multi-threaded invocations?

Let say I have a single server instance of LiveCycle ES (or ES2), and I submit one long-lived (asynchronous) invocation to invokeDDX to assemble a large number of PDFs, simultaneously I submit a second long-lived invocation to assemble together another set of separate PDFs, in this case, how does LiveCycle ES assembler process the multiple jobs?

Are they queued to run serially - first come first serve? or can Assembler spawn separate threads on the App Server to perform the assembly in parallel?

thanks in advance

Avatar

Level 8

The answer is: it depends.

Assembler itself supports multi-threaded operations, however it also can launch other LiveCycle services a part of its execution (as mentioned above).  If those services are single threaded then that part of the execution may queue up.

Avatar

Level 2

Thanks for the prompt reply!

I basically have a long-lived LCA process that has multiple steps in it - such as DecisionPoints, calls to setValue service or branch based on input condition evaluations, but the only significant service in this process is a single invokeDDX call, that is instructed through the DDX to assemble multiple input PDFs, generate a TableOfContents and apply Header/Footer styledText page numbering and ultimately return one PDF result.

It doesn't seem to me, based on steps above, that we are using any other service during the process execution that should force it to be single threaded. Am I correct in my assumption?

Is there any way to tell Assembler to indicate higher priority/weightage to the completion of one invocation versus another?

Also, could you point me to any documentation related to Assembler's multi-threaded support. I would like to understand the range/limitations of the architecture.

thanks again

Avatar

Level 8

It sounds like you are using just the "plain" Assembler service, so you should be okay.

Unfortunately there isn't a way of prioritizing the queue with any of the LiveCycle services.  The server handles the threading so developers and administrators really don't have a way to influence the processing order.

I don't know if there is much documentation about the multi-threading capabilities.  There is some information on the pooling settings which dictate how many concurrent asynchronous requests can happen:

  http://help.adobe.com/en_US/livecycle/9.0/adminHelp/admin.htm?content=000142.html

Avatar

Level 4

continue to this thread:

After multithreaded setup is done how to confirm 'multi-threaded file conversions ' is taki

ng place?

Thanks

YogLC

Avatar

Level 8

Urgent question please...

Are script steps in Adobe LiveCycle ES4 process are they single threaded always or they are multi threaded or they can be configured?

Tarek