When to use <RDML MERGE="&END">

There is some confusion about when to use the <RDML MERGE="&END"> tag in LANSA for the Web.

Under normal behaviour, all LANSA jobs time out, whether they are the traditional procedural style or WEBEVENT functions. When the jobs time out, the user gets a ‘Job Timed Out' message for the traditional procedural RDML functions. For WEBEVENT functions, LANSA for the Web manages the data exchange (especially browse list data) and the restarting of a new job automatically on subsequent interactions. The user does not see a ‘Job Times Out' message.

For WEBEVENT functions, LANSA terminates as soon as a DISPLAY or REQUEST command is processed. However, the LWEB_JOB is still reserved for the user in case the user wants to interact further. This way, the turnaround time for the request is quick. In other words, this WEBEVENT job is not returned to the pool of free jobs immediately, not until the job is timed out (using the time out setting on your site).

The <RDML MERGE="&END"> tag was introduced to help sites with high hit rates. Typically, these sites have functions which display search results. Once the results are displayed, no further interaction with the function is expected from the user. For example, for a site that displays exam results, once the student ID is verified, the results are displayed. No further interaction is possible unless the student starts a new query (which is a request for a new LANSA job).

This LANSA tag was introduced to allow the LWEB_JOB jobs to return to the pool of free jobs immediately. The job is not held in reserve for the user. This reduces the resource usage for the site. LANSA for the Web does not save any data for these jobs. This means that no browse list data is saved and that the Web user id is cleared.

If you include this tag in your HTML, DO NOT expect browse list data or any of the HTTP environment variables (e.g. *WEBUSER) to be exchanged between this function and any subsequent function calls since you're telling LANSA that the user is never going to interact with this job ever again... so why bother saving any data on the Server!!

In summary, this tag should only be used for functions where you are absolutely sure that there is no further interaction with the function or that you are not relying on the HTTP environment variables or that the browse list does not need to be exchanged.