Tuesday, November 15, 2011

Does Oracle AIA deliver on it's integration promise? Answer is here!

Many thanks to all who attended my presentation today at DOAG Conference + Exhibition 2011. Your attendance is appreciated, and I enjoyed the casual and open discussion with the audience.

Me on the DOAG main floor... in a suit!

The title of my presentation was Oracle AIA - Does it deliver on it's integration promise? and the abstract as follows:
Oracle Application Integration Architecture (AIA) is designed to simplify the integration between Oracle and non-Oracle applications, including E-Business Suite, PeopleSoft, Siebel CRM, and more. Unfortunately, most organizations are fearful in adopting AIA for their integration solution for various reasons.

Oracle claims that implementing AIA to integrate your applications shortens project timelines, reduces risk, and ultimately lowers overall project cost.

So what is AIA? What are the benefits and challenges of implementing AIA? Should you consider traditional SOA development instead of AIA for your integration needs? This presentation will answer all these questions and more to help you determine whether AIA is right for you. Find out why AIA should be considered for your application integration needs, and learn of the challenges that past projects have faced when implementing AIA, as well as the successes they have achieved.
One of the highlights of my presentation was the "Truth Meter" slide. In this slide, I listed out several claims extracted from Oracle AIA marketing material, press releases, and release notes and posed them to 12 senior Oracle AIA Solution Architects asking them to rank, on a scale of 1 to 10, the truthfulness of each statement. These architects are customer architects, systems integration architects (i.e., consultants), and architects currently employed at Oracle Corporation.
The "truth" about Oracle's claims on AIA

One of the main observations from the table above is that it is questionable on whether AIA reduces complexity and accelerates delivery. However, there seems to be overwhelming agreement that it promotes reuse, is based on open and industry standards and best practices, and that the EBOs definitely do speed up design by standardizing on them.

Overall, kudos to Oracle Sales for being more realistic now with what AIA can do compared to the past. Oracle Sales seemed to sell AIA as the end all solution to your integration problems, and that was never the case from product development. Now, with the AIA Foundation Pack 11g and its supporting PIPs, the sales teams are better educated and more realistic when engaging customers on what it can and can't solve.

Despite mumblings from my Oracle colleagues regarding the future of AIA (i.e., that it does not have a bright one), in my opinion, it will continue to exist (and grow), but perhaps not in its current shape or form.


Ahmed Aboulnaga

Thursday, November 3, 2011

Taher Aboulnaga

My father, Taher Aboulnaga, passed away this last weekend.

It has been very difficult for myself and my family, and he is going to be missed dearly. 


My father has an M.S. in Computer Science and a Ph.D. in Information System Management. He spent the majority of his professional career within IT consulting and IT project management. My passion in technology, art, and philanthropy is greatly influenced by him, and I am both deeply grateful and extremely proud to be his son.

Please keep him in your prayers, as he was a good man who was often there for others.


Ahmed Aboulnaga

Friday, October 14, 2011

java.lang.ThreadDeath in ESB 10g

Problem:

Getting the following error in the ESB 10g logs:
An unhandled exception has been thrown in the ESB system. The exception reported is: "java.lang.ThreadDeath    at java.lang.Thread.stop(Thread.java:912)
    at com.evermind.server.http.HttpApplication.shutdownThreads(HttpApplication.java:6317)
    at com.evermind.server.http.HttpApplication.destroy(HttpApplication.java:6035)
    at com.evermind.server.http.HttpSite.destroy(HttpSite.java:955)
    at com.evermind.server.http.HttpServer.destroy(HttpServer.java:574)
    at com.evermind.server.ApplicationServer.destroy(ApplicationServer.java:2112)
    at com.evermind.server.ApplicationServerShutdownHandler.run(ApplicationServerShutdownHandler.java:93)
    at java.lang.Thread.run(Thread.java:735)
".


Solution:

Don't worry about this. This could occur if a forced shutdown happens in the middle of the transaction.


Applicable Versions:
  • Oracle Enterprise Service Bus (ESB) 10g


Ahmed Aboulnaga

Thursday, October 13, 2011

Modifying auditLevel in SOA 11g code

It is possible to configure the auditLevel within your SOA 11g code by adding a single line within composite.xml.

