Saturday, September 29, 2012

Oracle SOA Suite 11g : Challenges

Oracle SOA Suite is a good integration platform, but it still needs maturity in multiple areas. Here are some thoughts on challenges we faced with Oracle SOA Suite 11g environment. Hopefully majority of there areas improve in the next version Oracle SOA Suite 12c.
Development Tools
  • There are multiple development tools to be used for creating an integration in existing architecture we implemented with 11g.
    • JDeveloper for Oracle SOA Suite.
    • Eclipse based for OSB development.
    • IE based for OSB development.
    • Application Explorer for iWay OEM’ed adapters for Oracle SOA and OSB.
  • Code Refactoring through JDev is not straight forward.
    • For ex: When you rename a component, you will have to manually do "Find in Files" and check for occurence of old name in all other components and do a replace...
    • Another ex: When you are deleting a resource like for example an "xsd", JDev has "show references or dependants" button, but it doesnt work.
Development, Debugging, Deployment : Challenges
  • Cumulative statistics are not easy to get through em console or BAM.
    • Cumulative statistics not supported: like “Count of all transactions that faulted with a specific email address?”, “Count of all transaction that came with an email address?”
    • it is not possible to get them out of the  box without custom coding or custom reporting through BAM.
    • No development tool support for Oracle Adapter’s service development for OSB.
    • No easy way for supporting Property files for controlling applications/project.
  • JDeveloper lacks basic debugging capabilities.
    • For ex: You can’t trace a flow in BPEL and do things like step-out or step-in a transaction.
  • Ant interfaces not available to build & deploy OSB Components.
  • No Support for durable subscriptions in EDN
 Transaction Traceability : Pain Points
Monitoring, tracing and correlating a messages/transactions while it goes back and forth between SOA and OSB is very time consuming and is an art than science.
  • Inconsistent Transaction logging in OSB and SOA. Multiple consoles for OSB and SOA. Difficult to correlate events between OSB and SOA.
  • The way we architected our 11g implementation is by tying OSB intricately to all processes. Any interaction with internal or external applications/system from a SOA process should go through OSB Proxy and Business services. But Oracle OSB is not truly integrated with Oracle SOA from development or administration toolsets point of view.
  • OSB Transaction Tracing à depends on developer coding to write messages to message report or Alert History.
  • OSB run Process Flow Path persistency not available
Error Recovery, Transaction Re-Submissions
  • No Provision to resubmit or re-execute a successful instance of BPEL process or a Mediator invocation
    • Should be able to resubmit failed and completed events.
    • Should be able to resubmit errors failed in earlier version with a new version.
    • Resubmission is slow. Need to improve the speed…
    • In some scenarios, All the errors should be re-submittable/recoverable irrespective of any type of fault.
    • Need to have export facility for the records searched to excel. Currently it allows to export selected records to excel sheet, but it does not work properly.
    • Search few instance in the em console for process form data. Select few rows and with right click you get a option to export data as excel. I did not get actual results in the excelsheet other than some fixed text all the time.
Process Monitoring
  • Process Monitoring & Metrics Collection
    • BAM is truly not  integrated to monitor processes automatically. You will have to code BPEL processes to publish messages to BAM and in BAM you have to process these messages and right custom reporting.
    • My point of reference in this perspective is webMethods Optimize which has capabilities out of the box to monitor key process statistics and learn, monitor, predict without much coding in the actual process itself.
  • Production Debugging
  • Too many log files
    • The number of log files to search for in case of issues is large  (all together about 15 log files for both OSB and SOA together).
    • SOA Suite Logs
    • Admin server Logs:
    • $ORACLE_BASE/admin/soa_domain/aserver/soa_domain/servers/AdminServer/logs/AdminServer.log*
    • Domain Logs:
    • $ORACLE_BASE/admin/soa_domain/aserver/soa_domain/servers/AdminServer/logs/soa_domain.log*
    • Access Logs:
    • $ ORACLE_BASE/admin/soa_domain/aserver/soa_domain/servers/AdminServer/logs/access.log*
    • SOA Managed Server Logs:
    • $ORACLE_BASE/admin/soa_domain/aserver/soa_domain/servers/soa_server1/logs/soa_server1.log*
    • Administration Console and written to a single log file for that server instance, SERVER_NAME.out
    • $ORACLE_BASE/admin/soa_domain/aserver/soa_domain/servers/soa_server1/logs/soa_server1.out*
    • Diagnostic Logs
    • $ORACLE_BASE/admin/soa_domain/aserver/soa_domain/servers/soa_server1/logs/soa_server1-diagnostic.log
    • Access Logs:
    • $ORACLE_BASE/admin/soa_domain/aserver/soa_domain/servers/soa_server1/logs/access.log*
    • This is an HTTP access log file.
    • AIA Logs:
    • $ORACLE_BASE/admin/soa_domain/aserver/soa_domain/servers/soa_server1/logs/aia-debug.log
    • $ORACLE_BASE/admin/soa_domain/aserver/soa_domain/servers/soa_server1/logs/aia-error.log
    • $ORACLE_BASE/admin/soa_domain/aserver/soa_domain/servers/soa_server1/logs/aia-trace.log
    • OSB
    • Admin server Logs:
    • $ORACLE_BASE/admin/osb_domain/aserver/osb_domain/servers/AdminServer/logs/AdminServer.log*
    • Domain Logs:
    • $ORACLE_BASE/admin/osb_domain/aserver/osb_domain/servers/AdminServer/logs/osb_domain.log*
    • Access Logs:
    • $ORACLE_BASE/admin/osb_domain/aserver/osb_domain/servers/AdminServer/logs/access.log*
    • OSB Managed Server Logs:
    • $ORACLE_BASE/admin/osb_domain/aserver/osb_domain/servers/osb_server1/logs/osb_server1.log*
    • $ORACLE_BASE/admin/osb_domain/aserver/osb_domain/servers/osb_server1/logs/osb_server1.out
    • Access Logs:
    • $ORACLE_BASE/admin/osb_domain/aserver/osb_domain/servers/osb_server1/logs/access.log*
  • Miscellaneous
    • No Support for Sub-Partitions or folders within partitions.
    • Oracle Apps adapter stops intermittently listening for events in EBIZ. We thought that this issue was fixed during POC, but looks like it’s not completely fixed. This observation was made after we had sufficient time to have processes run in 11g.
  • Infrastructure Challenges
    • AIA Installation Issues
      • Painful
      • Long Recovery in case of failures
    • DR Failover Over
      • Alias Migration
      • make transition to DR site faster and less resource-intensive
    • No log rotation options for WLS_SOA*.out file in WebLogic console
    • Lack of thoroughness in Archive jobs