[Glass] GemServer and subclasses
Dale Henrichs via Glass
glass at lists.gemtalksystems.com
Fri Jan 13 08:49:24 PST 2017
Bruno,
In the beginning there was WAGsZincAdaptor which was written to be very
similar in functionality to the FastCGI and Swazoo adaptors for
GemStone. WAGsZincAdaptor was to run against a pretty vanilla GemStone
port of Zinc which is to say that the basic structure of Zinc was
preserved. WAGsZincAdaptor as also intended to run using the
WAGemStoneRunSeasideGems class which is called from the
startSeaside30_adaptor script. This was all done around 2013.
In 2014 Sebastian Heidbrink began work on gsApplicationTools which was
intended to a create gem server framework for Zinc that supported all of
the Zinc services beyond Seaside, namely REST and WebSockets. In late
2014, I forked Sebastian's work. At this point in time it became
necessary to do some work to adapt the Zinc servers for running in
GemStone: non-Seaside transaction support, object log-based logging,
interactive server debugging, improved error reporting..
This work ended with two new ZnServer subclasses:
ZnGemServerManagingMultiThreadedServer and
ZnTransactionSafeManagingMultiThreadedServer.
ZnGemServerManagingMultiThreadedServer was the original ZnServer class
designed to be used with GemServers and should work perfectly well with
Seaside
When working with REST and web sockets, transaction support is not
built-in as it is in Seaside and the
ZnTransactionSafeManagingMultiThreadedServer class was created to be
transaction safe ... the main difference between
ZnGemServerManagingMultiThreadedServer and
ZnTransactionSafeManagingMultiThreadedServer is that the socket
references in the ZnServer code are protected from being persisted
(GsSocket instances cannot be persisted).
A side-effect of making the ZnTransactionSafeManagingMultiThreadedServer
transactionally safe is that continuations can be safely snapped off for
error stacks in the ZnServer code itself --- a feature which can be
useful for Seaside applications as well.
So long story short, the ZnSeasideGemServer class works fine with
Seaside, but continuations cannot be used for the debugging ZnServer
errors. And continuations can be used to debug ZnServer errors with the
ZnSeasideNewGemServer class.
Dale
On 1/12/17 8:42 AM, BrunoBB via Glass wrote:
> Hi,
>
> Which is the difference between ZnSeasideGemServer and ZnSeasideNewGemServer
> ?
>
> regards,
> bruno
>
>
>
> --
> View this message in context: http://forum.world.st/GemServer-and-subclasses-tp4929474p4929486.html
> Sent from the GLASS mailing list archive at Nabble.com.
> _______________________________________________
> Glass mailing list
> Glass at lists.gemtalksystems.com
> http://lists.gemtalksystems.com/mailman/listinfo/glass
More information about the Glass
mailing list