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.

Reply via email to