I'm not sure if its because of ARAT or not. I see similar numbers of db accesses with our current compile using the rtb_api but it's not that slow.
At first I though the ant/build_rtb_compile.xml job just hung, no feedback after more than an hour while the last rtb_api selective compile only took 10 minutes.
I started adding a verbose option to automation/scm/custom/rtb/p/rtbcust_compiler.p, (currently hardcoded verbose no means of passing the parameter yet.)
This shows me that it takes ages to compiling some sources. While waiting I see millions (literally) of accesses on the rtb_pname table, .
[PCTRun] Processing workspace: rel16plus... [PCTRun] /*****************************************/ [PCTRun] Setting workspace in RTB session to 'rel16plus'... [PCTRun] Compile settings [PCTRun] ================= [PCTRun] Workspace : rel16plus [PCTRun] Task number : 000000000 [PCTRun] Module : * [PCTRun] Group : * [PCTRun] Object type : * [PCTRun] Object(s) : * [PCTRun] Force compile : no [PCTRun] Listings : no [PCTRun] Xref : yes [PCTRun] Ignore warnings : yes [PCTRun] Stop on error : no [PCTRun] Verbose : no [PCTRun] Starting custom selective compiler: [PCTRun] w:\rtb\current_win\automation\scm\custom\rtb\p\rtbcust_compiler.p [PCTRun] Performing selective compile for workspace: rel16plus [PCTRun] 2016-02-02T16:54:28 [PCTRun] Object: CselQuery.cls - OK [PCTRun] Pmod: be.cce.erpalg.CceSelect [PCTRun] Path: /cce/rel16plus/src/be/cce/erpalg/CceSelect/CselQuery.cls [PCTRun] [PCTRun] 2016-02-02T16:56:21 [PCTRun] Object: _pwrun.p - OK [PCTRun] Pmod: adecommx [PCTRun] Path: /cce/rel16plus/src/adecommx/_pwrun.p [PCTRun] [PCTRun] 2016-02-02T16:56:21 [PCTRun] Object: _pwsrch.p - OK [PCTRun] Pmod: adecommx [PCTRun] Path: /cce/rel16plus/src/adecommx/_pwsrch.p [PCTRun] [PCTRun] 2016-02-02T17:01:25 [PCTRun] Object: csel-d.p - OK [PCTRun] Pmod: ccealg [PCTRun] Path: /cce/rel16plus/src/ccealg/csel-d.p [PCTRun] [PCTRun] 2016-02-02T17:01:25 [PCTRun] Object: csel-w.p - OK [PCTRun] Pmod: ccealg [PCTRun] Path: /cce/rel16plus/src/ccealg/csel-w.p [PCTRun] [PCTRun] 2016-02-02T17:01:31 [PCTRun] Object: cselhfd-p.p - OK [PCTRun] Pmod: ccealg [PCTRun] Path: /cce/rel16plus/src/ccealg/cselhfd-p.p [PCTRun] [PCTRun] 2016-02-02T17:01:31 [PCTRun] Object: cslh-d.p - OK [PCTRun] Pmod: ccealg [PCTRun] Path: /cce/rel16plus/src/ccealg/cslh-d.p [PCTRun] [PCTRun] 2016-02-02T17:01:31 [PCTRun] Object: cslh-w.p - OK [PCTRun] Pmod: ccealg [PCTRun] Path: /cce/rel16plus/src/ccealg/cslh-w.p [PCTRun]
[PCTRun] 2016-02-02T17:06:48
[PCTRun] Object: loktyp-p.p - OK
[PCTRun] Pmod: erpsto
[PCTRun] Path: /cce/rel16plus/src/erpsto/loktyp-p.p
[PCTRun]
I monitored the data accesses (vst table data) starting at 17:01:31 at 17:05 I gave up waiting and collected the data
lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk xFile-Name Connection Read Create Update Delete Deltax xqqqqqqqqqqq qqqqqqqqqqq qqqqqqqqq qqqqqqqqq qqqqqqqqq qqqqqqqqq qqqqqqqqqx xrtb_pname 244 1.961.595 0 0 0 1.961.595x xrtb_object 244 2.816 0 0 0 2.816x xrtb_path 244 493 0 0 0 493x xrtb_wspace 244 457 0 0 0 457x xrtb_session 244 45 0 0 0 45x xrtb_dbfile 244 39 0 0 0 39x xrtb_brepo 244 0 0 0 0 0x xrtb_commits 244 0 0 0 0 0x xrtb_count 244 0 0 0 0 0x
Not using appserver :
I tried switching to using an rtb appserver connection but if I blank out the rtb database connection parameters the job no longer starts.
If I don't blank it out it still makes a connection to the rtb database even though I specify to use an Appserver .
Part of the issue solved. I had added verbose only to the successful compiles. The extreme differences between one source and another was just because there we're a lot of non compiling sources between 2 successful compiles.
I still find the number of rtb_pname access disproportionate to the number of rtb_pname accesses. +/- 700 rtb_pname records for each object
Added assemblies option to PCTRun selective compile, missing assemblies caused a lot of the compile errors
<PCTRun procedure="appSolutions/appSolute/RTB/Automation/adrtb_selectivecompile.p"
failonerror="true"
dlcHome="${ProgressDLC}"
graphicalMode="true"
cpinternal="${ProgressCpInternal}" cpstream="${ProgressCpStream}"
paramFile="${RtbCompileParamFile}"
iniFile="${RtbCompileIniFile}"
parameter="${RtbCompileProperties}"
assemblies="${RtbCompileAssemblies}"
verbose="${BuildVerbose}">
Hey Carl,
The extra parameters like assemblies will probably keep coming as other come across use cases we have not been working with on ARAT.
You could probably also just add to the to the .pf file in the paramFile property ;-) That should actually handle most of these as they come up.
With regard to the compiles, I am not aware that we are actually doing any lookups in the repo for the compiles from the toolkit. Do you get the same kind of reads on the rtb_pname table if you do the compile from RTB directly ? Or are you no longer doing that ;-)
The rtb_pname reads are during the xref processing. It has to read them. However, it is indexed and based on our profiling, it has very little affect on performance.