Maximo Business Object Development - Best Practices
TomRontiris 270003RGE6 Comment (1) Visits (17393)
If you are an IBM client, business partner, consultant, or even a IBM Maximo developer you should be following the Maximo Development Best Practices when customizing Maximo Business Objects (MBO's). As a Maximo developer and Lab Advocate, I have dealt with many clients who have extended Maximo business objects and have made their own customizations. When extending the MBO's you should be aware that if done incorrectly, it could lead your end users to experience poor performance, out of memory errors and/or system crashes amongst other things, which leads to user frustration and potential downtime.
Another common problem that has been seen in custom code are open MboSets. When a MboSet is fetched from the database and is then set in memory; you need to make sure that you close the set when you are done using it, otherwise locking or even dead locking can occur in some databases. If a MboSet is used for traversing forward only and not to be saved, then you can mark the MboSet as a "DISCARDABLE" set. Using the discardable flag enables the release of MBO's quicker. Garbage collection usually cleans up the left over MBO's and MboSet's, but it could be slower that what you need, therefore discardable MboSets are recommended.
If two MboSets contain MBO's pointing to the same record in the database and you modify both you will get "Record has been updated by another user". This is why you should use the same relationship to obtain the record.
The Best Practices mentioned above and more can be found on the Maximo Wiki.