Hi. I think my development environment has regressed in some way, because I never noticed this before. I deploy an XCP application to a Linux box and sometimes run on my Windows workstation DFC client applications that fetch and modify XCP objects.
Recently I noticed that after obtaining an XCP object from the remote docbase calling "setString()" for the first time is taking 10 minutes and I clearly remember it was much faster before. The docbase is available via a 3MBit VPN connection. After enabling all DFC tracing I noticed that every time I relaunch my client app and call "setString()", it downloads the content of the type "xcp_artifact_bundle" and saves it into the Windows %TEMP% folder with the name "xcpdar*.dar" along with some smaller dar files. The files are not deleted when the program completes, but they're not reused. After a few runs I have multiple equal dar files:
xcpdar2ca88354-0118-4ea4-aa6d-d0aa3fdde1af6289653772930781364.dar
xcpdara332d9e2-2ed6-44d1-a595-6b40884cbdd03708892252383648947.dar
xcpdarcb9a0453-62dc-4f09-8bb8-183975d22a014825127754010998661.dar
xcpdard7d25748-6f01-4786-a137-5e2d8bf7606a8549710312221045554.dar
The artifact bundle is 80Mb (yes, we have most 3rd party jars packed in there).
I've checked my Linux box and haven't found any similar files in /tmp, however, I tried to run the same program on a different docbase from another Windows machine and the dar files were downloaded too.
Why does it have to download xcp_artifact_bundle? Is it related to attribute validation or perhaps business events?
Is this file supposed to be cached across launches?
Why aren't there similar files in /tmp on Linux when the XCP webapp or the Method Server update XCP objects?
I'm using dfc.jar 7.3.0190.0080 on client and XCP 16.4P6.
In the DFC traces after I call "setString()" there are some relevant messages:
Loaded class ArtifactLocatorCache
Loaded class ApplicationArtifactBundle
ArtifactLocatorCache Creating artifact locator and writing to cache: efx
select r_object_id from xcp_artifact_bundle where namespace = 'efx' and bundleinstallstatus=1
PersistentDataManager Fetching data from server for 0801e24080070520
"MAKE_PULLER",..., SYSOBJ_ID=0801e24080070520] ==> 1
RPC: getBlock(1,0,
RPC: getBlock(1,1,
... 10 minutes later
RPC: getBlock(1,1304,
RPC: applyForBool("KILL_PULLER" [HANDLE=1]
Loaded class com.emc.xcp.artifactmanager.internal.builder.DependencyInfo