By doing so, when the code is deployed, it will assume that auditLevel. This can be overriden manually at any time via the EM console.
<?xml version="1.0" encoding="UTF-8"?>
<composite name="QueryCustomer" applicationName="Test" mode="active" revision="1.0" state="on" xmlns="http://xmlns.oracle.com/sca/1.0" xmlns:ui="http://xmlns.oracle.com/soa/designer/">
  <import location="http://soadev:8001/soa-infra/Customer.wsdl" namespace="http://xmlns.oracle.com/EnterpriseServices/Core/Customer/V2" importType="wsdl"/>
  <import namespace="http://ns.ipnweb.com/Customer"
          location="QueryCustomer.wsdl"
          importType="wsdl"/>
  <service ui:wsdlLocation="QueryCustomer.wsdl" name="QueryCustomer_ep">
    <interface.wsdl interface="http://ns.ipnweb.com/Order#wsdl.interface(ICustomerService)"/>
    <binding.ws port="http://ns.ipnweb.com/Order#wsdl.endpoint(ICustomerService/ICustomerService_pt)" location="oramds:/apps/AIAMetaData/wsdl/QueryCustomer.wsdl"/>
  </service>
  <property name="oracle.composite.faultPolicyFile">oramds:/apps/AIAMetaData/faultPolicies/fault-policies.xml</property>
  <property name="oracle.composite.faultPolicyFile">oramds:/apps/AIAMetaData/faultPolicies/fault-bindings.xml</property>
  <property name="auditLevel" many="false">Inherit</property>
  <component name="QueryCustomer">
    <implementation.mediator src="QueryCustomer.mplan"/>
    <property name="passThroughHeader">true</property>
  </component>
  .
  .
  .
</composite>

Valid values for auditLevel include:
  • Inherit
  • Off
  • Production
  • Development

References:

Ahmed Aboulnaga

Sunday, October 2, 2011

Disabling keepAlives in Oracle SOA Suite

Problem:

The target service or application (external to SOA Suite) is receiving a large number of connections from SOA Suite.


Solution:

1. For SOA Suite 10g, edit opmn.xml and add the highlighted argument to the OC4J_SOA startup parameters. For example:
<data id="java-options" value="-Xmx2048m -Xms2048m -XX:MaxPermSize=512M -Djava.security.policy=$ORACLE_HOME/j2ee/oc4j_soa/config/java2.policy -Djava.awt.headless=true -Dhttp.webdir.enable=false -Doc4j.userThreads=true -Doracle.mdb.fastUndeploy=60 -Doc4j.formauth.redirect=true -Djava.net.preferIPv4Stack=true -Dorabpel.home=/u01/app/oracle/OracleAS_1/bpel -Xbootclasspath^/p:/u01/app/oracle/OracleAS_1/bpel/lib/orabpel-boot.jar -Doracle.security.jazn.config=/u01/app/oracle/OracleAS_1/j2ee/oc4j_soa/config/jazn.xml -Doraesb.home=/u01/app/oracle/OracleAS_1/integration/esb -Daia.home=/u01/app/oracle/aia_1 -Dhttp.proxySet=false -Xgcpolicy:subpool -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xverbosegclog:/u01/app/oracle/OracleAS_1/opmn/logs/gc_oc4j_soa.log -DHTTPClient.disableKeepAlives=true"/>
2. For SOA Suite 11g, edit setSOADomainEnv.sh and add the highlighted argument to the soa_server1 startup parameters. For example:
PORT_MEM_ARGS="-Xms6144m -Xmx6144m -Xgcprio:throughput -XX:+HeapDumpOnOutOfMemoryError -XXtlasize=min=16k,preferred=128k,wasteLimit=8k -XX:+UseCallProfiling -DHTTPClient.disableKeepAlives=true"

Applicable Versions:
  • Oracle SOA Suite 10g (running on Oracle Application Server 10g)
  • Oracle SOA Suite 11g (running on Oracle WebLogic Server 11g)

Ahmed Aboulnaga

Saturday, October 1, 2011

Setting the ulimit for Oracle SOA Suite 11g

Problem:

Oracle SOA Suite 11g became temporarily unavailable under heavy load. Neither SOA Suite nor WebLogic Server crashed at the time, but soon after became accessible.

