Geert Claes, CPD
The NNTP forums from Sybase - forums.sybase.com - are now closed.
All new questions should be directed to the appropriate forum at the SAP Community Network (SCN).
Individual products have links to the respective forums on SCN, or you can go to SCN and search for your product in the search box (upper right corner) to find your specific developer center.
When Jaguar support was added to PowerBuilder, there was great attention
paid toward migration efforts from distributed PowerBuilder users to
EAServer. That said, if you already had a distributed PB application
built, the theory was that you could migrate components to Jaguar with
little or no modification to existing code - for instance, DBParms like
UseContextObject were added to bridge the gap between constructs like
COMMIT and ROLLBACK to SetComplete and SetAbort. The biggest issue
here, IMHO, is that DPB was essentially a stateful environment and
Jaguar/MTS really begs for statelessness to get any sort of decent
scalability. So while it might have been easy to migrate compnents from
DPB it might not always have been wise, depending on the degree of
statefulness in the design.
Now if you're starting from scratch, you'll have much better chance of
success here and will/should start off with a stateless design as a
goal. Some of the obvious things you'll have to watch are the
instantiation mechanisms (CreateInstance for DPB and Jaguar,
ConnectToNewObject from MTS), connection caching mechanisms (MTS allows
only ODBC, Jaguar and DPB have native driver support; MTS and Jaguar
cache/pool automatically, DPB requires SetTransPool to be set up). I
don't know that there's a master list anywhere, although the
documentation and SDN papers on migrating from DPB to Jaguar would be a
start. There is the function which() on the transaction server context
object, which would let you know where the component is actually
executing (MTS, Jaguar, or neither) and you could base your logic on the
result of that test. Obviously, you'd want to spend some time
identifying the differences and extrapolating them to some abstract
layer so that your 'real' business code doesn't have to worry about
where the component is actually hosted.
Senior Technical Support Engineer