Forum Post: Use -ttmarshal 4 client startup parameter with REFERENCE-ONLY temp tables for...

  • Thread starter Thread starter Cecilia Stockare
  • Start date Start date
Status
Not open for further replies.
C

Cecilia Stockare

Guest
There should be an option to be able to use the -ttmarshal 4 client startup parameter with REFERENCE-ONLY temp tables that do not trigger the error: A NO-SCHEMA-MARSHAL table cannot be used as a parameter where the receiving side does not have a pre-prepared schema. (12323) The customer has a very specific case where they are trying to BIND the reference-only temp table defined in an appserver side procedure (as.p), to a temp table created and populated in an appserver super procedure. A call to an internal procedure (bindTempTable) of the super procedure performs the binding, for example: /* as.p */ define temp-table ttOrder no-undo reference-only like order. define output parameter table for ttOrder. /* Call a local appserver procedure to bind the temp table for passing back to the client */ /* run bindTempTable in hSomewhere (output ttOrder bind). */ The bindTempTable procedure is an (appserver local) internal procedure in a persistent appserver super procedure. The super procedure is started at appserver startup and a temp table is created an populated at this time. The client call to 'as.p' simply wants to pass this temp table back to the cl ient, binding to the appserver super procedure temp table for performance reasons. However because the client is started with -ttmarshal 4, the error 12323 is preventing the customer from doing this. Even setting the temp table schema-marshal attribute doesn't stop the error happening: define variable h_ttOrder as handle no-undo. h_ttOrder = temp-table ttOrder:handle. h_ttOrder:schema-marshal = 'full':U The customer comments that for performance reasons they would like to use ttmarshal 4, but this error is preventing this. They add: here we would have a workaround, but this means to do a deep copy, which isn't a good idea when trying to improve performance This limitation of the language prevents us from using the highest possible value of -ttmarshal. I'd like to see these limitations to be removed, e.g. by adding an option for us to tell the compiler that we'd like to have FULL schema marshaling in these cases.

Continue reading...
 
Status
Not open for further replies.
Back
Top