Monday, September 19, 2011

Deleting an agreement in B2B

Its quite often in development phase where you need to reconfigure an agreement which you have already validated and deployed in B2B console. Thus after undeploying the agreement when you try to delete it, B2B throws an error and doesn't allow you to do so.

Error Message on your screen :
2011.05.20 at 05:18:42:744: AJPRequestHandler-ApplicationServerThread-6: UI - (ERROR) oracle.tip.buslogic.ui.agreement.AgreementEventHandler$Delete.handleEvent(): Error -: AIP-16015: Delete of Internal Delivery Channel Usage failed with error: Cannot delete Internal Delivery Channel Usage which is referenced by Participant Delivery Channel
2011.05.20 at 05:18:42:745: AJPRequestHandler-ApplicationServerThread-6: Repository - (ERROR) Error -: AIP-11301: The MetaClass Internal Delivery Channel Usage does not have the role InternalChannel.InternalDeliveryChannelUsage
at oracle.tip.model.metadata.CatalogMetaClass.getAssociationByMember(CatalogMetaClass.java:1024)
at oracle.tip.buslogic.common.AssociationDependencyException.isSubstituteValuesChange(AssociationDependencyException.java:173)
at oracle.tip.buslogic.common.AssociationDependencyException.getMessage(AssociationDependencyException.java:213)
at oracle.tip.tools.integration.event.IPEventHandler.getExceptionMessage(IPEventHandler.java:280)
at oracle.tip.tools.integration.event.IPEventHandler.handleExceptionWithCause(IPEventHandler.java:228)
at oracle.tip.tools.integration.event.IPEventHandler.handleEventIP(IPEventHandler.java:196)
at oracle.tip.tools.integration.event.IPEventHandler.handleEvent(IPEventHandler.java:104)
at oracle.cabo.servlet.event.TableEventHandler.handleEvent(Unknown Source)
at oracle.cabo.servlet.event.TableEventHandler.handleEvent(Unknown Source)
at oracle.cabo.servlet.event.BasePageFlowEngine.handleRequest(Unknown Source)
at oracle.cabo.servlet.AbstractPageBroker.handleRequest(Unknown Source)
at oracle.cabo.servlet.ui.BaseUIPageBroker.handleRequest(Unknown Source)
at oracle.cabo.servlet.PageBrokerHandler.handleRequest(Unknown Source)
at oracle.cabo.servlet.UIXServlet.doGet(Unknown Source)
at oracle.cabo.servlet.UIXServlet.doPost(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:835)
at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:341)
at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:816)
at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:231)
at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:136)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192)
at java.lang.Thread.run(Thread.java:534)



You need to go to the database level and delete the entry of the agreement and its dependency from the tables as it is not possible from the front end.
First of all make sure that you are not facing this issue because of low memory (please refer metalink note ID 738806.1). If issue is not with memory, then you may try to execute the below SQL's on your B2B database. 

delete from tip_internaldeliverychannelu_t;
delete from tip_participantdeliverychann_t;
delete from tip_participant_t;
delete from tip_agreement_t;
commit;

PS:- Make sure that you are NOT executing these SQL’s on a critical environment (Prod/pre-Prod).


Cheers
Ayush

No comments: