Concurrency checked or not concurrency checked that is the question!

I'm on a customer site and found the following:

WINNT 4.0 Servers (MULTIPROCESSOR) JAGUAR INSTALLED ON THEM

Could not log more than 5 users onto the Jag server via a smallclient file =

calling the component deployed to Jaguar.  We use CYGWIN to simulated load =

testing.

o       I looked at the code that was written and was given a smaller more =

compact version where there was just 4 DataStores:  First Instantiating it,=
=20
Creating it and then Destroying it.  This worked but was not complete=20
enough to determine where the problem was.  I reduced the code down even=20
further and simply created a single DataStore and destroyed it.

o       I tested this using Cygwin (a unix shell scripting tool) and found =

that I could successfully make the system work without failing or breaking =

it.  This told me that the DataStore was not the problem.

o       I moved onto using a Transaction Object, first Instantiating it,=20
creating it and then destroying it along with the DataStore.  The result of=
=20
this test was a failure after reaching 4 users. (Processes spawned)

o       I then removed the DataStore and tried it again.  Once again it=20
failed.  I added code to check the validity of the transaction object,=20
forcing a ?destroy?, disconnect etc. and still there was active connections=
=20
remaining in Jaguar and displaying in the Processes Tab of windows task=20
manager.  I struggled with this until the morning of 11 DEC 01 when we=20
tried something different.

=B7       Tuesday, December 11, 2001:
o       After speaking with a colleague about the problem it was suggested =

that the ?concurrency (component is ?thread-safe)? property be ?un-checked?=
=20
since PowerBuilder components are Not Thread Safe as a rule.  It was=20
further suggested that I add a TransactionServer local variable,=20
instantiate it, and use the SetComplete() function after the destroy=20
statement to ?force Jaguar? to let go of the component.

o       After testing it was found that this worked!  We then checked the=20
Concurrency property and it failed.  I unchecked the concurrency property=20
and removed the setComplete() call as well as the TransactionServer=20
variable, tested it and found it was successful.

Final determination is that on NT, the multi-processor functionality is not=
=20
stable and may have to something to do with the affinity between two=20
processors, how they share memory and/or resources.

Of note, a contractor here, attempted to ?pull a processor? from a test=20
machine and use the Microsoft technical guide on how to reconfigure a=20
Multi-Processor server using a single processor without having to reinstall=
=20
Windows NT thinking that was the problem since a single processor system=20
works with concurrency checked.

o       The customer has tested the WIN2K Server in a larger Load test with=
=20
the real application with over 21,000 requests and 22,000 method calls with=
=20
not one failure.  Today we will move it into production and have ?real=20
people? test instead of using simulations.

We feel that this was the problem all along but it is a mystery, however=20
how they were able to run load tests prior to last Friday on their server=20
without any problems.  A suggestion may be that the concurrency property=20
was ?checked? but we were assured that this was not the case.  Without=20
prior knowledge of the problem before Friday, it is difficult to ascertain =

what exactly the environment was like.

QUESTION:  Has anyone ever heard of PB Components being deployed to Jaguar =

with the concurrency property checked to a server that has dual processors =

on a WINNT 4.0 OS and had problems?  Because we cannot run the concurrency =

property here on WINNT with more than 4 users.  The client app isn't=20
released from the windows processes tab on Taskmanager. On WIN2K its not a =

problem.  I've been told that 2000 is more stable than NT with regards to=20
Multiprocessor servers.

Peter Borreggine (SYBASE PROSERV)
Bethesda, MD
0
Peter_Borreggine_
12/12/2001 8:03:10 PM
sybase.easerver.powerbuilder 3902 articles. 0 followers. Follow

1 Replies
341 Views

Similar Articles

[PageSpeed] 57

I have concurrent PB components running on dual processor machine with WinNT
version 4 sp 6a.

A.

Peter_Borreggine_-_Sybase wrote:

> I'm on a customer site and found the following:
>
> WINNT 4.0 Servers (MULTIPROCESSOR) JAGUAR INSTALLED ON THEM
>
> Could not log more than 5 users onto the Jag server via a smallclient file
> calling the component deployed to Jaguar.  We use CYGWIN to simulated load
> testing.
>
> o       I looked at the code that was written and was given a smaller more
> compact version where there was just 4 DataStores:  First Instantiating it,
> Creating it and then Destroying it.  This worked but was not complete
> enough to determine where the problem was.  I reduced the code down even
> further and simply created a single DataStore and destroyed it.
>
> o       I tested this using Cygwin (a unix shell scripting tool) and found
> that I could successfully make the system work without failing or breaking
> it.  This told me that the DataStore was not the problem.
>
> o       I moved onto using a Transaction Object, first Instantiating it,
> creating it and then destroying it along with the DataStore.  The result of
> this test was a failure after reaching 4 users. (Processes spawned)
>
> o       I then removed the DataStore and tried it again.  Once again it
> failed.  I added code to check the validity of the transaction object,
> forcing a ?destroy?, disconnect etc. and still there was active connections
> remaining in Jaguar and displaying in the Processes Tab of windows task
> manager.  I struggled with this until the morning of 11 DEC 01 when we
> tried something different.
>
> �       Tuesday, December 11, 2001:
> o       After speaking with a colleague about the problem it was suggested
> that the ?concurrency (component is ?thread-safe)? property be ?un-checked?
> since PowerBuilder components are Not Thread Safe as a rule.  It was
> further suggested that I add a TransactionServer local variable,
> instantiate it, and use the SetComplete() function after the destroy
> statement to ?force Jaguar? to let go of the component.
>
> o       After testing it was found that this worked!  We then checked the
> Concurrency property and it failed.  I unchecked the concurrency property
> and removed the setComplete() call as well as the TransactionServer
> variable, tested it and found it was successful.
>
> Final determination is that on NT, the multi-processor functionality is not
> stable and may have to something to do with the affinity between two
> processors, how they share memory and/or resources.
>
> Of note, a contractor here, attempted to ?pull a processor? from a test
> machine and use the Microsoft technical guide on how to reconfigure a
> Multi-Processor server using a single processor without having to reinstall
> Windows NT thinking that was the problem since a single processor system
> works with concurrency checked.
>
> o       The customer has tested the WIN2K Server in a larger Load test with
> the real application with over 21,000 requests and 22,000 method calls with
> not one failure.  Today we will move it into production and have ?real
> people? test instead of using simulations.
>
> We feel that this was the problem all along but it is a mystery, however
> how they were able to run load tests prior to last Friday on their server
> without any problems.  A suggestion may be that the concurrency property
> was ?checked? but we were assured that this was not the case.  Without
> prior knowledge of the problem before Friday, it is difficult to ascertain
> what exactly the environment was like.
>
> QUESTION:  Has anyone ever heard of PB Components being deployed to Jaguar
> with the concurrency property checked to a server that has dual processors
> on a WINNT 4.0 OS and had problems?  Because we cannot run the concurrency
> property here on WINNT with more than 4 users.  The client app isn't
> released from the windows processes tab on Taskmanager. On WIN2K its not a
> problem.  I've been told that 2000 is more stable than NT with regards to
> Multiprocessor servers.
>
> Peter Borreggine (SYBASE PROSERV)
> Bethesda, MD

--
__________________________

Adam Simmonds [TeamSybase]
System Architect
ITS FLEXSIS PROJECT
The University of Sydney
Phone:  +61 2 9351 5174
Mobile: +61 403 341 474
Fax:    +61 2 9351 7711


0
Adam
12/13/2001 7:48:37 AM
Reply: