GemStone GBS replicationSpec

The GemStone GBS replicationSpec provides a mechanism for controlling how much information is sent back when evaluating on the database, see the Replicates section in GemBuilder™ for Smalltalk/VW User’s Guide by GemTalk Systems. GT provides similar functionality through the Wire Encoding GtRsrRemoteObjectWireSerializationStrategy GtRsrWireSerializationStrategy << #GtRsrRemoteObjectWireSerializationStrategy slots: {}; package: 'GToolkit-GemStone' .

This documentation currently assumes that you are familiar with the operation of the GBS replicationSpec and only details how to configure GT for the matching functionality and some differences.

The GBS replicationSpec is a client side specification that has to be configured for each session, and updated if required.

Assuming the appropriate class side #replicationSpec methods have been defined for all the required classes, and that the class definitions match in GT and GemStone, the session can be configured with:

session := GtGemStoneSessionRegistry defaultSession.
GtGemStoneSerialisationManager
	installRemoteObjectWireEncodingGbsReplicationSpec: GtGemStoneSerialisationManager gtWireReplicationSpec
	maxProxyDepth: 4
	on: GtGemStoneSessionRegistry defaultSession.
  

Any objects that are then returned as stubs (equivalent to max depth 0) can then retrieve their proxy object with:

GtRsrProxyServiceClient 
	bareProxyObjectAt: object
	ifAbsent: [ NotFound signalFor: object ].
  

For examples of defining custom replication specifications see GtWireGbsReplicationSpecConverterExamples Object << #GtWireGbsReplicationSpecConverterExamples slots: {}; tag: 'Examples'; package: 'GToolkit-WireEncoding' .