In most SOASuite and Oracle ServiceBus projects the Database Adapter is used. And often it is used to invoke PL/Sql functions and procedures. Actually, it's my favorite interaction method with the database, since the re-entrancy of the database adapter wizard is best there. To do a re-entrant update of a select or DML operation when for instance a column is added, is simply put often quite problematic.
But the thing is with Pl/Sql that when you update a pl/sql package the package state is altered and when calling it from another session you'll get a 'ORA-04068: existing state of packages has been discarded' error. And this is will occur for every connection in the pool of your datasource.
The solution is to reset the datasource. This can be done easily in the WebLogic Administration Console (http://adminserver:port/console). But nowadays you can do it as easily in Enterprise Manager Fusion Middleware Control. This can be quite convenient for developers since often you have EM already open because of your SOASuite tests.
To do this open the Weblogic Domain menu and select the option 'JDBC DataSources':
Select the DataSource you want to reset, for the example I choose the 'EDNDataSource', but probably you'd not do this for one, but for a custom DataSource:
Click the Control tab, select the DataSource in the table and click Reset:
Reset will drive WebLogic to recreate all the connections in the DataSource. This prevents popping up the message multiple times.
The functionality in Configuring, Monitoring and Controlling the Datasource is similar as in the WebLogic Admin console. Only the layout is a little different.
No comments:
Post a Comment