Hi Darren,
I think you're definitly right here and it's really strange, why this hasn't
been asked before!
In my option the "UserProfile"-ContentType is kind of "overdesigned".
I tried to start a discussion about usebiltiy of this type (especially about
SEARCHIBILITY !)
some time ago, but without much feedback ;-(
For something so vital as a userprofile, a separe specialized table would
make sense to me.
The OBJECT-approach is good for content objects, but - again - userprofiles
are something special.
Anyway - the reason for the poor performance you're encountering is the
number of DB-request needed:
"cfa_userprofilecreate" (and a "normal" "cfa_contentobjectcreate") perform
very very (very very very) sad
due to the CREATE-Handler of ContentType "userProfile" which calls
"cfa_contentobjectcreate" for six embedded
CONTACT-objects. The CREATE-Handler of CONTACT calls
"cfa_contentobjectcreate" on several embedded objects,
and they call ...
In the end, one single creation of a UserProfile-Object results in:
one INSERT into OBJECTS and about 75 (!) UPDATE on OBECTS - always
storing the same data, always triggering checks and inserts on PROPERTIES
and SHAREDOBJECTSYNC.
The "workaround" we're using in our product GATEBUILDER based on Spectra is
not to call "cfa_userprofilecreate",
but directly "cfa_contentobjectcreate" avoiding the create-handler being
triggered by setting explicitly METHOD = "GET":
....
<cfa_contentobjectcreate
datasource="#Attributes.Datasource#"
method="get"
stParams="#stParams#"
typeid="#Application.GateBuilder.UserProfileTypeID#"
stProperties="#stUserProfileCreateProps#"
label="#Attributes.EMailAddress#">
....
Alternativly you could put "<!--- --->" around the code inside create.cfm in
the handlers/userprofile-directory.
Maybe someone else has a better idea - or we're both really use Spectra in
some odd/uncommon way...
Regards,
Peter Trumpp
system architect
conceptware ag
-----Urspr�ngliche Nachricht-----
Von: Darren Nickerson [mailto:[EMAIL PROTECTED]]
Gesendet am: Donnerstag, 15. M�rz 2001 16:48
An: Spectra-Talk
Betreff: cfa_userprofilecreate takes 29000ms to execute???
Folks,
We've encountered a show-stopper in Spectra 1.5 which has me completely
aghast. I'm trying to figure out why nobody's screaming about this problem
from the treetops, since it seems so fundamental. The only thing I can
figure
out is that we must be trying to use Spectra in some odd/uncommon way, such
that people rarely encounter the problem. I post my question here looking
for
"Me Too's" and perhaps for a workaround so that we don't have to move away
from Spectra entirely.
We're running Spectra 1.5 on NT connecting to Oracle 8i on NT. The policy
and
user databases are in iPlanet LDAP. The problem we are specifically having
is
with the
cfa_userprofilecreate tag. We've put together a test page that is pasted
below. The cfa_usercreate tag is taking 110ms to execute, which leads us to
believe that everything is ok with LDAP. However, the cfa_userprofilecreate
tag is taking approx. 29000ms to execute, which added to the other
processing
on the registration page brings the total time to around 35 seconds with
only
one user on the system. Can this really be an "acceptable" level of latency
for such a fundamental operation? Has anyone else encountered this??
<CFA_UserCreate UserDirectory="#request.cfa.activeUserDirectory#"
UserName="username" Password="password" Description="User">
<CFA_UserProfileCreate Datasource="#request.cfa.contentobject.dsn#"
UserName="username" r_stUserProfile="stUserProfile">
-Darren
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Structure your ColdFusion code with Fusebox. Get the official book at
http://www.fusionauthority.com/bkinfo.cfm
------------------------------------------------------------------------------
To Unsubscribe visit
http://www.houseoffusion.com/index.cfm?sidebar=lists&body=lists/spectra_talk or send a
message to [EMAIL PROTECTED] with 'unsubscribe' in the body.