We are offering self-registration for users of an application, through
web services calls to a UA PRD. We have created a custom attribute
(let's call it Login ID) and the user chooses the value for this
attribute to use as their "username" when logging into the system; so
inherently we need to keep this value unique. Before the application
sends the web service request with all the workflow data items, it
performs a global query using the VDX service to see if the Login ID
exists. If it is available, the application sends the web service
request to the workflow, and we have a mapping activity that calls the
SAME global query to do one final check to ensure the Login ID is
available. All of these components work, here is the problem though.

We did some performance testing of the web service calls (up to 150
concurrent connections, and more than 4000 user registrations). The
application that performed the tests would randomly generate the Login
IDs in a XX[date/time]vu1 format. When the requests were at their peak,
the testing application would generate the same IDs (this was not
intended) for back to back requests. Many of the times when this
occurred, the global query within the workflow would NOT work as
intended, and we would have duplicate login IDs written to the
directory. After seeing this behavior, I conducted the same type of test
with a colleague and myself submitting a workflow at the same exact time
with duplicate Login IDs, and we got the same result.

So my question is, are the workflows serialized kind of like driver
events where they process one at a time, or is it multi-threaded. If
serialized, it seems like my problem is that the DAL is not getting
refreshed quick enough and if that is the case, can I set a global
variable within the UA workflow engine that can be checked as well
instead of having to query the DAL? Any other thoughts on how to combat
against this are welcome!


bjohnsonacn's Profile: http://forums.novell.com/member.php?userid=43213
View this thread: http://forums.novell.com/showthread.php?t=396277