At this moment there are no more active methods for
classes controlled by this metaobject (or metaobjects derived from it).
This method will try to commit all transactions in all opened databases.
Until this method is completed no other invocation or access to
objects controled by this MOP is possible (it is forced by declaring
this static method "synchronized" as well as static method fixObject(),
which is called before any access to the object).
First sendForgottenObject is called. Then, for all modifed objects (all
others are release by metaobject.releaseObject()) we find it's database
and collect all object involved in the trasaction. If any is invalidated,
the transaction is aborted.
Each objects storage store(obj) function is called, which packs the byte
into the tranaction buffer. Then the storage's commitTransaction is called,
and if the trasaction spans several storages, those storages
commitSubtransaction are called. This send the bytes to the server, and if
anything goes wrong, abortTransaction is called.
If all went well, obj.metaObject.commitchanegs is called for every object