... until the collector arrives ...

This "blog" is really just a scratchpad of mine. There is not much of general interest here. Most of the content is scribbled down "live" as I discover things I want to remember. I rarely go back to correct mistakes in older entries. You have been warned :)


ALDSP Update Order

In ALDSP 2.0, the manual states that when updating, containers are processed prior to contained objects, except when deleting when the reverse is true (see the Update Order section of the Client Application Developer's Guide).  It is interesting that the 2.1 version of the same manual makes no such claim.  Indeed, there is a reference in the 2.1 release notes to a bug (CR237186) in which update order is not respected.  It states that updates occur in alphabetical order, although it is not clear whether it is alphabetical by table name, data service name, or element name (the release notes weakly suggest that it might be element name).

Experimentation with 2.1 reveals that update order for insertions appears to be correct (container first) regardless of alphabetical order.  Deletions, on the other hand, do not appear to work properly.  I tried naming the elements in the DTO so that the container was alphabetically before the child, and vice versa.  Neither worked.

The 2.1 client guide suggests that an override function should be used to control update order.  I was unable to get even a trivial override function to work -- I would always get a NullPointerException.  Once I got even a single NPE, blanking out the override function in data service's property page would not restore functionality.  I would have to hand-edit the pragma to remove the override function XML element completely.

Incidentally, I couldn't get override functions to compile without adjusting the server classpath for the application to include wlsdo.jar from the liquidata/lib directory.  The manual does not mention this..

Blog Archive