No announcement yet.

Invalid state of package in BPEL

  • Filter
  • Time
  • Show
Clear All
new posts

  • Invalid state of package in BPEL

    We are doing EBS integration development on Fusion with EBS (v. and intermittently getting this error:

    Error while trying to prepare and execute an API.
    An error occurred while preparing and executing the "PACKAGE_NAME.PROCEDURE_NAME" API. Cause: java.sql.SQLException: ORA-04068: existing state of packages has been discarded
    ORA-04061: existing state of package body "PACKAGE_NAME.PROCEDURE_NAME" has been invalidated
    ORA-04065: not executed, altered or dropped package body "PACKAGE_NAME.PROCEDURE_NAME"
    ORA-06508: PL/SQL: could not find program unit being called
    ORA-06512: at line 1
    [Caused by: ORA-04068: existing state of packages has been discarded
    "Internal Exception: java.sql.SQLException: ORA-04068: existing state of packages has been discarded" errors being returned to the BPEL process

    We are using a DBAdapter to call a PL/SQL package and recompiling the package quite frequently to debug. Realizing this is a fairly common SQL error msg - does anyone know a way to force Fusion to acquire the state of the database object EVERY time the process is executed?

    Seems once loaded into cache on Fusion server, it stays for a while and it is somehow acquiring an invalid state object. Note: this does not occur every time we recompile the PL/SQL package - sometimes recompiling does not cause this error, other times it does.

    The signature of the object is not changing at all - only the state (valid/invalid) and only for the fraction of time caused by recompile. We have tried changing some timing settings on Fusion (and clearing WSDL cache) but not sure which exact setting would effect this. This is WSH_OTM_INBOUND_GRP.INITIATE_PLANNED_SHIPMENT.

    Anyone out there experiencing this that can help?


  • #2
    Re: Invalid state of package in BPEL


    I've experienced the same issue on BPEL PM and EBS

    I found that I had to restart the BPEL server regularly when committing changes to the packages in EBS, in order to allow it to re-create the DB connection and obtain the latest package information.

    To the root of your question, though -- no, I'm not aware of a way to force BPEL / Fusion to read the data automatically each time and fully avoid these restarts. I was sometimes able to avoid them if I removed the package spec and body, then re-loaded them, instead of just updating; however, it was still somewhat inconsistent.

    Later, as you move into environment testing, you'll also find that you'll need to restart BPEL / Fusion each time EBS is restarted in order to re-instantiate the DB connection between BPEL and EBS, since it doesn't appear to re-create automatically.

    Last edited by chrisplough; September 10, 2007, 09:01.