Wednesday, March 30, 2011

Creating a JMS queue in WebLogic Server

These instructions describe how to create a JMS queue (or topic) in Oracle WebLogic Server 11g (10.3.x). This will create a queue to be used by your SOA code called "jms/IPNWebQueue".

This involves creating a persistent store, a JMS Server, a JMS Module, a subdeployment, and finally the queue or topic.

1. Create a Persistent Store

a. Log in to the WebLogic Server Administration Console

b. Click “Lock & Edit”

c. Navigate to “soa_domain --> Services --> Persistent Stores”

At this point, you may create a file persistent store or a JDBC persistent store.

Create a File Persistent Store

d.    Click “New --> Create FileStore”

e.    Use the following settings:
Name:        IPNWebFileStore
Target:        soa_server1
Directory:    /u01/app/oracle/middleware/user_projects/domains/soa_domain/servers/soa_server1/IPNWebFileStore     (Create this directory on the server first!)
Create a JDBC Persistent Store

d.    Click “New --> Create JDBCStore”

e.    Use the following settings:
Name:            IPNWebJDBCStore
Target:            soa_server1
Datasource:    IPNWebDataSource (create new data source)
Name:            IPNWebDataSource
JNDI:              jdbc/db/Queue
JDBC URL:     jdbc:oracle:thin:@dbhost:1521:dbsid
Driver:            oracle.jdbc.OracleDriver
Targets:          soa_server1
2. Create JMS Server

a. Navigate to “soa_domain --> Services --> Messaging --> JMS Servers”

b. Click “New”

c. Use the following settings:
Name:                  IPNWebServer
Persistent Store:   IPNWebFileStore    (or IPNWebJDBCStore, depending on which one to use)
Target:                  soa_server1
3. Create JMS Module and Subdeployment

a. Navigate to “soa_domain --> Services --> Messaging --> JMS Modules”

b. Click “New”

c. Use the following settings:
Name:       IPNWebModule
Targets:      soa_server1
Create       Subdeployment
d. Navigate to “soa_domain --> Services --> Messaging --> JMS Modules”

e. Click on “IPNWebModule”

f. Click on “Subdeployments”

g. Click “New”

h. Use the following settings:
Name:      IPNWebSubdeployment
Targets:    IPNWebServer
4. Create Queue (or Topic)

a. Navigate to “soa_domain --> Services --> Messaging --> JMS Modules”

b. Click on “IPNWebModule”

c. Click “New”

d. Use the following settings:
Resource Type:      Queue        (or Topic, depending on what you want to use)
Name:                   IPNWebQueue
JNDI Name:            jms/IPNWebQueue
Subdeployments:    IPNWebSubdeployment
JMS Servers:          IPNWebServer
Now, the name of the queue that your SOA code will use is "jms/IPNWebQueue".


Ahmed Aboulnaga

Saturday, March 26, 2011

"ERROR: Could not activate" WebLogic 11g queue

Problem:

When trying to create a queue on Oracle WebLogic Server 11g, we received the following error:
<Jan 5, 2011 2:11:29 PM EST> <Error> <Deployer> <BEA-149265> <Failure occurred in the execution of deployment request with ID '1294254683211' for task 'weblogic.deploy.configChangeTask.35'. Error is: 'weblogic.application.ModuleException: ERROR: Could not activate MyModule!MyQueue'
weblogic.application.ModuleException: ERROR: Could not activate MyModule!MyQueue
        at weblogic.jms.backend.BEDestinationRuntimeDelegate.activate(BEDestinationRuntimeDelegate.java:239)
        at weblogic.jms.module.JMSModule$EntityState.setState(JMSModule.java:1717)
        at weblogic.jms.module.JMSModule$EntityState.setState(JMSModule.java:1667)
        at weblogic.jms.module.JMSModule$EntityState.access$100(JMSModule.java:1608)
        at weblogic.jms.module.JMSModule.activate(JMSModule.java:332)
        Truncated. see log file for complete stacktrace

Caused By: weblogic.messaging.kernel.KernelException: The Messaging Kernel MyServer has not yet been opened
        at weblogic.messaging.kernel.internal.KernelImpl.checkOpened(KernelImpl.java:215)
        at weblogic.messaging.kernel.internal.DestinationImpl.activate(DestinationImpl.java:290)
        at weblogic.messaging.kernel.internal.QueueImpl.activate(QueueImpl.java:1713)
        at weblogic.messaging.kernel.internal.DestinationImpl.resume(DestinationImpl.java:274)
        at weblogic.messaging.kernel.internal.QueueImpl.resume(QueueImpl.java:1899)
        Truncated. see log file for complete stacktrace
>
<Jan 5, 2011 2:11:29 PM EST> <Error> <Deployer> <BEA-149202> <Encountered an exception while attempting to commit the 9 task for the application 'MyModule'.>

Solution:

1. Restart the AdminServer and try again.


Applicable Version:
  • Oracle WebLogic Server 11g (10.3.x)

Ahmed Aboulnaga

Friday, March 25, 2011

UPGMED-02064 when migrating an ESB 10g project to Mediator 11g

Problem:

