Uniface on GitHub
Fixes and Updates
I am trying to run an application in Uniface 9.7.5 installed on a server on the network from a PC. Uniface and the application are installed on the server. On the PC only the Uniface execution command. So far I have not managed to work, it does not find some libraries like (C: \ Usys9xx \ commom \ adm \ usys.asn)I can't find where it's going to change the route.Any ideas?Thank you
Hi, Hortion GILLES can explain the use of the usmgutil.exe program, which we don't know. Will you have an example? Which is the .dll to which it refers?Thank you
Hello Pedro,Umsgutil.exe is software that allows you to send an asynchronous message to a Uniface component via the urouter.The DLL to use is upostmsg.dll.There is an example in the documentation on the upostmessage page.
I do a mistake, umsgutil.exe more than one DLL see :
Reading the different posts, I think that, maybe, you could use usmgutil.exe instead of uniface.exe; you would only need one DLL file, no asn file, no ini file.
I'm just curious. Pedro, do you have the sql-client installed on every PC?
Another solution I used for a customer many years ago is to use the UServer to get Uniface. The UServer can act as a file server, so it can serve itself. Just try it! This solution drives systemadmin gracy, but it works!
Peter, what about the sql-client here and why does it drive systemadmin gracy?
That's what I remembered; system administrator being totally confused.
What you need is a server with a running urouter/userver. The Uniface folder must be shared with the client.
\\server\uniface\bin\uniface.exe /ini=.\asn\runtime.ini /asn=.\asn\runtime.asn application.aps
This looks quiet normal, but.... the relative paths are something a systemadministrator will never understand.
The trick is in the usys.asn:
$POLYSERVER = TCP:servername+portnumber|username|password|UST
*.* = $POLYSERVER:*.*
This will start Uniface locally, but you need to have it installed locally.
And about the data?
When you want to read the data directly from the local machine, I think you will need to have the drivers installed on the machine itself. But, if you have the userver running anyway, why not read data over the connection too?
Just play with it. This config worked for us from Uniface 7 and I have seen it working a few month ago in Uniface 10.3. I have never tested it with IDE, only the Uniface runtime.
BTW, you might even consider using Uniface Anywhere... With that even IDE runs in a browser.
We do use Anywhere as a way to offer SaaS/PaaS to our customers. However Anywhere do has a cost/client and ie. customers with a lot of PC:s managing their own servers etc. do not always want to pay for the Anywhere clients, especially not those also using eg. Citrix. They don't want to pay for another desktop virtualization product. Unfortunately eg. Citrix hasn't always worked that good with Uniface, especially if Uniface isn't installed on the Citrix server, but on another server on the network.
Peter, what do you mean by"This will start Uniface locally, but you need to have it installed locally."
You might consider to write a batch file to start IDE or uniface. In this batch file you can do things before starting Uniface or IDE. For instance set the environment variables, create folders you might need or even copy dll's.
For my local development I use Uniface in my local machine, but I did not install it. Might just as well be a folder on the network. Take a look at my project structure: https://gitlab.com/openUnifaceCommunity/deployment/basic-development-environment
Hi PedroBeside the tips Knut is giving you:
Create two shared folders on the server
ufs UnifAce server in this folder are all "read only" objects i.e. the uniface environment and your FRMs&Co .\uniface UnifAce .\<my_app_ver> .\<my_app_ver>\frm .\<my_app_ver>\aps ... where my_app_ver is a menmonic for the application and version e.g. THEAPP_0201 , Application "THEAPP", version 2.1
usr User files (modifable) i.e LOG-files and DOL/URR (as the must be writable ) .\default The default user (one can also create a sub folder for each user) .\DOL DOL and URR
Create an INI and ASN-File distinct from the UnifAce INI/ASN-Files.In this files include the UnifAce INIe resp. ASN-file at the end of the text.In ASN-file write (at least)
[settings] $putmess_logfile \\server\default\app_%p.log
[RESOURCES] ; If one is using UAR \\server\ufs\<my_app_ver>\mysource.uar
[Files] *.frm \\server\ufs\<my_app_ver>\frm\*.frm .*aps \\server\ufs\<my_app_ver>\aps\*.aps...
The shortcut looks likeTarget: \\server\ufs\uniface\common\bin\uniface.exe /asn=.\app.asn /ini=.\app.ini app.aps Dir: \\server\usr\public\
So you have a structured environmentIngo
PS:I did this text in a pub when Bundesliga was running, so there could be some beer stain in this wriiting
All of our pc's are set up this way...
\\server\uniface\common\bin\uniface.exe /asn=..... /dir=\\server\application_folder /ini= <app_name>
The problem you might have is the C++ runtime DLL's which Uniface requires. I believe you should be able to extract the dll's found in vcredist_x86.exe (if you're running the 32 bit version) and drop those dll's into the \uniface\common\bin folder rather than having to install it on each pc.
Hello Knut and others,
Since years we also use this way of installation with our customers. I mean the server-installation of the runtime. (with client-installation of C++ runtime) Since Uniface 9.7.04 we experience problems starting our application. Our first trial to start our application usually doesn't give a result (uniface.exe process hangs) but the second trial is normally succesfull. BUT since uniface 9.7.05 things became worse, we sometimes have to start our application multiple times before it really works. If you debug from startup it always works, but that's not really what customers should do.
Any idea what we can investigate?
© 2020 Uniface Privacy & Cookies | Privacy Statement | Legal