[Glass] GemServer and subclasses

Dale Henrichs via Glass glass at lists.gemtalksystems.com
Fri Jan 13 08:49:24 PST 2017


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 

ZnGemServerManagingMultiThreadedServer was the original ZnServer class 
designed to be used with GemServers and should work perfectly well with 

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.


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