When we upgraded an ESB 10g project to 11g (by opening the project up in JDeveloper 11g), the following error was returned:
INFO: UPGMED-02003: Upgrading ESB 10.1.3 to AS 11 Mediator started
INFO: UPGMED-02004: Upgrading project HelloWorld under C:\SOA\
INFO: UPGMED-02078: Upgrade messages log level : "INFO"
INFO: UPGMED-02028: Taking backup of existing project to C:\SOA\HelloWorld.backup
INFO: UPGMED-02030: Setting end point properties for HelloWorld[GUID:E5CC18B0028C11E0BF8FED76F2D3C8B6]
INFO: UPGMED-02031: End point properties not found for HelloWorld[GUID:E5CC18B0028C11E0BF8FED76F2D3C8B6]
INFO: UPGMED-02030: Setting end point properties for Default.InvokeHelloWorld[GUID:A2673070334011E0BF729B0E8FA0AAAA]
INFO: UPGMED-02031: End point properties not found for Default.InvokeHelloWorld[GUID:A2673070334011E0BF729B0E8FA0AAAA]
INFO: UPGMED-02007: Upgrading External Service Default.InvokeHelloWorld[GUID:A2673070334011E0BF729B0E8FA0AAAA]
INFO: UPGMED-02011: Upgrading Routing Service HelloWorld[GUID:E5CC18B0028C11E0BF8FED76F2D3C8B6]
INFO: UPGMED-02042: Parsing wsdl from location "file:C:/HelloWorld/HelloWorld.wsdl"
SEVERE: UPGMED-02050: WSDL may not be available for service "HelloWorld[GUID:E5CC18B0028C11E0BF8FED76F2D3C8B6]", If it is refering to external wsdl please make sure that is accesible otherwise copy the wsdl locally and update WSDL location in the <serviceDefinition> of the RS which invokes the wsdl.
SEVERE: oracle.tip.mediator.upgrade.MediatorUpgradeException: javax.wsdl.WSDLException: WSDLException: faultCode=WSDL Parsing Failed: WSDL Parsing Failed for url [file:C:/HelloWorld/HelloWorld.wsdl]: java.lang.RuntimeException: Could not create URL from 'file:C:/HelloWorld/HelloWorld.wsdl' and 'C:\SOA\MDS\AIAMetaData\AIAComponents\EnterpriseObjectLibrary\Core\Common\V2\CommonComponents.xsd'
at oracle.tip.mediator.upgrade.MediatorUpgradeContext.parseServiceWSDL(MediatorUpgradeContext.java:582)
at oracle.tip.mediator.upgrade.MediatorUpgradeContext.getDefinitionForService(MediatorUpgradeContext.java:461)
at oracle.tip.mediator.upgrade.MediatorUpgradeFwk.upgradeRoutingService(MediatorUpgradeFwk.java:468)
at oracle.tip.mediator.upgrade.MediatorUpgradeFwk.upgradeService(MediatorUpgradeFwk.java:332)
at oracle.tip.mediator.upgrade.MediatorUpgradeFwk.upgrade(MediatorUpgradeFwk.java:200)
at oracle.tip.mediator.upgrade.MediatorUpgradeFwk.main(MediatorUpgradeFwk.java:130)
Caused by: javax.wsdl.WSDLException: WSDLException: faultCode=WSDL Parsing Failed: WSDL Parsing Failed for url [file:C:/HelloWorld/HelloWorld.wsdl]: java.lang.RuntimeException: Could not create URL from 'file:C:/HelloWorld/HelloWorld.wsdl' and 'C:\SOA\MDS\AIAMetaData\AIAComponents\EnterpriseObjectLibrary\Core\Common\V2\CommonComponents.xsd'
at oracle.tip.mediator.upgrade.MediatorUpgradeUtil.parseWSDL(MediatorUpgradeUtil.java:1361)
at oracle.tip.mediator.upgrade.MediatorUpgradeContext.parseServiceWSDL(MediatorUpgradeContext.java:534)
... 5 more
Caused by: java.lang.RuntimeException: Could not create URL from 'file:C:/HelloWorld/HelloWorld.wsdl' and 'C:\SOA\MDS\AIAMetaData\AIAComponents\EnterpriseObjectLibrary\Core\Common\V2\CommonComponents.xsd'
at oracle.j2ee.ws.wsdl.extensions.schema.SchemaSerializer.composeURL(SchemaSerializer.java:210)
at oracle.j2ee.ws.wsdl.extensions.schema.SchemaSerializer.loadReference(SchemaSerializer.java:133)
at oracle.j2ee.ws.wsdl.extensions.schema.SchemaSerializer.processImportIncludeRedefine(SchemaSerializer.java:108)
at oracle.j2ee.ws.wsdl.extensions.schema.SchemaSerializer.unmarshall(SchemaSerializer.java:73)
at oracle.j2ee.ws.wsdl.extensions.ParseUtils.createExtensibilityElement(ParseUtils.java:106)
at oracle.j2ee.ws.wsdl.xml.WSDLReaderImpl.parseTypes(WSDLReaderImpl.java:1472)
at oracle.j2ee.ws.wsdl.xml.WSDLReaderImpl.parseDefinition(WSDLReaderImpl.java:779)
at oracle.j2ee.ws.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:706)
at oracle.j2ee.ws.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:655)
at oracle.j2ee.ws.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:647)
at oracle.j2ee.ws.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:202)
at oracle.tip.mediator.upgrade.MediatorUpgradeUtil.parseWSDL(MediatorUpgradeUtil.java:1356)
... 6 more

SEVERE: oracle.tip.mediator.upgrade.MediatorUpgradeException: UPGMED-02064: Routing service HelloWorld[GUID:E5CC18B0028C11E0BF8FED76F2D3C8B6] migration failed. Either migration failed or it cannnot persist the migrated artifact. Please see log file for more details.
at oracle.tip.mediator.upgrade.MediatorUpgradeFwk.upgradeRoutingService(MediatorUpgradeFwk.java:515)
at oracle.tip.mediator.upgrade.MediatorUpgradeFwk.upgradeService(MediatorUpgradeFwk.java:332)
at oracle.tip.mediator.upgrade.MediatorUpgradeFwk.upgrade(MediatorUpgradeFwk.java:200)
at oracle.tip.mediator.upgrade.MediatorUpgradeFwk.main(MediatorUpgradeFwk.java:130)

SEVERE: UPGMED-02005: Projects are not migrated, Please make sure source artifacts are valid. Restore original projects from the backup and remigrate the projects.
SEVERE: UPGMED-02006: Upgrading ESB 10.1.3 to AS 11 Mediator failed, If log file does not provide sufficient details, Contact Oracle, if needed.

Basically, the migration failed for some odd reason.

Solution:

Originally, we opened the ESB 10g project in JDeveloper 10g, and modified the partner links to point to the 11g WSDL prior to migrating (which is a good and common practice).

1. Open the original ESB 10g project in JDeveloper 10g.

2. Ensure that all references (e.g., partner links) are pointing to their 10g versions.

3. Re-migrate the project by opening it up on JDeveloper 11g.

4. Once migrated, modify your partner links accordingly.


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

Ahmed Aboulnaga

Wednesday, March 23, 2011

