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
.
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
.