Process performance design question

Certified Lead Developer

Hi all,

We have a process that runs every night. It makes calls to a java plugin that is slow. I am wondering how we can improve the performance. 

I thought of placing the java plugin call in a subprocess and call it with the Start Process smart service to make sure that there is load balancing in place. However the Start Process SM is asynchronous and we need to have a list of the calls that returned an error.

I think having load balance could improve the performance. Is there a way to mitigate the fact that is not possible to return parameters from the subprocess? May be we can write the success/errors calls into a table? Or may be there is a better way to store the response messages?

Is there any way to make sure that there is load balancing across the appian engines without using the Start Process smart service?

Changing the plugin is not an option at this moment but it could be explored later on.

Thanks a lot

  Discussion posts and replies are publicly visible

Parents
  • What's the impact of this slow call? It being slow on its own may not be a huge problem if this is running overnight and there's litte usage on the system while this is running. Is it impacting users? Or taking so long that it comples during business hours?

    That being said, there are other ways to get information from asynchronous sub-processes. For instance, each request could write to a database table whether it succeeded or failed. Then, the original process could wait a while and then query the table to check which ones failed. Also, you could utilize something like process-to-process messaging to send a message back to the original process if your sub-process failed.

  • 0
    Certified Lead Developer
    in reply to Peter Lewis

    Hi Peter, using a table with results or process to process messages is what I have in mind. thanks for sharing your thoughts here.

Reply Children
No Data