October 13, 2009

Bug in the SOA Suite 10g 10.1.3.5 patchset for Windows affects BPEL redeployments

My recommendation at this time is not to proceed with applying the Oracle SOA Suite 10g Patch Set 5 (10.1.3.5.0) for Windows. There is a bug that causes redeployment of BPEL processes to fail.

When redeploying an updated version of a BPEL process that is already deployed to the server, your ant or JDeveloper will return the following error:

    * Error when deploying

    BUILD FAILED

    C:\data\HelloWorld\build.xml:79: A problem occured while connecting to server "localhost" using port "80": bpel_HelloWorld_v2009_06_01__55238.jar failed to deploy. Exception message is: Error deploying BPEL suitcase.

    An error occurred while attempting to deploy the BPEL suitcase file "C:\oracle\product\10.1.3\soa_1\bpel\domains\default\tmp\bpel_11747128.tmp"; the exception reported is: archive cannot rename C:\oracle\product\10.1.3\soa_1\bpel\domains\default\tmp\.bpel_HelloWorld_v2009_06_01__55238_a4ef0434bf12f22a3374aab6a0a942a1.tmp
Reviewing the domain.log reveals an ORABPEL-05250 error, essentially reporting the same thing:
    <2009-10-12 09:39:30,281> <WARN> <default.collaxa.cube.engine.deployment> <DeploymentManager::deploySuitecase> Process bpel://localhost/default/HelloWorld~v2009_06_01__55238/ is being re-deployed (same version number)

    <2009-10-12 09:39:30,281> <ERROR> <default.collaxa.cube.engine.deployment> <DeploymentManager::deploySuitecase> archive cannot rename C:\oracle\product\10.1.3\soa_1\bpel\domains\default\tmp\.bpel_HelloWorld_v2009_06_01__55238_a4ef0434bf12f22a3374aab6a0a942a1.tmp

    <2009-10-12 09:39:30,312> <ERROR> <default.collaxa.cube> <BaseCubeSessionBean::logError> Error while invoking bean "domain manager": Error deploying BPEL suitcase.

    An error occurred while attempting to deploy the BPEL suitcase file "C:\oracle\product\10.1.3\soa_1\bpel\domains\default\tmp\bpel_11747128.tmp"; the exception reported is: archive cannot rename C:\oracle\product\10.1.3\soa_1\bpel\domains\default\tmp\.bpel_HelloWorld_v2009_06_01__55238_a4ef0434bf12f22a3374aab6a0a942a1.tmp

    ORABPEL-05250

    Error deploying BPEL suitcase.

    An error occurred while attempting to deploy the BPEL suitcase file "C:\oracle\product\10.1.3\soa_1\bpel\domains\default\tmp\bpel_11747128.tmp"; the exception reported is: archive cannot rename C:\oracle\product\10.1.3\soa_1\bpel\domains\default\tmp\.bpel_HelloWorld_v2009_06_01__55238_a4ef0434bf12f22a3374aab6a0a942a1.tmp

    at com.collaxa.cube.engine.deployment.DeploymentManager.deploySuitcase(DeploymentManager.java:871)

    at com.collaxa.cube.ejb.impl.BPELDomainManagerBean.deploySuitcase(BPELDomainManagerBean.java:465)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

Even if you remove the read-only attributes or set the Windows permissions and owner attributes to the Administrators group on the /domains folder, the behavior is the same.

The server deploys the project to a temporary directory in $ORACLE_HOME/bpel/domains/tmp and attempts to rename the existing project before replacing it with the new one. This is when the error occurs. Some unknown Java process within the BPEL server locks both the bpelclasses.jar file and one of your project WSDLs (e.g., _HelloWorld.wsdl), preventing the renaming of the parent directory.

To workaround this, you have 3 options:
  1. Undeploy the process, shutdown SOA Suite, manually delete the project directory from the /tmp directory, start up SOA Suite, then redeploy your process.
  2. Use a process unlocker utility to force remove the process lock on the JAR and WSDL files mentioned above, then redeploy your process.
  3. Don't upgrade to 10.1.3.5 for Windows for now.
Unless there is a particular bug fix that you desperately need to push, avoid upgrading to 10.1.3.5 on Windows for the time being. As mentioned above, there are workarounds, but they are annoying and may disrupt operations.

12 comments:

  1. Hi,
    this might be related to incorrect values for the TMP variable set in opmn.xml.
    If this is set to something like this:
    variable id="TMP" value="C:\DOCUME~1\ADMIN~1\LOCALS~1\Temp\1"/ try to change it to a directory owned by the local Administrator of the server.

    A value like the one above indicates that a Remote Desktop session (console id 1) was used to install/upgrade (Temp\1)...

    I recommend using mstsc /console or if that doesn't give you access to console 0, try using mstsc /admin.

    Regards,
    Jøran Lager

    ReplyDelete
  2. Anonymous, i've tried to follow your advice, but failed.
    A new TMP value hasn't given any advance.

    ReplyDelete
  3. saci_cv at yahoo.co.ukOctober 24, 2009

    The work around is Undeploy the process.Shut down SOA suite and then delete the folder in question
    and then restart the soa suit and then deploy it .Note that the versioning does not happen properly in this version

    ReplyDelete
  4. The server is 10.1.3.4 (OC4J, ESB and BPEL) and Jdeveloper was also 10.1.3.4 - it could not handled nested XML of ESB. Agreed!!!

    But, when we changed the JDeveloper to 10.1.3.5 - the EBOs got complied and we were able to deploy to the ESB (v.10.1.3.4)

    However, JDeveloper(10.1.3.5) is not able to deploy the BPEL processes to the BPEL Server.

    Is it due to the version mismatch? (JDev being 10.1.3.5 and BPEL Engine being 10.1.3.4)?

    We tried to deploy the BPEL process using JDev 10.1.3.4 - but build failed as there is not nested XML capability.

    Kindly suggest a way out of this catch-22 situation.

    nintendo dsi r4

    ReplyDelete
  5. Where can I get the process unlocker utility ?

    ReplyDelete
  6. You have two options at this point; option 2 being the better one.

    (1) Download "Process Explorer" from http://download.sysinternals.com/Files/ProcessExplorer.zip

    In it, click on "Find --> Find Handle or DLL", type the file that is locked, find the process that is locking it, and try to kill that process. I am not sure of the behavior here. You may not be able to kill the process; or it may crash or cause instability in your container.

    (2) Download "Unlocker" from http://www.filecrop.com/9310040/index.html (the actual "unlocker1.8.5.exe" has since been removed from the author's original site).

    Install "Unlocker" and make sure to select 'SentTo shortcut' during the installation. Then right-click on the locked file and select 'Unlock All'.


    If you cannot find it or have difficulty downloading "Unlocker", then contact me via the contact form on http://thisisahmed.com.

    ReplyDelete
  7. another workaround could be deploying it with a different version

    ReplyDelete
  8. As Anirban said, change the version number in build.properties and compile and deploy using ant tasks.

    ReplyDelete
  9. hi Ahmed ,nice blog..
    but i have a question in my case when i migrated the code it got successfully migrated but when making it it says

    error(4,211);Load of wsdl "myproject.wsdl" with message part element undefined in wsdl{partname=payloadType="namespace"}CollectionOfSystems Failed... but according to your answer i dont find any target namespaces in my types tag

    ReplyDelete
  10. Have you checked this out?

    http://blog.ipnweb.com/2010/10/error-load-of-wsdl-x-with-message-part.html

    ReplyDelete