[SOLVED] Finding the location of a running Uniface Application

Author: rob.cooper@sanderson.com (robatwork)

Is there a way in debug or via logging to see the location of the URR file being read by my uniface App?   I tried $ioprint=255 and proc tracing but the urr file location being used does not get logged, the urr file in the ASN is NOT being used.   TIA

5 Comments

  1. Hello and welcome to the Uniface.info forum. Which Uniface version are you using? And are you really using Classic Deployment and not Standardized Deployment (for more info see Standardized vs. Classic Deployment)? In case you are using at least version 9.4 then you could start you Application with /who (command line option). The output looks like this:

                             UNIFACE 9.6.06 ----------------------------------------------------------------------   Executable                        =  C:\Program Files (x86)\Compuware\Uniface 9.6.02\common\bin\uniface.exe Application                       =  Runtime Release update                    =  9.6.06.01 ( 1125_1) - November 25, 2014 Platform: Operating system        =  MSW: Windows 7  (W71)   usysbin directory                 =  C:\Program Files (x86)\Compuware\Uniface 9.6.02\common\bin\ usysadm directory                 =  C:\Program Files (x86)\Compuware\Uniface 9.6.02\uniface\adm\ usys    directory                 =  C:\Program Files (x86)\Compuware\Uniface 9.6.02\common\usys\ working directory                 =  D:\data\Uniface\projects\     $RES                              =  C:\Program Files (x86)\Compuware\Uniface 9.6.02\common\usys\usys.dol                                         Archive (urmon) created with  : 9.6.06.01 ( 1106)                                         Archive (urmon) creation date : 10 Nov 2014  15:15:16                                         Archive (urmon) creation info : Create by Object Distribution                                         Archive (usys) created with  : 9.6.06.01 ( 1106_1)                                         Archive (usys) creation date : 11 Nov 2014  10:07:43                                         Archive (usys) creation info : Create by Object Distribution                                         Archive (usysappl) created with  : 9.6.06.01 ( 1106_1)                                         Archive (usysappl) creation date : 11 Nov 2014  10:07:44                                         Archive (usysappl) creation info : Create by Object Distribution                                         Archive (usysicon) created with  : 9.6.06.01 ( 1106_1)                                         Archive (usysicon) creation date : 11 Nov 2014  10:07:44                                         Archive (usysicon) creation info : Create by Object Distribution $RES                              =  .\udesc.urr                                         Archive (udesc) created with  : 9.6.06.01 ( 1106)                                         Archive (udesc) creation date : 08 Apr 2014  18:28:26                                         Archive (udesc) creation info : Create by /URR $RES                              =  .\udesc2.urr                                         Archive (udesc) created with  : 9.6.06.01 ( 1106)                                         Archive (udesc) creation date : 08 Apr 2014  18:28:26                                         Archive (udesc) creation info : Create by /URR $RES                              =  C:\Program Files (x86)\Compuware\Uniface 9.6.02\common\usys\usys.urr                                         Archive (uana) created with  : 9.6.06.01 ( 1106_1)                                         Archive (uana) creation date : 11 Nov 2014  10:06:27                                         Archive (uana) creation info : Create by /URR                                         Archive (udesc) created with  : 9.6.06.01 ( 1106_1)                                         Archive (udesc) creation date : 11 Nov 2014  10:06:11                                         Archive (udesc) creation info : Create by /URR                                         Archive (usys) created with  : 9.6.06.01 ( 1106)                                         Archive (usys) creation date : 10 Nov 2014  15:15:33                                         Archive (usys) creation info : Create by /URR $RES                              =  [FILES]    (Components)   Assignment file                   =  C:\Program Files (x86)\Compuware\Uniface 9.6.02\uniface\adm\usys.asn Assignment file                   =  .\test.asn   $SYS_charset                      =  CP1252 $DEF_charset                      =  CP1252 $WEB_charset                      =  CP1252       (c) 2014 Uniface B.V. All rights reserved. On the other hand, when you use ïoprint=64 then you should also see which files are loaded by the runtime. For example:

    Non-DBMS file open: C:\Program Files (x86)\Compuware\Uniface 9.6.02\common\usys\usys.urr Non-DBMS file close: Non-DBMS file open: udesc2.urr Non-DBMS file close: Non-DBMS file open: udesc.urr Non-DBMS file close: Should you, however, use the ASN setting $SEARCH_DESCRIPTOR = DBMS_FIRST or DBMS_ONLY then Uniface will search the descriptors in the database (and not in the .urr files). Hope this helps. Daniel


    Author: diseli (daniel.iseli@uniface.com)
  2. We are using 7.206


    Author: robatwork (rob.cooper@sanderson.com)
  3. robatwork said We are using 7.206

    Thanks for your reply. This is quite an old version. And it unfortunately does not have some of the useful features the latest Uniface releases have. You, however, could use a monitoring tool like the Windows Sysinternals Process Monitor (if your application is running on Windows) instead. With such a tool it's quite easy to figure out which files are read by your Uniface application and where they are located. Hope this helps. Daniel


    Author: diseli (daniel.iseli@uniface.com)
  4. Daniel,   Thanks for you reponses, the problem seems to have been that we were experiencing performance issues where the runtime was looking for uana.urr which was not found and took a long time not to be found. The udescr.urr file of our application was copied to the location and called uana.urr this solved the issue. But as this was done some as an emergency solution at christmas, nobody remembered this being done.   What is the purpose on the uana.urr and why does it override the asn setting?   Regards Rob


    Author: robatwork (rob.cooper@sanderson.com)
  5. Rob, Thanks for clarifying this matter. The uana.urr is for globally used descriptors (that e.g. could be shared between different applications) and the udesc.urr is for local descriptors. This might be useful if you have different development environments for different applications and they share specific objects. But it might be easier if you just map the uana.urr to the udesc.urr in the ASN file. For example:

    [FILES] usys:udesc.urr = <actual location of udesc.urr> usys:uana.urr = usys:udesc.urr This should simplify maintenance of your application (since you only need to update one URR file). And if the location of either URR file is not specified in the ASN file(s) then Uniface will look for it in the USYS directory (e.g. C:\Program Files\Uniface 7.2.06\usys). But Uniface will always look in udesc.urr first before reading uana.urr (in case the required information cannot be found in udesc.urr). If you want to find out what (potentially) is missing then you could run your application with I/O message level ($ioprint) 320 - the I/O message level 64 will show you the file I/O and 256 the calls to a descriptor in a URR file or the ULANA/USYSANA table. Hope this helps. Regards, Daniel


    Author: diseli (daniel.iseli@uniface.com)