ORABPEL-05215 due to missing WS-Addressing.xsd when redeploying AIAErrorTaskAdministrationProcess

Problem:

After upgrading from Oracle SOA Suite 10.1.3.4 running AIA Foundation Pack 2.x to Oracle SOA Suite 10.1.3.5, the AIAErrorTaskAdministrationProcess fails to redeploy and errors out during startup.

You may find errors similar to the following in the opmn log file soa_group_1~oc4j_soa~soa_group_1~1.log:
<2011-03-23 17:08:34,344> <ERROR> <default.collaxa.cube.engine.deployment> <CubeProcessFactory::generateProcessClass>

Process "AIAErrorTaskAdministrationProcess" (revision "1.0") compilation failed.
<2011-03-23 17:08:34,344> <ERROR> <default.collaxa.cube.engine.deployment> <CubeProcessLoader::create>
java.io.FileNotFoundException: /u01/app/oracle/product/soa_as_1/bpel/domains/default/tmp/.bpel_AIAErrorTaskAdministrationProcess_1.0_
6e3e2ebe8763259c15c915ce1ed2cbee.tmp/WS-Addressing.xsd (A file or directory in the path name does not exist.)
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.<init>(FileInputStream.java:112)
        at java.io.FileInputStream.<init>(FileInputStream.java:72)
        at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnec
    .
    .
    .
   
