In normal conditions use DSP for read services and WLI for database writes for WLI Server versions till 9.2. For cases where we have weblogic 10.3 app servers we can use DSP as the data services layer for both reads and writes.
Avoid 8.1, 9.2 and 10.3 Interoperability Issues by generating the WSDL in 10.3 if you are using all three platforms. In cases of any mixed usage always create the wsdl with the higer version of the platform being used.
Use BARE annotation in your web services so that you do not need the WSDL for types jar and only the XSD files.
Do not use DBControl as a DataSource. Close connections if you do a getConnection. Furthermore we shouldnt write java type code for accessing databases through WLI. Use the inbuilt DB Controls for the purpose which supports almost all databases.
All WSDLs should have a return parameter that indicates the SUCCESS or FAILURE of the call. Failure messages should be displayed on the user screen.
Data not found should not be displayed if system errors have occurred in reading or writing data.
While using portals or pageflows remove any empty catch blocks in the Front end.
In BPM, please do not write much code in commit action or the prepare action. Keep it as minimal as possible.
Exception occurred is not enough of a message. Please log the actual exception on the screen in a pretty format.
Redirect 500, 404 to meaningful pages.
Use XA datasources if your transaction spawns multiple datasources. XA is there for a reason.