Migration projects from SOA 10g to SOA 11g is not a walk-in-the-park. You should read the migration documentation for the SOA 11g migration carefully. During your migration you would run into behaviours that you did not expect.
1. Use fully qualified names
1. Use fully qualified names
During configuration of the SOA domain, make sure you use the fully qualified name as specified in your DNS server. Some servers are using the short-name that is binded to the localhost (127.0.0.x) IP address.
2. BPEL Compiler stricter
2. BPEL Compiler stricter
WIth SOA 11g patch set #2, the SCA runtime engine is stricter. During testing of your SCA that was created with patch set #1 you could run into runtime 'Selection errors'. One case is that you should check your Assign and Switch cases. You could have programmed to select the first node of an XML message:
/outputCollection/Order/Orderline/price
During runtime this selection failes, multi-node result. You should chnage your code into
/outputCollection/Order/Orderline[1]/price
3. Use abstract services
/outputCollection/Order/Orderline/price
During runtime this selection failes, multi-node result. You should chnage your code into
/outputCollection/Order/Orderline[1]/price
3. Use abstract services
A SOA 10g project can be migrated via JDeveloper. But it migrates 1:1. If the BPEL process is calling another BPEL process (10g), after migration the new 11g composite is still calling the BPEL 10g process. You must change this manually.
Alternatively you could use abstract WSDL. This will decouple the calling BPEL process. Therefore you must also make some changes in your BPEL or ESB services, before you migrate.
4. HTTP 503 error during deployment
Alternatively you could use abstract WSDL. This will decouple the calling BPEL process. Therefore you must also make some changes in your BPEL or ESB services, before you migrate.
4. HTTP 503 error during deployment
After installing SOA Suite 11g when for the first time you will try to deploy a simple process you may get following error
[03:21:40 PM] Problem in sending HTTP request to the server. Check standard
HTTP response code for 502
[03:21:40 PM] Error deploying archive sca_Project1_rev1.0.jar to soa_server1
[localhost:8001]
[03:21:40 PM] HTTP error code returned [502]
[03:21:40 PM] No error message is returned from the server.
[03:21:40 PM] #### Deployment incomplete. ####
[03:21:40 PM] Error deploying archive
file:/C:/JDeveloper/mywork/Application1/Project1/deploy/sca_Project1_rev1.0.jar
(oracle.tip.tools.ide.fabric.deploy.common.SOARemoteDeployer)
1>Go to weblogic console
Server->click on managed Server and select configuration->General tab
There in listen address provide the listen address to the host name and restart the server.
2>Go to jdeveloper 11g and disable the proxy settings there.
Go to tools->Preferences->Web Browser and proxy and disable the use proxy http server
Exit and start the jdeveloper once again.
5. Error: TopLink deployment descriptor generation failed
5. Error: TopLink deployment descriptor generation failed
During deployment you get this Toplink error. Please verify that reported problems are corrected and that the deployment descriptor path and name are valid.
The issue is in the JDeveloper .JPR file. An oracle.toplink.addin.TopLinkProjectSettings section is this file, remove the section and the deployment should work.
6. Composite WSDLs are not loaded during startup of JDeveloper
The issue is in the JDeveloper .JPR file. An oracle.toplink.addin.TopLinkProjectSettings section is this file, remove the section and the deployment should work.
6. Composite WSDLs are not loaded during startup of JDeveloper
In some cases JDeveloper cannot load the external WSDL that is used in your composite. This occurs when an composite.xml file is 'open' when you close JDeveloper the previous time. The workaround is, off course, to close all 'compiste.xml' tabs before shutting down JDeveloper.
7. BPEL Migration fails with special characters
7. BPEL Migration fails with special characters
If your 10g SOA project contains special characters like é or ï, the project fails after migration. Remove these characters before migrating your projects.
8. RuntimeFault.wsdlcan not be found
8. RuntimeFault.wsdlcan not be found
The http://localhost:80/orabpel/xmllib/RuntimeFault.wsdl cannot be found after migration. The locations of these files are moved to the MDS. Change this location manually in your code to oramds:/soa/shared/bpel/RuntimeFault.wsdl
9. java.lang.Exception: oracle.sysman.emSDK.webservices.wsdlapi.SoapTestException: null
An error occurs when you are using the 'count' function with getVariableData. Use the function 'oracountNodes' instead of this one.
See also Metalink Note 1059573.1 APPLYING COUNT XPATH FUNCTION TO bpws:getVariableData RESULTS IN SELECTIONFAILURE FAULT
See also Metalink Note 1059573.1 APPLYING COUNT XPATH FUNCTION TO bpws:getVariableData RESULTS IN SELECTIONFAILURE FAULT
10. Selectionfailure on empty element
During a test activity such as string(bpws:getVariableData('creditcardLimit')) != '' will fail. This can be solved by using countNodes functionality: ora:countNodes('transactienummer') > 0
11 java.lang.IllegalArgumentException
"java.lang.IllegalArgumentException: Error occurred while attempting to retrieve message part ... from a normalized message payload with elements ..."
During migration of the ESB services that are not using a transformation for mapping the request and reply messages, the migration tool is NOT adding a Reply mapping. This only occurs when the request message and the reply message using different part names.
This can be solved by creating the Reply mapping manully via the assign
12. Unable to register service.
Unable to register service. oracle.fabric.common.FabricException: Error in getting XML input stream: : Response: '503: Service Unavailable' for url:
This occurs that the composite is pointing to a WSDL of another service. This pointer should be a abstract WSDL.
13. Base64 encoding/decoding does not compile
"java.lang.IllegalArgumentException: Error occurred while attempting to retrieve message part ... from a normalized message payload with elements ..."
During migration of the ESB services that are not using a transformation for mapping the request and reply messages, the migration tool is NOT adding a Reply mapping. This only occurs when the request message and the reply message using different part names.
This can be solved by creating the Reply mapping manully via the assign
12. Unable to register service.
Unable to register service. oracle.fabric.common.FabricException: Error in getting XML input stream: : Response: '503: Service Unavailable' for url:
This occurs that the composite is pointing to a WSDL of another service. This pointer should be a abstract WSDL.
13. Base64 encoding/decoding does not compile
An error occurs "Error(17,39): Failed to compile bpel generated classes. Failure to compile the generated BPEL classes for BPEL process ... The class path setting is incorrect. Ensure that the class path is set correctly. If this happens on the server side, verify that the custom classes or jars which this BPEL process is depending on are deployed correctly..." This can be solved by adding importing the oracle.soa.common.util packaged instead of the com.collaxa.common.util 14. FTP adapter header variable
The FTP Adpater is using the bpelx:headerVariable as directory or filename setting. This variable can be set on the Invoke or Recevice activity via a property.
15. BPEL Preferences
Changing the BPEL preferences is now done via Enterprise Manager with the MBean browser.
The FTP Adpater is using the bpelx:headerVariable as directory or filename setting. This variable can be set on the Invoke or Recevice activity via a property.
15. BPEL Preferences
Changing the BPEL preferences is now done via Enterprise Manager with the MBean browser.
In Oracle BPEL 10g we had the functionality to add preferences to your bpel process.
By adding the next xml to the bpel.xml file we could get the value as variable into our process and change the value from the console.
By adding the next xml to the bpel.xml file we could get the value as variable into our process and change the value from the console.
<preferences>
<property name="myPref">MyCurrentValue</property>
</preferences>
In the new Oracle SOA 11g things changed a little, we now need to add the preferences to the composite.xml of our Composite Application.
Add the next xml to the composite.xml :
<component name="BPELProcess1">
<implementation.bpel src="BPELProcess1.bpel"/>
<property name="bpel.preference.myPref">MyCurrentValue</property>
</component>
Now we can use the function ora:getPreference(myPref) in our bpel process to retrieve the value of the preference.
To change to values from the prefences go to the ‘Enterprise Manager’ (http://localhost:7001/em).
To change to values from the prefences go to the ‘Enterprise Manager’ (http://localhost:7001/em).
· Farm_soa_domain > Weblogic Domain > soa_domain > right mouseclick and select ‘System MBean Browser’.
· Navigate to Application Defined MBeans > oracle.soa.config > Server : soa_server1 > SCAComposite > your_project > SCAComposite.SCAComponent > your bpel_process.
Select the Attribute ‘Properties’.
Select the Attribute ‘Properties’.
· Change the value of our preference and click apply.
· Run the bpel again to see if the new value got used in the process.
No comments:
Post a Comment