Kbase P181345: Particular SDOs are not being assigned to expected AppServer partition
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  2/1/2011 |
|
Status: Unverified
SYMPTOM(s):
Particular SDOs are not being assigned to expected AppServer partition
Container (SmartWindow) has multiple SDO's
SDO's assigned to different AppServer partitions
AppServer partitions use distinct AppServices, mapping to distinct AppServer brokers
AppServers involved are all stateless
SDO's are not set to "Force to stateful operating mode"
SDO's are set to "Open query on Initialization"
Running container -> requests all go to the same AppServer broker
The following can happen:
If AppServer broker called does not have server-side code for all SDOs deployed, the call will fail with errors and the SDOs do not return data.
If AppServer broker called does have server-side code for all SDOs deployed, but connects to different databases, data from the wrong database will be returned.
FACT(s) (Environment):
OpenEdge 10.2x
All Supported Operating Systems
CAUSE:
Bug# OE00204094
CAUSE:
During the initialization of the container, not all AppServer partitions are recognized yet.
Since the SDOs are opened during this initialization, they are unable to determine correctly which AppServer should be called as a result.
FIX:
Workarounds:
The easiest way to workaround this is to mark the Container as not AppServer aware, but this does mean a potential loss of functionality as the support code to make AppServer calls directly from the container will be removed.
To work around the issue without loss of functionality, set the SDOs to not open the query on initialization (OpenOnInit=no), and add an override to the initializeObject procedure of the container to open the SDO's after the RUN SUPER (ie. after all objects are initialized.)