Hello Roger
I'll copy here general information regarding uar resources and performance in the hope it will help.
The best practice is not to have one big uar file: Use several uar files.
Several small uar files versus one big uar file is not expected to give a difference in performance
that is related to the size of the uar file.
However with one big uar file one can not play with the order in [RESOURCES]
to achieve optimal performance
Searching resources in standardized deployment is more efficient when there are multiple uar files.
Standard uar files can be stripped from unused objects.
Best for performance is to limit the objects to search
and making sure the objects most used are in the begin of the search path.
It is important to have the most used resources at top and not to include unused resources.
This aspect is much more important then using one or 20 uar archives:
Testing shows that the order in [RESOURCES] can make a big difference.
For each object here is a search order: See Search Order for Global Objects
For example for menus
Library Language
==============
$variation $library
USYS $LIBRAY
$variation USA
USYS USA
and for global proc
1 CurrentLIB::P2 when not found search for
2 ComponentLIB::P2 when not found search for
3 ApplicationLIB::P2 when not found search for
4 SYSTEM_LIBRARY::P2
For each step in the search order the resources specified in [RESOURCES] will be checked.
So in the worst case one has to go three , four times through these resources.
ASN settings that might improve performance
Server setting $ZIP_KEEPOPEN
has been added
Uniface library:
Uniface Reference > Configuration Reference > Configuration Settings: Assignment > [SETTINGS] > $ZIP_KEEPOPEN
$ZIP_KEEPOPEN TRUE
Instructs the Uniface Server to keep every UAR or ZIP archive that it reads open until the Uniface Server itself shuts down.
Applicable only in deployment environments.
Client setting
Uniface library:
Uniface Reference > Configuration Reference > Configuration Settings: Assignment > [SETTINGS] > $MEMORY
For example
$MEMORY ZIP=ALL
Also Remote resources have been added as a new option.
See Uniface library
Uniface Reference > Configuration Reference > Configuration Settings: Assignment > [RESOURCES]
Accessing Remote Resources
It is now possible to use
; client assignment file
[PATHS]
$REMOTE = TCP:ServerHost+13001|user|password|ust
[RESOURCES]
C:\myapp\myapp_local.uar
$REMOTE:
The Uniface Server's assignment file can specify resource locations that are local to it:
; Remote Uniface Server assignment file
[RESOURCES]
myapp.uar
lib/
In this case, when the client needs a specific resource, such as a message,
it will first search the local UAR (myapp_local.uar),
and if it is not found, it will direct a request to the remote Uniface Server.
It too searches its resources in the specified order.
Since each search attempt occurs locally on the server,
it does not involve any network traffic between client and server,
providing better performance than specifying multiple remote resources in the client.
When a client delegates the search for a global object to a resource server,
the server only looks for the object in the specified library and language.
It does not follow the normal search order for global objects,
which falls back to other libraries and languages.
Peter Beugel
Principal Technical Support Engineer
Rocket Software B.V.
------------------------------
Peter Beugel
Rocket Internal - All Brands
Amsterdam NL
------------------------------
Original Message:
Sent: 11-02-2022 04:49
From: Roger Wallin
Subject: Loading uar-files
Hi Laurent,
you are right, we should do more thorough investigations in that way, which isn't always very easy to do in customer environments.
However, what I have seen in our own environment, extracting the uar-file is even slower than using uar-files.
Regards RogerW
------------------------------
Roger Wallin
Abilita Oy
Original Message:
Sent: 11-02-2022 03:11
From: Laurent MEROT
Subject: Loading uar-files
Hi Roger,
From our point of view, using .uar files does not optimize response time. We made some tests with or without using .uar and the time to load a pool of .frm and .svc x times was the same.
If you extract your .uar files and work directly on your .frm, .svc, ... files, do you still have your problem ?
Regards,
Laurent.
------------------------------
Laurent MEROT
Proges Plus
Willems FR
Original Message:
Sent: 10-31-2022 03:40
From: Roger Wallin
Subject: Loading uar-files
Hi,
I ask because we once in a while do have problems with slow loading of forms. It's very varying, sometimes being very fast and sometimes very slow, even in the same environment. We will probably do more testing, but it's usually hard to get further especially as it happens at customers and we don't have enough rights to affect virus scanning, control server load etc.
The first access of a form is usually slow, and after that the loading of the form is very fast. At worst it could be almost 30-60 seconds to load a form first time, and after that it's fast to start the form. This is of course quite logical, but one would expect Uniface to load more than one form at a time into the memory not happening for all forms and services being used the firs time.
As this usually happens in client-server environments where the client PC processes the application, I connect it to some or a combination of these
1. Bad modularization of the application(s)
2. Loading the applications
3. AV-software scanning
4. Too many small uar-files (patches)
5. Getting data from database (this is probably not a problem in this case)
The original uar-file contains almost 4000 components (forms and services) and furthermore messages, menus etc.
To me this need some kind of removal of forms not being used or some kind of division of the components.
I ask this question hoping to get some hints about how to proceed with the testing and the rebuild of the uar-files. How to get the best results, with less effort/change.
Regards RogerW.
------------------------------
Roger Wallin
Abilita Oy
Original Message:
Sent: 10-29-2022 08:22
From: Gianni Sandigliano
Subject: Loading uar-files
Hi Roger,
about AV software scanning UAR files: I personally did NOT met an issue about it up to now...but I am sure ULab can be more helpful than me about it.
It is sure compressed files are between the toughest to be checked by any AV software because any single internal file MUST be expanded to look for virus patterns and compressions/decompressions are between most demanding actions for any hardware.
My 2 cents...
Best Regards,
Gianni
------------------------------
Gianni Sandigliano
IT
Original Message:
Sent: 10-27-2022 09:12
From: Roger Wallin
Subject: Loading uar-files
Hi
Does anyone know how Uniface handles loading of uar-files, or know where I could read about it.
Let's say you have this kind of Resources, where "app30208.uar" contains everything in an application and the other eight rows are patches
containing primarily some forms, services and messages that have been updated.
[RESOURCES]
\\OurServer\Data\Uniface9\uar97\app30208patch008.uar
\\OurServer\Data\Uniface9\uar97\app30208patch007.uar
\\OurServer\Data\Uniface9\uar97\app30208patch006.uar
\\OurServer\Data\Uniface9\uar97\app30208patch005.uar
\\OurServer\Data\Uniface9\uar97\app30208patch004.uar
\\OurServer\Data\Uniface9\uar97\app30208patch003.uar
\\OurServer\Data\Uniface9\uar97\app30208patch002.uar ;a patch containing an update to myform.frm
\\OurServer\Data\Uniface9\uar97\app30208patch001.uar
\\OurServer\Data\Uniface9\uar97\app30208.uar ;contains the whole application, lets say one of the forms is myform.frm
How does Uniface handle these uar-files eg. to get the newest form. Are all these uar-files loaded at application start, how/when does Uniface know that it should use "app30208patch002.uar" to get the newest myform.frm.
Could virus scanning affect the loading of the application.
Regards RogerW
------------------------------
Roger Wallin
Abilita Oy
------------------------------