Upon further investigation, the errors found in /var/log/messages was (where 10000 was the uid of the 'oracle' unix user):
Aug 31 20:53:22 soadev sshd[22480]: fatal: setresuid 10000: Resource temporarily unavailable
Aug 31 20:53:33 soadev sshd[22597]: fatal: setresuid 10000: Resource temporarily unavailable
Aug 31 20:53:34 soadev sshd[22612]: fatal: setresuid 10000: Resource temporarily unavailable
Aug 31 20:53:34 soadev sshd[22619]: fatal: setresuid 10000: Resource temporarily unavailable
Upon trying to SSH into the linux server, the following was received on the SSH client:
Last login: Wed Aug 31 20:06:49 2011 from somedomain.somedomain
-bash: fork: Resource temporarily unavailable
-bash-3.2$
It appeared that the OS limits may be set a tad too low:
oracle@soadev:/home/oracle> ulimit -p -n -i -u
pipe size (512 bytes, -p) 8
open files (-n) 4096
pending signals (-i) 163904
max user processes (-u) 2047
This may contribute to an OOM exception observed in the SOA server several minutes later:
####<Aug 31, 2011 8:59:41 PM EDT> <Critical> <WorkManager> <soadev> <soa_server2> <[STANDBY] ExecuteThread: '8' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <b9cc3a64b01a130f:-6178527a:1322258bdd6:-8000-0000000000010b4c> <1314838781501> <BEA-002911> <WorkManager weblogic.jms.MyJMSServer_2.System failed to schedule a request due to java.lang.OutOfMemoryError: Resource temporarily unavailable in tsStartJavaThread (lifecycle.c:1096).
Java heap 6G reserved, 6G committed
Paged memory=18014398500568380K/36425712K.
Your Java heap size might be set too high.
Try to reduce the Java heap size using -Xmx:<size> (e.g. "-
java.lang.OutOfMemoryError: Resource temporarily unavailable in tsStartJavaThread (lifecycle.c:1096).
Java heap 6G reserved, 6G committed
Paged memory=18014398500568380K/36425712K.
Your Java heap size might be set too high.
Try to reduce the Java heap size using -Xmx:<size> (e.g. "-

Solution:

The OS limits may be set low. Consider doing the following.

1. Add the following to /etc/sysctl.conf:
kernel.shmmni = 4096
kernel.sem = 256 32000 100 142
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 4194304
net.core.wmem_max = 4194304
fs.file-max = 134283264
fs.aio-max-nr = 1048576
vm.min_free_kbytes = 512000

2. Add the following to /etc/security/limits.conf:
oracle soft nproc 16384
oracle hard nproc 63536
oracle soft nofile 16384
oracle hard nofile 63536

3. Add the following to /etc/pam.d/login:
session required /lib/security/pam_limits.so

4. Add the following to /etc/profile (for 32-bit Linux):
if [ $USER = "oracle" ]; then
  if [ $SHELL = "/bin/ksh" ]; then
    ulimit -p 16384
    ulimit -n 65536
  else
    ulimit -u 16384 -n 65536
  fi
fi

    Add the following to /etc/profile (for 64-bit Linux):
if [ $USER = "oracle" ]; then
  if [ $SHELL = "/bin/ksh" ]; then
    ulimit -Su 16383
    ulimit -Hu 16383
    ulimit -Sn 63535
    ulimit -Hn 63535
  else
    ulimit -Hn 63535 -Sn 63535 -Hu 16383 -Su 16383
  fi
fi

Applicable Versions:
  • Oracle SOA Suite 11g (11.1.1.x) on Red Hat 5.5 (32-bit & 64-bit)

References:
  • http://blog.ipnweb.com/2010/09/no-nonsense-installation-of-oracle.html

Ahmed Aboulnaga

Monday, September 26, 2011

QR codes for upcoming conference presentations

If you don't know what a QR code is, you might want to ignore the lengthy explanation on Wikipedia and simply pop out your smartphone and scan the following images.



   

You can download apps such as ShopSavvy or Barcode Scanner and simply scan any of the images above

Instead of forwarding you to a useless site (which most QR codes do), these ones contain details on the title, date, time, and venue of my upcoming presentations.


Want to generate your own QR codes? Check out http://qrcode.kaywa.com/


Ahmed Aboulnaga

Wednesday, September 21, 2011

ReloadProcess in AIA Foundation Pack 11g


Problem:
Sometimes, some composites show in an unknown state in Oracle SOA Suite 11g as shown by the clock image below:


This is due to one of the following reasons:
  • Coding issue
  • Infrastructure issue
  • Restart issue (if a composite references another composite but is loaded out of sequence, it may result in an unknown status) (you have no control over the order in which composites are loaded)

Solution:

If it is not a coding issue, many times if you bounce, it would resolve the problem. If you have the Oracle AIA Foundation Pack 11g, the other option to consider before bouncing is to use the "ReloadProcess" to manually reload the process instead of having to wait 20 minutes to start up SOA Suite.

1. Log in to the EM console using your "weblogic" account

2. Expand Farm_soa_domain --> SOA --> soa-infra (soa_server1) --> default

3. Click on "ReloadProcess"

4. Click on the "Test" button

5. Choose "XML View" from the dropdown

6. In the payload, add the path of the deployed composite in the MDS as shown. For example:
/deployed-composites/default/AIAReadJMSNotificationProcess_rev1.0
7. Click on the "Test Web Service" button

8. When you navigate to the instance, you can confirm whether the reload process is successful


9. By navigating to the BPEL component, you will see that an embedded Java activity called 'ReloadFileFromMDS' was executed which successfully reloaded the process



Applicable Versions:
  • Oracle SOA Suite 11g (11.1.1.x)

Ahmed Aboulnaga

Saturday, September 17, 2011

Finding and resubmitting "rejected" messages in SOA Suite 11g

Problem:

You navigate to an instance that has faulted.

From the screenshot below, it is a system fault which is unclear. There appears to have been an issue while consuming a message from the JMS queue.

There is no way to resubmit this. Even though our fault policy is configured to retry, it did not. And our audit level is set to 'production', so we don't have the payload to manually resubmit.

What do you do?
Before proceeding, make note of the last update time of the composite instance, as shown above.


Solution:

1. Navigate to your composite.

2. Click on the "Faults and Rejected Messages" tab.

3. Scroll down and find the same timestamp of the instance.

4. Immediately above it, you will notice another faulted instance with a Composite Instance ID of "Unavailable". You will also notice that a checkmark in the "Rejected Message" column is available.

 5. On the screenshot above, click on the actual "Error Message" on the leftmost column.

6. A popup window comes up. Click on "Show payload...".

7. Copy the payload (which does not include the SOAP headers).

8. Now that you have the payload, navigate to the composite and click on "Test". Then insert the payload above in between the SOAP body as shown.

That's it!

Please note that in SOA Suite 11g, there is a difference between "recoverable" messages and "rejected" messages. I'll post the difference later on.

Applicable Versions:
  • Oracle SOA Suite 11g (11.1.1.x)

Ahmed Aboulnaga

Friday, September 16, 2011

Oracle WebLogic Server 11g Administration Handbook just released

The Oracle WebLogic Server 11g Administration Handbook: Install, Configure, Manage, and Secure Oracle WebLogic Server 11g by my colleague Sam Alapati, an Oracle ACE, has recently been published.

I was privileged to be one of the two technical editors on this book, and recommend it to those wanting to learn more about administering WebLogic Server 11g, with topics benefiting both the novice and experienced administrator.
More information can be found here:

I am proud to have my profile published in this ORACLE Press Series book:
Oracle WebLogic Server is definitely an exciting product with a lot to learn.

Ahmed Aboulnaga

Wednesday, September 14, 2011

Emails received... emails responded to...

If you now notice on the right column, I have added two lines below the 'Submit' button:
Emails received: X
Emails responded to: Y


These numbers are valid as of September 2011, and are meant to offer a higher level of transparency and to keep our support team honest. There was a period of time where I was personally unable to respond to many of the inquiries that I receive, and this will no doubt force me to respond... or face the ugly truth.

And yes, rest assured that these are true and actual values.

Ahmed Aboulnaga

Tuesday, September 13, 2011

Raastech talks about 100% SOA Suite 11g uptime at UKOUG

Ahmed Aboulnaga, Technical Director at Raastech, will be presenting a topic focusing on upgrading to SOA Suite 11g while maintaining 100% uptime at the upcoming UK Oracle User Group Conference 2011 in Birmingham, United Kingdom.

UKOUG 2011 is the United Kingdom's largest Oracle Technology & E-Business Suite conference, taking place between 5-7 December at the International Convention Centre (ICC) in Birmingham. For more information, check out http://2011.ukoug.org.

Maintaining the uptime and availability of your integration infrastructure has become more and more critical for many organizations. Upgrading Oracle SOA Suite and Oracle Application Integration Architecture (AIA) Foundation Pack to their 11g equivalents is a non-trivial effort, particularly in a global implementation of 52 production servers. Learn how the upgrade of both the entire codeset and infrastructure was planned and implemented while maintaining 100% uptime and simultaneously introducing additional SOA governance tools such as Oracle Enterprise Repository (OER) 11g, Oracle Business Activity Monitoring (BAM) 11g, and Oracle Service Registry (OSR) 11g.
Title
Upgrading to Oracle SOA Suite 11g While Maintaining 100% Uptime
Date
December 6, 2011
Time
14:40-15:25
Paper ID
6589
Address
International Convention Centre (ICC)
Broad Street
Birmingham, B1 2EA
United Kingdom
We look forward to seeing you there.

Ahmed Aboulnaga

Saturday, September 10, 2011

Raastech presenting AIA for Communications at UKOUG

Ahmed Aboulnaga, Technical Director at Raastech, will be presenting a topic on Oracle Application Integration Architecture (AIA) for Communications at the upcoming UK Oracle User Group Conference 2011 in Birmingham, United Kingdom.

UKOUG 2011 is the United Kingdom's largest Oracle Technology & E-Business Suite conference, taking place between 5-7 December at the International Convention Centre (ICC) in Birmingham. For more information, check out http://2011.ukoug.org.

Integration is no easy task and almost always requires numerous technology sets to be implemented. But integrating seven different Oracle applications, six non-Oracle applications, and external applications, presents an entirely different set of challenges and issues. Oracle offers Oracle AIA for Communications as a central integration layer to simplify cross-application business process integration using a productized integration solution designed for reusability and configurability. Oracle AIA for Communications was the right choice for the integration solution at a large telco customer which tied Oracle Siebel Customer Relationship Management (CRM), Oracle Billing & Revenue Management (BRM), Oracle Supply Chain Management (SCM), Oracle Point-of-Sale (POS), Oracle Unified Inventory Management (UIM), Oracle Automatic Service Activation Program (ASAP), and Oracle Communications Services Gatekeeper (OCSG). This presentation will provide an overview of Oracle AIA for Communications, describe why it was the ideal integration solution for this implementation, and discuss lessons learned and challenges faced.
Title
Anatomy of a Successful Oracle AIA for Communications Implementation
Date
December 5, 2011
Time
16:35-17:35
Paper ID
6590
Address
International Convention Centre (ICC)
Broad Street
Birmingham, B1 2EA
United Kingdom
We look forward to seeing you there.

Ahmed Aboulnaga

Friday, September 9, 2011

Instance states for SOA Suite 11g

The Oracle SOA Suite 11g product development team has decided to confuse the heck out of everyone out there with the codes they use to designate the state of composites and components.

Composite states can be found in the following schema/table/column:
<env>_soainfra.composite_instance.state

BPEL component states can be found here:
<env>_soainfra.cube_instance.state

Mediator component states can be found here:
<env>_soainfra.mediator_instance.component_state

This table maps, to the best of my ability, the various states. It is nowhere near complete, and still requires clarification, but it is the most complete mapping out there to date.





State COMPOSITE_INSTANCE CUBE_INSTANCE MEDIATOR_INSTANCE
Open and Running 0 1 8
Open and Suspended 8 2
Open and Faulted 34 3 2
Closed and Aborted
8
Closed and Cancelled
7
Closed and Completed 1 5 0
Closed and Faulted 2 / 3 6
Closed and Pending/Cancel
4
Closed and Stale 64 9 16
Initiated 0

Terminated

16 / 48 / 50
Recovery Required 4 / 5 / 7
4
Non-Recoverable
10
Unknown 32



If you have any additions or corrections to the table above, please leave a comment below and I'll update it.

Ahmed Aboulnaga

Sunday, September 4, 2011

Raastech presenting AIA at DOAG Conference 2011

Ahmed Aboulnaga, Technical Director at Raastech, will be presenting a one-of-a-kind topic on Oracle Application Integration Architecture (AIA) at the upcoming DOAG Conference + Exhibition 2011 conference in Nürnberg, Germany.

The title of the presentation is Oracle AIA - Does it deliver on it's integration promise? IPN Web leverages years of experience and relationships within the Oracle AIA space to deliver a presentation that explains the advantages of AIA, what to use, and what to avoid.
Title
Oracle AIA - Does it deliver on it's integration promise?
Date
November 15, 2011
Time
13:00-13:45
Room
Riga
Presentation #
149
Stream
SOA/BPM
Address
CCN CongressCenter Nürnberg Ost
Messezentrum 1
90471 Nürnberg
Germany
Aside from explaining AIA in a manner largely different then how it is normally presented, several customer use cases are offered, and a "Truth Meter" based on actual data will also be presented, putting Oracle's claims about AIA to the test.

We look forward to seeing you there.

Ahmed Aboulnaga

Thursday, August 25, 2011

XML-24500 can not build schema

Problem:

I created a simple Mediator project where the WSDL interface was defined as an MDS import (technically, the problem here made no difference whether the WSDL was MDS referenced, HTTP referenced, or local to the project).


When compiling the SOA Suite 11g project via JDeveloper, the following error is returned:
Buildfile: C:\Oracle\jdev\jdeveloper\bin\ant-sca-compile.xml

scac:
     [scac] Validating composite "C:\Users\anaga\jdev_projects\Temp\Project2\composite.xml"
     [scac]
     [scac] XML-24500: (Error) Can not build schema ' ' located at 'urn:oracle:bpel:top-xsd:noNamespaceXSD:TEMP_TOP.__OAUX_GENXSD_.TOP.XSD'
     [scac] error: location {/ns:composite/ns:import[@location='file:/C:/Users/anaga/jdev_projects/Temp/Project2/SalesOrderEBS.wsdl']}: Load of wsdl "SalesOrderEBS.wsdl with Message part element undefined in wsdl [file:/C:/Users/anaga/jdev_projects/Temp/Project2/SalesOrderEBS.wsdl] part name = CreateSalesOrderListEBM    type = {http://xmlns.oracle.com/EnterpriseObjects/Core/EBO/SalesOrder/V2}CreateSalesOrderListEBM" failed
     [scac] warning: in Mediator1.mplan: Operation\Event "CreateSalesOrder" does not contain case. No operation\event will be executed\processed respectively.
     [scac] warning: in Mediator1.mplan: Operation\Event "SyncCreateSalesOrder" does not contain case. No operation\event will be executed\processed respectively.
     [scac] warning: in Mediator1.mplan: Operation\Event "CreateSalesOrderList" does not contain case. No operation\event will be executed\processed respectively.
     [scac] warning: in Mediator1.mplan: Operation\Event "QuerySalesOrder" does not contain case. No operation\event will be executed\processed respectively.
     [scac] warning: in Mediator1.mplan: Operation\Event "QuerySalesOrderList" does not contain case. No operation\event will be executed\processed respectively.
     [scac] warning: in Mediator1.mplan: Operation\Event "SyncUpdateSalesOrder" does not contain case. No operation\event will be executed\processed respectively.
     [scac] warning: in Mediator1.mplan: Operation\Event "UpdateSalesOrder" does not contain case. No operation\event will be executed\processed respectively.
     [scac] warning: in Mediator1.mplan: Operation\Event "UpdateSalesOrderList" does not contain case. No operation\event will be executed\processed respectively.
     [scac] warning: in Mediator1.mplan: Operation\Event "DeleteSalesOrder" does not contain case. No operation\event will be executed\processed respectively.
     [scac] warning: in Mediator1.mplan: Operation\Event "DeleteSalesOrderList" does not contain case. No operation\event will be executed\processed respectively.
     [scac] warning: in Mediator1.mplan: Operation\Event "SyncSalesOrderList" does not contain case. No operation\event will be executed\processed respectively.
     [scac] warning: in Mediator1.mplan: Operation\Event "ValidateSalesOrder" does not contain case. No operation\event will be executed\processed respectively.
     [scac] warning: in Mediator1.mplan: Operation\Event "ProcessSalesOrder" does not contain case. No operation\event will be executed\processed respectively.
     [scac] warning: in Mediator1.mplan: Operation\Event "ProcessSalesOrderShippingChargeCalculation" does not contain case. No operation\event will be executed\processed respectively.
     [scac] warning: in Mediator1.mplan: Operation\Event "ProcessSalesOrderATPCheck" does not contain case. No operation\event will be executed\processed respectively.
     [scac] warning: in Mediator1.mplan: Operation\Event "QuerySalesOrderCommon" does not contain case. No operation\event will be executed\processed respectively.

BUILD FAILED
C:\Oracle\jdev\jdeveloper\bin\ant-sca-compile.xml:269: Java returned: 1 Check log file : C:\Users\anaga\jdev_projects\Temp\Project2\SCA-INF\classes\scac.log for errors

Total time: 3 seconds

Solution:

There may be a namespace conflict. This behavior appears to be consistent with JDeveloper 11g and the AIA Foundation Pack 11g WSDLs.

1. Edit the .wsdl file (whether it's on the MDS, HTTP server, or local)

2.  Make the following change, and try again:
OLD:
<xsd:schema targetNamespace="http://xmlns.oracle.com/EnterpriseServices/SalesOrder/V2" elementFormDefault="qualified">

NEW:
<xsd:schema>

Applicable Versions:
  • Oracle JDeveloper 11g (11.1.1.5)
  • Oracle SOA Suite 11g (11.1.1.4)
  • Oracle AIA Foundation Pack 11g (11.1.1.4)

References:

Ahmed Aboulnaga

Friday, August 12, 2011

Did Oracle Fusion Middleware 11g set a performance record? Yes and no

First off, congrats to Oracle for setting a performance record for a 4-processor system and achieving the highest performance per core with SPECjEnterprise2010 benchmark with WebLogic Server 11g. The press release, dated April 8, 2011, can be located here.

This is good news for people like myself, whose entire professional career is centered around Oracle technologies. As many of you know, I'm a big supporter of both Oracle and its technologies, and if I didn't believe in their products, I wouldn't be working on them.

However, my issue though is the title of the press release:
Oracle Fusion Middleware 11g Sets Record Performance for a 4-Processor System and Achieves Highest Performance Per Core with SPECjEnterprise2010 Benchmark
It's misleading. Last I heard, Oracle Fusion Middleware 11g consists of over 30 products (and now hardware) within areas of Business Intelligence to Collaboration to Data Integration to Service-Oriented Architecture. The subheading to the press release fortunately clarifies things a little better:
Oracle WebLogic Server 11g Running on Dell Beats IBM WebSphere on a Similar Configuration
It's confusing enough for those customers out there who don't know what the heck you're referring to when you say "Oracle Fusion Middleware". So although I do appreciate Oracle trying to promote this single application infrastructure foundation, in reality, most customers only use a subset of its products and get confused with the constant reference to the term "Oracle Fusion Middleware".

Ahmed Aboulnaga

Oracle Fusion Middleware 11g web site down for 5 minutes

Working with Oracle SOA technologies, I am well accustomed to SOAP messages, faults, etc., and even more accustomed to ensuring that production sites are running smoothly.

Lo-and-behold, navigating to the http://www.oracle.com/us/products/middleware/index.html site today resulted in the following error:


Total downtime was just under 5 minutes (from 11:39am to 11:44am EST).

It's good to know that I'm not the only one who suffers dealing with unplanned downtimes. :)

Ahmed Aboulnaga

Monday, August 8, 2011

"DBLocker caught exception while retrieving locked messages"

Problem:

Getting the following error in the "soa_server1.out" log every 5 seconds:
<Aug 8, 2011 5:36:34 PM EDT> <Error> <oracle.soa.mediator.common.listener> <BEA-000000> <DBLocker caught exception while retrieving locked messages. Will retry retrieval after 5 seconds
java.lang.NullPointerException
        at java.io.ByteArrayInputStream.<init>(ByteArrayInputStream.java:89)
        at oracle.tip.mediator.common.error.ErrorDBLocker.getMediatorMessage(ErrorDBLocker.java:171)
        at oracle.tip.mediator.common.error.ErrorDBLocker.convert(ErrorDBLocker.java:138)
        at oracle.tip.mediator.common.error.ErrorDBLocker.getLockedMessages(ErrorDBLocker.java:120)
        at oracle.tip.mediator.common.listener.DBLocker.getLockedMessages(DBLocker.java:146)
        at oracle.tip.mediator.common.listener.DBLocker.run(DBLocker.java:81)
        at oracle.integration.platform.blocks.executor.WorkManagerExecutor$1.run(WorkManagerExecutor.java:120)
        at weblogic.work.j2ee.J2EEWorkManager$WorkWithListener.run(J2EEWorkManager.java:183)
        at weblogic.work.DaemonWorkThread.run(DaemonWorkThread.java:30)

Investigation:

After enabling the loggers to TRACE:32, it was narrowed down to a single BPEL process, but the process responds to requests fine and is functionally operational.

The following SQL query returns locked instances:
SELECT *
FROM   mediator_case_instance
WHERE  recoverable = 1
AND    (STATUS = 'ready' OR STATUS = 'locked')
AND    fault_obj IS NULL;
Although the status in the MEDIATOR_CASE_INSTANCE table may be 'locked', it is showing up in the EM console as 'Faulted'. Trying to abort the instances does not fix the problem.

Solution:

1. Run the following UPDATE statement (as the <prefix>_SOAINFRA database user) to remove the locks on those instances:
UPDATE mediator_case_instance
SET    status = 'completed'
WHERE  recoverable = 1
AND    status = 'locked'
AND    fault_obj IS NULL;
The DBLocker error should now stop.


Applicable Versions:
  • Oracle SOA Suite 11g (11.1.1.4)

Ahmed Aboulnaga

Wednesday, August 3, 2011

"JCA Binding execute of Reference operation 'insert' failed due to: DBWriteInteractionSpec Execute Failed Exception"

Problem:

The following fault is returned in one of your SOA Suite 11g instances upon execution:
Non Recoverable System Fault :
Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'insert' failed due to: DBWriteInteractionSpec Execute Failed Exception. insert failed. Descriptor name: [InsertEventStore.EventStoreHeader]. Caused by java.sql.SQLException: Cannot call Connection.rollback in distributed transaction. Transaction Manager will commit the resource manager when the distributed transaction is committed.. Please see the logs for the full DBAdapter logging output prior to this exception. This exception is considered retriable, likely due to a communication failure. To classify it as non-retriable instead add property nonRetriableErrorCodes with value "0" to your deployment descriptor (i.e. weblogic-ra.xml). To auto retry a retriable fault set these composite.xml properties for this invoke: jca.retry.interval, jca.retry.count, and jca.retry.backoff. All properties are integers. ". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution.
Solution:

This is related to a SOA Suite 11g component (e.g., BPEL, Mediator) that is using a database adapter that supports global transactions. Unless global transaction support is required, you should disable it. Not only will it resolve this error, but also improve performance.

1. Log in to the WebLogic Administration console.

2. Navigate to Home --> Summary of Deployments --> DbAdapter --> Summary of JDBC Data Sources --> <DataSource> --> Configuration --> Transaction

3. Uncheck 'Supports Global Transactions'

4. Bounce the SOA managed server(s)


Applicable Versions:
  • Oracle SOA Suite 11g (11.1.1.x)

References:
  • http://forums.oracle.com/forums/thread.jspa?threadID=926501

Ahmed Aboulnaga

Wednesday, July 27, 2011

"Unable to create transformer" returned from a SOA Suite 11g faulted instance

Problem:

One of your SOA Suite 11g instances is returning the following fault:
ORAMED-03601:[Invalid transformer configuration]Unable to create transformer. It could be because of transformation file or configuration issues. Reason : "xsl/CustomerEBS_To_CustomerEBM.xsl"Possible Fix:Check log file for any exceptions and contact Oracle Support Services for further help.
Solution:

1. This is a problem with the transformation. Troubleshoot and correct the XSL file in the project.

Applicable Versions:
  • Oracle SOA Suite 11g (11.1.1.x)

Ahmed Aboulnaga

Monday, July 25, 2011

My Apologies

To the readers of this blog, and to those who have contacted me for technical issues... I apologize for the recent inactivity on the blog as well as my lack of response to the emails I have received from many of you.

I have been quite occupied editing a book, supporting a few large projects, and dealing with personal family matters.

Thank you for your patience, and I'll be back in no time!

In the meantime, enjoy this video!





Ahmed Aboulnaga

Saturday, June 25, 2011

Change size of /dev/shm

I installed Oracle Database 11g (11.2.0.1.0) for Linux x86-64. When starting up the database, I received the following error:
ORA-00845: MEMORY_TARGET not supported on this system
 This is due to not enough memory being allocated to /dev/shm.

Simply increase the size of /dev/shm as follows:
umount /dev/shm
mount -t tmpfs shmfs -o size=2g /dev/shm

Applicable Versions:
  • Oracle Database 11g (11.2.0.1.0)
  • Oracle Enterprise Linux 5.5 64-bit


Ahmed Aboulnaga