Feedback
Did this article resolve your question/issue?

   

Article

Error 14378 updating _Connect-CachingType VST with SELF service connections

Information

 
TitleError 14378 updating _Connect-CachingType VST with SELF service connections
URL Name000040736
Article Number000153688
EnvironmentProduct: OpenEdge
Version: 10.1x, 10.2x, 11.x
OS: All supported platforms
Question/Problem Description
Self service clients raise error 14378 when trying to update the _Connect-CachingType field.  
Client server connections do not raise error 14378 when trying to update the _Connect-CachingType field. 
Regardless of connection type, the  _Connect-CachingType VST field is not updated.

Error 14378 cannot be suppressed with NO-ERROR.

A self service database connection the following code will raise the error in _MSG but not with the ERROR-STATUS system handle:
 
assign _MSG = 0.
for each _connect where _Connect-Type eq "BROK":
  display _connect-id _connect-name _Connect-Type.
  assign _Connect-CachingType = 2 no-error.
end.
message error-status:num-messages _MSG(1) view-as alert-box.
Steps to Reproduce
Clarifying Information
Why error does 14378 with Self service connections and not client/server?
Why is error 14378 not reflected in ERROR-STATUS?
Why does NO-ERROR fail to suppress error 14378?
Why is the  _Connect-CachingType not updated?
Error MessageUpdating _Connect-CachingType Virtual System Table is not supported (14378)
Defect Number
Enhancement Number
Cause
The 14378 message is not an error as far as the ABL is concerned. It's an informational message from the database layer which goes to standard output, which for the ABL client is the screen and for the database server (when connected client/server) is the database log file. This has been like this forever for this specific message.

The code provided has the NO-ERROR on the field assignment but the message is shown when the record is written to the database, at the end of the record scope. So you would have to have a RELEASE statement with the NO-ERROR to avoid seeing the message altogether. Since the code has a FOR EACH, the record will be written at the end of the record scope, which is the end of the FOR EACH iteration, in which case the message cannot be supressed.

The field is not updated (and the reason why the message is displayed) because the code is trying to set the statement cache for the BROKER, which is not allowed - you can only set it for clients and the server processes: "SELF,REMC,SERV,SQSV".
Resolution
When setting _Connect-CachingType, connections other than SELF,REMC,SERV,SQSV (eg "BROK","WDOG","MON") are not supported by Client Database-Request Statement Cache.

Ensure that the ABL code will select only users of these types to update the _Connect-CachingType:

Example:

DEFINE VARIABLE i          AS INTEGER   NO-UNDO.
DEFINE VARIABLE j          AS INTEGER   NO-UNDO INITIAL 1.
DEFINE VARIABLE vInputList AS CHARACTER NO-UNDO
    INITIAL "SELF,REMC,SERV,SQSV":U.

DO j = 1 TO NUM-ENTRIES(vInputList):
    FOR EACH _connect WHERE _connect._Connect-type = ENTRY(j, vInputList):
        DISP ENTRY(j, vInputList) _Connect-Name (_Connect-Id - 1) _Connect._Connect-CachingType.
    END.
END.
Workaround
Notes
Last Modified Date1/20/2015 1:38 PM
Attachment 
Files
Disclaimer The origins of the information on this site may be internal or external to Progress Software Corporation (“Progress”). Progress Software Corporation makes all reasonable efforts to verify this information. However, the information provided is for your information only. Progress Software Corporation makes no explicit or implied claims to the validity of this information.

Any sample code provided on this site is not supported under any Progress support program or service. The sample code is provided on an "AS IS" basis. Progress makes no warranties, express or implied, and disclaims all implied warranties including, without limitation, the implied warranties of merchantability or of fitness for a particular purpose. The entire risk arising out of the use or performance of the sample code is borne by the user. In no event shall Progress, its employees, or anyone else involved in the creation, production, or delivery of the code be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability to use the sample code, even if Progress has been advised of the possibility of such damages.