<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7742856832727401012</id><updated>2011-12-11T07:45:41.355-08:00</updated><category term='AIA'/><category term='B2B'/><category term='SOA'/><category term='BPEL'/><category term='ESB'/><title type='text'>SOA Mania</title><subtitle type='html'>A paradise to enrich SOA concepts</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ayush-chatterjee.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7742856832727401012/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://ayush-chatterjee.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Ayush Chatterjee</name><uri>http://www.blogger.com/profile/12997947241970533584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_hEsdb0o8efo/SIcBHlcySxI/AAAAAAAAAAM/ax4iv37My-c/S220/04072008425.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>20</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7742856832727401012.post-7037311087697039598</id><published>2011-09-29T08:38:00.000-07:00</published><updated>2011-09-29T08:38:41.533-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='B2B'/><title type='text'>Handle the custom EDI Document Version Number</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Many EDI customers customizes the Standard EDI document version numbers&amp;nbsp; for e.g for 850 EDI document Standard Version of&amp;nbsp; X12 protocol are 5010, 4010 etc but customer wants to have his own version numbers e.g 5010VICS , 4010UCS in the outbound EDI file.&lt;br /&gt;Thus to accomplish it you need to customize the document version from 4010 to the desired 4010UCS in the 850 communication capability of the trading partner.&lt;br /&gt;&lt;br /&gt;But&amp;nbsp; you can get the below error-&lt;br /&gt;&lt;div style="color: #e69138;"&gt;&lt;i&gt;AIP-50547: Trading partner agreement not found for the given input values: From party[NAME] "Glbalchips", To party[NAME] "ACME", Business action name "null"; also verify agreement effectiveToDate&lt;br /&gt;at oracle.tip.adapter.b2b.tpa.RepoDataAccessor.getAgreementNameByBaTPName(RepoDataAccessor.java:2345)&lt;br /&gt;at oracle.tip.adapter.b2b.tpa.TPAIdentifier.identifyTPA(TPAIdentifier.java:186)&lt;br /&gt;at oracle.tip.adapter.b2b.tpa.TPAProcessor.processTPA(TPAProcessor.java:589)&lt;br /&gt;at oracle.tip.adapter.b2b.tpa.TPAProcessor.processIncomingTPA(TPAProcessor.java:240)&lt;br /&gt;at oracle.tip.adapter.b2b.engine.Engine.processIncomingMessage(Engine.java:1832)&lt;br /&gt;at oracle.tip.adapter.b2b.engine.Engine.incomingContinueProcess(Engine.java:2573)&lt;br /&gt;at oracle.tip.adapter.b2b.engine.Engine.handleMessageEvent(Engine.java:2443)&lt;br /&gt;at oracle.tip.adapter.b2b.engine.Engine.processEvents(Engine.java:2398)&amp;nbsp;&lt;/i&gt;&lt;/div&gt;&lt;div style="color: #e69138;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b style="color: #b45f06;"&gt;Cause:&lt;/b&gt;&lt;br /&gt;Business Action can be null when the Document Type or the Document Type Revision is not configured correctly.&lt;br /&gt;For any transaction, inbound or outbound, B2B finds the following parameters in order to determine an agreement.&lt;br /&gt;a. From Party&lt;br /&gt;b. To Party&lt;br /&gt;c. Document Type&lt;br /&gt;d. Document Type Revision.&lt;br /&gt;Oracle B2B extracts the Document Type and Document Revision from the transaction set of incoming EDI Document . i.e UNH Segment.&lt;br /&gt;If there is a mismatch in the Document Type or the Document Revision in the B2B configuration (different from the EDI Incoming File), then B2B cannot determine the Business Action.&lt;br /&gt;If any one of the above values are configured incorrectly or not configured , B2B throws "AIP-50547: Trading partner agreement not found for the given input values".&lt;br /&gt;&lt;br /&gt;&lt;b style="color: #b45f06;"&gt;Solution: &lt;/b&gt;&lt;br /&gt;Check if  Document Type has some custom name. (B2B does not allow to customize the document type name.)&lt;br /&gt;If Yes &lt;br /&gt;Rename the document type to just 850 ( or any standard type) as follows: &lt;br /&gt;In the present configuration,&lt;br /&gt;Login to B2B ----&amp;gt;Partners ---&amp;gt;Protocols ----&amp;gt;EDI X12 over Generic Exchange ---- &lt;br /&gt;-&amp;gt;Document Protocol Revision ---&amp;gt;Details &lt;br /&gt;In the Document Type section , rename 850UCS to 850&lt;br /&gt;Re-create the agreement and re-deploy the configuration.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Happy learning.&lt;br /&gt;&lt;br /&gt;&lt;div style="color: #e69138;"&gt;Regards&lt;/div&gt;&lt;span style="color: #e69138;"&gt;Ayush &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7742856832727401012-7037311087697039598?l=ayush-chatterjee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ayush-chatterjee.blogspot.com/feeds/7037311087697039598/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7742856832727401012&amp;postID=7037311087697039598' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7742856832727401012/posts/default/7037311087697039598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7742856832727401012/posts/default/7037311087697039598'/><link rel='alternate' type='text/html' href='http://ayush-chatterjee.blogspot.com/2011/09/handle-custom-edi-document-version.html' title='Handle the custom EDI Document Version Number'/><author><name>Ayush Chatterjee</name><uri>http://www.blogger.com/profile/12997947241970533584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_hEsdb0o8efo/SIcBHlcySxI/AAAAAAAAAAM/ax4iv37My-c/S220/04072008425.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7742856832727401012.post-53326208916890753</id><published>2011-09-22T08:39:00.000-07:00</published><updated>2011-09-22T08:39:13.200-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='B2B'/><title type='text'>Delimiters other than UTF-8 in B2B</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;We all know that by default B2B only supports UTF-8 encoding style but some times there is a need to send the dellimters for eg. Segment Delimiter or Element Delimiter in the outbound EDI file which are not in encoding style of UTF-8 set. If such delimiters are used then B2B gives following error&lt;br /&gt;&lt;strong&gt;&lt;span style="color: #e69138;"&gt;Error in B2B The Interchange Trailer is missing. The segment itself may be missing or the Segment Delimiter may be missing.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #e69138;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;The above issue typically erupts due to UTF-8 encoding.&lt;br /&gt;The error can be removed by  placing the below property in tip.properties file located in B2B server config folder&lt;br /&gt; &lt;b style="color: #e69138;"&gt;"oracle.tip.adapter.b2b.encoding=ISO-8859-1&lt;/b&gt;&lt;b style="color: #e69138;"&gt;"&lt;/b&gt;&lt;br /&gt;Please make sure that you bounce the Server after saving the change.&lt;br /&gt;&lt;br /&gt;A small point but a very important one.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cheers&lt;br /&gt;Ayush &lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7742856832727401012-53326208916890753?l=ayush-chatterjee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ayush-chatterjee.blogspot.com/feeds/53326208916890753/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7742856832727401012&amp;postID=53326208916890753' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7742856832727401012/posts/default/53326208916890753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7742856832727401012/posts/default/53326208916890753'/><link rel='alternate' type='text/html' href='http://ayush-chatterjee.blogspot.com/2011/09/delimiters-other-than-utf-8-in-b2b.html' title='Delimiters other than UTF-8 in B2B'/><author><name>Ayush Chatterjee</name><uri>http://www.blogger.com/profile/12997947241970533584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_hEsdb0o8efo/SIcBHlcySxI/AAAAAAAAAAM/ax4iv37My-c/S220/04072008425.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7742856832727401012.post-6387304450973121144</id><published>2011-09-20T08:21:00.000-07:00</published><updated>2011-09-20T08:21:31.681-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='B2B'/><title type='text'>Problem while deploying Agreements in B2B</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;You may come across a scenario wherein when you start deploying a new agreement  in B2B of a trading partner which has already an agreement deployed previously, then sometimes an error comes up on your screen&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;div style="color: #b45f06;"&gt;&lt;u&gt;Error Message:&lt;/u&gt;&lt;/div&gt;&lt;div style="color: #e69138;"&gt;&lt;i&gt;Thread-100: B2B - (DEBUG) oracle.tip.adapter.b2b.tpa.RepoDataAccessor:getAgreementDetails() fromTPP = TradingPartnerParticipant_DBCCtoTPP = TradingPartnerParticipant_DBCE&lt;br /&gt;2009.03.18 at 05:17:17:239: Thread-100: Repository - (ERROR) Error -: AIP-11015: Object does not exist 6559DEFBDBD0B026E043C0A86365B026-298-1&lt;br /&gt; at oracle.tip.repos.core.driver.CatalogDriver.getObject(CatalogDriver.java:759)&lt;br /&gt; at oracle.tip.repos.core.driver.InternalObject.getAssociation(InternalObject.java:680)&lt;br /&gt; at oracle.tip.repos.core.persistency.BaseObject.getAssociation(BaseObject.java:388)&lt;br /&gt; at oracle.tip.model.agreement.ParticipantDeliveryChannel.getInternalChannel(ParticipantDeliveryChannel.java:212)&lt;br /&gt; at oracle.tip.adapter.b2b.tpa.RepoDataAccessor.getAgreementDetails(RepoDataAccessor.java:441)&lt;br /&gt; at oracle.tip.adapter.b2b.tpa.TPAProcessor.processTPA(TPAProcessor.java:587)&lt;br /&gt; at oracle.tip.adapter.b2b.tpa.TPAProcessor.processIncomingTPA(TPAProcessor.java:229)&lt;br /&gt; at oracle.tip.adapter.b2b.engine.Engine.processIncomingMessage(Engine.java:1715)&lt;br /&gt; at oracle.tip.adapter.b2b.engine.Engine.incomingContinueProcess(Engine.java:2404)&lt;br /&gt; at oracle.tip.adapter.b2b.engine.Engine.handleMessageEvent(Engine.java:2303)&lt;br /&gt; at oracle.tip.adapter.b2b.engine.Engine.processEvents(Engine.java:2258)&lt;br /&gt; at oracle.tip.adapter.b2b.data.MsgListener.onMessage(MsgListener.java:500)&lt;br /&gt; at oracle.tip.adapter.b2b.data.MsgListener.run(MsgListener.java:348)&lt;br /&gt; at java.lang.Thread.run(Thread.java:534)&lt;/i&gt;&lt;/div&gt;&lt;i style="color: #e69138;"&gt;at oracle.tip.adapter.b2b&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;So to get out of this situation, we must keep all the agreements in a single configuration i.e &lt;b style="color: #b45f06;"&gt;Only single configuration should be associated for all agreements for a Single TP&lt;/b&gt;&lt;span style="color: #b45f06;"&gt;.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;Even if you don't face this issue please note that this is a good practice to keep all agreements in a single configuration.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cheers&lt;br /&gt;Ayush&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7742856832727401012-6387304450973121144?l=ayush-chatterjee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ayush-chatterjee.blogspot.com/feeds/6387304450973121144/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7742856832727401012&amp;postID=6387304450973121144' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7742856832727401012/posts/default/6387304450973121144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7742856832727401012/posts/default/6387304450973121144'/><link rel='alternate' type='text/html' href='http://ayush-chatterjee.blogspot.com/2011/09/problem-while-deploying-agreements-in.html' title='Problem while deploying Agreements in B2B'/><author><name>Ayush Chatterjee</name><uri>http://www.blogger.com/profile/12997947241970533584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_hEsdb0o8efo/SIcBHlcySxI/AAAAAAAAAAM/ax4iv37My-c/S220/04072008425.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7742856832727401012.post-3964883211987156979</id><published>2011-09-19T08:40:00.000-07:00</published><updated>2011-09-19T08:57:34.112-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='B2B'/><title type='text'>Deleting an agreement in B2B</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;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.&lt;br /&gt;&lt;br /&gt;Error Message on your screen :&lt;br /&gt;&lt;div style="color: #b45f06;"&gt;&lt;span style="font-size: small;"&gt;&lt;i&gt;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   &lt;br /&gt;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&lt;br /&gt;	at oracle.tip.model.metadata.CatalogMetaClass.getAssociationByMember(CatalogMetaClass.java:1024)&lt;br /&gt;	at oracle.tip.buslogic.common.AssociationDependencyException.isSubstituteValuesChange(AssociationDependencyException.java:173)&lt;br /&gt;	at oracle.tip.buslogic.common.AssociationDependencyException.getMessage(AssociationDependencyException.java:213)&lt;br /&gt;	at oracle.tip.tools.integration.event.IPEventHandler.getExceptionMessage(IPEventHandler.java:280)&lt;br /&gt;	at oracle.tip.tools.integration.event.IPEventHandler.handleExceptionWithCause(IPEventHandler.java:228)&lt;br /&gt;	at oracle.tip.tools.integration.event.IPEventHandler.handleEventIP(IPEventHandler.java:196)&lt;br /&gt;	at oracle.tip.tools.integration.event.IPEventHandler.handleEvent(IPEventHandler.java:104)&lt;br /&gt;	at oracle.cabo.servlet.event.TableEventHandler.handleEvent(Unknown Source)&lt;br /&gt;	at oracle.cabo.servlet.event.TableEventHandler.handleEvent(Unknown Source)&lt;br /&gt;	at oracle.cabo.servlet.event.BasePageFlowEngine.handleRequest(Unknown Source)&lt;br /&gt;	at oracle.cabo.servlet.AbstractPageBroker.handleRequest(Unknown Source)&lt;br /&gt;	at oracle.cabo.servlet.ui.BaseUIPageBroker.handleRequest(Unknown Source)&lt;br /&gt;	at oracle.cabo.servlet.PageBrokerHandler.handleRequest(Unknown Source)&lt;br /&gt;	at oracle.cabo.servlet.UIXServlet.doGet(Unknown Source)&lt;br /&gt;	at oracle.cabo.servlet.UIXServlet.doPost(Unknown Source)&lt;br /&gt;	at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)&lt;br /&gt;	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)&lt;br /&gt;	at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:835)&lt;br /&gt;	at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:341)&lt;br /&gt;	at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:816)&lt;br /&gt;	at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:231)&lt;br /&gt;	at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:136)&lt;br /&gt;	at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192)&lt;br /&gt;	at java.lang.Thread.run(Thread.java:534)&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;First of all make sure that you are not facing this issue because of low memory (please refer metalink note ID &lt;b&gt;738806.1&lt;/b&gt;). If issue is not with memory, then you may try to execute the below SQL's on your B2B database.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="color: #b45f06;"&gt;delete from tip_internaldeliverychannelu_&lt;wbr&gt;&lt;/wbr&gt;t;&lt;/div&gt;&lt;div class="MsoNormal" style="color: #b45f06;"&gt;delete from tip_participantdeliverychann_&lt;wbr&gt;&lt;/wbr&gt;t;&lt;/div&gt;&lt;div class="MsoNormal" style="color: #b45f06;"&gt;delete from tip_participant_t;&lt;/div&gt;&lt;div class="MsoNormal" style="color: #b45f06;"&gt;delete from tip_agreement_t;&lt;/div&gt;&lt;div style="color: #b45f06;"&gt;commit;&lt;/div&gt;&lt;br /&gt;&lt;b style="color: #660000;"&gt;&lt;span style="color: #b45f06;"&gt;PS:-&lt;/span&gt; &lt;/b&gt;Make sure that you are NOT executing these SQL’s on a critical environment (Prod/pre-Prod).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="color: #b45f06;"&gt;Cheers&lt;/div&gt;&lt;span style="color: #660000;"&gt;Ayush&lt;/span&gt;&lt;b style="color: #660000;"&gt; &lt;/b&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7742856832727401012-3964883211987156979?l=ayush-chatterjee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ayush-chatterjee.blogspot.com/feeds/3964883211987156979/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7742856832727401012&amp;postID=3964883211987156979' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7742856832727401012/posts/default/3964883211987156979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7742856832727401012/posts/default/3964883211987156979'/><link rel='alternate' type='text/html' href='http://ayush-chatterjee.blogspot.com/2011/09/deleting-agreement-in-b2b.html' title='Deleting an agreement in B2B'/><author><name>Ayush Chatterjee</name><uri>http://www.blogger.com/profile/12997947241970533584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_hEsdb0o8efo/SIcBHlcySxI/AAAAAAAAAAM/ax4iv37My-c/S220/04072008425.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7742856832727401012.post-8594492236988913225</id><published>2011-09-19T08:06:00.000-07:00</published><updated>2011-09-19T08:54:59.496-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='B2B'/><title type='text'>Duplicate 997 EDI file names.</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;b style="color: #783f04;"&gt;Scenario-&lt;/b&gt; Its quite obvious that for each Inbound EDI transaction received from the Trading Partner, a corresponding Functional Acknowledgement(997) needs to be sent back to the TP. In our case we had Adjustment TransactionSet (895) coming from the TP which was quite large in number(traffic wise) and so the 997s also became quite large in number.&lt;br /&gt;&lt;br /&gt;&lt;b style="color: #783f04;"&gt;Problem-&lt;/b&gt; There were some cases where the outgoing 997 files were being created with the same file name by B2B when they are generated at the same moment of time.Thus the TPs were missing some 997s as B2B was overwriting the file with the same name.The outgoing file name format was &lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;b style="color: #b45f06;"&gt;&lt;i&gt;&lt;span style="font-size: small;"&gt;"%FROM_PARTY%_%TIMESTAMP%.dat"&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;b&gt; &lt;/b&gt;&lt;i&gt;.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b style="color: #783f04;"&gt;Cause-&lt;/b&gt;&lt;span style="color: #783f04;"&gt; &lt;/span&gt;There was no direct cause to find the reason as why B2B was behaving in such an abnormal way as the 997 was automatically initiated by B2B as soon as it received the inbound file.&lt;br /&gt;&lt;b&gt;PS:&lt;/b&gt; Make sure that MLR #15 or later version patch is already applied on your B2B server. If not then kindly apply the same and then check.&lt;br /&gt;&lt;br /&gt;&lt;b style="color: #783f04;"&gt;Solution-&lt;/b&gt;Definitely problem was with the time resolution. If resolution is not in nano-seconds then such problems may occur under heavy load. Oracle B2B internally uses JAVA API's for creating time-stamp and if OS does not have nano second time resolution then time-stamp may not be unique. &lt;br /&gt;To remove the discrepancy of time format in the filename, i made the name unique by using Message ID (&lt;b style="color: #b45f06;"&gt;&lt;i&gt;&lt;span style="font-size: small;"&gt;"%MSG_ID%"&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;span style="color: #b45f06;"&gt;)&lt;/span&gt; in the file name and prblem was solved.&lt;br /&gt;&lt;br /&gt;You can also use InReply to Message ID (&lt;b style="color: #b45f06;"&gt;&lt;span style="font-size: small;"&gt;&lt;i&gt;"%INREPLYTO_ID%"&lt;/i&gt;&lt;/span&gt;&lt;/b&gt;) in filename format to keep it unique.&lt;br /&gt;&lt;br /&gt;Happy learning!!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="color: #b45f06;"&gt;Cheers&lt;/div&gt;&lt;div style="color: #b45f06;"&gt;Ayush&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7742856832727401012-8594492236988913225?l=ayush-chatterjee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ayush-chatterjee.blogspot.com/feeds/8594492236988913225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7742856832727401012&amp;postID=8594492236988913225' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7742856832727401012/posts/default/8594492236988913225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7742856832727401012/posts/default/8594492236988913225'/><link rel='alternate' type='text/html' href='http://ayush-chatterjee.blogspot.com/2011/09/duplicate-997-edi-file-names.html' title='Duplicate 997 EDI file names.'/><author><name>Ayush Chatterjee</name><uri>http://www.blogger.com/profile/12997947241970533584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_hEsdb0o8efo/SIcBHlcySxI/AAAAAAAAAAM/ax4iv37My-c/S220/04072008425.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7742856832727401012.post-940578020025808707</id><published>2011-08-30T07:53:00.000-07:00</published><updated>2011-08-30T08:41:09.782-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='B2B'/><title type='text'>Overriding of Document Protocol Parameters in B2B</title><content type='html'>Once we came across a very interesting scenario, wherein we want to have different &lt;em&gt;&lt;span style="color:#993300;"&gt;'Segment delimters'&lt;/span&gt;&lt;/em&gt; for different transactions of same protocol revision of same trading partner, e.g&lt;br /&gt;&lt;span style="color:#993300;"&gt;&lt;em&gt;For partner 'ABC ' transaction '894' segment delimter should be 0x7f and for '880' it should be 0x3e.&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;We followed the below steps-&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Goto - Remote TP --&amp;gt; Operational Capability --&amp;gt; Respecive Business Action --&amp;gt; Document Protocol Parameters&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Update the segment delimiter for each Business Action.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Re validate and Redeploy the agreement&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;NOTE:- &lt;/strong&gt;B2B doesn't allow to set different Document Protocol Parameters for different transactions of same protocol revision and same trading partner. If you change in one of the transactions it will automatically reflect in the other.&lt;br /&gt;&lt;br /&gt;We all know that for every EDI transaction, we generate its corresponding &lt;em&gt;XSD&lt;/em&gt;(schema) from B2B Document Editor. &lt;/p&gt;&lt;br /&gt;&lt;p&gt;To make it work, we need to make use of &lt;strong&gt;Internal-properties&lt;/strong&gt; defined in the transaction's xsd. When you add this xsd in your B2B adapter, you can pass the desired value in any of the document protocol parameters with help of &lt;em&gt;&lt;strong&gt;XSLT&lt;/strong&gt;&lt;/em&gt; and this eventually overrides the value set in B2B console at run time. &lt;/p&gt;&lt;br /&gt;&lt;p&gt;Regards&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Ayush&lt;/p&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7742856832727401012-940578020025808707?l=ayush-chatterjee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ayush-chatterjee.blogspot.com/feeds/940578020025808707/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7742856832727401012&amp;postID=940578020025808707' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7742856832727401012/posts/default/940578020025808707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7742856832727401012/posts/default/940578020025808707'/><link rel='alternate' type='text/html' href='http://ayush-chatterjee.blogspot.com/2011/08/overriding-of-document-protocol.html' title='Overriding of Document Protocol Parameters in B2B'/><author><name>Ayush Chatterjee</name><uri>http://www.blogger.com/profile/12997947241970533584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_hEsdb0o8efo/SIcBHlcySxI/AAAAAAAAAAM/ax4iv37My-c/S220/04072008425.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7742856832727401012.post-5818870800830909075</id><published>2011-08-30T07:00:00.000-07:00</published><updated>2011-08-30T07:42:45.760-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='B2B'/><title type='text'>B2B Batching of transactions not happening</title><content type='html'>&lt;strong&gt;Scenario:-&lt;/strong&gt; We had to batch all the EDI outgoing transactions for a particular trading partner 's particular EDI transaction. For eg- Lets say we have 100 invoices(810) coming from EBiz/SOA into B2B for trading partner &lt;em&gt;'A'&lt;/em&gt; in one transaction.Now we have to club all the 100 invoices into one EDI file and send it to &lt;em&gt;'A'&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Problem:-&lt;/strong&gt; I won't discuss how batching is done in B2B. You can get the complete details in this below link&lt;br /&gt;&lt;a href="http://www.oracle.com/technology/products/integration/b2b/pdf/B2B_TN_012_EDI_OutBound_Batching.pdf"&gt;http://www.oracle.com/technology/products/integration/b2b/pdf/B2B_TN_012_EDI_OutBound_Batching.pdf&lt;/a&gt;&lt;br /&gt;We faced an issue where even after applying the logic correctly, the batching was not happening.The transactions remained in the WAIT BATCH state forever in the B2B console.Even if we bounced the B2B server, neither the existing transactions were completed nor the new transactions were batched.&lt;br /&gt;The interesting part was that it was happening only in one of b2b instances because it was working perfectly in another b2b instance which meant that my batching logic was correct.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Cause:-&lt;/strong&gt; After doing some research in the b2b database, we found that the parameter &lt;em&gt;&lt;strong&gt;&lt;span style="font-size:85%;"&gt;"job_queue_processes" &lt;/span&gt;&lt;/strong&gt;&lt;/em&gt;which specifies the no. of processes allocated to run the &lt;em&gt;&lt;strong&gt;&lt;span style="font-size:85%;"&gt;"ip_b2b_dbms_job"&lt;/span&gt;&lt;/strong&gt;&lt;/em&gt; was significantly low , in fact the value was &lt;em&gt;&lt;strong&gt;0&lt;/strong&gt;&lt;/em&gt;.&lt;br /&gt;This parameter can be seen using sqlplus 'show parameter job_queue_processes'. The sample pl/sql code is as below:&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:85%;"&gt;CREATE or REPLACE PROCEDURE ip_b2b_dbms_job AS&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:85%;"&gt;x NUMBER;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:85%;"&gt;BEGIN&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:85%;"&gt;dbms_job.submit(x, 'B2B_TIMEOUT_PROC;', sysdate, 'sysdate + (1 / 1440)');&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:85%;"&gt;commit;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:85%;"&gt;END;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;Solution:-&lt;/strong&gt; We need to increase it's value to &lt;em&gt;&lt;strong&gt;5&lt;/strong&gt;&lt;/em&gt; or &lt;em&gt;&lt;strong&gt;10&lt;/strong&gt;&lt;/em&gt; and then bounce the B2B DB and Server.&lt;br /&gt;This worked!!&lt;br /&gt;&lt;br /&gt;Regards&lt;br /&gt;Ayush&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7742856832727401012-5818870800830909075?l=ayush-chatterjee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ayush-chatterjee.blogspot.com/feeds/5818870800830909075/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7742856832727401012&amp;postID=5818870800830909075' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7742856832727401012/posts/default/5818870800830909075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7742856832727401012/posts/default/5818870800830909075'/><link rel='alternate' type='text/html' href='http://ayush-chatterjee.blogspot.com/2011/08/b2b-batching-of-transactions-not.html' title='B2B Batching of transactions not happening'/><author><name>Ayush Chatterjee</name><uri>http://www.blogger.com/profile/12997947241970533584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_hEsdb0o8efo/SIcBHlcySxI/AAAAAAAAAAM/ax4iv37My-c/S220/04072008425.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7742856832727401012.post-4869593545864298501</id><published>2011-08-10T07:13:00.000-07:00</published><updated>2011-08-11T09:05:56.614-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='B2B'/><title type='text'>B2B abruptly fails to communicate to the FTP serverr</title><content type='html'>&lt;span style="font-family:georgia;"&gt;&lt;span style="color: rgb(153, 51, 0); font-weight: bold;"&gt;Scenario:-&lt;/span&gt;There was a scenario in my project where we had Inbound transaction 895s &lt;/span&gt;configured for a trading partner  and we had to send a Functional Acknowledgement(997) back to the TP for each 895 received.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;Problem:-&lt;/span&gt; We had hundreds of 895s coming at a time into B2B and while B2B was sending 997 for each 895, some of the 997 edi files failed at the FTP Server. That meant some of the 997 edi files failed to appear at the FTP location while the rest of them were successfully created.&lt;br /&gt;Error in the B2B logs-&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(153, 51, 0);font-size:85%;" &gt;oracle.tip.transport.TransportException: Unable to read response from host  '$FTP HostServer'&lt;br /&gt;java.net.SocketException: Connection reset&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;Cause:-&lt;/span&gt;As problem was very strange because B2B was abruptly loosing connections to the FTP and the FTP server logs were clean too, we couldn't drill down to the exact cause of the problem, so we concluded that this issue is intermittent and the possible cause could be network or  environment issue.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;Solution:-&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);"&gt; &lt;/span&gt;Since we were not able to do a root cause analysis (even after seeking help from Oracle support) and at the same time we also needed a workaround to come out of this situation, &lt;span style="font-style: italic; color: rgb(153, 51, 0); font-weight: bold;font-size:85%;" &gt;we used the&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0); font-style: italic; font-weight: bold;font-size:100%;" &gt;Retry Count&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(153, 51, 0); font-weight: bold;font-size:85%;" &gt; facility available at the Delivery channel layer of the TP.&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic; color: rgb(153, 51, 0); font-weight: bold;"&gt; By setting the&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0); font-weight: bold; font-style: italic;font-size:85%;" &gt;&lt;span style="color: rgb(153, 51, 0);"&gt; &lt;span style="font-size:100%;"&gt;Retry Count&lt;/span&gt;&lt;/span&gt; &lt;/span&gt;&lt;span style="color: rgb(153, 51, 0); font-style: italic; font-weight: bold;font-size:85%;" &gt; &lt;/span&gt;&lt;span style="color: rgb(153, 51, 0); font-weight: bold; font-style: italic;font-size:85%;" &gt;and &lt;span style="font-size:100%;"&gt;Retry Interval&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0); font-style: italic; font-weight: bold;font-size:85%;" &gt;&lt;span style="color: rgb(153, 51, 0);font-size:100%;" &gt; &lt;/span&gt;to some specific value,we were actually cutting down the possibility of the connection failure between B2B server and the FTP.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;Result :-&lt;/span&gt;The B2B was successfully able to connect to the FTP in the one of the retry attempts if it anyhow failed in the previous attempt.&lt;br /&gt;Its better to configure the retry mechanism for each EDI transaction beforehand.&lt;br /&gt;&lt;br /&gt;Cheers&lt;br /&gt;Ayush&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7742856832727401012-4869593545864298501?l=ayush-chatterjee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ayush-chatterjee.blogspot.com/feeds/4869593545864298501/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7742856832727401012&amp;postID=4869593545864298501' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7742856832727401012/posts/default/4869593545864298501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7742856832727401012/posts/default/4869593545864298501'/><link rel='alternate' type='text/html' href='http://ayush-chatterjee.blogspot.com/2011/08/b2b-abruptly-fails-to-communicate-to.html' title='B2B abruptly fails to communicate to the FTP serverr'/><author><name>Ayush Chatterjee</name><uri>http://www.blogger.com/profile/12997947241970533584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_hEsdb0o8efo/SIcBHlcySxI/AAAAAAAAAAM/ax4iv37My-c/S220/04072008425.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7742856832727401012.post-4611105296952602156</id><published>2011-08-09T08:34:00.000-07:00</published><updated>2011-08-09T09:34:54.811-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='B2B'/><title type='text'>Error while migrating a single agreement in B2B</title><content type='html'>One of the stiff challenges which i faced is migrating a single agreement in B2B between two environments, suppose from Development environment to Production environment in the below scenario.&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;&lt;span style="font-style:italic;"&gt;Scenario:-&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;You have Trading partner &lt;span style="font-weight:bold;"&gt;&lt;span style="font-style:italic;"&gt;"A"&lt;/span&gt;&lt;/span&gt; with some EDI X12 transaction for eg. 850 configured and running in both the environments(dev and prod). Now we have a new transaction suppose 875 for the same partner &lt;span style="font-weight:bold;"&gt;&lt;span style="font-style:italic;"&gt;"A"&lt;/span&gt;&lt;span style="font-style:italic;"&gt;&lt;/span&gt;&lt;/span&gt; configured in dev environment and needs to be moved to production.&lt;br /&gt;&lt;br /&gt;Now if you migrate this 875 agreement in the conventional way, then it will throw an error in B2B production console while validating the agreement&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic; color: rgb(153, 51, 0);"&gt;Error:-&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;font-size:85%;" &gt;Agreement &lt;span style="font-style:italic;"&gt;$TP_Name&lt;/span&gt; 875 Inbound is invalid.&lt;br /&gt;AIP-16222: The transport parameter  of trading partner $TP_Name must have no more than one protocol endpoint&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0); font-style: italic;"&gt;Reason:-&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;The endpoint details in both the environments are different.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(153, 51, 0);"&gt;Solution:-&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;1. In development environment update the transport server parameters for &lt;span style="font-style:italic;"&gt;"&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;$TransportServer&lt;/span&gt;&lt;/span&gt;"&lt;/span&gt; to the same values as production, then re-export the agreement and import it again.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;OR&lt;/span&gt;&lt;br /&gt;2. In the exported agreement (xml file) modify the IP, username and password for &lt;span style="font-style:italic;"&gt;"&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;$TransportServer&lt;/span&gt;&lt;/span&gt;"&lt;/span&gt; transport server to the values you have in production environment.&lt;br /&gt;You may get these parameters by connecting to B2B production metadata repository and running this query:&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;font-size:85%;" &gt;select * from b2b.TIP_transportserver_t t where t.name="$TransportServer";&lt;/span&gt;&lt;br /&gt;Import the xml file in the production server and validate the agreement.&lt;br /&gt;No errors this time!!&lt;br /&gt;&lt;br /&gt;Cheers&lt;br /&gt;Ayush&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7742856832727401012-4611105296952602156?l=ayush-chatterjee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ayush-chatterjee.blogspot.com/feeds/4611105296952602156/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7742856832727401012&amp;postID=4611105296952602156' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7742856832727401012/posts/default/4611105296952602156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7742856832727401012/posts/default/4611105296952602156'/><link rel='alternate' type='text/html' href='http://ayush-chatterjee.blogspot.com/2011/08/error-while-migrating-single-agreement.html' title='Error while migrating a single agreement in B2B'/><author><name>Ayush Chatterjee</name><uri>http://www.blogger.com/profile/12997947241970533584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_hEsdb0o8efo/SIcBHlcySxI/AAAAAAAAAAM/ax4iv37My-c/S220/04072008425.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7742856832727401012.post-3285863837718628960</id><published>2011-08-09T07:59:00.000-07:00</published><updated>2011-08-09T08:29:44.136-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='B2B'/><title type='text'>Oracle B2B</title><content type='html'>Hello guys,&lt;br /&gt;Its been a long time since i have updated with some technical stuff on my blog.Last  year i was given an opportunity to work on Oracle B2B which was totally new and challenging to me since being a newbie to it.&lt;br /&gt;Initially i struggled, but soon picked up the pace and was able to explore and learn quite a handful of things which i feel like sharing with all of you.&lt;br /&gt;I was involved in with direct integrations of Oracle B2B with Oracle SOA Interfaces in and out.Also responsible in configuring EDI trading Partners and agreements on various EDI X12 transactions like 850,875,810,894 etc..&lt;br /&gt;In my next posts on b2b, i will neither talk about the configuration and definition of b2b nor the way to integrate SOA with B2B because this is already available in the b2b guides at oracle sites. But i will share some of the crucial situations and key points which i came across in my project and it required some efforts to come out of it.&lt;br /&gt;I hope with my b2b posts many of you will be benefited.&lt;br /&gt;So wait for my next posts, Happy Learning!!!&lt;br /&gt;&lt;br /&gt;Thanks&lt;br /&gt;Ayush&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7742856832727401012-3285863837718628960?l=ayush-chatterjee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ayush-chatterjee.blogspot.com/feeds/3285863837718628960/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7742856832727401012&amp;postID=3285863837718628960' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7742856832727401012/posts/default/3285863837718628960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7742856832727401012/posts/default/3285863837718628960'/><link rel='alternate' type='text/html' href='http://ayush-chatterjee.blogspot.com/2011/08/oracle-b2b.html' title='Oracle B2B'/><author><name>Ayush Chatterjee</name><uri>http://www.blogger.com/profile/12997947241970533584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_hEsdb0o8efo/SIcBHlcySxI/AAAAAAAAAAM/ax4iv37My-c/S220/04072008425.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7742856832727401012.post-3884716818621053000</id><published>2010-02-23T22:31:00.000-08:00</published><updated>2011-07-24T09:19:32.659-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BPEL'/><title type='text'>Use of Dynamic JNDI</title><content type='html'>Hi Guys&lt;br /&gt;&lt;br /&gt;This is my first Post in 2010.I came across a very useful and unusual scenario where i have to select the JNDI at run time.&lt;br /&gt;Here is the way how we do it.&lt;br /&gt;&lt;br /&gt;Scenario-&lt;br /&gt;We have two database schemas, India and US each containing Employee&lt;br /&gt;table. If the employee's location is india, we&lt;br /&gt;want to insert it into India schema, if he works in US, the insertion should be&lt;br /&gt;done in the employee table of US Schema.&lt;br /&gt;The credentials, and possibly even database host name, port number for the two schema can be different. Thus we have two different JNDI entries for&lt;br /&gt;these two schemas – eis/DB/US and eis/DB/India. But, for inserting into these&lt;br /&gt;different databases, we want to use a single Database adapter. Normally, the JNDI on&lt;br /&gt;which the adapter is based is specified during design time. So we want to change the&lt;br /&gt;JNDI value for the adapter at runtime, based on whether the employee is of US or India.&lt;br /&gt;&lt;br /&gt;Please make sure that the two JNDIs (eis/DB/US and eis/DB/India)are created in the application server pointing to their respective databases.&lt;br /&gt;&lt;br /&gt;After doing this , create a simple BPEL project which has a single invoke to the database.Make sure you have a switch activity which have a condition on employees location.Based on the employee's location assign its respective JNDI and then invoke the DB Adapter.&lt;br /&gt;&lt;br /&gt;Now the question arrises how you will assign the JNDI?&lt;br /&gt;You need to add the below xml fragment in your assign activity and assign it to the partner link(in our case it is DB adapter).&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;&amp;#60;EndpointReference&lt;br /&gt;xmlns="http://schemas.xmlsoap.org/ws/2003/03/addressing"&gt;&lt;br /&gt;&amp;#60;Address&gt;eis/DB/India&amp;#60;/Address&gt;&lt;br /&gt;&amp;#60;/EndpointReference&gt;&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Once you complete it,just deploy the code and test it.&lt;br /&gt;It works.&lt;br /&gt;&lt;br /&gt;Cheers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7742856832727401012-3884716818621053000?l=ayush-chatterjee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ayush-chatterjee.blogspot.com/feeds/3884716818621053000/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7742856832727401012&amp;postID=3884716818621053000' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7742856832727401012/posts/default/3884716818621053000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7742856832727401012/posts/default/3884716818621053000'/><link rel='alternate' type='text/html' href='http://ayush-chatterjee.blogspot.com/2010/02/use-of-dynamic-jndi.html' title='Use of Dynamic JNDI'/><author><name>Ayush Chatterjee</name><uri>http://www.blogger.com/profile/12997947241970533584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_hEsdb0o8efo/SIcBHlcySxI/AAAAAAAAAAM/ax4iv37My-c/S220/04072008425.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7742856832727401012.post-2461352140728028530</id><published>2009-09-16T21:45:00.000-07:00</published><updated>2011-07-24T09:19:32.660-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BPEL'/><title type='text'>Modify Transaction Timeout Settings</title><content type='html'>We generally face the time out issue during the run time, when the data being fetched is large.Thus to avoid this issue we need to increase the time out settings. Suppose we want to have a transaction timeout of 600 seconds to enable.&lt;br /&gt;&lt;br /&gt;We need to change the following files and bounce the oc4j instance to have the timeout setting effective : &lt;br /&gt;&lt;br /&gt;• Change transaction-manager.xml at $J2EE_HOME/config(change the attribute transaction-timeout to 600) as follows : &lt;br /&gt;&lt;transaction-manager&lt;br /&gt; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&lt;br /&gt;xsi:noNamespaceSchemaLocation="http://xmlns.oracle.com/oracleas/schema/transaction-manager-10_0.xsd"&lt;br /&gt; transaction-timeout="600"&lt;br /&gt;max-concurrent-transactions="-1" &gt;&lt;br /&gt;&lt;br /&gt;• Change all occurances of transaction-timeout in $J2EE_HOME/application-deployments/orabpel/ejb_ob_engine/orion-ejb-jar.xml to 600.&lt;br /&gt;&lt;br /&gt;• Login to BPEL Console, and from “Manage Domains” change the following property :&lt;br /&gt;syncMaxWaitTime to 600&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7742856832727401012-2461352140728028530?l=ayush-chatterjee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ayush-chatterjee.blogspot.com/feeds/2461352140728028530/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7742856832727401012&amp;postID=2461352140728028530' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7742856832727401012/posts/default/2461352140728028530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7742856832727401012/posts/default/2461352140728028530'/><link rel='alternate' type='text/html' href='http://ayush-chatterjee.blogspot.com/2009/09/modify-transaction-timeout-settings.html' title='Modify Transaction Timeout Settings'/><author><name>Ayush Chatterjee</name><uri>http://www.blogger.com/profile/12997947241970533584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_hEsdb0o8efo/SIcBHlcySxI/AAAAAAAAAAM/ax4iv37My-c/S220/04072008425.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7742856832727401012.post-5471035777068003481</id><published>2009-09-02T05:01:00.000-07:00</published><updated>2011-08-09T09:35:12.107-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ESB'/><title type='text'>ESB Project Registration Fails in Jdeveloper</title><content type='html'>&lt;p&gt;After upgrade to a 10.1.3.4 MLR, registration of projects to ESB fails from JDeveloper or ANT.You get the following error at registration time:&lt;br /&gt;Entity Deployment Failederror code: 1001 : 5 summary: Failed to create Service "ESBService". Fix: Ensure that the (a) Repository is available. (b) The Connection information for the Repository is Valid. Verify the detailed cause of error if available. Contact Oracle Support if error not fixable.&lt;/p&gt;&lt;p&gt;The ESB Designtime logfile at $ORACLE_HOME/j2ee/&lt;esb&gt;/log/*_*_1/oc4j/log.xml will have the following similar errors:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;#60;message&gt;&lt;br /&gt;&amp;#60;header&gt;    &lt;br /&gt;&amp;#60;tstz_originating&gt;2009-02-16T13:09:48.858-05:00&amp;#60;/tstz_originating&gt;    &amp;#60;component_id&gt;tip&amp;#60;/component_id&gt;&lt;br /&gt;&amp;#60;msg_type type="ERROR"&gt;&amp;#60;/msg_type&gt;    &lt;br /&gt;&amp;#60;msg_level&gt;1&amp;#60;/msg_level&gt;    &lt;br /&gt;&amp;#60;host_id&gt;t1-l1&amp;#60;/host_id&gt;    &lt;br /&gt;&amp;#60;host_nwaddr&gt;&lt;host&gt;&amp;#60;/host_nwaddr&gt;    &amp;#60;module_id&gt;esb.configuration.deployment&amp;#60;/module_id&gt;    &lt;br /&gt;&amp;#60;thread_id&gt;17&amp;#60;/thread_id&gt;    &lt;br /&gt;&amp;#60;user_id&gt;test&amp;#60;/user_id&gt;  &lt;br /&gt;&amp;#60;/header&gt;  &lt;br /&gt;&amp;#60;correlation_data&gt;    &lt;br /&gt;&amp;#60;exec_context_id&gt;&amp;#60;unique_id&gt;&amp;#60;host&gt;:97790:1234807788280:19&amp;#60;/unique_id&gt;&amp;#60;seq&gt;0&amp;#60;/seq&gt;&amp;#60;/exec_context_id&gt;  &lt;br /&gt;&amp;#60;/correlation_data&gt;  &lt;br /&gt;&amp;#60;payload&gt;    &lt;br /&gt;&amp;#60;msg_text&gt;Deployment failed due to :Failed to create Service "ESBService".Ensure that the (a) Repository is available. (b) The Connection information for the Repository is Valid. Verify the detailed cause of error if available. Contact Oracle Support if error not fixable.&amp;#60;/msg_text&gt;  &lt;br /&gt;&amp;#60;/payload&gt;&lt;br /&gt;&amp;#60;/message&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;The issue is caused by not successfully running the 10.1.3.4 MLR database upgrade script for the ESB (oraesb) schema after applying one of the 10.1.3.4 MLR patch sets.&lt;/p&gt;&lt;p&gt;The key error from the log.xml file is:&lt;br /&gt;For Oracle database: Caused by: java.sql.SQLException: ORA-00904: "FQ_PATH": invalid identifier &lt;/p&gt;&lt;p&gt;&lt;a name="FIX"&gt;&lt;/a&gt;Solution&lt;/p&gt;&lt;p&gt;1. After a 10.1.3.4 MLR is applied to a system make sure that the instructions in the readme for the patch set is followed, specifically running the database upgrade scripts for the specified SOA schema. For this particular case the ESB oraesb script must be run. Verify that the sql scripts complete successfully.&lt;/p&gt;&lt;p&gt;2. After the database scripts have been run successfully try the ESB registration again.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7742856832727401012-5471035777068003481?l=ayush-chatterjee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ayush-chatterjee.blogspot.com/feeds/5471035777068003481/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7742856832727401012&amp;postID=5471035777068003481' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7742856832727401012/posts/default/5471035777068003481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7742856832727401012/posts/default/5471035777068003481'/><link rel='alternate' type='text/html' href='http://ayush-chatterjee.blogspot.com/2009/09/esb-project-registration-fails-in.html' title='ESB Project Registration Fails in Jdeveloper'/><author><name>Ayush Chatterjee</name><uri>http://www.blogger.com/profile/12997947241970533584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_hEsdb0o8efo/SIcBHlcySxI/AAAAAAAAAAM/ax4iv37My-c/S220/04072008425.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7742856832727401012.post-5230500953783696890</id><published>2009-09-02T03:21:00.000-07:00</published><updated>2011-08-09T09:35:45.855-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><title type='text'>Problem while Emulating the XADataSource</title><content type='html'>&lt;p&gt;Hi All,&lt;/p&gt;&lt;p&gt;In domain.log, If you can see the following error ;&lt;br /&gt;&lt;br /&gt;Message handle error.&lt;br /&gt;An exception occurred while attempting to process the message "com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessage"; the exception is: Branch [oracle.oc4j.sql.xa.EmulatedXAResource@454837, Xid( Global Id d4.14.26.b6.ff.ff.ff.ff.d8.b4.9d.4d.22.01.00.00.80.a5.1f.00.00.00.00.00, Format Id 1330790740, Branch Id 33.d3.88.8e.00.00.00.00.00.00.00.00.00.00.00.01), oracle.oc4j.sql.xa.EmulatedXAResource@454837, state={PREPARED}, exception error code=] in transaction Global Transaction Xid( Global Id d4.14.26.b6.ff.ff.ff.ff.d8.b4.9d.4d.22.01.00.00.80.a5.1f.00.00.00.00.00, Format Id 1330790740), type=orabpel, state=COMMITTING, time in completion or recovering=1)&lt;br /&gt;{&lt;br /&gt;[oracle.oc4j.sql.xa.EmulatedXAResource@454837, Xid( Global Id d4.14.26.b6.ff.ff.ff.ff.d8.b4.9d.4d.22.01.00.00.80.a5.1f.00.00.00.00.00, Format Id 1330790740, Branch Id 33.d3.88.8e.00.00.00.00.00.00.00.00.00.00.00.01), oracle.oc4j.sql.xa.EmulatedXAResource@454837, state={PREPARED}, exception error code=],&lt;br /&gt;[oracle.oc4j.sql.xa.EmulatedXAResource@8833d8, Xid( Global Id d4.14.26.b6.ff.ff.ff.ff.d8.b4.9d.4d.22.01.00.00.80.a5.1f.00.00.00.00.00, Format Id 1330790740, Branch Id 33.d3.88.8e.00.00.00.00.00.00.00.00.00.00.00.00), oracle.oc4j.sql.xa.EmulatedXAResource@8833d8, state={PREPARED}, exception error code=]&lt;br /&gt;} returned RB* during commit.&lt;/p&gt;&lt;p&gt;This problem arises because OC4j is trying to emulate the XADataSource.&lt;br /&gt;When Oc4j tries to emulate the data source, it can lead to inconsistent transaction.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;For more information refer to EMULATING XA section in following doc&lt;br /&gt;&lt;a title="http://download.oracle.com/docs/cd/B25221_04/web.1013/b14427/datasrc.htm#CHDHGDII" href="http://download.oracle.com/docs/cd/B25221_04/web.1013/b14427/datasrc.htm#CHDHGDII"&gt;http://download.oracle.com/docs/cd/B25221_04/web.1013/b14427/datasrc.htm#CHDHGDII&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To solve the error,&lt;/p&gt;&lt;p&gt;1.We need to change the connection factory class attribute of connectionPools from &lt;strong&gt;'oracle.jdbc.pool.OracleDataSource'&lt;/strong&gt; to &lt;strong&gt;'oracle.jdbc.xa.client.OracleXADataSource'.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;2. We need to increase the maxConnection value of the BPELServerDataSource.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;3. Increase the transaction time out value. We can also decrease the audit level.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7742856832727401012-5230500953783696890?l=ayush-chatterjee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ayush-chatterjee.blogspot.com/feeds/5230500953783696890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7742856832727401012&amp;postID=5230500953783696890' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7742856832727401012/posts/default/5230500953783696890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7742856832727401012/posts/default/5230500953783696890'/><link rel='alternate' type='text/html' href='http://ayush-chatterjee.blogspot.com/2009/09/hi-all-in-domain.html' title='Problem while Emulating the XADataSource'/><author><name>Ayush Chatterjee</name><uri>http://www.blogger.com/profile/12997947241970533584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_hEsdb0o8efo/SIcBHlcySxI/AAAAAAAAAAM/ax4iv37My-c/S220/04072008425.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7742856832727401012.post-2960845102608203268</id><published>2009-06-23T04:09:00.000-07:00</published><updated>2011-07-24T09:19:32.660-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BPEL'/><title type='text'>BPEL Exception : ORABPEL-05002</title><content type='html'>&lt;strong&gt;Error ORABPEL-05002 in domain log&lt;/strong&gt;&lt;br /&gt;Failed to handle dispatch message ... exception ORABPEL-05002Message handle error.An exception occurred while attempting to process the message "com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessage";the exception is: Transaction was rolled back: timed out;nested exception is: java.rmi.RemoteException:No Exception - originate from:java.lang.Exception: No Exception - originate from:; nested exception is: java.lang.Exception: No Exception - originate from:&lt;br /&gt;&lt;br /&gt;The root cause of this problem is poor performance of the dehydration store database. Following are the possible ways to overcome such problem:&lt;br /&gt;1.If you are using Oracle Lite as dehydration store, switch to use Oracle 9i or 10g.( Better use 10g above version 10.2.0.1)&lt;br /&gt;2. Increase the maxConnection number of the BPELServerDataSource. OC4J has too few available connections to the dehydration database.Location: /j2ee/home/config/data-sources.xml&lt;br /&gt;(NOTE: If you are using10.1.3.4, then you need not worry because it is already set as maximum by default)&lt;br /&gt;3. Size of message is too big. Two ways to deal with this problem:&lt;br /&gt;a. Increase the transaction timeoutLocation :/j2ee/home/config/server.xml&lt;br /&gt;b. Decrease the auditLevel from BPELConsole. It will reduce the amount of data saved to the dehydration store.Location: BPEL Console -&gt; Manage BPEL Domain -&gt; Configurations tab.&lt;br /&gt;&lt;br /&gt;I hope this will solve your problem&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7742856832727401012-2960845102608203268?l=ayush-chatterjee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ayush-chatterjee.blogspot.com/feeds/2960845102608203268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7742856832727401012&amp;postID=2960845102608203268' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7742856832727401012/posts/default/2960845102608203268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7742856832727401012/posts/default/2960845102608203268'/><link rel='alternate' type='text/html' href='http://ayush-chatterjee.blogspot.com/2009/06/bpel-exception-orabpel-05002.html' title='BPEL Exception : ORABPEL-05002'/><author><name>Ayush Chatterjee</name><uri>http://www.blogger.com/profile/12997947241970533584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_hEsdb0o8efo/SIcBHlcySxI/AAAAAAAAAAM/ax4iv37My-c/S220/04072008425.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7742856832727401012.post-6238576070285744553</id><published>2009-06-05T03:55:00.000-07:00</published><updated>2011-08-09T09:42:21.515-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><title type='text'>Deployment Framework in SOA Suite 10.1.3.4</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_hEsdb0o8efo/Sij6Of9kDaI/AAAAAAAAALk/DtNzM9mP830/s1600-h/untitled.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5343796084879920546" style="WIDTH: 320px; CURSOR: hand; HEIGHT: 169px" alt="" src="http://4.bp.blogspot.com/_hEsdb0o8efo/Sij6Of9kDaI/AAAAAAAAALk/DtNzM9mP830/s320/untitled.bmp" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One of the coolest features in BPEL 10.1.3.4 is the deployment framework which makes the job of moving processes between dev, test and production environments much easier. Modifying the bpel.xml file or altering descriptors through the console provide a degree of customization for different environments, but it is all done on a single property at a time basis and requires a lot of work for each environment, especially when it is considered that individual WSDL files may also need to be updated. There is a better way in SOA Suite 10.1.3.4; the deployment framework.&lt;br /&gt;The deployment framework combines the BPEL suitcase with a deployment plan that updates multiple files in the BPEL suitcase with the correct values for the deployment environment. Different deployment plans can be created and maintained for each deployment plan.&lt;/div&gt;&lt;div&gt;It is possible to generate a template BPEL deployment plan from a BPEL suitcase which can then be customized and used with the base BPEL suitcase at deployment time to update the various URLs and properties.&lt;br /&gt;The steps to customize the BPEL Suitcase for each environment are as follows.&lt;br /&gt; ·         Create a deployment template from the BPEL project or suitcase which will be used as the basis for the deployment plans.&lt;br /&gt; ·         Create a deployment plan based on the template for each target environment.&lt;br /&gt; ·         Attach the appropriate deployment plan to the BPEL suitcase or project prior to deploying in the target environment.&lt;br /&gt;·         Deploy the BPEL process into the target environment. &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;To create a deployment template we need to add the following commands to the build.xml ant file that is built by JDeveloper and found in the Resources folder of our BPEL project.&lt;br /&gt;&lt;target name="generate_plan_from_project"&gt;&lt;span style="font-family:georgia;"&gt;&lt;em&gt;&lt;/em&gt;&lt;/span&gt;&lt;/target&gt;&lt;em&gt;&lt;target name="generate_plan_from_suitcase"&gt;&lt;generateplan planfile="${process.dir}/planfile.xml" verbose="true" overwrite="true" suitecase="${process.dir}/output/bpel_${BPELSuitcase.BPELProcess(id)}_${rev}.jar"&gt;&lt;br /&gt;&lt;/generateplan&gt;&lt;/target&gt;&lt;/em&gt;&lt;br /&gt;This creates two new ant targets, generate_plan_from_project and generate_plan_from_suitcase. These both create a template deployment plan, either directly from the project files, or from a generated suitcase. A BPEL suitcase is only generated when a BPEL project is deployed or when the project is “made”, so if using the option to generate from a suitcase it is necessary to ensure that the suitcase has previously been created. If the suitcase generated is a revision other than 1.0 then it is necessary to set the revision property in the build.properties file that is found in the Resources folder of the BPEL project in JDeveloper.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;# Change below if deploying with process revision other than 1.0&lt;br /&gt;rev = 1.1&lt;/div&gt;&lt;div&gt;&lt;br /&gt;The generateplan command in ant uses four attributes&lt;br /&gt;·         suitecase or descfile is the source information for the deployment plan.&lt;br /&gt;·         planfile is the location of the planfile template to be generated.&lt;br /&gt;·         overwrite will replace any existing planfile of the same name.&lt;br /&gt;·         verbose turns up the level of reporting.&lt;br /&gt;A sample deployment plan template is shown below. Note the use of two elements:&lt;br /&gt;·         &lt;replace&gt; is used to replace the value of a property within a specific part of the bpel.xml&lt;br /&gt;·         &lt;searchreplace&gt; is used to &lt;search&gt; for a string in WSDL and XSD files and &lt;replace&gt; it with another string. &lt;/replace&gt;&lt;/search&gt;&lt;/searchreplace&gt;&lt;/replace&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;em&gt;&lt;!--?xml version="1.0" encoding="UTF-8"?--&gt;&lt;bpeldeploymentplan xmlns="http://schemas.oracle.com/bpel/deployplan"&gt;&lt;bpelprocess id="SimpleFileProcess"&gt;&lt;configurations&gt;&lt;partnerlinkbindings&gt;&lt;partnerlinkbinding name="ReadNewCustomerFileService"&gt;&lt;property name="wsdlLocation"&gt;&lt;replace&gt;&lt;/replace&gt;&lt;/property&gt;&lt;/partnerlinkbinding&gt;&lt;partnerlinkbinding name="WriteNewCustomerDBService"&gt;&lt;property name="retryInterval"&gt;&lt;replace&gt;&lt;/replace&gt;&lt;/property&gt;&lt;property name="wsdlLocation"&gt;&lt;replace&gt;&lt;/replace&gt;&lt;/property&gt;&lt;/partnerlinkbinding&gt;&lt;partnerlinkbinding name="CardValidatorService"&gt;&lt;property name="wsdlLocation"&gt;&lt;replace&gt;&lt;/replace&gt;&lt;/property&gt;&lt;property name="location"&gt;&lt;replace&gt;&lt;/replace&gt;&lt;/property&gt;&lt;/partnerlinkbinding&gt;&lt;/partnerlinkbindings&gt;&lt;/configurations&gt;&lt;/bpelprocess&gt;&lt;wsdlandschema name="CardValidatorService.wsdlDBAdapterOutboundHeader.wsdlfileAdapterInboundHeader.wsdlNewCustomerFile.xsdReadNewCustomerFileService.wsdlWriteNewCustomerDBService.wsdlWriteNewCustomerDBService_table.xsd"&gt;&lt;searchreplace&gt;&lt;search&gt;&lt;/search&gt;&lt;/searchreplace&gt;&lt;/wsdlandschema&gt;&lt;/bpeldeploymentplan&gt;&lt;br /&gt;&lt;/em&gt;&lt;strong&gt;Creating a Deployment Plan&lt;/strong&gt;&lt;br /&gt;Having created a template we can use this to create deployment plans for each specific environment. We do this by creating a copy of the deployment plan by selecting Save As from the file menu in JDeveloper and then editing the &lt;search&gt; and &lt;searchreplace&gt; tags to match our target environment.&lt;br /&gt;We will search and replace all instances of our local development machine hostname, w2k3, with the name of our test server, testserver, across wsdl and xsd files. To do this we modify the search and replace elements.&lt;/searchreplace&gt;&lt;/search&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;em&gt;&lt;wsdlandschema name="*"&gt;&lt;br /&gt; &lt;searchreplace&gt;&lt;search&gt;&lt;/search&gt;&lt;replace&gt;&lt;/replace&gt;&lt;/searchreplace&gt;&lt;/wsdlandschema&gt;&lt;/em&gt;&lt;em&gt;&lt;/em&gt;This will cause the BPEL process manager to search all WSDL and schema files “*” in the suitcase at deployment time and replace the string “w2k3” with the string “testserver”. Note that it is possible to have multiple  elements.&lt;/div&gt;&lt;searchreplace&gt;&lt;/searchreplace&gt;&lt;div&gt;&lt;br /&gt;&lt;strong&gt;Attaching a Deployment Plan to a BPEL Suitcase&lt;/strong&gt;&lt;br /&gt;Having created and saved a deployment plan specific for one or more specific environments we will want to deploy our process into an environment. Before doing this we must first attach the specific deployment plan to the BPEL suitcase. We do this using the following ant command.&lt;br /&gt;&amp;lt;&lt;em&gt;target name="attach_plan"&amp;gt;&lt;br /&gt; &lt;attachplan planfile="${planfile}" verbose="true" overwrite="true" suitecase="${process.dir}/output/bpel_${BPELSuitcase.BPELProcess(id)}_${rev}.jar"&gt;&lt;br /&gt;&lt;/attachplan&gt;&lt;/em&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;This will create a file bpeldeployplan.xml in the BPEL suitcase. This is the deployment plan that will be used at deployment time by the BPEL process manager. Note that the name of the deployment plan to use is encoded as an Ant property planfile that must be set in the build.xml. Once attached the deployment plan will be executed when the BPEL suitcase is deployed.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;strong&gt;Modifying Ant to Use Deployment Plan&lt;/strong&gt;&lt;br /&gt;In addition to adding the two tasks above to the build.xml file, it is possible to add the attachment of the plan file as part of the regular deploy process by modifying the dependencies of the process-deploy task by adding the attach_plan dependency after the compile dependency.&lt;br /&gt;&lt;em&gt;&lt;target name="process-deploy" depends="validateTask, compile, attach_plan, deployProcess, deployTaskForm, deployDecisionServices"&gt;&lt;/target&gt;&lt;/em&gt;&lt;/div&gt;&lt;div&gt;&lt;em&gt;&lt;br /&gt;&lt;/em&gt;Now when building and deploying with ant the deployment plan will be attached to the suitcase before the suitcase is deployed to the target environment. This allows us to provide a different deployment plan for each environment, which can then be deployed from the command line in a reproducible fashion.&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;strong&gt;Summary&lt;/strong&gt;&lt;br /&gt;The deployment plans allow a lot of automation in the move from development to production, and because they can be used with editable files and command lines they are easy to include in the version control systems and automated build environments.  Congratulations to the BPEL developers on a useful piece of functionality that appeals to those responsible for ensuring consistency of environments rather than developers.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Cheers&lt;br /&gt;Ayush&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7742856832727401012-6238576070285744553?l=ayush-chatterjee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ayush-chatterjee.blogspot.com/feeds/6238576070285744553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7742856832727401012&amp;postID=6238576070285744553' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7742856832727401012/posts/default/6238576070285744553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7742856832727401012/posts/default/6238576070285744553'/><link rel='alternate' type='text/html' href='http://ayush-chatterjee.blogspot.com/2009/06/deployment-framework-in-soa-suite-10134.html' title='Deployment Framework in SOA Suite 10.1.3.4'/><author><name>Ayush Chatterjee</name><uri>http://www.blogger.com/profile/12997947241970533584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_hEsdb0o8efo/SIcBHlcySxI/AAAAAAAAAAM/ax4iv37My-c/S220/04072008425.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_hEsdb0o8efo/Sij6Of9kDaI/AAAAAAAAALk/DtNzM9mP830/s72-c/untitled.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7742856832727401012.post-9144953808981658889</id><published>2009-06-05T03:30:00.000-07:00</published><updated>2011-07-24T09:19:32.665-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BPEL'/><title type='text'>Rollbacking EBS API's using BPEL</title><content type='html'>&lt;span style="font-family:georgia;"&gt;We are performing multiple activities in sequence( updating a database using database adapter , calling a Oracle EBS API using oracle applications adapter and inserting data in a queue using JMS adapter or AQ adapter etc.) Now our requirement is to roll back all the activities if any of the above mentioned activity fails.Solution: To achieve this we need to configure our BPEL process for JCA-XA transactions. This is requires following set up:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. Set up JNDI name in oc4j-ra.xml and datasources.xml2. Make Changes in BPEL.xml to make your bpel to participate in transaction.For this we need to set the property transaction of BPEL and all partner links to participate as shown below.&lt;br /&gt;&lt;br /&gt;&lt;?xml version = '1.0' encoding = 'UTF-8'?&gt;&lt;br /&gt;&lt;&gt;&lt;br /&gt;&lt; id="TestTransaction2" src="TestTransaction2.bpel"&gt;&lt;br /&gt;&lt;&gt;&lt; name="client"&gt;&lt;br /&gt;&lt; name="wsdlLocation"&gt;TestTransaction2.wsdl&lt;br /&gt;&lt;/partnerlinkbinding&gt;&lt;br /&gt;&lt; name="TestAccount"&gt;&lt;br /&gt;&lt; name="wsdlLocation"&gt;TestAccount.wsdl&lt;br /&gt;&lt; /property&gt;&lt;br /&gt;&lt; name="retryInterval"&gt;60&lt; /property&gt;&lt;br /&gt;&lt; name="transaction"&gt;participate&lt; /property&gt;&lt;br /&gt;&lt; /partnerLinkBinding&gt;&lt;br /&gt;&lt; name="TestLocation"&gt;&lt;br /&gt;&lt; name="wsdlLocation"&gt;TestLocation.wsdl&lt; /property&gt;&lt;br /&gt;&lt; name="retryInterval"&gt;60&lt; /property&gt;&lt;br /&gt;&lt; name="transaction"&gt;participate&lt; /property&gt;&lt;br /&gt;&lt; /partnerLinkBinding&gt;&lt;br /&gt;&lt; name="OA_Rollback"&gt;&lt;br /&gt;&lt; name="wsdlLocation"&gt;OA_Rollback.wsdl&lt; /property&gt;&lt;br /&gt;&lt; name="retryInterval"&gt;60&lt; /property&gt;&lt;br /&gt;&lt;property name="transaction"&gt;participate&lt; /property&gt;&lt;br /&gt;&lt; /partnerLinkBinding&gt;&lt;br /&gt;&lt; /partnerLinkBindings&gt;&lt;br /&gt;&lt;&gt;&lt;br /&gt;&lt; faultpolicy="TestConditionPolicy"&gt;&lt;br /&gt;&lt; /faultPolicyBindings&gt;&lt;br /&gt;&lt;&gt;&lt; name="transaction" encryption="plaintext"&gt;participate&lt; /property&gt;&lt;br /&gt;&lt; /configurations&gt;&lt;br /&gt;&lt; /BPELPr&gt;&lt;br /&gt;&lt;br /&gt;Here we need to make sure that fault policy applied to BPEL is not sending your BPEL to manual intervention. Because while sending the BPEL on manual intervention all the activities gets committed so rollback will not be possible in that case.&lt;br /&gt;Once above setup is done we are good to go. Now we have two possibilities:&lt;br /&gt;&lt;br /&gt;1. BPEL is not configured to catch the faults thrown.&lt;br /&gt;2. BPEL is configured to catch the faults thrown.&lt;br /&gt;&lt;br /&gt;BPEL is not configured to catch the fault thrown:In this case as soon as the fault is thrown , all the activities automatically gets rolled back.&lt;br /&gt;Disadvantage: Here the disadvantage is all the activities which are part of the transaction will get rolled back and we will not be able to see anything on BPEL console. It will appear that BPEL instance was never created.&lt;br /&gt;BPEL is configured to catch the faults thrown&lt;br /&gt;In this we have to explicitly call the rollback. This can be done in two ways:&lt;br /&gt;&lt;br /&gt;1. Explicitly throwing the bpelx:rollbackFault&lt;br /&gt;&lt; name="Throw_1" faultname="bpelx:rollback"&gt;&lt;br /&gt;Once the error is caught by the fault handler we can do the activities we want to and after that we can throw the rollback fault which will result in to the rollback of all activities part of the rolled back transaction.&lt;br /&gt;In this case also disadvantage is we will not be able to see anything on BPELCONSOLE.&lt;br /&gt;&lt;br /&gt;2. Calling a procedure containing the rollback statement.&lt;br /&gt;This procedure will look like following&lt;br /&gt;PROCEDURE "XXDPI_ROLLBACK" AS&lt;br /&gt;BEGIN&lt;br /&gt;rollback;&lt;br /&gt;END;&lt;br /&gt;Now once the error is caught you can explicitly call this procedure to cause the rollback of statements executed on a particular database. So if there are multiple databases, you will have to multiple such procedures.&lt;br /&gt;&lt;br /&gt;Advantage: Advantage of this approach is that your BPEL instance still remains there and u can easily see what has actually happened and all the database statements executed also gets roll backed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7742856832727401012-9144953808981658889?l=ayush-chatterjee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ayush-chatterjee.blogspot.com/feeds/9144953808981658889/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7742856832727401012&amp;postID=9144953808981658889' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7742856832727401012/posts/default/9144953808981658889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7742856832727401012/posts/default/9144953808981658889'/><link rel='alternate' type='text/html' href='http://ayush-chatterjee.blogspot.com/2009/06/rollbacking-ebs-apis-using-bpel.html' title='Rollbacking EBS API&apos;s using BPEL'/><author><name>Ayush Chatterjee</name><uri>http://www.blogger.com/profile/12997947241970533584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_hEsdb0o8efo/SIcBHlcySxI/AAAAAAAAAAM/ax4iv37My-c/S220/04072008425.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7742856832727401012.post-1522339733904595491</id><published>2009-06-05T03:20:00.000-07:00</published><updated>2011-07-24T09:19:32.665-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BPEL'/><title type='text'>Renaming a deployed BPEL process</title><content type='html'>&lt;ol&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;Open the bpel.xml file in your Jdeveloper.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;Inside the file, go to the ‘BPEL Process Id’ and ‘src’ tag and change those values to the desired name and save it.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;Redeploy the BPEL Process on the same server and you will see its new name in the BPEL Console.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7742856832727401012-1522339733904595491?l=ayush-chatterjee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ayush-chatterjee.blogspot.com/feeds/1522339733904595491/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7742856832727401012&amp;postID=1522339733904595491' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7742856832727401012/posts/default/1522339733904595491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7742856832727401012/posts/default/1522339733904595491'/><link rel='alternate' type='text/html' href='http://ayush-chatterjee.blogspot.com/2009/06/renaming-deployed-bpel-process.html' title='Renaming a deployed BPEL process'/><author><name>Ayush Chatterjee</name><uri>http://www.blogger.com/profile/12997947241970533584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_hEsdb0o8efo/SIcBHlcySxI/AAAAAAAAAAM/ax4iv37My-c/S220/04072008425.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7742856832727401012.post-7181186686405076927</id><published>2008-10-23T01:25:00.000-07:00</published><updated>2011-07-24T09:17:44.831-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><title type='text'>SOA Overview</title><content type='html'>&lt;strong&gt;Service-oriented architecture (SOA) Definition&lt;/strong&gt; : A service-oriented architecture can be defined as a group of services, which communicate with each other.&lt;br /&gt;The process of communication involves either simple data passing or it could involve two or more services coordinating some activity. Some means of connecting services to each other is needed.&lt;br /&gt;SOAs build applications out of software services. Services are intrinsically unassociated units of functionality, which have no calls to each other embedded in them. They typically implement functionalities most humans would recognize as a service, such as filling out an online application for an account, viewing an online bank statement, or placing an online booking or airline ticket order. Instead of services embedding calls to each other in their source code, protocols are defined which describe how one or more services can talk to each other. This architecture then relies on a business process expert to link and sequence services, in a process known as orchestration, to meet a new or existing business system requirement.&lt;br /&gt;&lt;br /&gt;XML has been used extensively in SOA to create data which is wrapped in a nearly exhaustive description container. Analogously, the services themselves are typically described by WSDL, and communications protocols by SOAP. Whether these description languages are the best possible for the job, and whether they will remain the favorites in the future, is an open question. What is certain is that SOA is utterly dependent on data and services that are described using some implementation of metadata which meets the following two criteria: the metadata must be in a form which software systems can use to configure themselves dynamically by discovery and incorporation of defined services, and also to maintain coherence and integrity. The metadata must also be in a form which system designers can understand and manage at a reasonable cost and effort.&lt;br /&gt;SOA services are loosely coupled, in contrast to the functions a linker binds together to form an executable, a dynamically linked library, or an assembly. SOA services also run in "safe" wrappers such as Java or .NET, and other programming languages that manage memory allocation and reclamation, allow ad hoc and late binding, and provide some degree of indeterminate data typing.&lt;br /&gt;SOA is an architecture that relies on service-orientation as its fundamental design principle.In a SOA environment, independent services can be accessed without knowledge of their underlying platform implementation.&lt;br /&gt;SOA relies on services exposing their functionality via interfaces which other applications and services read to understand how the service can be utilized.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7742856832727401012-7181186686405076927?l=ayush-chatterjee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ayush-chatterjee.blogspot.com/feeds/7181186686405076927/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7742856832727401012&amp;postID=7181186686405076927' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7742856832727401012/posts/default/7181186686405076927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7742856832727401012/posts/default/7181186686405076927'/><link rel='alternate' type='text/html' href='http://ayush-chatterjee.blogspot.com/2008/10/service-oriented-architecture-soa.html' title='SOA Overview'/><author><name>Ayush Chatterjee</name><uri>http://www.blogger.com/profile/12997947241970533584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_hEsdb0o8efo/SIcBHlcySxI/AAAAAAAAAAM/ax4iv37My-c/S220/04072008425.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7742856832727401012.post-3115907154601559870</id><published>2008-10-23T00:41:00.000-07:00</published><updated>2011-07-24T09:18:15.366-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AIA'/><title type='text'>PIP your AIA</title><content type='html'>AIA stands for Application Integration Architecture. Architecture (&lt;a href="http://dictionary.reference.com/browse/Architecture"&gt;http://dictionary.reference.com/browse/Architecture&lt;/a&gt;) is a fundamental underlying design of computer hardware, software, or both. In other words, it is an integrated set of tools and concepts which helps you build new solutions. All major software vendors have their own AIA delivered via the Application Servers, JBoss from RedHat, WebSphere from IBM, Oracle 10g AS from Oracle, WebLogic from BEA, NetWeaver from SAP, WebMethods. If you look into each of the AIA from each of the vendor, you will not see much difference in terms of delivered functionality. Each architecture includes an HTTP Server, a servlet container, an Enterprise Service Bus, a BPEL Engine, etc.&lt;br /&gt;&lt;br /&gt;What does differentiate one AIA from another? PIPs, the Process Integration Pack.&lt;br /&gt;&lt;br /&gt;PIPs are pre-built solutions for specific tasks. For example, if your company is implementing Oracle Siebel CRM and Oracle eBusiness Suite Order Management, you go with Oracle AIA and use Siebel CRM Integration Pack for Oracle Order Management. Surely, both WebSphere and WebLogic have Oracle eBS and Siebel adapters, and one can build a custom integration solution with AIA from IBM or BEA. However, only Oracle AIA with the PIP gives you the initial boost. When you implement SAP and integrate it with Siebel, your best solution would be the SAP NetWeaver for the very same reason. You use AIA from 'independent' vendors like IBM, BEA or RedHat when you need to integrate multiple applications with and there are no PIPs available. For example, if you are integrating Oracle eBusiness Suite Financials with Lawson Financials, your best choice would be WebSphere because there are already adapters for both of the applications available with no PIP to boost your integration.&lt;br /&gt;Resume: before committing to an AIA from a vendor, investigate what PIPs are available for the integration which you need to build. It may be better to change the AIA in order to unitlize existing PIPs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7742856832727401012-3115907154601559870?l=ayush-chatterjee.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ayush-chatterjee.blogspot.com/feeds/3115907154601559870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7742856832727401012&amp;postID=3115907154601559870' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7742856832727401012/posts/default/3115907154601559870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7742856832727401012/posts/default/3115907154601559870'/><link rel='alternate' type='text/html' href='http://ayush-chatterjee.blogspot.com/2008/10/pip-your-aia.html' title='PIP your AIA'/><author><name>Ayush Chatterjee</name><uri>http://www.blogger.com/profile/12997947241970533584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp1.blogger.com/_hEsdb0o8efo/SIcBHlcySxI/AAAAAAAAAAM/ax4iv37My-c/S220/04072008425.jpg'/></author><thr:total>1</thr:total></entry></feed>