<2011-03-23 17:08:34,346> <ERROR> <default.collaxa.cube.engine.deployment> Process "AIAErrorTaskAdministrationProcess" (revisi
on "1.0") load FAILED!!
<2011-03-23 17:08:34,354> <ERROR> <default.collaxa.cube.engine.deployment> <DeploymentManager::deploySuitcase> Error while loa
ding process.
The process domain encountered the following errors while loading the process "AIAErrorTaskAdministrationProcess" (revision "1
.0"): /u01/app/oracle/product/soa_as_1/bpel/domains/default/tmp/.bpel_AIAErrorTaskAdministrationProcess_1.0_6e3e2ebe8763259c15c915ce1
ed2cbee.tmp/WS-Addressing.xsd (A file or directory in the path name does not exist.).
If you have installed a patch to the server, please check that the bpelcClasspath domain property includes the patch classes.

<2011-03-23 17:08:34,356> <ERROR> <default.collaxa.cube> <BaseCubeSessionBean::logError> Error while invoking bean "domain man
ager": Error while loading process.
The process domain encountered the following errors while loading the process "AIAErrorTaskAdministrationProcess" (revision "1
.0"): /u01/app/oracle/product/soa_as_1/bpel/domains/default/tmp/.bpel_AIAErrorTaskAdministrationProcess_1.0_6e3e2ebe8763259c15c915ce1
ed2cbee.tmp/WS-Addressing.xsd (A file or directory in the path name does not exist.).
If you have installed a patch to the server, please check that the bpelcClasspath domain property includes the patch classes.

ORABPEL-05215

Error while loading process.
The process domain encountered the following errors while loading the process "AIAErrorTaskAdministrationProcess" (revision "1
.0"): /u01/app/oracle/product/soa_as_1/bpel/domains/default/tmp/.bpel_AIAErrorTaskAdministrationProcess_1.0_6e3e2ebe8763259c15c915ce1
ed2cbee.tmp/WS-Addressing.xsd (A file or directory in the path name does not exist.).
If you have installed a patch to the server, please check that the bpelcClasspath domain property includes the patch classes.

        at com.collaxa.cube.engine.deployment.CubeProcessHolder.bind(CubeProcessHolder.java:246)

Solution:

1. Apply Oracle patch 10255190 which is titled "DEPLOYMENT FAILS EVEN AFTER MISSING XSD ISSUE IS CORRECTED"


Applicable Versions:
  • Oracle SOA Suite 10g (10.1.3.5)

Ahmed Aboulnaga

ORABPEL-05002 when enqueueing to an AQ in SOA Suite 11g

Problem:

We have a BPEL 11g process that enqueues to an Oracle AQ. Upon executing the composite, we received the following error on the console:
<fault>
  <bpelFault>
    <faultType>0</faultType>
<bindingFault>
<part  name="summary">
<summary>Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'Enqueue' failed due to: Cannot call Connection.commit in distributed transaction. Transaction Manager will commit the resource manager when the distributed transaction is committed.". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution. </summary>
</part>
<part  name="detail">
<detail>Cannot call Connection.commit in distributed transaction. Transaction Manager will commit the resource manager when the distributed transaction is committed.</detail>
</part>
      <part  name="code">
        <code>null</code>
      </part>
    </bindingFault>
  </bpelFault>
</fault>

The logs showed the following error:
<Mar 7, 2011 6:06:00 AM EST> <Error> <oracle.soa.adapter> <BEA-000000> <JCABinding=>  TestAQQueue:AQQueue [ Enqueue_ptt::Enqueue(process) ]  Could not invoke operation 'Enqueue' against the 'AQ Adapter' due to:
Cannot call Connection.commit in distributed transaction.  Transaction Manager will commit the resource manager when the distributed transaction is committed.>
<Mar 7, 2011 6:06:00 AM EST> <Error> <oracle.soa.adapter> <BEA-000000> <JCABinding=>  TestAQQueue:AQQueue [ Enqueue_ptt::Enqueue(process) ]  Unable to roll back JCA LocalTransaction due to: Cannot call Connection.rollback in distributed transaction.  Transaction Manager will commit the resource manager when the distributed transaction is committed.>
<Mar 7, 2011 6:06:00 AM EST> <Error> <oracle.soa.adapter> <BEA-000000> <JCABinding=>  [QueueTest/TestAQQueue!1.0*soa_09a00488-a462-4463-9be9-4c10b12be92e.AQQueue]:Enqueue  One-way operation Enqueue() failed>
<Mar 7, 2011 6:06:00 AM EST> <Error> <oracle.soa.bpel.engine.ws> <BEA-000000> <got FabricInvocationException
java.sql.SQLException: Cannot call Connection.commit in distributed transaction.  Transaction Manager will commit the resource manager when the distributed transaction is committed.
        at weblogic.jdbc.wrapper.JTSConnection.commit(JTSConnection.java:643)
        at oracle.tip.adapter.aq.v2.jca.AQLocalTransaction.commit(AQLocalTransaction.java:123)
        at oracle.integration.platform.blocks.adapter.fw.jca.cci.JCAInteractionInvoker.executeJcaInteraction(JCAInteractionInvoker.java:323)
        .
        .
        .

<Mar 7, 2011 6:06:00 AM EST> <Error> <oracle.soa.bpel.engine> <BEA-000000> <Unhandled exception for ComponentDN=QueueTest/TestAQQueue!1.0*soa_09a00488-a462-4463-9be9-4c10b12be92e/TestAQQueue CompositeInstanceId=50002 ComponentInstanceId=50004>
<Mar 7, 2011 6:06:00 AM EST> <Error> <oracle.soa.bpel.engine> <BEA-000000> <This exception occurred because the fault thrown in the BPEL flow was not handled by any fault handlers and reached the top-level scope. Root cause :
com.oracle.bpel.client.BPELFault: faultName: {{http://schemas.oracle.com/bpel/extension}bindingFault}
messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage}
parts: {{
summary=<summary>Exception occured when binding was invoked.
Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'Enqueue' failed due to: Cannot call Connection.commit in distributed transaction.  Transaction Manager will commit the resource manager when the distributed transaction is committed.".
The invoked JCA adapter raised a resource exception.
Please examine the above error message carefully to determine a resolution.
</summary>
,detail=<detail>Cannot call Connection.commit in distributed transaction.  Transaction Manager will commit the resource manager when the distributed transaction is committed.</detail>
,code=<code>null</code>}

        at com.collaxa.cube.ws.WSInvocationManager.invoke(WSInvocationManager.java:334)
        at com.collaxa.cube.engine.ext.common.InvokeHandler.__invoke(InvokeHandler.java:1056)
        .
        .
        .
       
<Mar 7, 2011 6:06:00 AM EST> <Error> <oracle.soa.bpel.engine.dispatch> <BEA-000000> <failed to handle message
com.oracle.bpel.client.BPELFault: faultName: {{http://schemas.oracle.com/bpel/extension}bindingFault}
messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage}
parts: {{
summary=<summary>Exception occured when binding was invoked.
Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'Enqueue' failed due to: Cannot call Connection.commit in distributed transaction.  Transaction Manager will commit the resource manager when the distributed transaction is committed.".
The invoked JCA adapter raised a resource exception.
Please examine the above error message carefully to determine a resolution.
</summary>
,detail=<detail>Cannot call Connection.commit in distributed transaction.  Transaction Manager will commit the resource manager when the distributed transaction is committed.</detail>
,code=<code>null</code>}

        at com.collaxa.cube.ws.WSInvocationManager.invoke(WSInvocationManager.java:334)
        at com.collaxa.cube.engine.ext.common.InvokeHandler.__invoke(InvokeHandler.java:1056)
        .
        .
        .

<Mar 7, 2011 6:06:00 AM EST> <Error> <oracle.soa.bpel.engine.dispatch> <BEA-000000> <Failed to handle dispatch message ... exception ORABPEL-05002

Message handle error.
error while attempting to process the message "com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessage"; the reported exception is: Fault not handled.
failure to handle a fault thrown from a scope, by any blocks in the scope chain.
This exception occurred because the fault thrown in the BPEL flow was not handled by any fault handlers and reached the top-level scope.
A top-level fault handler should be added to the flow to handle faults not caught from within the flow.

This error contained an exception thrown by the message handler.
Check the exception trace in the log (with logging level set to debug mode).

ORABPEL-05002

Message handle error.
error while attempting to process the message "com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessage"; the reported exception is: Fault not handled.
failure to handle a fault thrown from a scope, by any blocks in the scope chain.
This exception occurred because the fault thrown in the BPEL flow was not handled by any fault handlers and reached the top-level scope.
A top-level fault handler should be added to the flow to handle faults not caught from within the flow.

This error contained an exception thrown by the message handler.
Check the exception trace in the log (with logging level set to debug mode).

        at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(DispatchHelper.java:207)
        at com.collaxa.cube.engine.dispatch.BaseDispatchTask.process(BaseDispatchTask.java:88)


Solution:

Note that this process was not designed as a distributed transaction.

1. Login in to the WebLogic Server Administration Console

2. Navigate to soa_domain --> Services --> Data Sources --> (data source name) --> Configuration

3. Click on the 'Connection Pool' tab and ensure that the Driver Class Name is "oracle.jdbc.OracleDriver" and Save

4. Click on the 'Transaction' tab and uncheck "Supports Global Transactions" and Save

5. Click on the 'Control' tab Shutdown and Start the deployed instance of this data source


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

Ahmed Aboulnaga

Tuesday, March 22, 2011

Purging all composite instances in SOA Suite 11g

To purge all instances in Oracle SOA Suite 11g (11.1.1.4), simply run the following PL/SQL package. Note that the underlying table structure is slightly different in 11.1.1.2 versus 11.1.1.4, so these instructions are specific to 11.1.1.4, but may or may not work on older or later versions.
sqlplus dev_soainfra/welcome1@orcl

DECLARE
  FILTER INSTANCE_FILTER := INSTANCE_FILTER();
  DELETED_INSTANCES NUMBER;
BEGIN
  FILTER.MIN_CREATED_DATE := TO_TIMESTAMP('2001-01-01','YYYY-MM-DD');
  FILTER.MAX_CREATED_DATE := SYSDATE;
  DELETED_INSTANCES := FABRIC.DELETE_ALL(FILTER, 40000000, true);
END;
/

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


Ahmed Aboulnaga

Saturday, March 19, 2011

Configuring SSL on Oracle Beehive

This post describes how to install and configure a self-signed SSL certificate onto your Oracle Beehive 2.x installation.

Obviously, adjust directories paths, passwords, and hostname according to your environment.

1. Set your environment
export BEE_HOME=/u01/app/oracle/product/2.0.1.0.0/beehive_1
export ORACLE_HOME=$BEE_HOME
export JAVA_HOME=$ORACLE_HOME/jdk
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$BEE_PATH
2. Enable auto-login mode for the default wallet
orapki wallet create -wallet /u01/app/oracle/product/2.0.1.0.0/beehive_1/Apache/Apache/conf/ssl.wlt/default/ -auto_login -pwd welcome
3. Configure the Oracle Beehive instance to use Oracle Wallet
beectl list_properties --component beehive_instance_beehive1.beehiveapp.ipnweb.com --name WalletDir 
beectl modify_property --component beehive_instance_beehive1.beehiveapp.ipnweb.com --name WalletDir --value /u01/app/oracle/product/2.0.1.0.0/beehive_1/Apache/Apache/conf/ssl.wlt/default
beectl activate_configuration
4. Create your own certificate authority

The "openssl" command is installed on most Linux distributions. You will be prompted for information to enter, which I have highlighted below.
/usr/bin/openssl req -new -x509 -keyout cakey.pem -out cacert.crt -days 3650
Generating a 1024 bit RSA private key
................++++++
.........++++++
writing new private key to 'cakey.pem'
Enter PEM pass phrase: welcome1
Verifying - Enter PEM pass phrase: welcome1
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:US
State or Province Name (full name) [Berkshire]:Maryland
Locality Name (eg, city) [Newbury]:Rockville
Organization Name (eg, company) [My Company Ltd]:IPN Web
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []:beehive.ipnweb.com
Email Address []:admin@ipnwebbeehive.com
5. Create and export a certificate request with Oracle Wallet Manager

a. Run Oracle Wallet Manager:
owm
b. Open the default wallet by navigating to: Wallet --> Open

c. Open the following file:
/u01/app/oracle/product/2.0.1.0.0/beehive_1/Apache/Apache/conf/ssl.wlt/default
d. Navigate to: Operations --> Add Certificate Request

e. Enter the following information:
 Common Name:         beehiveapp.ipnweb.com
 Organizational Unit:    IT
 Organization:              IPN Web
 Locality/City:              Rockville
 State/Province:           Maryland
 Country:                     United States
 Key Size:                   1024
f. Click "Certificate:[Requested]"

g. Export the certificate by navigating to: Operations --> Export Certificate Request

h. Save the file as:
certreq.csr
6. Generate a server certificate
openssl x509 -req -in certreq.csr -CA cacert.crt -CAkey cakey.pem -CAcreateserial -days 3650 > server.crt
Signature ok
subject=/C=US/ST=Maryland/L=Rockville/O=IPN Web/OU=IT/CN=beehiveapp.ipnweb.com
Getting CA Private Key
Enter pass phrase for cakey.pem: welcome1
7. Import the Trusted Certificate and User Certificate to Oracle Wallet Manager

a. Navigate to:  Operations --> Import Trusted Certificate

b. Import the following file:
cacert.crt
c. Navigate to:  Operations --> Import User Certificate

d. Import the following file:
server.crt
e. Click on:  Wallet --> Save

f. Click on:  Wallet --> Exit

8. Import Trusted Certificate and  User Certificate to OPMN wallet

a. Run Oracle Wallet Manager:
owm
b. Open the default wallet by navigating to: Wallet --> Open

c. Open the following file:
/u01/app/oracle/product/2.0.1.0.0/beehive_1/opmn/conf/ssl.wlt/default/
d. Perform Step 7 again

9. I forgot why I performed this step
cd $ORACLE_HOME/opmn/conf
cp -Rp $ORACLE_HOME/Apache/Apache/conf/ssl.wlt .
10. Perform final Beehive configuration
beectl modify_property --component _CURRENT_SITE:ManagedOc4jCluster --name OrmisEnabled --value true
beectl list_components --type BeehiveInstance
beectl modify_property --component beehive_instance_beehive1.beehiveapp.ipnweb.com --name WalletDir --value /u01/app/oracle/product/2.0.1.0.0/beehive_1/Apache/Apache/conf/ssl.wlt/default/ 
beectl modify_secure_property --component beehive_instance_beehive1.beehiveapp.ipnweb.com --name WalletPassword --value welcome
beectl activate_configuration
11. No need to enable AJPS

I personally don't do this, mostly because this communication is internal to my network. If you must be PCI compliant, you may need to do this step. Refer to the Oracle documentation in that case.


Applicable Versions:
  • Oracle Beehive 2.0.1

References:
  • http://download.oracle.com/docs/cd/E16671_01/bh.200/e16641/wallet.htm#CIHEFHCH
  • http://download.oracle.com/docs/cd/E16671_01/bh.200/e16641/ssl.htm#CBHJEIDE
  • http://download.oracle.com/docs/cd/E16671_01/bh.200/e16641/wallet.htm#CIHGACCJ
  • http://download.oracle.com/docs/cd/E16671_01/bh.200/e16641/ajp.htm#BEHCFBBF

Ahmed Aboulnaga

Friday, March 18, 2011

Creating an AQ queue for SOA consumption

Here is how to simply create an Oracle AQ called "MyQueue" to be used by your SOA Suite AQ Adapter. This AQ is of a message type SYS.XMLType which allows any XML payload to be stored.
BEGIN

  dbms_aqadm.stop_queue (queue_name => 'MyQueue');

  dbms_aqadm.drop_queue (queue_name => 'MyQueue');

  dbms_aqadm.drop_queue_table (queue_table => 'MyQueueTable');

  dbms_aqadm.create_queue_table(Queue_table => 'MyQueueTable',
                         Queue_payload_type => 'SYS.XMLType',
                         multiple_consumers => true,
                         sort_list          => 'priority,enq_time',
                         compatible         => '10.0.0');

  dbms_aqadm.create_queue (Queue_name => 'MyQueue',
                    Queue_table       => 'MyQueueTable');
                   
  dbms_aqadm.start_queue(queue_name   => 'MyQueue',
                    enqueue           => TRUE,
                    dequeue           => TRUE);
END;
/

Ahmed Aboulnaga

Thursday, March 17, 2011

Raastech @ COLLABORATE 11

Raastech will be at the upcoming COLLABORATE 11 in Orlando, Florida. We would love the opportunity to meet other Oracle professionals, colleagues, and customers, as COLLABORATE is a great opportunity for networking and knowledge sharing. We can always be contacted at info@raastech.com.

Conference details:
April 10-14, 2011
Orange County Convention Center
West Concourse
9800 International Drive
Orlando, Florida, USA
Still struggling with your upgrade to Oracle Fusion Middleware 11g? Ahmed Aboulnaga, Technical Director at Raastech, will be presenting Upgrading Oracle SOA Suite to 11g: A Real-World Success Story. Find out how to implement a large scale Oracle SOA Suite 10g and Oracle AIA Foundation Pack 2.x upgrade to 11g. This is not an overview of the Oracle Fusion Middleware and Oracle AIA Foundation Pack Migration Guides. Learn the actual upgrade approach that was developed and walk through technical challenges not covered by any Oracle documentation.
Session Title:     Upgrading Oracle SOA Suite to 11g: A Real-World Success Story
Speaker:            Ahmed Aboulnaga
Date:                  Wednesday, April 13
Time:                 2:15pm - 3:15pm
Session ID:        129
User Group:       IOUG
Product Lines:   Fusion Middleware|Oracle SOA Suite
Level:                Advanced


For more information, check out:
http://collaborate11.ioug.org
http://collaborate.oaug.org

Wednesday, March 16, 2011

Oracle Beehive and Oracle Beekeeper startup and shutdown commands

Oracle Beehive is Oracle's next gen collaboration product of choice (and is a great product by the way!). To startup, shutdown, and check the status of the Beehive server, simply set up your environment and execute the commands shown:
export ORACLE_HOME=/u01/app/oracle/product/2.0.1.0.0/beehive_1
export PATH=$ORACLE_HOME/beehive/bin:$ORACLE_HOME/bin:$ORACLE_HOME/opmn/bin:$PATH
beectl stop --all
beectl start --all
beectl status


Oracle Beekeeper is provides a console to allow you to administer all Beehive components, manage user accounts, start/stop individual services, etc.
export ORACLE_HOME=/u01/app/oracle/product/2.0.1.0.0/beekeeper_1
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/opmn/bin
opmnctl startall
opmnctl stopall
opmnctl status


Relevant console URLs include:
Beehive Central (central dashboard)
http://beehive.ipnweb.com:7777/bcentral

Beehive Zimbra (open source webmail client)
https://beehive.ipnweb.com:4443/zimbra

Beehive Conferencing (web conferencing)
https://beehive.ipnweb.com:4443/bconf

Beehive Team Collaboration (workspaces)
https://beehive.ipnweb.com:4443/teamcollab

Beekeeper (admin console)
http://beehive.ipnweb.com:7779/bkpr

Applicable Version:
  • Oracle Beehive 2.0.1

References:
  • http://download.oracle.com/docs/cd/E16671_01/bh.200/e16648/controlsystem.htm


Ahmed Aboulnaga

Tuesday, March 15, 2011

setOutboundHeader function obsoleted in SOA Suite 11g

If you have SOA Suite 10g code (specifically ESB) that uses the "ehdr:setOutboundHeader" function, it will no longer work in SOA Suite 11g as the function is obsoleted.

Your 10g code may include the following statements like this:
select="ehdr:setOutboundHeader('/shdr:ESBHeader/wsse:Security/wsse:UsernameToken/wsse:Username',$Username,'shdr=http://xmlns.oracle.com/esb;wsse=http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd;')"
select="ehdr:setOutboundHeader('/shdr:ESBHeader/wsse:Security/wsse:UsernameToken/wsse:Password',$Password,'shdr=http://xmlns.oracle.com/esb;wsse=http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd;')"

Using the new "setProperty" function to set the header in the transformation in 11g will not work:
select="mhdr:setProperty('out.header.wsse_Security/wsse:Security/wsse:UsernameToken/wsse:Username', $Username)')"
select="mhdr:setProperty('out.header.wsse_Security/wsse:Security/wsse:UsernameToken/wsse:Password', $Password)"

You must move use the "Assign" feature in Mediator 11g (which is in the .mplan file):
<assign>
  <copy
    target="$out.header.wsse_Security/wsse:Security/wsse:UsernameToken/wsse:Username"
    expression="<your lookup value>"
    xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
  />
  <copy
    target="$out.header.wsse_Security/wsse:Security/wsse:UsernameToken/wsse:Password"
    expression="<your lookup value>"
    xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
  />
</assign>

Even though using "mdhr:setProperty" to dynamically set the endpoint works when used in XSL files, the same is not true for setting WS-Security headers. For example, the following will work in your transformation:
select="mhdr:setProperty('out.property.endpointURI',$endpoint)"


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


Ahmed Aboulnaga

Increasing SWAP space on Red Hat Linux

The commands below will create a new SWAP file that is 512 MB in size on a file /u01/swap/swapfile.

1. Run the following commands as 'root' to create the 512 MB swap file:
dd if=/dev/zero of=/u01/swap/swapfile bs=1024 count=524288
mkswap /u01/swap/swapfile

2. Edit /etc/fstab and add the following line:
/u01/swap/swapfile swap swap defaults 0 0

3. Reboot the server:
reboot

There are multiple ways to increase swap space, and I have only documented one way. I would not recommend the approach above for production based systems. For other (preferred) approaches, check out the link below.


Applicable Versions:
  • Red Hat 5.5
  • Oracle Enterprise Linux 5.5

References:
  • http://www.brighthub.com/computing/linux/articles/42348.aspx


Ahmed Aboulnaga

File "<console>" when running wlst command 'upgradeJRF'

Problem:

When upgrading to Oracle SOA Suite 11.1.1.4, we ran into the following error during one of the post-upgrade steps:
wls:/offline> upgradeJRF('/l01/apps/oracle/middleware/user_projects/domains/soa_domain')
Traceback (innermost last):
File "", line 1, in ?
NameError: upgradeJRF

Solution:


This is because you probably ran the wrong environment and/or wlst scripts.

WRONG: /u01/app/oracle/middleware/wlserver_10.3/server/bin/setWLSEnv.sh
RIGHT:    /u01/app/oracle/middleware/oracle_common/common/bin/setWlstEnv.sh

WRONG: /u01/app/oracle/middleware/Oracle_SOA1/common/bin/wlst.sh
RIGHT:    /u01/app/oracle/middleware/oracle_common/common/bin/wlst.sh
Follow the instructions below.

1. Before running wlst, make sure that you set your environment correctly.

cd /u01/app/oracle/middleware/oracle_common/common/bin 
./setWlstEnv.sh
2. Make sure that you run wlst from the correct location.
./wlst.sh
3. Then execute the "upgradeJRF" command:
upgradeJRF('/u01/app/oracle/middleware/user_projects/domains/soa_domain')

Applicable Versions:

  • Oracle SOA Suite 11g (11.1.1.4)


Ahmed Aboulnaga

Sunday, March 13, 2011

"JCA Binding execute of Reference operation 'insert' failed" with DB Adapter

Problem:

The SOA 11g BPEL process is using a database adapter. However, upon execution, the DB Adapter would not work and following exception is returned:
Error Message:
Fault ID    reference:40019
Fault Time    Mar 13, 2011 9:28:07 PM
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: Could not create/access the TopLink Session. This session is used to connect to the datastore. Caused by javax.resource.spi.InvalidPropertyException: Missing Property Exception. Missing Property: [ConnectionFactory> xADataSourceName or dataSourceName]. You may have set a property (in _db.jca) which requires another property to be set also. Make sure the property is set in the interaction (activation) spec by editing its definition in _db.jca. . You may need to configure the connection settings in the deployment descriptor (i.e. DbAdapter.rar#META-INF/weblogic-ra.xml) and restart the server. This exception is considered not retriable, likely due to a modelling mistake. ". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution.
The JNDI referenced in the code was eis/db/PerfTest, yet this is already configured in WebLogic Server 11g.

Solution:

1. Log in to the WebLogic Administration console

2. Navigate to:
Home --> Summary of Deployments --> JmsAdapter --> Summary of Deployments --> DbAdapter
3. Add the data source (e.g., jdbc/db/PerfTest) to the connection factory.

Application Versions:
  • WebLogic Server 11g (10.3.x)
  • Oracle SOA Suite 11g (11.1.1.x)

Ahmed Aboulnaga

Thursday, March 10, 2011

SOA Suite 11g instance state is showing as question mark (?)

In the Fusion Middleware Control 11g console, when viewing your SOA composite instances, the State column may appear as a question mark, which is rather annoying.


To have the State display the actual state, do the following:

1.Log in to Fusion Middleware Control (e.g., http://host:7001/em)

2. Expand 'Farm_base_domain' and expand 'SOA'

3. Right-click on "soa-infra" and navigate to "SOA Administration --> Common Properties"

4. Check 'Capture Composite Instance State'

5. Click "Apply"


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


References:
  • http://download.oracle.com/docs/cd/E11857_01/install.111/e17558/disc_mon_soa.htm#BGBIJIJE


Ahmed Aboulnaga

Default username and password for OER 11g

The default username for Oracle Enterprise Repository (OER) 11g is "admin" and the default password is "admin".

The default console can be accessed at:
http://hostname:8101/oer/

Applicable Versions:
  • Oracle Enterprise Repository 11g (11.1.1.4)

References:
  • http://download.oracle.com/docs/cd/E13164_01/oer/docs10134/install/postins.html#wp1078722

Ahmed Aboulnaga

Monday, March 7, 2011

MDS-00515: failure to create document

Problem:

When deploying a Mediator 11g project to SOA Suite 11g using ant, we received the following error:
deploy:
    [input] skipping input as property serverURL has already been set.
    [input] skipping input as property sarLocation has already been set.
[deployComposite] setting user/password..., user=ahmed
[deployComposite] Processing sar=/u01/svn/HelloWorld/deploy/sca_HelloWorld_rev1.0.jar
[deployComposite] Adding sar file - /u01/svn/HelloWorld/deploy/sca_HelloWorld_rev1.0.jar
[deployComposite] INFO: Creating HTTP connection to host:app-soa11g-dev.intranet.local, port:8001
[deployComposite] INFO: Received HTTP response from the server, response code=500
[deployComposite] ---->response code=500, error:There was an error deploying the composite on soa_server1: oracle.mds.transfer.TransferException:
[deployComposite] MDS-00001: exception in Metadata Services layer
[deployComposite] MDS-00515: failure to create document /deployed-composites/default/HelloWorld_rev1.0/xsl/Transformation1.xsl in the metadata repository
[deployComposite] <Line 17, Column 5161>: XML-20124: (Fatal Error) An attribute cannot appear more than once in the same start tag.
[deployComposite]

Solution:

1. Open the project in JDeveloper 11g

2. In our case, the following namespace prefix line was duplicated twice, resulting in the error above. Delete one of the duplicate lines and try again:
xmlns:mhdr="http://www.oracle.com/XSL/Transform/java/oracle.tip.mediator.service.common.functions.MediatorExtnFunction" 
xmlns:mhdr="http://www.oracle.com/XSL/Transform/java/oracle.tip.mediator.service.common.functions.MediatorExtnFunction"

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


Ahmed Aboulnaga

ORAMED-01201 in XSL file due to getHeader function

Problem:

In one of our Oracle SOA Suite 11g project, our XSL file contained the following, which simply used the 11g header function "mhdr:getHeader" to read the incoming SOAP address:
<xsl:variable name="ReplyTo"
select='mhdr:getHeader("in.header.soap_headers/soap:header/wsa:ReplyTo/wsa:Address","soap=http://schemas.xmlsoap.org/soap/envelope/;wsa=http://www.w3.org/2005/08/addressing;")'/>
Upon execution, we received the following error on the console:
ORAMED-01201:[Error in transform operation]Error occurred while transforming payload using "xsl/Transformation1.xsl" for target part "parameters".Possible Fix:Review the XSL or source payload. Either the XSL defined does not match with the payload or payload is invalid. Cause:XML-22044: (Error) Extension function error: Error invoking 'getHeader':'javax.xml.xpath.XPathFunctionException'
The incoming header payload looked as follows, so there was nothing wrong with it:
<headers>
  <header>
    <a:MessageID>urn:uuid:56e575fb-14df-4c4a-993c-4f0216ed0980</a:MessageID>
  </header>
  <header>
    <a:ReplyTo>
      <a:Address>https://server/services/wsdl/HelloWorld?wsdl</a:Address>
    </a:ReplyTo>
  </header>
</headers>

We tried using the "getProperty" function instead to no success.


Solution:

Our usage of "getHeader" was not correct.

Incorrect:
<xsl:variable name="ReplyTo" select='mhdr:getHeader("in.header.soap_headers/soap:header/wsa:ReplyTo/wsa:Address","soap=http://schemas.xmlsoap.org/soap/envelope/;wsa=http://www.w3.org/2005/08/addressing;")'/>
Correct:
<xsl:variable name="ReplyTo" select= 'mhdr:getHeader("in.header.wsa_ReplyTo/wsa:ReplyTo/wsa:Address","wsa=http://www.w3.org/2005/08/addressing;")'/>

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

References:
  • http://download.oracle.com/docs/cd/E14571_01/integration.1111/e10224/bp_appx_functs.htm#CHDECDHG


Ahmed Aboulnaga

ORA-27072 and ORA-19502 when installing Oracle Beehive

Problem:

When installing Oracle Beehive 2.0, while the installer is going through the configuration assistant, it may fail during the "Oracle Beehive Database Configuration - Beehive Schemas" step when running the "create_beehive_tablespaces.sql" script.

Upon further inspection, the /u01/app/oracle/product/2.0.1/beehive_1/beehive/logs/config/db/schema_install/02.26.2011/schema_install_23_12_59.log log file reveals the following error:
[SYSTEM ] [2011-02-26 23:14:53] [Tablespace BEE_DATA is being created...]
[SYSTEM ] [2011-02-26 23:15:07] [CREATE TABLESPACE BEE_DATA]
[SYSTEM ] [2011-02-26 23:15:07] [*]
[SYSTEM ] [2011-02-26 23:15:07] [ERROR at line 1:]
[SYSTEM ] [2011-02-26 23:15:07] [ORA-19502: write error on file "/u01/app/oracle/oradata/orcl/bee_data.dbf", block number 129024 (block size=8192)]
[SYSTEM ] [2011-02-26 23:15:07] [ORA-27072: File I/O error]
[SYSTEM ] [2011-02-26 23:15:07] [Linux-x86_64 Error: 25: Inappropriate ioctl for device]
[SYSTEM ] [2011-02-26 23:15:07] [Additional information: 4]
[SYSTEM ] [2011-02-26 23:15:07] [Additional information: 129024]
[SYSTEM ] [2011-02-26 23:15:07] [Additional information: 954368]
[SYSTEM ] [2011-02-26 23:15:07] []
[SYSTEM ] [2011-02-26 23:15:07] []
[FINE   ] [2011-02-26 23:15:07] [Helpers::CommandExecuter::executeSQLCommandAndReturnData Line 335 ] [Time taken to execute command @create_beehive_tablespaces.sql :  24.951589 secs]
[SEVERE ] [2011-02-26 23:15:07] [Helpers::CommandExecuter::executeSQLCommandAndReturnDataIfSuccess Line 277 ] [Error occurred while running the command @create_beehive_tablespaces.sql . Exit code is 1.]
[INFO   ] [2011-02-26 23:15:07] [Helpers::Logger::closeLogger Line 834 ] [Closing the log file : /u01/app/oracle/product/2.0.1/beehive_1/beehive/logs/config/db/schema_install/02.26.2011/schema_install_23_12_59.log]

Solution:

This is directly related to the fact that there is not enough disk space. The Beehive database creation scripts creates all tablespaces with autoextend set to on, and a clean install of the database takes approximately 16 GB.


Applicable Versions:
  • Oracle Beehive 2.0.1

Ahmed Aboulnaga

Saturday, March 5, 2011

Raastech presenting at WMOUG

Ahmed Aboulnaga, Technical Director at Raastech, will be presenting two neat topics at the upcoming Western Michigan Oracle User Group (WMOUG) Spring meeting on March 23, 2011 in Grand Rapids, Michigan.
For our Western Michigan colleagues, please join us as it is a great opportunity to network and learn something new.

Title
Working with Oracle Queues - Choosing between AQ and JMS
Description
Queuing technologies are generally used to provide asynchronous messaging across applications. These can be implemented by a Java Message Service (JMS) in Oracle WebLogic, as well as Advanced Queues (AQ) or Oracle JMS (OJMS) in the Oracle Database. Find out why and when you would need to use these, how they are created, the difference between file- and database-persisted queues, which performs better, and the JMS Bridge between AQ and Weblogic JMS queues. The goal of this presentation is to arm you with enough information to make an informed decision when deciding which queue technology to use.

Title
What is Oracle Beehive?

Description
In the past, we had Oracle Collaboration Suite. Now we have Oracle Beehive, a built-from-scratch collaboration platform that combines email, instant messaging, voice mail, calendars, workspaces, web conferencing, and wikis into a single solution. Learn more about Oracle's next generation collaboration software by attending a walk through and demo of key Oracle Beehive features.

For time and location, visit the WMOUG website at:
http://wmoug.org/events.html
Hope to see you all there!


Ahmed Aboulnaga

Friday, March 4, 2011

Failed to create SAML token as anonymous user principal found in Subject

Problem:

When we executed a Mediator in Oracle SOA Suite 11g (after a recent upgrade to AIA Foundation Pack 11.1.1.4), we started getting the following error:

Error during invoking 1-way operation "ChangeProfileName" on target service "ChangeOrganization" oracle.fabric.common.PolicyEnforcementException: WSM-00263 : Failed to create SAML token as anonymous user principal found in Subject.

Solution:

After upgrading to AIA Foundation Pack 11.1.1.4, the "aia_wss10_saml_token_client_policy_OPT_ON" policy is automatically defaulted to ON, resulting in the error above. The steps below describe how to disable the policy:

1. Navigate to Farm_soa_domain --> WebLogic Domain --> (right-click on) soa_domain --> Web Services --> Policies

2. Modify the search criteria as follows:
Category:       Security
Applies To:    All
3. Disable the "oracle/aia_wss10_saml_token_client_policy_OPT_ON" policy

4. Bounce "soa_server1"


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

Ahmed Aboulnaga