Appserver Help

SSuhaib

Member
Hi,

Any one supporting an OLTP application on 4GL appserver or webspeed, please let me know :
1. Type of remote procedure ie synchronous or asynchronous
2. Appserver session mode settings such as session managed or session free and which type ie state-free, state-reset, and when to use which mode.

TIA
 
Without knowing anything about your requirements it is not really possible to give a good advice.

Nevertheless:

  • We use almost 100% synchronous AppServer calls. The only asynchronous ones are some which take a long time to complete and therefore, from the users point of view, are running in the background.
  • We use state-free operating mode whenever possible. Only for some applications which are developed with the Dynamics framework we use stateless because Dynamics does not support state-free.


Heavy Regards, RealHeavyDude.
 
Our app runs across thousands of desktops across Canada, and we are similar to RHD - 100% synchronous, 100% stateless. For 'long running jobs' we have a whole separate infrastructure that relies on queues backed by Progress batch clients. I think this is better for many reasons, but it's also a lot more work, which would not be warranted for many situations.

I have been doing a ton of JavaScript lately, wherein synchronous anything is strongly frowned upon. So my feeling about async vs. sync is evolving, but there is no doubt in my mind that sync is WAY simpler and less error-prone.

When we started doing AppServer, some PSC gurus came in and basically said nobody in their right mind would do anything besides stateless. I mostly agree, though, one of the most interesting Progress conference presentations I ever saw was a guy talking about how they did state-aware. I forget the company, but he had some really good reasons for doing it. IIRC they boiled down to simplified development and viable if you can forever assume a sufficiently low user count.
 
Thanks both of you for good piece of advice. Which parameter in ubroker.properties is used to set the synchronous bit?

Thanks again.
 
It's not a ubroker thing ... it is indicated on the RUN statement that initiates the AppServer call, which means asynchronicity can vary from call to call and situation to situation. From the RUN statement documentation:

Code:
RUN
  { intern-proc-name | VALUE ( intern-expression) } 
  [ IN proc-handle ]
  [ ASYNCHRONOUS <-------------
       [ SET async-request-handle ] <-------------
       [ EVENT-PROCEDURE event-internal-procedure <-------------
           [ IN procedure-context ] ]
  ]
  [ ( parameter [ , parameter ] ... ) ]
  [ NO-ERROR ]

This assumes you are using a Progress client. I am certain equivalents exist for Open (Java/.Net/WS) clients, but I don't know the syntax.
 
Back
Top